From the GitHub release page:
This is CircuitPython 7.2.0-alpha.2, the second published alpha release for CircuitPython 7.2.0. It is relatively stable, but there will be further additions and fixes before final release.
Notable additions to 7.2.0 since 7.1.0
- Continuing work on Raspberry Pi Broadcom board support.
- Espressif ESP32-S3 and ESP32-C3 support, including BLE.
- RP2040 PIO sideset support.
board.STEMMA_I2C()
available on all boards with STEMMA connectors.binascii.crc32()
.vectorio.contains()
.
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).
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, atmel-samd
, cxd56
(Spresense), esp32s2
, nrf
,raspberrypi
, stm
for the F4 family are stable. stm
for other STM chip families is being actively improved but may be missing functionality and have bugs. broadcom
(Raspberry Pi), litex
and mimxrt10xx
are in an alpha state and will have bugs and missing functionality.
Changes since 7.2.0-alpha.1
Fixes and enhancements
- Add SPI half-duplex capability (only available on STM for now). #5990, #6003. Thanks @sgauche and @dhalbert.
wifi.monitor
: improve channel argument validation. #5996. Thanks @anecdata.bitbangio.I2C
: switch pin to input mode when reading. #5977. Thanks @prplz.- Add
binascii.crc32()
. #5969. Thanks @Life-Imaging-Services. - Add
board.STEMMA_I2C
for all boards with a STEMMA, STEMMA/QT, or QWIIC connector. #5966, #5962. Thanks @Neradoc. displayio
: expose REPL group assupervisor.splash
. #5954. Thanks @kmatch98.neopixel_write
: check ifDigitalInOut
has been deinited. # 5946. Thanks @tammymakesthings.- Make CIRCUITPY writable by default on boards without USB. #5902. Thanks @tannewt.
io.__name__
fixed. #5897. Thanks @dunkmann00.- Validate file modes for
open()
. #5896. Thanks @dhalbert. - Allow
displayio.EpaperDisplay
two-byte LUT table length. #5874. Thanks @dkulinski. - Update
ulab
to 4.0.0. #5859. Thanks @jepler. - Add
audiomp3.MP3Decoder.decoded_samples
. #5807, #5808. Thanks @unwiredben. countio
: add selectable rise and fall selection, pull support. #5803. Thanks @dhalbert.- Add
vectorio.contains()
. #5784. Thanks @WarriorOfWire. - Add
pixelbuf
support inis31fl3741
#5726. Thanks @gamblor21. - Allow multiple buses of the same type with different names in
board
. #5422. Thanks @Neradoc.
Port and board-specific changes
Broadcom
- Set JTAG pins to pull down on initialization. #5798. Thanks @jerryneedell.
Espressif
- Fix ping timeout. #5980. Thanks @DavePutz.
busio.I2C
: Use ESP-IDF combined write/read I2C routine. #5958. Thanks @dhalbert.- Update to latest v4.4 commit. #5796, #5923. Thanks @MicroDev1.
- Fix
microcontroller.cpu.frequency
. #5921. Thanks @MicroDev1. - Fix
pulseio.PulseIn
channel assignments to work on ESP32-S3. #5912. Thanks @DavePutz. - Refactor pin reset code. #5894. Thanks @tannewt.
neopixel_write
: improve timing and pin reset state. #5892. Thanks @tannewt.- Ensure
supervisor_tick()
is run on same core as CircuitPython. #5888. Thanks @tannewt. - Increase ESP32-S3 heap size when no PSRAM. Fix S2 build problem. #5884. Thanks @tannewt.
- Enable reset to bootloader on USB 1200 baud speed change. #5880. Thanks @jepler.
- Fix
digitalio.DigitalInOut
open-drain outputs. #5866. Thanks @dhalbert. - Patch ESP-IDF to fix I2C crash. #5854. Thanks @jepler.
- ESP32-S3: Use core 1 for CircuitPython. #5860. Thanks @tannewt.
- ESP32-S3: Fix USB when enabling wifi. #5858. Thanks @tannewt.
- Refactor configurations. USB and CircuitPython will use the same core. #5853. Thanks @tannewt.
- Enable
rgbmatrix
for all boards. #5796. Thanks @MicroDev1. - ESP32-S3, ESP32-C3:
- Fix BLE scanning forever. #5957. Thanks @tannewt.
- Support BLE advertising. #5936. Thanks @tannewt.
- Add BLE scanning. #5927. Thanks @tannewt.
nRF
- Enable
is31fl3741
only on Adafruit LED Glasses Driver Board. #5955. Thanks @prplz.
RP2040
- Fix
audiobusio.PDMIn
to use supplied sample rate. #5993. Thanks @DavePutz. - Record initial SPI frequency in
busio.SPI()
. #5987. Thanks @dhalbert. audiobusio.PDMIn
andI2SOut
: Fix PIO argument order to fix values. #5984. Thanks @DavePutz.- Update
pico-sdk
to 1.3.0. #5974. Thanks @jepler. - Claim pins properly in
busio.UART()
. #5834. Thanks @arturo182.
SAMx
- SAMx5x: Fetch RTC count more atomically, to prevent time jumps. #6004. Thanks @dhalbert.
- Fix tracking of
board
device singletons. #5951. Thanks @dhalbert. - Fix SAMD
audiobusio.PDMIn()
. #5842. Thanks @dhalbert.
STM
- Fix SPI flash reading. #5948. Thanks @EmergReanimator.
- Fix
busio.UART
deinit checking. #5945. Thanks @EmergReanimator.
Individual boards
- Adafruit Feather ESP32-S2: turn on I2C power by default. #5832. Thanks @ladyada.
- Adafruit Feather ESP32-S2, ESP32-S2 TFT: add button pin. #5844. Thanks @kattni.
- Adafruit Feather ESP32-S2 TFT: Use
board.SPI()
for display. #5846. Thanks @jepler. - Adafruit Feather ESP32-S2 TFT: Fix pin typo and pin order. #5829. Thanks @kattni.
- Adafruit Feather RP2040: add support for Winbond flash chip. #5899. Thanks @tannewt.
- Adafruit KB2040: Define default SPI pins. #5876. Thanks @Neradoc.
- Adafruit QT Py ESP32-S2: fix pin error. #5889. Thanks @kattni.
- Adafruit QT Py ESP32-S2: fix pin order. #5844. Thanks @kattni.
- BDMicro VINA D51: add
LED_AUX
pin. #5816. Thanks @bd34n. - Capable Robot USB Hub: update pins and module choices. #6002. Thanks @CapableRobot.
- Challenger RP204: Add missing pins. #5822. Thanks @PontusO.
- Espressif ESP32-S3 DevKit boards: add GPIO40. #5975. Thanks @walshbp.
- Espressif ESP32-S3 DevKitC: Fix UART pins and add
board.UART
. #5905. Thanks @prplz. - Espressif DevKit boards: rename boards for consistency. #5848. Thanks @prplz.
- Gravitech Cucumber ESP32-S2 boards: add
LED_INVERTED
. #5997. Thanks @anecdata. - micro:bit v2: enable
binascii
. #5925. Thanks @jerryneedell. - Seeeduino XIAO nRF52840 Sense: Use SoftDevice 7.0.1. #5877. Thanks @0hopotman0.
- Seeeduino XIAO SAMD: shrink build. #5981. Thanks @dhalbert.
New boards since 7.2.0-alpha.1
- Adafruit ESP32-S2 Camera: #5832. Thanks @ladyada.
- Adafruit QT Py ESP32-S3 no PSRAM: #5832. Thanks @ladyada.
- Diodes Delight Piunora. #5819. Thanks @tannewt.
- Espressif ESP32-C3 DevKitM-1. #5885. Thanks @tannewt.
- Espressif ESP32-S2 DevKitC-1-NR42. #5998. Thanks @anecdata.
- Raspberry Pi Zero. #5800, #5819. Thanks @tannewt.
- Raspberry Pi Zero W. #5800, #5819. Thanks @tannewt.
- Unexpected Maker FeatherS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker ProS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Unexpected Maker TinyS3. #5940, #5991. Thanks @UnexpectedMaker and @prplz.
- Waveshare RP2040-Zero. #5820. Thanks @CharString.
Documentation changes
- Correct “libraries” to “classes”. #5994. Thanks @tekktrik.
- Improve
AnalogIn.reference_voltage
description. #5989. Thanks @tekktrik. - Espressif README fixes. #5959. Thanks @andypiper.
- Fix
wifi
type annotations. #5943. Thanks @prplz. - Fix
I2SOut
example. #5939. Thanks @TheWoodsy. - Fix
pulseio.PulseOut
example. #5907. Thanks @Neradoc. - Remove “Edit on GitHub” link in readthedocs. #5863. Thanks @tekktrik.
- Update instructions for fetching submodules. #5856. Thanks @kattni.
- Update
re
examples. #5849. Thanks @alustig3.
Build and infrastructure changes
- STM: make ST driver repos be submodules. #5976. Thanks @sgauche.
- Automatically cancel superseded PR CI builds. #5922. Thanks @MicroDev1.
- Remove unused
busio
-using-bitbangio
proxy files. #5862. Thanks @jepler. - Push
circuitpython-stubs
to pypi.org only on a release. #5845. Thanks @dhalbert. - Use filesystem stubs when filesystem is disabled. #5841. Thanks @EmergReanimator.
- Add execute permission to several scripts. #5817. Thanks @EmergReanimator.
- Improve
ringbuf
initialization API. #5813. Thanks @EmergReanimator. - Improve TinyUSB build configuration options. #5812. Thanks @EmergReanimator.
- Fix build problem when internal filesystem is disabled. #5810. Thanks @EmergReanimator.
- Don’t include
utils/
directories in frozen modules. #5791. Thanks @prplz.
Translation additions and improvements
- Enable Turkish language builds. #5840. Thanks @electricalgorithm and @tannewt.
- Thanks for translations:
- @bergdahl (Swedish)
- @electricalgorithm (Turkish)
- @hexthat (Chinese – Pinyin)
- @tawez (Polish)
- @wtuemura (Portuguese – Brazil)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.2.0 and 7.x.x.
Thanks
Thank you to all who used, tested, and contributed, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.