Adafruit's CircuitPython maintainers published CircuitPython 11.0.0-alpha.1 on September 24. It is marked as a pre-release on GitHub. The bigger news is the change of plan behind the version number: the project now intends to make 11.0.0, not 10.4.0, the next stable release after the 10.3.x series. Compared with 10.4.0-alpha.2, the alpha adds hmac and hardwarekey modules, isochronous USB IN, an alarm module for the RP2350 and dynamic pin assignment on Zephyr. It also removes three ports.
From 10.4 to 11.0
Until mid-September the 10.4 line was the development branch. The project's releases page lists 10.4.0-alpha.2 on September 16. That build brought 5 GHz WiFi support, turbo (@viper and @native) .mpy imports on many Espressif, Nordic and SAMx5x boards, BLE numeric-comparison (PIN) pairing on Espressif, and merges from MicroPython v1.28 and v1.29. Eight days later the next development build came out as 11.0.0-alpha.1, whose notes say 11.0.0 "is now planned to be the next stable release after 10.3.x, instead of 10.4.0."
Adafruit's Python on Microcontrollers newsletter of October 5 explained the change in its introduction: "CircuitPython is jumping from 10.3 to 11.0 with the addition of many improvements from CircuitPython Turbo." In his weekly update in the same issue, Dan wrote: "We decided to move toward CircuitPython 11.0.0 as the next release, instead of 10.4.0." Further fixes to the stable line remain possible: "There may be further 10.3.x releases for critical bug fixes if needed."
The current stable release is 10.3.1, published on September 14 and marked Latest on GitHub. It added turbo .mpy imports on RP2xxx boards, Espressif ESP32-C5 support and Espressif and Nordic BLE fixes that improve the BLE workflow. It followed 10.3.0 on August 31, which added the picogame game engine module and sdioio on RP2xxx, and made the baudrate given to busio.SPI.configure() a ceiling that will not be exceeded.
What is new since 10.4.0-alpha.2
The release notes list these highlights:
- Architecture-specific .mpy imports:
importnow also looks forfilename.<arch>.mpyarchitecture-specific machine-code files. - New modules:
hmacandhardwarekey. - USB: isochronous USB IN support.
- RP2350 alarm module: an
alarmimplementation for the RP2350, with light and deep sleep. - Firmware size reductions.
- Zephyr: dynamic pin assignment.
The release also has a number of fixes and smaller changes. TileGrid.fill_area and bitmaptools.blit() are faster, and picogame is faster on processors without hardware division. bitmaptools.dither() now works with 1-bit destinations. A regression that caused random.randint(n, 0x7FFFFFFF) to fail has been fixed. Boards without USB MSC storage now get LittleFS support. The Pico SDK has been updated to 2.3.1.
Two boards have been added: the ELIO Eliobot S3 and Espressif's ESP32-S3-BOX-3.
Three ports removed
This alpha removes the broadcom, litex and renode ports. For the bare-metal broadcom port, the notes add that a Zephyr port would be possible in the future.
Port status in 11.0.0-alpha.1
The release notes group the remaining ports by maturity:
| Status | Ports |
|---|---|
| Stable | atmel-samd; cxd56 (Sony Spresense); espressif (ESP32, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2, ESP32-S2, ESP32-S3); nordic (nRF52840, nRF52833); raspberrypi (RP2040, RP2350); stm (STM32F4) |
| Alpha | analog (MAX32690); espressif (ESP32-P4); mimxrt10xx; silabs (MG24); stm (non-STM32F4); zephyr |
These labels describe how mature each port is, not the release. The notes say the alpha ports "will have bugs and missing functionality." On every port, 11.0.0-alpha.1 itself is a pre-release.
What It Means for Makers
Who should try it: Developers who want early access to the 11.0.0 features, such as RP2350 projects that need light or deep sleep through alarm, code that uses hmac or hardwarekey, and builders working on Zephyr. For everyone else, 10.3.1 remains the stable release, and the newsletter's release listing of October 5 named it as such alongside 11.0.0-alpha.1 as the unstable release.
Libraries: The release notes say libraries from the 10.x bundles are still compatible with CircuitPython 11.0.0 builds.
Boards on removed ports: Boards on the broadcom, litex or renode ports are not supported by this release.
Where to get it: Downloads for each board are on circuitpython.org. The full changelog is on the GitHub release page. The project has not given a date for a stable 11.0.0.