From the GitHub release page:
This is the initial beta release of CircuitPython 6.0.0. It is relatively stable. The most notable additions since 5.3.x are basic lower power support when in
time.sleep()
, initial ESP32-S2 support, including WiFi, and and_bleio
HCI support for ESP32 co-processors. The lower power work changed time keeping and may have introduced bugs. Please use 5.3.x if you need a stable version of CircuitPython.Download from circuitpython.org
Downloads are available from circuitpython.org. The site makes it easy to select the correct file and language for your board. The downloads page is here. Downloads are no longer available from the GitHub release pages because of the large number of files for each release.
Installation
To install follow the instructions in our new Welcome to CircuitPython! guide. To install the latest libraries, see this page in that guide.
Try the latest version of the Mu editor for creating and editing your CircuitPython programs and for easy access to the CircuitPython serial connection (the REPL).
Port status
CircuitPython has a number of "ports" that are the core implementation for a variety of microcontroller families. Stability varies on a per-port basis. As of this release,
atmel-samd
,nrf
, andstm
for the F4 family are stable.cxd56
,esp32s2
, andstm
for other chip families are being actively improved but may be missing functionality and have bugs.litex
andmimxrt10xx
are in an alpha state and will have bugs and missing functionality.New features and improvements since 6.0.0 Alpha 3
API changes and additions
- Revamp network API, adding
wifi
,socketpool
,ssl
, and other modules (#3326, #3397). Thanks @tannewt.- Implement
_bleio
for HCI Bluetooth adapters (#3310). Note that this supports peripheral mode only right now. Thanks @dhalbert.- Add
usb_hid.Device.last_received_report
to receive HID OUT (from host) reports (#3302). Thanks @xiongyihui.- Implement
.bit_length()
and 3-argumentpow()
, needed for a port ofDecimal
(#3377). Thanks @jepler.display.refresh()
will force an immediate redraw (#3366). Thanks @kmatch98.supervisor.runtime.serial_connected
is now more accurate, and can detect both disconnect and reconnect (#3437). Thanks @jepler.Fixes and enhancements
struct
: improve compliance with CPython (#3404). Thanks @jepler.- Implement improved message compression scheme (#3398). Thanks @ciscorn and @jepler.
- Add bigram message compression (#3370, superseded by #3370). Thanks @jepler.
- Fix I2C-related
displayio
crashes (#3392). Thanks @hierophect.- Fix decompression of certain Unicode values (#3385). Thanks @jepler.
- Make sure
board.SPI()
is unlocked after a soft reboot (#3378). Thanks @DavePutz.- Guard against
NO_PIN
pin numbers being passed to various routines (#3375). Thanks @DavePutz.- Add dirty Rectangle tracking to
displayio.Shape
(#3374). Thanks @kmatch98.- Fix several
RGBMatrix
andFrameBufferDisplay
bugs (#3344). Thanks @jepler.- Clean up a conditionally compiled part of the code for
sdioio
(#3435). Thanks @jepler.Board- and port-specific changes
- ESP32-S2:
- Add native WiFi support (#3326). Thanks @tannewt.
- Add filesystem layouts for 8MB and 16MB partitions (#3426). Thanks @tannewt.
- Implemented
rtc
(#3422). Thanks @askpatrickw.- Add port-specific README, with build and flash information (#3417). Thanks @hierophect.
- Add safe mode support (#3395). Thanks @microDev1.
- Add non-DMA SPI support (#3393). Thanks @tannewt.
- Add
openocd
and gdb debugging support (#3392). Thanks @hierophect.- Add
microcontroller.cpu.temperature
support (#3382). Thanks @hierophect.- Allow connecting to a specific WiFi BSSID (access point) (#3433). Thanks @astrobokonon.
- Feather M4 Express was using dual-mode QSPI instead of quad-mode (#3399). Thanks @jepler.
- Feather M0 RFM69: Freeze libraries into build (#3388). Thanks @jerryneedell.
- Add SAME51 support to
atmel-samd
(#3384). Thanks @jepler.- Trellis M4: Fix pins used for `board.I2C() (#3373). Thanks @dhalbert.
- Spresense: Add native camera support (#3369). Thanks @kamtom480.
- Unix: Fix
import ulab.linalg
crash (#3355). Thanks @jepler.- BLM Badge: Add
board.I2C()
(#3348). Thanks @ladyada.- SAME54: Disable
microcontroller.cpu.voltage
, as it is hanging (#3434). Thanks @jepler.- atmel-samd: Fix SPI code that handled SAMR21 special case (#3436). Thanks @jepler.
- STM32: Make sure MOSI is high during SPI read (#3431). Thanks @hierophect.
- MakerDiary boards: Add pin aliases such as SCL and SDA, and canonicalize other names (#3438). Thanks @nitz.
- BDMICRO VINA M0 renamed to VINA D21; pins updated (#3432). Thanks @bd34n.
- STM32: Add never_reset calls to RGBMatrix init (#3441). Thanks @hierophect.
Documentation
- New translation started for Greek.
- Numerous translation additions and improvements. Thanks:
- @wtuemura (Brazilian Portugese)
- @ciscorn (Japanese)
- @fede2cr (Spanish)
- @bergdahl (Swedish)
- @fetchall (Dutch)
- @tawez (Polish)
- @hugodahl (French)
- Fix typo in
_bleio
documentation (#3411). Thanks @jepler.- Remove documentation about non-existent clock specification (#3406). Thanks @CarlFK.
- Use
shared-bindings
for support matrix, special-casingulab
(#3352). Thanks @jepler.Internals and build process
- Enable diagnostic for fall-through
case
arms inswitch
statements, catching several bugs. Thanks @jepler.- Remove debugging printout in endpoint-counting code during build (#3359). Thanks @jepler.
- Clone the
esp-idf
submodules explicitly in the GitHub build action to prevent build hiccups (#3358). Thanks @jepler.- Make build script not rely on Python 3.7 features (#3443). Thanks @jepler.
Full commit log is here.
Breaking changes since 5.x
i2cslave
is nowi2cperipheral
and the class in it is changed as well.- The
stop
kwarg has been removed fromI2C.writeto()
. If no stop is desired, then usewriteto_then_readfrom
.New boards since 6.0.0 Alpha 3
- Muselab nano ESP32-S2 (#3427). Thanks @maditnerd.
- Py QT (#3407). Thanks @ladyada.
- Feather M4 CAN (#3384). Thanks @jepler.
- Matrix Portal M4 (#3363). Thanks @dhalbert.
Known issues
- Use of the
adafruit_sdcard
library can interfere withdisplayio
operations that use read from an SD card (e.g.,OnDiskBitmap
). Use the nativesdcardio
orsdio
modules instead, to avoid this problem.- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.0.0 Alpha 3, including @Andon-A, @anecdata, @askpatrickw, @astrobokonon, @bd34n, @bergdahl, @CarlFK, @ciscorn, @cjsieh, @DavePutz, @dhalbert, @emard, @fede2cr, @fetchall, @FoamyGuy, @hierophect, @hugodahl, @jepler, @jerryneedell, @julianrendell, @kamtom480, @kmatch98, @ladyada, @maditnerd, @microDev1, @nitz, @PaintYourDragon, @siehputz, @sommersoft, @tannewt, @tawez, @titoluyo, @weblate, @wtuemura, and many more on Discord. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
Translations
One important feature of CircuitPython is translated control and error messages. With the help of fellow open source project Weblate, we’re making it even easier to add or improve translations. Sign in with an existing account such as Github, Google or Facebook and start contributing through a simple web interface. No forks or pull requests needed!
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having issues, then post to the Adafruit Support Forums and join Discord.
Assets
Builds are no longer stored as assets on this release page, because there are too many of them. Please see the Download from circuitpython.org section above.