github adafruit/circuitpython 11.0.0-alpha.2
CircuitPython 11.0.0-alpha.2

pre-release4 hours ago

This is CircuitPython 11.0.0-alpha.2, an alpha release for 11.0.0. Further features, changes, and bug fixes will be added before the final release of 11.0.0.

CircuitPython libraries from the 10.x bundles are still compatible with CircuitPython 11.0.0 builds.

Highlights of changes since 11.0.0-alpha.1

  • storage.map_file allows directly reading a file from mapped flash.
  • usb_host_audio.USBIn to support USB microphones.
  • RGBMatrix supports ABC row addressing.
  • USB Host Bulk IN support.
  • Many speedups, especially in displayio.
  • Many firmware size reductions.
  • Espressif ESP32-S31 support.
  • Zephyr additions: analogio, bitbangio, neopixel_write, pwmio, rtc, and watchdog. Dynamic allocation of board buses.

Incompatibility warnings when upgrading to 11.0.0 from 10.x.x

  • The broadcom, litex, and renode ports have been removed.
  • The SDIO pin names on the Adafruit Feather Adalogger RP2040 and RP2350 boards were changed to be more consistent with the naming elsewhere.
  • On Espressif, the processor UID values are now in canonical order. This changes the reported processor ID, boot_out.txt value, and the USB serial number.
  • The en_x_pirate translation has been discontinued.

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 code.circuitpython.org or 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 on 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 considered stable (but see Known Issues below):

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2, ESP32-S2, ESP32-S3
  • nordic: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040, RP2350
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • analog: Analog Devices MAX32690
  • espressif: ESP32-P4, ESP32-S31
  • mimxrt10xx: NXP i.MX RT10xx
  • silabs: Silicon Labs MG24 family
  • stm: ST non-STM32F4 chip families
  • zephyr: multiplatform RTOS, running on multiple chip families

Changes since 11.0.0-alpha.1

Fixes and enhancements

  • Update frozen libraries. #11645. Thanks @dhalbert.
  • Faster 16-bit image output in displayio. #11633. Thanks @mikeysklar.
  • Fix dotclockframebuffer RGB display cache flush. #11632. Thanks @mikeysklar.
  • Fix dotclockframebuffer RGB vsync idle setting. #11631. Thanks @mikeysklar.
  • bitmaptools: readinto() now reads properly from streams, such as sockets. #11627. Thanks @lynt-smitka.
  • Reduce code size of number parsing in web workflow. #11626. Thanks @mikeysklar.
  • Faster computation in vectorio.Polygon, especially on Cortex-M0. #11623. Thanks @lynt-smitka.
  • Faster computation in synthio. #11621. Thanks @lynt-smitka.
  • Better and smaller number parsing in settings.toml. #11620. Thanks @mikeysklar.
  • Fix audiomixer phase inversion. Faster audiomixer computation on Cortex-M33. #11617. Thanks @lynt-smitka.
  • Accept capitalized UTF-8 as a string encoding name. #11594. Thanks @r3wretrhy.
  • Update TinyUSB. Includes Fruit Jam USB Host fix. #11582. Thanks @mikeysklar.
  • Allow ctrl-C to interrupt a program waiting for UART flow control. #11578. Thanks @mikeysklar.
  • Speed up OnDiskBitmap by using mapped flash. #11572. Thanks @lynt-smitka.
  • Fix bitbangio deinit. #11567. Thanks @dhalbert.
  • _bleio.Connection.disconnect() no longer crashes after the peer disconnects. #11560. Thanks @dhalbert.
  • lvfontio no longer locks the filesystem when reading a font. #11554. Thanks @lynt-smitka.
  • Fix crash when gifio.OnDiskGif is garbage collected after deinit(). #11551. Thanks @lynt-smitka.
  • Add usb_host_audio.USBIn to support USB microphones. #11547. Thanks @FoamyGuy.
  • Save space by consolidating uses of "CircuitPython". #11546. Thanks @mikeysklar.
  • Save space on small boards by removing some unused float print support. #11543. Thanks @mikeysklar.
  • Fix a crash after program stops when two displays are in use. #11542. Thanks @mikeysklar.
  • displayio: fix stray colors when pixel value is one past the end of its palette. #11541. Thanks @mikeysklar.
  • Save space in mbedtls by using fewer AES tables. #11534. Thanks @lynt-smitka.
  • Fix storage.unsafe_disable_usb_drive() to restore drive read-only/read-write state. #11530. Thanks @dhalbert.
  • Fall back to plain Python files (if available) when native or viper files can't run on the board. #11529. Thanks @mikeysklar.
  • Save space in the root certificate bundle by storing only a partial hash of the DER subject name. Accept cross-signed roots. #11527. Thanks @lynt-smitka.
  • Fix storage.map_file after LittleFS addition. #11517. Thanks @tannewt.
  • Add mii module for wired Ethernet, on Espressif and on Zephyr boards with Ethernet. #11511. Thanks @tannewt.
  • Validate RGBMatrix constructor arguments. #11490. Thanks @ladyada.
  • RGBMatrix: add serial ABC row-addressing mode. #11486. Thanks @ladyada.
  • USB Host Bulk IN support. #11479. Thanks @FoamyGuy.
  • Add usb_cdc.set_names() to allow user-settable CDC interface descriptor names. #11473. Thanks @BroadwellConsultingInc.
  • Update ulab. #11469. Thanks @dhalbert.
  • FourWireBus displays now use ping-pong buffers. #11468. Thanks @lynt-smitka.
  • OnDiskBitmap is now much faster on rotated displays. #11465. Thanks @lynt-smitka.
  • Faster displayio: if the stack is large enough, use a larger CIRCUITPY_DISPLAY_AREA_BUFFER_SIZE. #11464. Thanks @lynt-smitka.
  • Faster displayio: composite common TileGrid rows without per-pixel calls. #11461. Thanks @lynt-smitka.
  • Add storage.map_file, which reads a file directly from memory-mapped flash. #11363. Thanks @lynt-smitka.

Port and board-specific changes

Analog Devices

  • Use GC finalizers to clean up objects. Remove never-reset and bulk-reset handlers. #11470. Thanks @tannewt.

Espressif

i.MX

  • Fix SPI clock and reinit. #11622. Thanks @lynt-smitka.
  • Use GC finalizers to clean up objects. Remove never-reset and bulk-reset handlers. #11485. Thanks @tannewt.

Nordic

  • Make microcontroller.nvm more consistently 8KB on most nRF52840 boards. #11571. Thanks @dhalbert.
  • Report GATT write errors and provide better exception messages for GATT ATT errors. #11553. Thanks @dhalbert.
  • Use GC finalizers to clean up objects. Remove never-reset and bulk-reset handlers. #11488. Thanks @tannewt.

RP2xxx

SAMx

SiLabs

  • Fix make flash for SiWx917-DK2605A. #11589. Thanks @mikeysklar.
  • Use GC finalizers to clean up objects. Remove never-reset and bulk-reset handlers. #11470. Thanks @tannewt.

Spresense

  • Use GC finalizers to clean up objects. Remove never-reset and bulk-reset handlers. #11470. Thanks @tannewt.

STM

  • Fix crashes when heap accidentally overlapped the stack. #11610. Thanks @mikeysklar.
  • Use GC finalizers to clean up objects. Remove never-reset and bulk-reset handlers. #11487. Thanks @tannewt.

Zephyr

Individual boards

  • Adafruit Metro RP2350: enable picogame. #11474. Thanks @FoamyGuy.
  • Espressif ESP32-S31-Korvo-1: enable use of board display. #11630. Thanks @mikeysklar.
  • UARTLogger II: turn off EPaperDisplay to prevent firmware overflow. #11548. Thanks @mikeysklar.

Documentation changes

  • Generate an llms.txt file in the documentation root to give coding agents a compact map of every page. #11462. Thanks @lynt-smitka.

Build and infrastructure changes

Translation additions and improvements

New boards

Known issues

Thanks

Thank you to all who used, tested, and contributed toward this release, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.

Don't miss a new circuitpython release

NewReleases is sending notifications on new releases.