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

pre-release59 minutes ago

This is CircuitPython 11.0.0-alpha.3, 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.2

  • Web workflow display mirroring.
  • Add board.I2C(), board.SPI(), and board.UART() on Raspberry Pi Pico boards.
  • Initial video pipeline support, starting on ESP32-P4: mipicsi, videocore, and videogif.
  • Add audiotap, which taps into a stream of audio objects.
  • Add audiopwmio on ESP32-S2 and ESP32-S3.
  • Add async_spi for awaitable SPI transfers.
  • Add hardwarekey for HMAC and RSA signing, initially on Espressif.
  • Add cryptography components for P-256 ECDSA signature verification, initially on Espressif.
  • Better synthio.MidiTrack MIDI file playback.
  • Many speedups, especially in displayio, rotozoom, and JPEG decoding.
  • Zephyr: new boards, initial i.MX RT1011 support, more modules enabled.

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.
  • OnDiskBitmap now takes only a filename, not an open file as an argument.
  • 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.2

Fixes and enhancements

  • Remove bulk reset flag and remnants of never-reset internal API. #11854. Thanks @dhalbert.
  • Web workflow can now mirror the display. #11849, #11675. Thanks @FoamyGuy.
  • audiofilewriter can now just discard input. Fix buffer size. #11847. Thanks @FoamyGuy.
  • Allow setting supervisor.runtime.display to a library display object. #11842. Thanks @mikeysklar.
  • Update TinyUSB for DWC2 host fix. #11836. Thanks @jedgarpark.
  • Fix constructor and deinit bugs in shared-module. #11830, #11774. Thanks @dhalbert.
  • Make VideoBuffer work on a rotated display. #11829. Thanks @tannewt.
  • Rotated displays now redraw about 5x faster. #11825. Thanks @mikeysklar.
  • Update root certificate bundle to remove compromised certificates. #11821. Thanks @dhalbert.
  • Raise proper error on closed and reset sockets. #11819. Thanks @lynt-smitka.
  • Fix EPaperDisplay.refresh() hang on color e-ink displays that clean the screen before refreshing. #11808. Thanks @lynt-smitka.
  • Smoother pitch from audiodelays.Echo. #11804. Thanks @mikeysklar.
  • Add CIRCUITPY_STORAGE_MAP_FILE boolean to settings.toml to allow preventing file-mapping from flash. Needed for Adafruit Qualia 666. #11800. Thanks @makermelissa.
  • Add CIRCUITPY_BOARD_VARIANT to allow specifying minor board differences in settings.toml. #11798. Thanks @mikeysklar.
  • Better display argument validation. #11795. Thanks @dhalbert.
  • Fix I2CTargetRequest finalizer. #11795. Thanks @dhalbert.
  • Fix sdcardio failure cleanup. #11794. Thanks @dhalbert.
  • Fix regression in audiomixer.Mixer play. #11792. Thanks @mikeysklar.
  • Raise error when watchdog is started without a timeout. #11791. Thanks @mikeysklar.
  • Fix picogame Canvas argument handling. #11787. Thanks @lynt-smitka.
  • Make math raise errors for out-of-domain arguments, as in CPython. #11783. Thanks @lynt-smitka.
  • Improve rotozoom performance by as much as 70x on RP2xxx and Espressif. #11782. Thanks @mikeysklar.
  • Fix regression of missing _pew module. #11775. Thanks @dhalbert.
  • Raise proper os.urandom() error. #11773. Thanks @lynt-smitka.
  • Add cryptography.hazmat.primitives.asymmetric.ec. #11772. Thanks @mmabey.
  • Report SD read errors instead of returning bad data. #11752. Thanks @mikeysklar.
  • Keep CIRCUITPY writable after a USB bus reset. #11745. Thanks @vegardw.
  • Add videogif.GifDecoder to play animated GIFs into a videocore.VideoBuffer. #11738. Thanks @mikeysklar.
  • Update frozen libraries. #11737. Thanks @FoamyGuy.
  • Keep a sharpdisplay display's SPI bus after VM stops. #11730. Thanks @mikeysklar.
  • OnDiskBitmap now takes only a filename, not a file object. #11729. Thanks @mikeysklar.
  • Fix msgpack int packing to use the smallest int format needed. #11728. Thanks @mikeysklar.
  • Narrow the status bar content so more information is visible on narrow displays. #11717, #11712. Thanks @mikeysklar.
  • Skip garbage collection scanning of non-pointer data in audio effects, lvfontio, longints, strings, and bytes. #11716, #11708. Thanks @mikeysklar.
  • Fix display freezes caused by incorrect keypad deinit. #11714. Thanks @mikeysklar.
  • Fix ssl socket crashes. #11713. Thanks @mikeysklar.
  • Preserve a display set in boot.py through a fake deep sleep. #11711. Thanks @mikeysklar.
  • Allow unlimited width on the WebSerial console. #11709. Thanks @mikeysklar.
  • Fix crash caused by a custom terminal font. #11707. Thanks @mikeysklar.
  • Fix crashes caused by a terminal color code when the terminal has no suitable palette. #11705. Thanks @mikeysklar.
  • Release displays not set as supervisor.runtime.display when code.py finishes. #11702. Thanks @mikeysklar.
  • Fix drawing of bitmaptools circles and polygons. #11701. Thanks @mikeysklar.
  • Don't do max3421e operations when a shared SPI bus is being used by something else. #11695. Thanks @jedgarpark.
  • picogame can now use async bus writes. #11684. Thanks @lynt-smitka.
  • Widen synthio.Biquad coefficients and feedback state. #11679. Thanks @bdbarnett.
  • Fix synthio.Biquad sin/cos computation. #11678. Thanks @bdbarnett.
  • Let HTTPS servers accept normal clients. #11677. Thanks @mikeysklar.
  • Follow the MIDI tempo track in synthio.MidiTrack. #11662. Thanks @tyeth.
  • Keep synthio.MidiTrack timing accurate for long delays. #11661. Thanks @tyeth.
  • Treat Note On with velocity 0 as Note Off in synthio.MidiTrack. #11660. Thanks @tyeth.
  • Support running status in synthio.MidiTrack. #11659. Thanks @tyeth.
  • Fix End of Track handling in synthio.MidiTrack. #11658. Thanks @tyeth.
  • Fix wifi.Monitor crash when re-created after deinit. #11651. Thanks @mikeysklar.
  • Add _airlift module to simplify communication with an AirLift co-processor. #11642. Thanks @FoamyGuy.
  • Add audiotap to allow tapping into a stream of audio objects. #11639. Thanks @FoamyGuy.
  • Add async_spi to support awaitable SPI transfers. #11489. Thanks @lynt-smitka.
  • Add cryptography and hardwarekey to support on-chip hardware key stores, currently supported on Espressif. #11425. Thanks @mmabey.

Port and board-specific changes

Analog Devices

Espressif

i.MX

Nordic

RP2xxx

SAMx

SiLabs

Spresense

STM

Zephyr

Individual boards

  • M5Stack Cardputer: fix crash when using cardputer_keyboard.KEYBOARD. #11731. Thanks @mikeysklar.
  • Pimoroni Badger2350: improve grayscale display. #11671. Thanks @bablokb.
  • Pimoroni Inky Frames: fix power-on processing when running on batteries. #11693. Thanks @bablokb.
  • Yoto: prevent reset of IO expander I2C pins. #11733. Thanks @mikeysklar.

Documentation changes

  • Distinguish Zephyr and classic builds for same board in module support matrix. #11851. Thanks @mikeysklar.
  • Explain audiodelays.Echo better. #11803. Thanks @mikeysklar.
  • Note that BLE discovery mode will erase existing bonding. #11746. Thanks @mikeysklar.
  • Correct SocketPool documentation. #11706. Thanks @mikeysklar.
  • Explain that terminalio.Terminal colors apply to the whole terminal, not individual characters. #11704. Thanks @mikeysklar.
  • Improve displayio.Bitmap storage size documentation. #11703. Thanks @mikeysklar.

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.