CircuitPython 10.0.0-alpha.5
Pre-releaseThis is CircuitPython 10.0.0-alpha.5, an alpha release for 10.0.0. Further features, changes, and bug fixes will be added before the final release of 10.0.0.
Highlights of this release
- Add stability fixes for Espressif port builds.
- Add fixes for direct connecting USB devices to PIO USB host.
- Improve accuracy of
time.sleep()
and similar functions. - Add
MixerVoice.end()
. - Change partition layout for Adafruit Feather ESP32-S3 4MB Flash 2MB PSRAM board, allowing BLE and other features to be enabled.
Incompatibility warnings
- Starting with 10.0.0-alpha.5, the Adafruit Feather S3 4MB Flash 2MB PSRAM board requires TinyUF2 bootloader 0.31.0 or later (update instructions). This version of the bootloader removes the OTA update partition (not used) and doubles the size of the firmware code partition. This change for this particular board is a trial. If all goes well, all 4MB Flash ESP32-S2 and ESP-S3 boards will have this change applied in a later 10.0.0 alpha or beta release.
synthio.BlockBiquad
has been renamed tosynthio.Biquad
. The old deprecatedsynthio.Biquad
has been removed, as well assynthio.Synthesizer.low_pass_filter
,synthio.Synthesizer.high_pass_filter
, andsynthio.Synthesizer.band_pass_filter
. Coefficients frombiquad_filter_state
have been moved intosynthio_biquad
(biquad_filter_state
is still used for input and output state).- The
displayio
bindings deprecated in 9.x.x have been removed:busdisplay.BusDisplay
replacesdisplayio.Display
.fourwire.FourWire
replacesdisplayio.Fourwire
.epaperdisplay.EPaperDisplay
replacesdisplayio.EPaperDisplay
.i2cdisplaybus.I2CDisplayBus
replacesdisplayio.I2CDisplay
.
os.uname().sysname
andos.uname().nodename
now are set toMICROPY_HW_MCU_NAME
uniformly across all ports.watchdog.WatchDogTimer.deinit()
is removed._asyncio
removedpush_head
,push_sorted
,pop_head
. Ensure you are using the latest version of theasyncio
Python-level library.sys.print_exception()
is removed. Usetraceback.print_exception()
instead. The exception object returned bysys.exc_info()
is now atraceback
module compatible object.
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 in 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 consider stable (but see Known Issues below):
atmel-samd
: Microchip SAMD21, SAMx5xcxd56
: Sony Spresenseespressif
: Espressif ESP32, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C6nordic
: Nordic nRF52840, nRF52833raspberrypi
: Raspberry Pi RP2040, RP2350stm
: ST STM32F4 chip family
These ports are considered alpha and will have bugs and missing functionality:
analog
: Analog Devices MAX32690broadcom
: Raspberry Pi boards such as RPi 4, RPi Zero 2Wespressif
: ESP32-P4, ESP32-H2litex
: fomumimxrt10xx
: NXP i.MX RT10xxxrenode
: hardware simulatorsilabs
: Silicon Labs MG24 familystm
: ST non-STM32F4 chip familieszephyr
: multiplatform RTOS: testing with Nordic nRF5340 and nRF54L15, Renesas RA6M5, ST STM32H7
Changes
Fixes and enhancements
- Fix SD cards showing up as second drive by #10351. Thanks @relic-se.
- Further integrate
TilePaletteMapper
andTileGrid
. #10318. Thanks @FoamyGuy. - Add
end()
method toMixerVoice
to allow samples to finish playing. #10309. Thanks @rhammell. - Improve resolution of
mp_hal_delay_ms()
to subticks. #10315. Thanks @eightycc. - Show four spaces in place of tab in Terminal. #10324. Thanks @FoamyGuy.
- Factor out register saves to improve gc. #10325, #10337, Thanks @tannewt and @eightycc.
- Fix
vectorio
in group tracking. #10334. Thanks @tannewt. - Remove non-standard
sys.print_exception()
. #10332. Thanks @tannewt. - Fix terminal on rotation. #10333. Thanks @tannewt.
Port and board-specific changes
Analog Devices
Broadcom
Espressif
- Fix BLE not working by adding missing linker fragment on RISCV processors. #10321. Thanks @eightycc.
- Fix intermittent ESP32 crashes by wrapping
longjmp
. #10328. Thanks @eightycc.
i.MX
Nordic
renode
RP2
SAMx
SiLabs
Spresense
STM
Zephyr
Individual boards
- Adafruit Feather S3 4MB Flash 2MB PSRAM: use larger single code partition. Must be used with TinyUF2 0.30.0 or laster. #10346. Thanks @dhalbert.
Documentation changes
Build and infrastructure changes
- Update use of
datetime
. #10350. Thanks @emmanuel-ferdman. - Update use of
logging
. #10343. Thanks @emmanuel-ferdman. - Fix circuitpython.org release PR creation. #10312. Thanks @tannewt.
- Fix latex docs build. #10322. Thanks @FoamyGuy.
Translation additions and improvements
- Fix duplicated error messages #10336. Thanks @jonnybergdahl.
- Thanks for translations:
- @bergdahl (Swedish)
New boards
- Adafruit Sparkle Motion Stick #10352. Thanks @BlitzCityDIY.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for:
- Native-code .mpy files are not working. This capability is currently enabled only on the
winterbloom_sol
board.
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.
New Contributors
- @rhammell made their first contribution in #10309.
- @jonnybergdahl made their first contribution in #10336.
- @emmanuel-ferdman made their first contribution in #10343.