Releases: adafruit/circuitpython
CircuitPython 7.2.4
This is CircuitPython 7.2.4, the latest bugfix revision of CircuitPython, and is a new stable release.
Notable fixes to 7.2.4 since 7.2.3
- Enable I2C power by default on Feather ESP32-S2.
- Fix
supervisor.reload()
.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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).
Documentation
Documentation is available in readthedocs.io.
Port status
CircuitPython has a number of "ports" that are the core implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, these ports are consider stable:
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32-S2nrf
: Nordic nRF52840, nRF52833raspberrypi
: Raspberry Pi RP2040stm
: ST STM32F4 chip family
These ports are considered alpha and will have bugs and missing functionality:
broadcom
: Raspberry Pi boards such as RPi 4, RPi Zero 2Wespressif
: ESP32-S3, ESP32-C3litex
: fomumimxrt10xx
: NXP i.MX RT10xxxstm
: ST non-STM32F4 chip families
Changes since 7.2.3
Fixes and enhancements
Port and board-specific changes
Individual boards
- Adafruit Feather ESP32-S2: Enable I2C power by default on all board revisions. #6212: backport of #6103. Thanks @ladyada and @dhalbert.
Build and infrastructure changes
New boards since 7.2.3
- (none)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for:
Thanks
Thank you to all who used, tested, and contributed since 7.2.3, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 7.2.3
This is CircuitPython 7.2.3, the latest bugfix revision of CircuitPython, and is a new stable release.
Notable fixes to 7.2.3 since 7.2.2
- Fix spurious
ReloadException
s when in the REPL.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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).
Documentation
Documentation is available in readthedocs.io.
Port status
CircuitPython has a number of "ports" that are the core implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, these ports are consider stable:
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32-S2nrf
: Nordic nRF52840, nRF52833raspberrypi
: Raspberry Pi RP2040stm
: ST STM32F4 chip family
These ports are considered alpha and will have bugs and missing functionality:
broadcom
: Raspberry Pi boards such as RPi 4, RPi Zero 2Wespressif
: ESP32-S3, ESP32-C3litex
: fomumimxrt10xx
: NXP i.MX RT10xxxstm
: ST non-STM32F4 chip families
Changes since 7.2.2
Fixes and enhancements
Port and board-specific changes
New boards since 7.2.2
- (none)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed since 7.2.2, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 7.2.2
This is CircuitPython 7.2.2, the latest bugfix revision of CircuitPython, and is a new stable release.
Notable fixes to 7.2.2 since 7.2.1
- Fix multiple successive auto-reloads, especially on RP2040, and on macOS.
- Restore
_bleio
to Adafruit MatrixPortal board.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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).
Documentation
Documentation is available in readthedocs.io.
Port status
CircuitPython has a number of "ports" that are the core implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, these ports are consider stable:
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32-S2nrf
: Nordic nRF52840, nRF52833raspberrypi
: Raspberry Pi RP2040stm
: ST STM32F4 chip family
These ports are considered alpha and will have bugs and missing functionality:
broadcom
: Raspberry Pi boards such as RPi 4, RPi Zero 2Wespressif
: ESP32-S3, ESP32-C3litex
: fomumimxrt10xx
: NXP i.MX RT10xxxstm
: ST non-STM32F4 chip families
Changes since 7.2.1
Fixes and enhancements
- Improve auto-reload logic to avoid triggering multiple reloads, especially on RP2040 and macOS. #6153. Thanks @tannewt.
Port and board-specific changes
SAMD
New boards since 7.2.1
- (none)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed since 7.2.1, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 7.2.1
This is CircuitPython 7.2.1, the latest bugfix revision of CircuitPython, and is a new stable release.
Notable fixes to 7.2.1 since 7.2.0
- Espressif I2C pull-up detection fix.
- SAMD21 auto-reload reliability. In addition, for auto-reloads on any board, the program will stop more quickly, and will wait 0.75 seconds (was 0.5 seconds) after the last filesystem write before restarting.
- Update known certificates.
- Fix
countio
problems when used outside ofcode.py
. - Add
from __future__ import annotations
to allow program compatibility with CPython.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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).
Documentation
Documentation is available in readthedocs.io.
Port status
CircuitPython has a number of "ports" that are the core implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, these ports are consider stable:
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32-S2nrf
: Nordic nRF52840, nRF52833raspberrypi
: Raspberry Pi RP2040stm
: ST STM32F4 chip family
These ports are considered alpha and will have bugs and missing functionality:
broadcom
: Raspberry Pi boards such as RPi 4, RPi Zero 2Wespressif
: ESP32-S3, ESP32-C3litex
: fomumimxrt10xx
: NXP i.MX RT10xxxstm
: ST non-STM32F4 chip families
Changes since 7.2.0
Fixes and enhancements
- Update certificates. #6139 (backport of #6097). Thanks @FoamyGuy and @dhalbert.
- Add do-nothing
from __future__ import annotations
. #6137 (backport of #6117). Thanks @dhalbert.
Port and board-specific changes
Espressif
SAMD
- Make
countio.Counter
be long-lived, for implementation reasons. #6138 (backport of #6106). Thanks @DavePutz and @dhalbert. - SAMD21: Auto-reload was not working reliably. #6142, #6132. Thanks @dhalbert.
New boards since 7.2.0
- (none)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed since 7.2.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 7.2.0
This is CircuitPython 7.2.0, the latest minor revision of CircuitPython, and is a new stable release.
Notable additions to 7.2.0 since 7.1.1
- Continuing work on Raspberry Pi Broadcom board support.
- Espressif ESP32-S3 and ESP32-C3 support, including BLE.
- RP2040 PIO sideset support.
board.STEMMA_I2C()
available on all boards with STEMMA connectors.binascii.crc32()
.vectorio.contains()
.- Turkish translation.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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).
Documentation
Documentation is available in readthedocs.io.
Port status
CircuitPython has a number of "ports" that are the core implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, these ports are consider stable:
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32-S2nrf
: Nordic nRF52840, nRF52833raspberrypi
: Raspberry Pi RP2040stm
: ST STM32F4 chip family
These ports are considered alpha and will have bugs and missing functionality:
broadcom
: Raspberry Pi boards such as RPi 4, RPi Zero 2Wespressif
: ESP32-S3, ESP32-C3litex
: fomumimxrt10xx
: NXP i.MX RT10xxstm
: ST non-STM32F4 chip families
Changes since 7.2.0-rc.2
This release is a relabeling of 7.2.0-rc.2 and is otherwise the same as that release.
New boards since 7.1.1
- Adafruit ESP32-S2 Camera: #5832. Thanks @ladyada.
- Adafruit QT Py ESP32-S3 no PSRAM: #5832. Thanks @ladyada.
- AIThinker ESP32-C3S-Kit-2M: #6032. Thanks @prplz.
- Diodes Delight Piunora. #5819. Thanks @tannewt.
- Espressif ESP32-C3 DevKitM-1. #5885. Thanks @tannewt.
- Espressif ESP32-S2 DevKitC-1-NR42. #5998. Thanks @anecdata.
- Espressif ESP32-S3 Box. #5691, #5674, #5661. Thanks @jepler.
- Espressif ESP32-S3 DevKit C-1-nopsram. #5691, #5655. Thanks @jepler.
- Espressif ESP32-S3 DevKit C-1. #5655. Thanks @jepler.
- HiiBot IoTs2. #6058. Thanks @Neradoc.
- JPConstantineau BlueMicro833. #5664. Thanks @jpconstantineau.
- JPConstantineau PyKey 18 Numpad. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 44 Ergo. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 60. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 87 TKL. #5699. Thanks @jpconstantineau.
- Oak Development Technologies Cast-Away RP2040. #5666. Thanks @skerr92.
- Pimoroni Tiny 2040 (2MB). #5684. Thanks @ZodiusInfuser.
- Raspberry Pi Zero W. #5800, #5819. Thanks @tannewt.
- Raspberry Pi Zero. #5800, #5819. Thanks @tannewt.
- Seeeduino Xiao RP2040. #5696, #5519. Thanks @jpconstantineau and @prplz.
- Seeeduino Xiao nRF52840. #5753. Thanks @0hotpotman0.
- SparkFun Thing Plus STM32. #5597. Thanks @NathanY3G.
- Unexpected Maker FeatherS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker ProS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker TinyS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Waveshare RP2040-Zero. #5820. Thanks @CharString.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed since 7.1.1, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 7.2.0 Release Candidate 2
This is CircuitPython 7.2.0-rc.2, the second release candidate for CircuitPython 7.2.0. It is considered stable, but we want to give time for further testing before the final release of 7.2.0. (7.2.0-rc.1 was skipped due to a release error.)
Notable additions to 7.2.0 since 7.1.1
- Continuing work on Raspberry Pi Broadcom board support.
- Espressif ESP32-S3 and ESP32-C3 support, including BLE.
- RP2040 PIO sideset support.
board.STEMMA_I2C()
available on all boards with STEMMA connectors.binascii.crc32()
.vectorio.contains()
.- Turkish translation.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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 implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, these ports are consider stable:
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32-S2nrf
: Nordic nRF52840, nRF52833raspberrypi
: Raspberry Pi RP2040stm
: ST STM32F4 chip family
These ports are considered alpha and will have bugs and missing functionality:
broadcom
: Raspberry Pi boards such as RPi 4, RPi Zero 2Wespressif
: ESP32-S3, ESP32-C3litex
: fomumimxrt10xx
: NXP i.MX RT10xxstm
: ST non-STM32F4 chip families
Changes since 7.2.0-rc.0
Fixes and enhancements
- Fix REPL display on integrated displays when CircuitPython restarts. #6076, #6077. Thanks @kmatch98.
Port and board-specific changes
- (none)
Individual boards
- (none)
New boards since 7.1.1
- Adafruit ESP32-S2 Camera: #5832. Thanks @ladyada.
- Adafruit QT Py ESP32-S3 no PSRAM: #5832. Thanks @ladyada.
- AIThinker ESP32-C3S-Kit-2M: #6032. Thanks @prplz.
- Diodes Delight Piunora. #5819. Thanks @tannewt.
- Espressif ESP32-C3 DevKitM-1. #5885. Thanks @tannewt.
- Espressif ESP32-S2 DevKitC-1-NR42. #5998. Thanks @anecdata.
- Espressif ESP32-S3 Box. #5691, #5674, #5661. Thanks @jepler.
- Espressif ESP32-S3 DevKit C-1-nopsram. #5691, #5655. Thanks @jepler.
- Espressif ESP32-S3 DevKit C-1. #5655. Thanks @jepler.
- HiiBot IoTs2. #6058. Thanks @Neradoc.
- JPConstantineau BlueMicro833. #5664. Thanks @jpconstantineau.
- JPConstantineau PyKey 18 Numpad. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 44 Ergo. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 60. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 87 TKL. #5699. Thanks @jpconstantineau.
- Oak Development Technologies Cast-Away RP2040. #5666. Thanks @skerr92.
- Pimoroni Tiny 2040 (2MB). #5684. Thanks @ZodiusInfuser.
- Raspberry Pi Zero W. #5800, #5819. Thanks @tannewt.
- Raspberry Pi Zero. #5800, #5819. Thanks @tannewt.
- Seeeduino Xiao RP2040. #5696, #5519. Thanks @jpconstantineau and @prplz.
- Seeeduino Xiao nRF52840. #5753. Thanks @0hotpotman0.
- SparkFun Thing Plus STM32. #5597. Thanks @NathanY3G.
- Unexpected Maker FeatherS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker ProS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker TinyS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Waveshare RP2040-Zero. #5820. Thanks @CharString.
Documentation changes
- (none)
Build and infrastructure changes
Translation additions and improvements
- (none)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 7.2.0 Release Candidate 0
This is CircuitPython 7.2.0-rc.0, the initial release candidate for CircuitPython 7.2.0. It is considered stable, but we want to give time for further testing before the final release of 7.2.0.
Notable additions to 7.2.0 since 7.1.1
- Continuing work on Raspberry Pi Broadcom board support.
- Espressif ESP32-S3 and ESP32-C3 support, including BLE.
- RP2040 PIO sideset support.
board.STEMMA_I2C()
available on all boards with STEMMA connectors.binascii.crc32()
.vectorio.contains()
.- Turkish translation.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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 implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd
, cxd56
(Spresense), espressif
for ESP32-S2, nrf
,raspberrypi
, stm
for the F4 family are stable. stm
for other STM chip families is being actively improved but may be missing functionality and have bugs. broadcom
(Raspberry Pi), espressif
for ESP32-S3 and ESP32-C3, litex
and mimxrt10xx
are in an alpha state and will have bugs and missing functionality.
Changes since 7.2.0-alpha.2
Fixes and enhancements
- Don't update status LED color on brightness change. #6054. Thanks @tannewt.
- Don't wait for workflow connection after true deep sleep. #6051. Thanks @dhalbert.
- Update frozen libraries. #6060, #6043. Thanks @dhalbert and @makermelissa.
- Validate
bitmap.blit
arguments. #6035. Thanks @FoamyGuy. wifi.radio.start_ap()
: newmax_connections
argument. #6022. Thanks @anecdata.- Validate
rainbowio.colorwheel()
argument. #6016. Thanks @todbot.
Port and board-specific changes
Espressif
- Allow customization of how particular pins are reset. #6057. Thanks @tannewt.
- Respond promptly to keypress to enter REPL. #6046. Thanks @prplz.
- Fix pin state default handling. #6034. Thanks @tannewt.
- Increase socket limit on ESP32-S3 from 4 to 8. #6021. Thanks @anecdata.
- Add ESP32-S3 BLE GATT client support. #6013. Thanks @tannewt.
- Correct ping timeout. #6006. Thanks @DavePutz.
SAMx
STM
- Prevent lost UART data while transmission is in progress. #6027. Thanks @EmergReanimator.
Individual boards
- Adafruit Feather ESP32-S2 TFT: update pin name. #6045. Thanks @kattni.
- Adafruit Feather ESP32-S2 TFT: fix pin state defaults. #6034. Thanks @tannewt.
- Adafruit QT Py ESP32-S2: make TX and RX pins available for non-debug builds. #6056. Thanks @Neradoc.
- Adafruit Portal boards: freeze in necessary libraries to save RAM. #6043. Thanks @makermelissa.
- SparkFun MicroMod SAMD51: correct
board.SPI()
MISO pin. #6023. Thanks @stonehippo.
New boards since 7.1.1
- Adafruit ESP32-S2 Camera: #5832. Thanks @ladyada.
- Adafruit QT Py ESP32-S3 no PSRAM: #5832. Thanks @ladyada.
- AIThinker ESP32-C3S-Kit-2M: #6032. Thanks @prplz.
- Diodes Delight Piunora. #5819. Thanks @tannewt.
- Espressif ESP32-C3 DevKitM-1. #5885. Thanks @tannewt.
- Espressif ESP32-S2 DevKitC-1-NR42. #5998. Thanks @anecdata.
- Espressif ESP32-S3 Box. #5691, #5674, #5661. Thanks @jepler.
- Espressif ESP32-S3 DevKit C-1-nopsram. #5691, #5655. Thanks @jepler.
- Espressif ESP32-S3 DevKit C-1. #5655. Thanks @jepler.
- HiiBot IoTs2. #6058. Thanks @Neradoc.
- JPConstantineau BlueMicro833. #5664. Thanks @jpconstantineau.
- JPConstantineau PyKey 18 Numpad. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 44 Ergo. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 60. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 87 TKL. #5699. Thanks @jpconstantineau.
- Oak Development Technologies Cast-Away RP2040. #5666. Thanks @skerr92.
- Pimoroni Tiny 2040 (2MB). #5684. Thanks @ZodiusInfuser.
- Raspberry Pi Zero W. #5800, #5819. Thanks @tannewt.
- Raspberry Pi Zero. #5800, #5819. Thanks @tannewt.
- Seeeduino Xiao RP2040. #5696, #5519. Thanks @jpconstantineau and @prplz.
- Seeeduino Xiao nRF52840. #5753. Thanks @0hotpotman0.
- SparkFun Thing Plus STM32. #5597. Thanks @NathanY3G.
- Unexpected Maker FeatherS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker ProS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker TinyS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Waveshare RP2040-Zero. #5820. Thanks @CharString.
Documentation changes
- RP2040: Explain PIO read/write sizes. #6011. Thanks @tannewt.
- Add
half_duplex
argument tobusio.SPI()
signature. #6003. Thanks @dhalbert.
Build and infrastructure changes
- Check for failure during qstr phase of build, fix spurious error. #6047. Thanks @jepler.
- Fix compression of long UTF-8 strings. #6039. Thanks @jepler.
- Better use of
git describe
to get commit string. #6033. Thanks @jepler. - Fix all native module tests to run on x64. #6028. Thanks @jepler.
- Revise
convert-release-notes.py
script. #6020. Thanks @dhalbert.
Translation additions and improvements
- Thanks for translations:
- @bergdahl (Swedish)
- @hexthat (Chinese - Pinyin)
- @Pixel-Clay (Russian)
- @wtuemura (Portuguese - Brazil)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 7.2.0 Alpha 2
This is CircuitPython 7.2.0-alpha.2, the second published alpha release for CircuitPython 7.2.0. It is relatively stable, but there will be further additions and fixes before final release.
Notable additions to 7.2.0 since 7.1.0
- Continuing work on Raspberry Pi Broadcom board support.
- Espressif ESP32-S3 and ESP32-C3 support, including BLE.
- RP2040 PIO sideset support.
board.STEMMA_I2C()
available on all boards with STEMMA connectors.binascii.crc32()
.vectorio.contains()
.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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 implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd
, cxd56
(Spresense), esp32s2
, nrf
,raspberrypi
, stm
for the F4 family are stable. stm
for other STM chip families is being actively improved but may be missing functionality and have bugs. broadcom
(Raspberry Pi), litex
and mimxrt10xx
are in an alpha state and will have bugs and missing functionality.
Changes since 7.2.0-alpha.1
Fixes and enhancements
- Add SPI half-duplex capability (only available on STM for now). #5990, #6003. Thanks @sgauche and @dhalbert.
wifi.monitor
: improve channel argument validation. #5996. Thanks @anecdata.bitbangio.I2C
: switch pin to input mode when reading. #5977. Thanks @prplz.- Add
binascii.crc32()
. #5969. Thanks @Life-Imaging-Services. - Add
board.STEMMA_I2C
for all boards with a STEMMA, STEMMA/QT, or QWIIC connector. #5966, #5962. Thanks @Neradoc. displayio
: expose REPL group assupervisor.splash
. #5954. Thanks @kmatch98.neopixel_write
: check ifDigitalInOut
has been deinited. # 5946. Thanks @tammymakesthings.- Make CIRCUITPY writable by default on boards without USB. #5902. Thanks @tannewt.
io.__name__
fixed. #5897. Thanks @dunkmann00.- Validate file modes for
open()
. #5896. Thanks @dhalbert. - Allow
displayio.EpaperDisplay
two-byte LUT table length. #5874. Thanks @dkulinski. - Update
ulab
to 4.0.0. #5859. Thanks @jepler. - Add
audiomp3.MP3Decoder.decoded_samples
. #5807, #5808. Thanks @unwiredben. countio
: add selectable rise and fall selection, pull support. #5803. Thanks @dhalbert.- Add
vectorio.contains()
. #5784. Thanks @WarriorOfWire. - Add
pixelbuf
support inis31fl3741
#5726. Thanks @gamblor21. - Allow multiple buses of the same type with different names in
board
. #5422. Thanks @Neradoc.
Port and board-specific changes
Broadcom
- Set JTAG pins to pull down on initialization. #5798. Thanks @jerryneedell.
Espressif
- Fix ping timeout. #5980. Thanks @DavePutz.
busio.I2C
: Use ESP-IDF combined write/read I2C routine. #5958. Thanks @dhalbert.- Update to latest v4.4 commit. #5796, #5923. Thanks @microdev1.
- Fix
microcontroller.cpu.frequency
. #5921. Thanks @microdev1. - Fix
pulseio.PulseIn
channel assignments to work on ESP32-S3. #5912. Thanks @DavePutz. - Refactor pin reset code. #5894. Thanks @tannewt.
neopixel_write
: improve timing and pin reset state. #5892. Thanks @tannewt.- Ensure
supervisor_tick()
is run on same core as CircuitPython. #5888. Thanks @tannewt. - Increase ESP32-S3 heap size when no PSRAM. Fix S2 build problem. #5884. Thanks @tannewt.
- Enable reset to bootloader on USB 1200 baud speed change. #5880. Thanks @jepler.
- Fix
digitalio.DigitalInOut
open-drain outputs. #5866. Thanks @dhalbert. - Patch ESP-IDF to fix I2C crash. #5854. Thanks @jepler.
- ESP32-S3: Use core 1 for CircuitPython. #5860. Thanks @tannewt.
- ESP32-S3: Fix USB when enabling wifi. #5858. Thanks @tannewt.
- Refactor configurations. USB and CircuitPython will use the same core. #5853. Thanks @tannewt.
- Enable
rgbmatrix
for all boards. #5796. Thanks @microdev1. - ESP32-S3, ESP32-C3:
nRF
RP2040
- Fix
audiobusio.PDMIn
to use supplied sample rate. #5993. Thanks @DavePutz. - Record initial SPI frequency in
busio.SPI()
. #5987. Thanks @dhalbert. audiobusio.PDMIn
andI2SOut
: Fix PIO argument order to fix values. #5984. Thanks @DavePutz.- Update
pico-sdk
to 1.3.0. #5974. Thanks @jepler. - Claim pins properly in
busio.UART()
. #5834. Thanks @arturo182.
SAMx
- SAMx5x: Fetch RTC count more atomically, to prevent time jumps. #6004. Thanks @dhalbert.
- Fix tracking of
board
device singletons. #5951. Thanks @dhalbert. - Fix SAMD
audiobusio.PDMIn()
. #5842. Thanks @dhalbert.
STM
- Fix SPI flash reading. #5948. Thanks @EmergReanimator.
- Fix
busio.UART
deinit checking. #5945. Thanks @EmergReanimator.
Individual boards
- Adafruit Feather ESP32-S2: turn on I2C power by default. #5832. Thanks @ladyada.
- Adafruit Feather ESP32-S2, ESP32-S2 TFT: add button pin. #5844. Thanks @kattni.
- Adafruit Feather ESP32-S2 TFT: Use
board.SPI()
for display. #5846. Thanks @jepler. - Adafruit Feather ESP32-S2 TFT: Fix pin typo and pin order. #5829. Thanks @kattni.
- Adafruit Feather RP2040: add support for Winbond flash chip. #5899. Thanks @tannewt.
- Adafruit KB2040: Define default SPI pins. #5876. Thanks @Neradoc.
- Adafruit QT Py ESP32-S2: fix pin error. #5889. Thanks @kattni.
- Adafruit QT Py ESP32-S2: fix pin order. #5844. Thanks @kattni.
- BDMicro VINA D51: add
LED_AUX
pin. #5816. Thanks @bd34n. - Capable Robot USB Hub: update pins and module choices. #6002. Thanks @CapableRobot.
- Challenger RP204: Add missing pins. #5822. Thanks @PontusO.
- Espressif ESP32-S3 DevKit boards: add GPIO40. #5975. Thanks @walshbp.
- Espressif ESP32-S3 DevKitC: Fix UART pins and add
board.UART
. #5905. Thanks @prplz. - Espressif DevKit boards: rename boards for consistency. #5848. Thanks @prplz.
- Gravitech Cucumber ESP32-S2 boards: add
LED_INVERTED
. #5997. Thanks @anecdata. - micro:bit v2: enable
binascii
. #5925. Thanks @jerryneedell. - Seeeduino XIAO nRF52840 Sense: Use SoftDevice 7.0.1. #5877. Thanks @0hopotman0.
- Seeeduino XIAO SAMD: shrink build. #5981. Thanks @dhalbert.
New boards since 7.2.0-alpha.1
- Adafruit ESP32-S2 Camera: #5832. Thanks @ladyada.
- Adafruit QT Py ESP32-S3 no PSRAM: #5832. Thanks @ladyada.
- Diodes Delight Piunora. #5819. Thanks @tannewt.
- Espressif ESP32-C3 DevKitM-1. #5885. Thanks @tannewt.
- Espressif ESP32-S2 DevKitC-1-NR42. #5998. Thanks @anecdata.
- Raspberry Pi Zero. #5800, #5819. Thanks @tannewt.
- Raspberry Pi Zero W. #5800, #5819. Thanks @tannewt.
- Unexpected Maker FeatherS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker ProS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker TinyS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Waveshare RP2040-Zero. #5820. Thanks @CharString.
Documentation changes
- Correct "libraries" to "classes". #5994. Thanks @tekktrik.
- Improve
AnalogIn.reference_voltage
description. #5989. Thanks @tekktrik. - Espressif README fixes. #5959. Thanks @andypiper.
- Fix
wifi
type annotations. #5943. Thanks @prplz. - Fix
I2SOut
example. #5939. Thanks @TheWoodsy. - Fix
pulseio.PulseOut
example. #5907. Thanks @Neradoc. - Remove "Edit on GitHub" link in readthedocs. #5863. Thanks @tekktrik.
- Update instructions for fetching submodules. #5856. Thanks @kattni.
- Update
re
examples. #5849. Thanks @alustig3.
Build and infrastructure changes
- STM: make ST driver repos be submodules. #5976. Thanks @sgauche.
- Automatically cancel superseded PR CI builds. #5922. Thanks @microdev1.
- Remove unused
busio
-using-bitbangio
proxy files. #5862. Thanks @jepler. - Push
circuitpython-stubs
to pypi.org only on a release. #5845. Thanks @dhalbert. - Use filesystem stubs when filesystem is disabled. #5841. Thanks @EmergReanimator.
- Add execute permission to several scripts. #5817. Thanks @EmergReanimator.
- Improve
ringbuf
initialization API. #5813. Thanks @EmergReanimator. - Improve TinyUSB build configuration options. #5812. Thanks @EmergReanimator.
- Fix build problem when internal filesystem is disabled. #5810. Thanks @EmergReanimator.
- Don't include
utils/
directories in frozen modules. #5791. Thanks @prplz.
Translation additions and improvements
- Enable Turkish language builds. #5840. Thanks @electricalgorithm and @tannewt.
- Thanks for translations:
- @bergdahl (Swedish)
- @electricalgorithm (Turkish)
- @hexthat (Chinese - Pinyin)
- @tawez (Polish)
- @wtuemura (Portuguese - Brazil)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.2.0 and 7.x.x.
Thanks
Thank you to all who used, tested, and contributed, including the contributors ...
CircuitPython 7.1.1
This is CircuitPython 7.1.1, the latest bugfix revision of CircuitPython, and is a new stable release. It has fixes for RGBMatrix
on RP2040 and PDMIn
(microphone input) on SAMx boards, such as Circuit Playground Express. There are no other changes; unless you are affected by these problems, you do not need to upgrade from 7.1.0.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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).
Documentation
Documentation is available in readthedocs.io.
Port status
CircuitPython has a number of "ports" that are the core implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd
, cxd56
(Spresense), espressif
for ESP32-S2, nrf
,raspberrypi
, stm
for the F4 family are stable. stm
for other STM chip families is being actively improved but may be missing functionality and have bugs. broadcom
(Raspberry Pi), espressif
for ESP32-S3 and ESP32-C3, litex
and mimxrt10xx
are in an alpha state and will have bugs and missing functionality.
Changes since 7.1.0
Port and board-specific changes
RP2040
SAMx
Known issues
- See https://github.com/adafruit/circuitpython/issues for open issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed since 7.1.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 7.2.0 Alpha 1
This is CircuitPython 7.2.0-alpha.1, the first published alpha release for CircuitPython 7.2.0. It is relatively stable, but there will be further additions and fixes before final release.
Notable additions to 7.2.0 since 7.1.0
- Continuing work on Raspberry Pi Broadcom board support.
- Espressif ESP32-S3 support.
- RP2040 PIO sideset support.
Download from circuitpython.org
Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.
Installation
To install follow the instructions in the 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 implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd
, cxd56
(Spresense), esp32s2
, nrf
,raspberrypi
, stm
for the F4 family are stable. stm
for other STM chip families is being actively improved but may be missing functionality and have bugs. broadcom
(Raspberry Pi), litex
and mimxrt10xx
are in an alpha state and will have bugs and missing functionality.
Changes since 7.1.x branch
Fixes and enhancements
- Update frozen libraries. #5789, #5778, #5773. Thanks @dhalbert.
- Go into safe mode if CIRCUITPY drive is unavailable. #5785. Thanks @dhalbert.
displayio.Tilegrid
: addwidth
,height
,tile_width
,tile_height
attributes. #5749. Thanks @FoamyGuy.- Update
ulab
. #5747, #5740. Thanks @jepler. adafruit_pixelbuf
: fix off-by-one errors. #5746. Thanks @dunkmann00.vectorio
: support 32-bit color. #5728. Thanks @tannewt.wifi.SSLContext
improvements. #5716. Thanks @timhawes.wifi.SSLSocket
: fix error checking. #5714. Thanks @timhawes.vectorio.Rectangle
: addwidth
andheight
. #5709. Thanks @WarriorOfWire.sdcardio
fix. #5694, #5688. Thanks @jepler.- Fix
_bleio
HCI support. #5686, #5683. Thanks @dhalbert. - Update
_stage
to avoid backlight problems. #5686, #5657. Thanks @deshipu.
Port and board-specific changes
Broadcom
- Allow long integers. #5774. Thanks @RetiredWizard.
- Add NeoPixel support. #5727. Thanks @tannewt.
busio.SPI
support. #5698. Thanks @tannewt.- Full
busio.UART
support. #5676. Thanks @tannewt.
Espressif
- Add distinct UF2 family ID for ESP32-S3. #5771. Thanks @hathach.
- Update
protomatter
and reenableRGBMatrix
. #5744. Thanks @jepler. - Choose SPI channel automatically. #5660. Thanks @jepler.
- Update ESP-IDF to v4.4; add ESP32-S3 support; temporarily diable
RGBMatrix
. #5615. Thanks @microdev1.
nRF
- Add a distinct UF2 family ID for nRF52833 boards. #5775. Thanks @jpconstantineau.
RP2040
- Add sideset enable support to PIO. #5766. Thanks @tannewt.
- Protect
nvm
writes from interrupts. #5686, #5663. Thanks @FoamyGuy. - Use longer clock-stretch timeout for RP2040 zero-byte I2C writes. #5686, #5656. Thanks @dhalbert.
- Use proper slice number for
PWMOut
. #5686, #5667. Thanks @dhalbert. RGBMatrix
: clear interrupt when freeing timer. #5789, #5613. Thanks @jepler and @DavePutz.
SAMx
- Fix SAMD TAMPER interrupt clearing in
PinAlarm
; fixes some second-order bugs, including in displayio. #5747, #5708. Thanks @dhalbert. - Fix
FrequencyIn
. #5686, #5665. Thanks @dhalbert.
Individual boards
- Adafruit Feather ESP32-S2: turn on I2C power by default. #5789, #5779, #5776. Thanks @ladyada and @dhalbert.
- Adafruit Feather ESP32-S2 TFT: fix color order. #5742. Thanks @ladyada.
- Adafruit Feather ESP32-S2 TFT: fix pin assignments. #5738. Thanks @ladyada.
- Adafruit KB2040: add
CLK
pin to match silkscreen. #5735. Thanks @tannewt. - Adafruit QT Py ESP32-S2: fix pin assignments. #5738. Thanks @ladyada.
- Espressif ESP32-S3-Box-2.5 and ESP32-S3-DevkitC-1-nopsram: fix USB PIDs. Thanks @jepler.
- MakerDiary nRF52840 MDK USB Dongle: fix pin assignments. #5729. Thanks @Asura99.
New boards since 7.1.0
- Espressif ESP32-S3 Box. #5691, #5674, #5661. Thanks @jepler.
- Espressif ESP32-S3 DevKit C-1. #5655. Thanks @jepler.
- Espressif ESP32-S3 DevKit C-1-nopsram. #5691, #5655. Thanks @jepler.
- JPConstantineau BlueMicro833. #5664. Thanks @jpconstantineau.
- JPConstantineau PyKey 18 Numpad. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 44 Ergo. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 60. #5699. Thanks @jpconstantineau.
- JPConstantineau PyKey 87 TKL. #5699. Thanks @jpconstantineau.
- Oak Development Technologies Cast-Away RP2040. #5666. Thanks @skerr92.
- Pimoroni Tiny 2040 (2MB). #5684. Thanks @ZodiusInfuser.
- Seeeduino Xiao nRF52840. #5753. Thanks @0hotpotman0.
- Seeeduino Xiao RP2040. #5696, #5519. Thanks @jpconstantineau and @prplz.
- SparkFun Thing Plus STM32. #5597. Thanks @NathanY3G.
Documentation changes
- Fix typo in
rp2pio
. #5764. Thanks @dannystaple. - Use
circuitpython_typing
instead of_typing
for type annotations. #5760. Thanks @jepler. - Update version of Sphinx. #5760. Thanks @jepler.
- Fix stubs for
adafruit_bus_device
by redoing directory structure to match module. #5786. Thanks @prplz. - Add protocol definition for fonts for type annotations. #5759. Thanks @jepler.
Build and infrastructure changes
- Refactor longint compile-time flags. #5783. Thanks @jepler.
- Use Python version "3.x" in CI actions. #5752. Thanks #jepler.
circuitpython-org
now usesmain
. Check that branch for updates. #5747, #5712. Thanks @jepler.- Don't rebuild boards on CI script changes. #5702. Thanks @tannewt.
- Add
adabot
submodule as requirement for website PR action. #5701. Thanks @tannewt. - Partial submodule fetching using sha. #5687, #5686, #5681. Thanks @tannewt.
- Update file formatting due to
blacken
anduncrustify
updates. #5686, #5670, #5669. Thanks @hdalbert. - Automatically notify @v923z of
ulab
updates. #5653. Thanks @tannewt.
Translation additions and improvements
- Fix French translation issue. #5710. Thanks @jepler.
- Thanks for translations:
- @bergdahl (Swedish)
- @dronecz (Czech)
- @hexthat (Chinese - Pinyin)
- @Pixel-Clay (Russian)
- @wtuemura (Portuguese - Brazil)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.