Releases: adafruit/circuitpython
CircuitPython 8.2.2
This is CircuitPython 8.2.2, the latest bugfix revision of CircuitPython, and is a new stable release.
WARNING for nRF52 boards only: If your board has an nRF52 UF2 bootloader whose version is before 0.6.1, you will not be able to load CircuitPython 8.2.0 and later. The 8.2.0 firmware is larger than what the bootloader can handle. See these instructions for updating your bootloader.
Notable changes to 8.2.2 since 8.2.1
- Replace expired Adafruit IO SSL certificate.
Notable changes to 8.2.2 since 8.1.0
- Continued enhancement of
synthio
. - RP2040
alarm.sleep_memory
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.2.1
Fixes and enhancements
- Replace expired Adafruit IO SSL certificate. #8227. Thanks @jepler for PR and @brentru for certificate update.
Port and board-specific changes
Broadcom
Espressif
i.MX
nRF
RP2040
SAMx
SiLabs
Spresense
STM
Individual boards
Documentation changes
Build and infrastructure changes
Translation additions and improvements
New boards since 8.2.1
Known issues
- ESP32-S3 has significant issues with I2C devices that sleep or use clock stretching. Retry operations on these devices as necessary, or use ESP32-S2 boards.
- Espressif boards have ESP-IDF storage leaks and occasionally crash after extended WiFi use.
- 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 8.2.1, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.2.1
This is CircuitPython 8.2.1, the latest bugfix revision of CircuitPython, and is a new stable release.
WARNING for nRF52 boards only: If your board has an nRF52 UF2 bootloader whose version is before 0.6.1, you will not be able to load CircuitPython 8.2.0 and later. The 8.2.0 firmware is larger than what the bootloader can handle. See these instructions for updating your bootloader.
Notable changes to 8.2.1 since 8.1.0
- Continued enhancement of
synthio
. - RP2040
alarm.sleep_memory
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.2.1
Most changes below are backports from main
. Thanks @dhalbert for the backport pull requests.
Fixes and enhancements
- Return correct type from
dict.fromkeys()
. #8207, #8175. Thanks @kbsriram and @dhalbert. - Raise
NotImplementedError
foros.getenv()
on small boards withoutsettings.toml
support. #8206, #8169. Thanks @jepler and @dhalbert. - Fix setting
wifi.radio.hostname
. #8201, #8150. Thanks @microdev1 and @dhalbert.
Port and board-specific changes
Broadcom
Espressif
i.MX
nRF
RP2040
SAMx
SiLabs
Spresense
STM
Individual boards
- Adafruit MatrixPortal S3: fix address pins. #8199, #8137. Thanks @makermelissa.
- Adafruit Metro RP2040: support 16MB flash. #8181. Thanks @jepler.
- Adafruit QT Py ESP32-S3 no PSRAM: remove frozen libraries. #8197, #8130. Thanks @dhalbert.
- Espressif ESP32-S3 Box: use PSRAM. #8197, #8129. Thanks @Neradoc.
- Espressif ESP32-S3 Box Lite: use PSRAM. #8197, #8129. Thanks @Neradoc.
- UnexpectedMaker FeatherS3: add second I2C bus. #8174. Thanks @UnexpectedMaker.
Documentation changes
- Note that
wifi.radio.ipv4_address_ap
is read-only. #8208, #8180. Thanks @anecdata and @dhalbert. - Document various networking restrictions. #8205, #8165. Thanks @anecdata and @dhalbert.
- Automate documentation of optional types and functions. #8185. Thanks @jepler.
- Fix
zlib.decompress()
name. #8195, #8125. Thanks @jimmo.
Build and infrastructure changes
Translation additions and improvements
New boards since 8.2.0
- Adafruit Metro M7 1011 SD. #8196, #8127. Thanks @dhalbert.
- Adafruit Metro RP2040. #8181. #8194, #8035. Thanks @dhalbert and @jepler.
- Adafruit QT Py ESP32-S3 4MB Flash 2MB PSRAM. #8198, #8130. Thanks @dhalbert.
- Datanoise PicoADK. #8204, #8166, #8156. Thanks @DatanoiseTV and @dhalbert.
- Makerdiary nRF52840 Connect Kit. #8200, #8142. Thanks @makerdiary.
- splitkb.com Liatris. #8202, #8152. Thanks @splitkb.
Known issues
- ESP32-S3 has significant issues with I2C devices that sleep or use clock stretching. Retry operations on these devices as necessary, or use ESP32-S2 boards.
- Espressif boards have ESP-IDF storage leaks and occasionally crash after extended WiFi use.
- 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 8.2.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.2.0
This is CircuitPython 8.2.0, the latest minor revision of CircuitPython, and is a new stable release.
WARNING for nRF52 boards only: If your board has an nRF52 UF2 bootloader whose version is before 0.6.1, you will not be able to load CircuitPython 8.2.0 and later. The 8.2.0 firmware is larger than what the older bootloaders can handle. See these instructions for updating your bootloader.
Notable changes to 8.2.0 since 8.1.0
- Continued enhancement of
synthio
. - RP2040
alarm.sleep_memory
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.2.0-rc.1
This release is a relabeling of 8.2.0-rc.1 and is otherwise the same as that release.
Known issues
- ESP32-S3 has significant issues with I2C devices that sleep or use clock stretching. Retry operations on these devices as necessary, or use ESP32-S2 boards.
- Espressif boards have ESP-IDF storage leaks and occasionally crash after extended WiFi use.
- 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 8.1.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.2.0 Release Candidate 1
This is CircuitPython 8.2.0-rc.1, a release candidate for CircuitPython 8.2.0. We believe it is stable, and are making a release candidate for further testing before final release.
Notable changes to 8.2.0 since 8.1.0
- Continued enhancement of
synthio
. - RP2040
alarm.sleep_memory
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.2.0-rc.0
Fixes and enhancements
Port and board-specific changes
Broadcom
Espressif
i.MX
nRF
RP2040
SAMx
SiLabs
Spresense
STM
Individual boards
Documentation changes
Build and infrastructure changes
Translation additions and improvements
- Thanks for translations:
- @wtuemura (Portugese - Brazil)
New boards since 8.2.0-rc.0
Known issues
- ESP32-S3 has significant issues with I2C devices that sleep or use clock stretching. Retry operations on these devices as necessary, or use ESP32-S2 boards.
- Espressif boards have ESP-IDF storage leaks and occasionally crash after extended WiFi use.
- 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 8.2.0-rc.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.2.0 Release Candidate 0
This is CircuitPython 8.2.0-rc.0, a release candidate for CircuitPython 8.2.0. We believe it is stable, and are making a release candidate for further testing before final release.
Notable changes to 8.2.0 since 8.1.0
- Continued enhancement of
synthio
. - RP2040
alarm.sleep_memory
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.2.0-beta.1
Fixes and enhancements
- Improve
OnDiskGif
documentation; report clearer error when image is too wide. #8102. Thanks @dhalbert. - Validate
wifi
access point channel. #8087. Thanks @anecdata. - Update
RGBMatrix
protomatter library. #8056. Thanks @jepler. - Speed up
displayio
refresh when objects are hidden. #8050. Thanks @FoamyGuy.
Port and board-specific changes
Broadcom
Espressif
i.MX
- Fix pin checking for
busio.SPI
. #8084. Thanks @breakersun.
nRF
- Reset UART peripheral on deinit to save power. #8089. Thanks @furbrain.
- Allow 12 voices for
synthio
. #8077. Thanks @jepler.
RP2040
SAMx
SiLabs
- Improve README.
Spresense
- Update SDK to 3.0.1. Thanks @kamtom480.
STM
Individual boards
- Pimoroni Badger 2040: increase display contrast. #8075. Thanks @mariobodemann.
Documentation changes
- Document RP2040
countio
limitations. #8104. Thanks @dhalbert. - Fix typo in
aesio
documentation. #8097. Thanks @dhalbert. - Correct
wifi.radio.start_ap
documentation. #7680. Thanks @dhalbert.
Build and infrastructure changes
Translation additions and improvements
- Thanks for translations:
- @rezaalmanda (Indonesian)
New boards since 8.2.0-beta.1
- Adafruit MatrixPortal S3. #8056. Thanks @jepler.
- Smart Bee Designs Bee-Data-Logger. #8099. Thanks @strid3r21.
- Unexpected Maker NANOS3. #8080. Thanks @UnexpectedCircuitPython (@UnexpectedMaker).
Known issues
- ESP32-S3 has significant issues with I2C devices that sleep or use clock stretching. Retry operations on these devices as necessary, or use ESP32-S2 boards.
- Espressif boards have ESP-IDF storage leaks and occasionally crash after extended WiFi use.
- 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 8.2.0-beta.1, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.2.0 Beta 1
This is CircuitPython 8.2.0-beta.1, a beta release for CircuitPython 8.2.0, and is a new unstable release.
Notable changes to 8.2.0 since 8.1.0
- Continued enhancement of
synthio
. - RP2040
alarm.sleep_memory
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.2.0-beta.0
Fixes and enhancements
- Reduce size of stack frames. #8071. Thanks @tannewt.
- Use biquad filtering per note for
synthio
. #8048. Thanks @jepler. - API changes and documentation improvents for
synthio
. #8024. Thanks @jepler.
Port and board-specific changes
Broadcom
Espressif
i.MX
RP2040
SAMx
SiLabs
- Update README. #8042. Thanks @applecuckoo.
Spresense
STM
Individual boards
- Lolin C3 Pico: fix pin assignments. #8031. Thanks @tkroo.
- Makerdiary M60: allow powering via battery. #8043. Thanks @hyx0329.
- Microchip SAME54 Xplained Pro: support additional flash chip type. #8054. Thanks @tomiahola.
- Nordic PCA10056: make buttons and LEDs compatible with PCA10100. #8037. Thanks @jpconstantineau.
- Pimoroni Badger 2040: update display start sequence to increase constrast. #8075. Thanks @mariobodemann.
Documentation changes
Build and infrastructure changes
- Provide port-specific fetching of submodules. #8073, #8070. Thanks @dhalbert.
- Fix compilation cast issue. #8039. Thanks @graeme-winter.
- More
synthio
tests. #8028. Thanks @jepler.
Translation additions and improvements
- Thanks for translations:
- @Atalanttore (German)
- @bergdahl (Swedish)
New boards since 8.2.0-beta.0
Known issues
- ESP32-S3 has significant issues with I2C devices that sleep or use clock stretching. Retry operations on these devices as necessary, or use ESP32-S2 boards.
- Espressif boards have ESP-IDF storage leaks and occasionally crash after extended WiFi use.
- 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 8.2.0-beta.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.2.0 Beta 0
This is CircuitPython 8.2.0-beta.0, a beta release for CircuitPython 8.2.0, and is a new unstable release.
Notable changes to 8.2.0 since 8.1.0
- Continued enhancement of
synthio
. - RP2040
alarm.sleep_memory
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.1.0
Fixes and enhancements
synthio
improvements and fixes. #8024, #7985. Thanks @jepler.- Fix
memoryview.cast
over slicedmemoryview
. #7998. Thanks @tannewt. - Fix display initialization crashes. #7983. Thanks @furbrain.
Port and board-specific changes
Broadcom
Espressif
- Fix
TouchAlarm
. #8003. Thanks @dhalbert. - Check USB/JTAG lines for incoming characters. #7973. Thanks @tannewt.
- Improve debug builds for ESP32-C3. #7972. Thanks @tannewt.
i.MX
RP2040
- Add
alarm.sleep_memory
. #8015. Thanks @dhalbert. - Wait for completion in
wifi.radio.stop_station()
. #7982. Thanks @bill88t. - Allow static IPv4 address. #7976. Thanks @anecdata.
SAMx
SiLabs
- Various fixes, including BLE bonding. #8021. Thanks @silabs-BelaV.
Spresense
STM
Individual boards
Adafruit Feather RP2040: add access to boot button. #7988. Thanks @Neradoc.
LilyGo T-Display RP2040: fix incorrect pins. #8026. Thanks @phamhuyvn.
LilyGo T-Display RP2040: fix display column start. #8011. Thanks @rcarteraz.
Documentation changes
Build and infrastructure changes
Translation additions and improvements
- Thanks for translations:
New boards since 8.1.0
Lolin C3 Pico. #8025, #8014. Thanks @tkroo,
Lolin S3 Mini. #8023. Thanks @tkroo.
M5Stack Timer Camera X. #7941. Thanks @bill88t.
NXP MIMIXRT1060-EVKB. #8016. Thanks @charlieh0tel.
Known issues
- ESP32-S3 has issues with I2C devices that sleep (LC709203F), use clock stretching, or violate the I2C protocol (e.g., BNO055). Retry operations on these devices as necessary, or use ESP32-S2 boards.
- Espressif boards have ESP-IDF storage leaks and occasionally crash after extended WiFi use.
- 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 8.1.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.1.0
This is CircuitPython 8.1.0, the latest minor revision of CircuitPython, and is a new stable release.
Notable changes to 8.1.0 since 8.0.0
- Silicon Labs (SiLabs) MG24 microcontroller family port (
silabs
), contributed by Silicon Labs. - Add animated GIF support, including palette support:
gifio.OnDiskGif
. - Add
safemode.py
, for programmatic handling of safe mode. - Add ESP-NOW support on Espressif.
synthio
improvements and new features; API is still experimental and will continue to change after 8.1.0.- Add
picodvi
on RP2040: DVI/HDMI framebuffer anddisplayio
support. - CPU frequency is settable on RP2040.
- Add 7-color e-ink display support.
- Add
bitmaptools.drawpolygon()
. - Allow setting pystack size in
settings.toml
. - Allow static IPv4 addresses for access points.
- Add dither support to
Palette
. - Support
array.extend(iterable)
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.1.0-rc.0
This release is a relabeling of 8.1.0-rc.0 and is otherwise the same as that release.
Known issues
- ESP32-S3 has issues with I2C devices that sleep (LC709203F), use clock stretching, or violate the I2C protocol (e.g., BNO055). Retry operations on these devices as necessary, or use ESP32-S2 boards.
- ESP32-S2 used as an HTTP server may crash after several hours. This is a regression from 7.x.x.
- 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 8.0.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.1.0 Release Candidate 0
This is CircuitPython 8.1.0-rc.0, a release candidate for 8.1.0. We believe it is stable, and are making a release candidate for further testing before final release.
Notable changes to 8.1.0 since 8.0.0
- Silicon Labs (SiLabs) MG24 microcontroller family port (
silabs
), contributed by Silicon Labs. - Add animated GIF support, including palette support:
gifio.OnDiskGif
. - Add
safemode.py
, for programmatic handling of safe mode. - Add ESP-NOW support on Espressif.
synthio
improvements and new features; API is still experimental and may change after 8.1.0.- Add
picodvi
on RP2040: DVI/HDMI framebuffer anddisplayio
support. - CPU frequency is settable on RP2040.
- Add 7-color e-ink display support.
- Add
bitmaptools.drawpolygon()
. - Allow setting pystack size in
settings.toml
. - Allow static IPv4 addresses for access points.
- Add dither support to
Palette
. - Support
array.extend(iterable)
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.1.0-beta.2
Fixes and enhancements
- Fix display object management. #2204. Thanks @furbrain.
- Allow no chip select pin in native
adafruit_bus_device.spi_device
. #7970. Thanks @dhalbert. - Continued
synthio
improvements and fixes. #7969, #7959, #7933, #7862. Thanks @jepler. - Prevent WiFi workflow background activity if WiFi not connected. #7960. Thanks @thess.
- Improve
vectorio.Polygon
argument validation. #7947. Thanks @FoamyGuy. - Support little-endian e-paper displays; fix display memory management. #7891. Thanks @tannewt.
Port and board-specific changes
Broadcom
Espressif
- Improve serial input in ESP32-C3 and similar chips. #7973. Thanks @tannewt.
- Improve debug builds. #7972. Thanks @tannewt.
- Add missing ESP32-S3
microntroller.Pin
pins. #7967. Thanks @bojanpotocnik. - Report actual
busio.SPI().frequency
. #7963. Thanks @dhalbert. - Allow static IPv4 for access point. #7946. Thanks @anecdata.
- Fix crash when sending rapid pings. #7938. Thanks @jepler.
- Add documentation that
supervisor.next_stack_limit()
has no effect. #7914. Thanks @anecdata.
i.MX
- Fix pin pad handling. #7964. Thanks @tannewt.
- Fix regressions, startup and MIDI problems. #7953. Thanks @jepler.
- Update TinyUSB, fix unimplemented
Processor routines
, script for peripheral generation. #7921. Thanks @tannewt.
nRF
RP2040
- Wait for
wifi.radio.stop_station()
to complete. #7982. Thanks @bill88t. - Allow static IPv4 for access point. #7976. Thanks @anecdata.
picodvi
now takes framebuffer resolution instead of output resolution. #7922. Thanks @tannewt.- Allow setting
cpu.frequency
. #7430. Thanks @Lanzaa.
SAMx
SiLabs
- Initialize RTC to prevent
time
crashes. #7939. Thanks @RetiredWizard.
Spresense
STM
Individual boards
- Adafruit Feather RP2040: add
board.BUTTON
/board.BOOT
for GPIO4, for rev D and later boards. #7988. Thanks @Neradoc. - Adafruit Feather RP2040 ThinkInk: rename board, add
board.BUTTON
. #7927. Thanks @BlitzCityDIY. - Sprig Hack Club: add
board.DISPLAY
. #7958. Thanks @ajs256.
Documentation changes
- Document
settings.toml
CIRCUITPY_PYSTACK_SIZE
. #7951. Thanks @Neradoc. - Add
__contains__()
stub todisplayio.Group
. #7949. Thanks @FoamyGuy.
Build and infrastructure changes
- Update how Python stubs are built. #7957, #7934. Thanks @tekktrik.
- Update shallow clone tag. #7909. Thanks @mjsir911.
Translation additions and improvements
- Thanks for translations:
- @ChenxiXiao (Chinese - Pinyin)
- @luisan00 (Spanish)
- @yutaro Urata (Japanese)
New boards since 8.1.0-beta.2
- Adafruit Feather RP2040 Prop-Maker. #7877. Thanks @dhalbert.
- Lilygo T-Display. #6037. Thanks @erongd.
- NXP IMXRT1015-EVK. #7921. Thanks @tannewt.
- NXP iMXRT RT 1040EVK. #7921. Thanks @tannewt.
- NXP iMXRT RT 1050EVKB. #7921. Thanks @tannewt.
- Pimoroni Inky Frame 5.7. #7962. Thanks @tannewt.
- Pimoroni Badger 2040 W. #7916. Thanks @bablokb.
- Pimoroni Pico DV Demo Base for Pico. #7915. Thanks @RetiredWizard.
- Pimoroni Plasma 2040 W. #7920. Thanks @bablokb.
Known issues
- ESP32-S3 has issues with I2C devices that sleep (LC709203F), use clock stretching, or violate the I2C protocol (e.g., BNO055). Retry operations on these devices as necessary, or use ESP32-S2 boards.
- ESP32-S2 used as an HTTP server may crash after several hours. This is a regression from 7.x.x.
- 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 8.1.0-beta.2, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
CircuitPython 8.1.0 Beta 2
This is CircuitPython 8.1.0-beta.2, a beta release for CircuitPython 8.1.0, and is a new unstable release.
Notable changes to 8.1.0 since 8.0.0
- Silicon Labs (SiLabs) MG24 microcontroller family port (
silabs
), contributed by Silicon Labs. - Add animated GIF support, including palette support:
gifio.OnDiskGif
. - Add
safemode.py
, for programmatic handling of safe mode. - Add ESP-NOW support on Espressif.
synthio
improvements and new features. API may change before 8.1.0 final.- Add
picodvi
on RP2040: DVI/HDMI framebuffer anddisplayio
support. - Add 7-color e-ink display support.
- Add
bitmaptools.drawpolygon()
. - Allow setting pystack size in
settings.toml
. - Add dither support to
Palette
. - Support
array.extend(iterable)
.
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 (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C3nrf
: 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 2Wlitex
: fomumimxrt10xx
: NXP i.MX RT10xxxsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip families
Changes since 8.1.0-beta.1
Fixes and enhancements
- Remove redundant
abs()
invectorio.Circle
. #7980. Thanks @FoamyGuy. - Fix
displayio
root_group=None
documentation. #7899. Thanks @RetiredWizard. - Fix web-editor debugging on non-standard ports. #7897. Thanks @thess.
- Enforce a minimum 2x2
TileGrid
size. #7892. Thanks @FoamyGuy. - Handle little-endian e-ink displays. Initialize displayio memory. #7891. Thanks @tannewt.
- Add palette support for
OnDiskGif
. #7878. Thanks @gamblor21. - Simplify web workflow CORS checks; don't restrict hostnames. #7876. Thanks @thess.
- Improve web workflow static pages. #7869. Thanks @thess.
- Improve
displayio
arg validation. #7867. Thanks @RetiredWizard. - Allow 64-character hex WiFi passwords. #7866. Thanks @rich123.
- Improve stuck-low detection on reset in
onewireio
. #7865. Thanks @CanyonCasa. - Allow setting web workflow board name in
settings.toml
. #7846. Thanks @isacben. - Fix tick handling. #7845. Thanks @tannewt.
synthio
new features and improvements. #7840, #7825. Thanks @jepler.- Improve web workflow reliability and performance. #7836, #7814. Thanks @thess.
- Add
displayio
circuitpython_splash
to only one group. #7829. Thanks @FoamyGuy. - Add
wifi.radio.connected
andwifi.radio.ap_active
properties. #7823. Thanks @dhalbert. bitmaptools
circle support. #7782. Thanks @jposada202020.
Port and board-specific changes
Broadcom
Espressif
- Fix
analogbufio
attenuation setting and data values. #7879. Thanks @milindmovasha.
i.MX
RP2040
- Fix
picodvi.Framebuffer
documentation. #7900. Thanks @dglaude. - Fix idle state handling. #7893. Thanks @tannewt.
- Add
picodvi
support on RP2040: DVI/HDMI framebuffer anddisplayio
support. #7880. Thanks @tannewt.
SAMx
SiLabs
- Support for SiLabs MG24 BLE boards. #7874, #7833. Thanks @SiliconLabs (@silabs-BelaV, @silabs-ChatNguyen).
Spresense
STM
Individual boards
- Adafruit Feather RP2040 Scorpio: fix
NEOPIXEL
pin. #7908. Thanks @Neradoc. - DeneyapKart1A_v2: fix VID and hostname. #7820. Thanks @deneyapkart.
- M5stack Stick-C: pin and initialization fixes. #7818. Thanks @CDarius.
- Seeeduino WIO Terminal: add comments to
pins.c
. #7889. Thanks @stonehippo. - SparkFun SAMD51 MicroMod: fix pins. #7849. Thanks @stonehippo.
Documentation changes
- Note that
supervisor.next_stack_limit()
does nothing onespressif
. Thanks @anecdata. - Fix link to OneWire software reference. #7870. Thanks @CanyonCasa.
- Fix
urandom
status on nRF; fix broken CoC link. #7852. Thanks @applecuckoo. - Fix typo in
OnDiskGif
. #7816. Thanks @dhalbert.
Build and infrastructure changes
- Update and refactor shallow git tag use. #7909. Thanks @mjsir911.
- Do
sudo apt-get update
beforesudo apt-get install
when installing prerequisites. #7872. Thanks @dhalbert. - Fix gcc13 warnings. #7855. Thanks @flom84.
- Improve
aesio
tests. #7838. Thanks @jepler. - Sort boards and new languages in circuitpyton.org update PR. #7819. Thanks @jepler.
Translation additions and improvements
- Thanks for translations:
- @andibing (English - UK)
- @Atalanttore (German)
- @bergdahl (Swedish)
- @hexthat (Chinese - Pinyin)
- @jposada202020 (Spanish)
- @wtuemura (Portugese - Brazil)
New boards since 8.1.0-beta.1
- Adafruit Feather RP2040 CAN. #7834. Thanks @dhalbert.
- Adafruit Feather RP2040 Prop-Maker. #7877. Thanks @dhalbert.
- Adafruit Feather RP2040 USB Host. #7835. Thanks @dhalbert.
- M5Stack Core2. #7854. Thanks @CDarius.
- Silabs XG24 Dev Kit. #7874, #7833. Thanks @SiliconLabs (@silabs-BelaV, @silabs-ChatNguyen).
- SiLabs XG24 Explorer Kit. #7874, #7833. Thanks @SiliconLabs (@silabs-BelaV, @silabs-ChatNguyen).
- SparkFun Thing Plus MGM240P. #7874, #7833. Thanks @SiliconLabs (@silabs-BelaV, @silabs-ChatNguyen).
- VCC-GND YD-ESP32-S3 (N16R8). #7844. Thanks @bill88t.
- VCC-GND YD-ESP32-S3 (N8R8). #7844. Thanks @bill88t.
- Waveshare RP2040-LCD-0.96. #7843. Thanks @waptang.
Known issues
- ESP32-S3 has issues with I2C devices that sleep (LC709203F), use clock stretching, or violate the I2C protocol (e.g., BNO055). Retry operations on these devices as necessary, or use ESP32-S2 boards.
- Espressif boards have ESP-IDF storage leaks and occasionally crash after extended WiFi use.
- 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 8.1.0-beta.1, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.