Adafruit published CircuitPython 11.0.0-alpha.2 on 2026-10-21, according to the official release notes on GitHub. This is the second alpha of the 11.x line, and it is not a stable release. It still has a fairly long list of changes. The main additions are support for Espressif's new ESP32-S31, a USB host class for USB microphones, a way to read files directly from memory-mapped flash, and what the notes call "many speedups, especially in displayio" along with many firmware size reductions. It also removes three ports and makes a handful of changes that can break existing code.

This article goes through what changed since alpha.1, what could break when you move up from 10.x, and where the new ESP32-S31 port fits.

The headline additions

The release notes list these as the highlights since 11.0.0-alpha.1:

  • storage.map_file lets code read a file directly from memory-mapped flash. The notes give that one-line description and no benchmarks. The likely use case is large read-only assets such as fonts or bitmaps, which can be read where they sit in flash instead of being copied into RAM first. That is our inference, not something the notes state.
  • usb_host_audio.USBIn adds support for USB microphones, on boards that can act as a USB host.
  • USB Host Bulk IN adds bulk-in transfers to the USB host stack. Bulk endpoints are how many USB devices move data in volume.
  • RGBMatrix ABC row addressing adds a serial ABC row-addressing mode to the RGBMatrix class.
  • displayio speedups and firmware size reductions. The notes say "many" and give no figures, so we won't put numbers on them.
  • Espressif ESP32-S31 support arrives as an alpha port.
  • More for the Zephyr port: analogio, bitbangio, neopixel_write, pwmio, rtc and watchdog, plus dynamic allocation of board buses.

The release also adds a mii module for wired Ethernet on Espressif boards and on Zephyr boards that have Ethernet, plus usb_cdc.set_names(), which lets you set the CDC interface descriptor names. That may help if a board shows up as more than one serial port and you want to tell them apart on the host.

Why the Zephyr list matters

The Zephyr additions get less attention than the ESP32-S31 port, but they may matter more over time. analogio, pwmio, rtc and watchdog are basic modules that most real projects need, and neopixel_write is what most LED projects use. With all of that, the Zephyr port is getting closer to the modules a typical CircuitPython user expects. The release notes still list Zephyr as an alpha port.

The ESP32-S31 port in context

The ESP32-S31 is new silicon. Espressif announced on 2026-07-27 that the chip is in mass production and available to buy. Espressif lists these specs:

  • Dual-core 32-bit RISC-V CPU at up to 320 MHz, with one core having a 128-bit data path and SIMD instructions
  • 40 MHz low-power (LP) coprocessor
  • 512 KB on-chip SRAM, with support for 250 MHz DDR PSRAM expansion
  • Up to 60 GPIOs
  • Wi-Fi 6 (2.4 GHz), Bluetooth 5.4 with LE Audio and Classic BR/EDR, and IEEE 802.15.4 (Zigbee and Thread)
  • Gigabit Ethernet MAC
  • JPEG encoder/decoder and 2D graphics accelerator
  • Up to 14 capacitive touch channels

The Gigabit Ethernet MAC is the kind of hardware the new mii wired-Ethernet module could use on Espressif boards, though the notes do not say which Espressif chips it supports. The release notes also do not say whether the CircuitPython port uses the JPEG codec, the 2D accelerator, the SIMD core, LE Audio, BR/EDR or the 802.15.4 radio. Treat those as hardware capabilities, not CircuitPython features, until Adafruit's documentation says otherwise.

The ESP32-S31 port sits in the alpha tier alongside the ESP32-P4. The stable Espressif list is ESP32, C2, C3, C5, C6, C61, H2, S2 and S3.

What can break when moving from 10.x

The release notes list these incompatibilities with CircuitPython 10.x:

  • The broadcom, litex and renode ports are removed. If you run CircuitPython on any of them, 11.x is not an upgrade path.
  • SDIO pin names changed on the Adafruit Feather Adalogger RP2040 and RP2350 boards, to be more consistent with naming elsewhere. Code that refers to the SD card pins by their old names will likely need updating.
  • Espressif processor UIDs are now reported in canonical order. The notes say this changes the reported processor ID, the boot_out.txt value and the USB serial number. Anything that keys off those values will see a different ID after upgrading: a device registry, a provisioning script, a udev rule or a licence check tied to a board serial.
  • The en_x_pirate translation has been discontinued.

On the compatibility side, the release notes say CircuitPython libraries from the 10.x bundles are still compatible with 11.0.0 builds. You don't need a new library bundle to try the alpha.

Port status at a glance

Per the release notes, the stable ports are atmel-samd, cxd56, espressif (ESP32, C2, C3, C5, C6, C61, H2, S2, S3), nordic nRF52840/52833, raspberrypi RP2040/RP2350 and stm (STM32F4). The alpha ports are analog MAX32690, espressif ESP32-P4 and ESP32-S31, mimxrt10xx, silabs MG24, other STM parts, and zephyr.

"Stable port" describes how mature the port is. It does not make this release stable. 11.0.0-alpha.2 is a pre-release build on every port.

What It Means for Makers

Who it is for: CircuitPython users who want to try the 11.x features early, and anyone who already has, or plans to get, ESP32-S31 hardware. The USB microphone class and Bulk IN support are aimed at people building USB-host projects. The map_file and displayio work is likely to matter most for projects with displays, where RAM and frame time are usually the limits.

What it replaces or enables: For ESP32-S31 owners, the notes list ESP32-S31 support as new in this alpha, and it is an alpha port. For Zephyr users, it adds several common peripheral modules. For Feather Adalogger RP2040/RP2350 owners and anyone who tracks Espressif boards by UID, it means possible code changes. Check pin names and stored device IDs before upgrading.

Availability and price: The release was published on GitHub on 2026-10-21. Firmware is downloaded from the circuitpython.org downloads page, which listed 685 boards when we checked, including the Raspberry Pi Pico, Pico W, Pico 2, Pico 2 W and Seeed Studio XIAO RP2040. None of the sources here give a price for the firmware. Espressif says the ESP32-S31 is in mass production and available to buy as of 2026-07-27, but its announcement gives no chip or module pricing. We don't have a list of ESP32-S31 boards with CircuitPython builds, so check the downloads page for your specific board.

Practical advice: this is an alpha. Use it on a spare board or a separate flash image rather than a deployed device. Keep a 10.x UF2 or binary on hand in case you need to roll back.

Sources