This is CircuitPython 7.1.0-beta.0, the initial beta release for CircuitPython 7.1.0. It is relatively stable, but contains issues we may still address for 7.1.0.
Notable additions to 7.1.0 since 7.0.0
keypad.Event
s now include timestamps.- The Espressif port now provides
I2CPeripheral
, WiFi monitor mode, ESP32-C3 support,ParallelImageCapture
. bitmaptools
: dithering and alphablend are new.- Preliminary support for
asyncio
is included. Use the CircuitPython asyncio library. gifio.GifWriter
is new.- HID now provides boot device and feature report support.
rotaryio
now allows setting the divisor of counts per transition.- The SAMD port now provides
watchdog
, andalarm
with sleep. - The STM port now provides STM32L4R5 support.
- MicroPython 1.17 has been merged in.
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. litex
and mimxrt10xx
are in an alpha state and will have bugs and missing functionality.
Changes since 7.0.0
The full commit log is here.
Fixes and enhancements
- Add preliminary support for
asyncio
. #5564. Thanks @dhalbert. - Fix and refactor traceback handling. #5562. Thanks @MicroDev1.
bitmaptools
: add dithering support. #5558. Thanks @jepler.- Improve not writing
boot_out.txt
when it does not change. #5557, #5536. Thanks @jepler. bitmaptools
: addalphablend
. #5544. Thanks @jepler.- Fix BLE workflow directory listing. #5524. Thanks @tannewt.
sdcardio
: use CMD25 to improve write speed. #5510. Thanks @jepler.PulseIn
: fix possible memory corruption. #5509. Thanks @DavePutz._bleio
: fixstart_advertising()
argument validation. #5508. Thanks @dhalbert.- Fix flash support to use additional values from the NVM toml data. #5506. Thanks @maholli.
- Update
help()
message to point to circuitpython.org. #5494. Thanks @kattni. - Add
gifio.GifWriter
. #5490. Thanks @jepler. keypad.Event
: fixhash()
. #5486. Thanks @dhalbert.usb_hid
: add boot device support and feature report support. #5481. Thanks @dhalbert.rotaryio
: allow setting count divisor. #5468. Thanks @jepler.- Merge MicroPython 1.17. #5466. Thanks @jepler.
- Use
mp_arg_validate_type()
for keyword args. #5452. Thanks @MicroDev1. displayio
: fix argument validation forFourWire
andI2CDisplay
. #5450. Thanks @FoamyGuy._stage
: add support for viewport scrolling. #5447. Thanks @pewpew-game.- Fix keyword argument handling in several native modules. #5439. Thanks @dhalbert.
usb_hid
: allow report-id-less HID descriptors. #5392. Thanks @dhalbert.adafruit_bus_device
: allow CS active-high. #5383. Thanks @michthom.displayio.Display.fill_row
now takes anyWriteableBuffer
. #5373. Thanks @lesamouraipourpre.bitmaptools.__init()
: update error message. #5369. Thanks @lesamouraipourpre.- Avoid overflow when scaling ticks in
mp_hal_delay_ms()
. #5364. Thanks @osresearch. keypad
: add Event timestamps. #5360. Thanks @jepler.- Fix importing of
paralleldisplay
. #5358. Thanks @jepler.
Port and board-specific changes
Espressif
- Add
ParallelImageCapture
. #5540, #5457. Thanks @jepler. - Add WiFi monitor mode to capture all packets. #5537. Thanks @MicroDev1 and @anecdata.
- Add initial ESP32-C3 support. #5394. Thanks @tannewt.
- Fix serial REPL over UART. #5388. Thanks @MicroDev1.
- Use I2S peripheral for parallel LCD displays. #5378. Thanks @jepler.
- Update port to allow supporting more Espressif chips. #5367. Thanks @MicroDev1.
- Support for
I2CPeripheral
. #3768. Thanks @MicroDev1.
i.MX
nRF
- Correct board name for nRF52833 DK. #5441. Thanks @jpconstantineau.
SAMx
- Fix
watchdog
time conversion. #5549. Thanks @jepler. - Fix SAMD21
PDMIn
hang. #5458. Thanks @dhalbert. - SAMD51: Implement
watchdog
. #5483. Thanks @jepler. - Allow PA24 and PA25 pins to be used for other purposes if USB is turned off. #5427. Thanks @EmergReanimator.
- Implementation of
alarm
, including deep sleep. #5425. Thanks @maholli.
STM
- Improve accuracy of
microcontroller.delay_us()
. #5553. Thanks @EmergReanimator. - Add STM32L4R5 support. #5403. Thanks @blues.
Individual boards
- Adafruit Trinket QT2040: fix USB PID. #5550. Thanks @ladyada.
- Challenger RP2040 WiFi: fix pin definitions. #5390. Thanks @Pontus0.
- Cytron Maker Pi RP2040: correct pin definitions. #5533. Thanks @CytronTechnologies.
- Lolin S2 Mini: add
board.I2C()
. #5467. Thanks @evildave666. - MicroDev microS2: minor updates. #5421. Thanks @MicroDev1.
- Pimoroni PicoSystem: freeze the
stage
library. #5437. Thanks @pewpew-game. - Pimoroni PicoSystem: add
displayio
. #5398. Thanks @Gadgetoid. - PyCubed: update for mainboardv05. #5302. Thanks @maholli.
- Sensebox MCU: add
rainbowio
. #5534. Thanks @jepler.
New boards Since 7.0.0
- Adafruit Feather ESP32S2. #5517. Thanks @ladyada.
- Adafruit Feather ESP32-S2 TFT. #5570. Thanks @ladyada.
- Adafruit KB2040. #5550. Thanks @ladyada.
- AIThinker ESP32-C3S_Kit. #5409. Thanks @skieast.
- Challenger NB RP204. #5395. Thanks @Pontus0.
- Lolin/Wemos S2-Pico. #5464. Thanks @skieast.
- Melopero Shake RP2040. #5465, #5372. Thanks @melopero.
- MicroDev microC3. #5404. Thanks @MicroDev1.
- Oak Development Technologies Bread 2040. #5368. Thanks @skerr92.
- PyKey60 #5507, #5497, #5365. Thanks @jpconstantineau.
- Seed XIAO variant build for HID devices. #5442. Thanks @jpconstantineau.
- Solder Party RP2040 Stamp. #5504. Thanks @solderparty.
- Swan R5. #5403. Thanks @blues.
Documentation
- Update Troubleshooting. #5539, #5528. Thanks @kattni.
- Update native module examples using the on-board LED; update PWM example. #5523. Thanks @kattni.
- Update
SocketPool
. #5508. Thanks @dhalbert. - Update how to build documentation. #5472. Thanks @fraziern.
- Add precision information to
time.monotonic()
. #5443. Thanks @dhalbert. - Add ESP32-C3. #5417. Thanks @MicroDev1.
- Document
board.board_id
. #5416 Thanks @Neradoc. - Improve
usb_hid.Device
. #5379. Thanks @dhalbert. - Correct 'I2C.writeto()`. #5363. Thanks @Neradoc.
Build and infrastructure changes
- Enable
-Werror=missing-prototypes
on various ports. #5563, #5561. Thanks @jepler. - Use Python 3.9 for readthedocs. #5545. Thanks @jepler.
- Handle deleted boards during a build. #5518. Thanks @jepler.
- Allow any character except
/
in port or board names. #5473. Thanks @jepler. - Upload patch to artifacts if pre-commit fails. #5434. Thanks @MicroDev1.
- Convert all modules to use
MP_REGISTER_MODULE
. #5430. Thanks @MicroDev1. - Fixed code comments re SAMD21/SAMD51 DAC clock speeds. #5429. Thanks @process1183.
- Upload stubs to pypi for release versions. #5385. Thanks @FoamyGuy.
- Fix stubs upload to S3. #5376. Thanks @MicroDev1.
- Rebuild documentation only as necessary. #5350. Thanks @MicroDev1.
Translation additions and improvements
- Thanks for translations:
- @bergdahl (Swedish)
- @hexthat (Chinese - Pinyin)
- @lesamouraipourpre (English - UK)
- @rezaalmanda (Indonesian)
- @Senuros (German)
- @wtuemura (Portuguese - Brazil)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues, including issues still to be addressed for 7.x.x.
Thanks
Thank you to all who used, tested, and contributed since 7.0.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.