Main Content

CircuitPython 6.0.0 released

Download from
Downloads are available from 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. (If you see the unstable release 6.0.0-rc.2 when you browse, that release is older. Use this one.)

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, and stm for the F4 family are stable. cxd56, esp32s2, and stm for other chip families are being actively improved but may be missing functionality and have bugs. litex and mimxrt10xx are in an alpha state and will have bugs and missing functionality.

Major new features and improvements since 5.x
New port to ESP32-S2 chip.
RGBMatrix display support.
countio module to count pulses.
watchdog controls hardware watchdog timer. Only on certain ports.
vectorio provides native displayio shapes.
canio provides support for CAN bus operations.
bleio adds support for HCI-based BLE co-processors, such as AirLift boards.
_aesio provides support for AES computations.

async/await made available by default in many builds; support improved.
Network modules are revamped, adding wifi, socketpool, ssl, and other modules. Disabled socket, wiznet5k and network modules. They will be removed in 7.x in favor of networking libraries.
Updated stage and pew libraries.
pixelbuf improvements.
_Improved USB serial detection.

json can now read from stream objects.
pulseio.PWMOut is split out into pwmio.PWMOut. It is still available in pulseio, but that is deprecated and will be removed in 7.x.
Added memorymonitor for memory debugging. It is not enabled by default.
Reduced power consumption (light sleep) during time.sleep() when possible.
Breaking changes since 5.x
i2cslave is now i2cperipheral and the class in it is changed as well.
The stop kwarg has been removed from I2C.writeto(). If no stop is desired, then use writeto_then_readfrom.
The default speed of busio.I2C and board.I2C() is now 100khz, not 400khz as before. Use busio.I2C to set the speed explicitly.
bleio.ConnectionError has been removed. Code will now raise the native ConnectionError instead.
_New boards since 5.3.1 (38 boards)

Adafruit BLM Badge
Adafruit Feather M4 CAN
Adafruit Matrix Portal M4
Adafruit Metro ESP32S2
Adafruit Metro M7 1011
Adafruit QT Py
Adafruit QT Py Haxpress
AloriumTech Evo M51
Atmel SAME54 Xplained
BDMicro Vina D51
BLE-SS Dev Board Multi Sensor
Electronic Cats Bastwifi
Espressif Saola 1 w/WROOM
Espressif Saola 1 w/WROVER
Fluff M0
HiiBot BlueFi
Ikigaisense Vita nRF52840
Loc Ber M4
MakerDiary M60 Keyboard
MakerDiary nRF52840 M.2 devkit
Makerdairy Pitaya Go
Muselab nano ESP32-S2
Nice Nano
Nordic PCA10100
OpenMV H7
PyCubed MRAM
Raytac MDBT50Q-DB-40
STM32F746 Discovery
STM32F746 Nucleo
Seeeduino Wio Terminal
Teensy 4.1
TinkeringTech ScountMakes
UnexpectedMaker FeatherS2
microDev microS2 (ESP32-S2)
Known issues
We are not aware of any show-stopper issues.
See for other issues.
Thank you to all who used, tested, and contributed since 5.3.1. See the 5.4.0 and 6.0.0 alpha, beta and RC releases for all who contributed. Join us on the Discord chat to collaborate.

Documentation is available in

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.”

Link to article