Releases: adafruit/circuitpython
CircuitPython 7.1.0 Beta 2
This is CircuitPython 7.1.0-beta.2, the third 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
- Initial port for Raspberry Pi Broadcom-based boards.
- Preliminary support for
asyncio
cooperative multitasking. bitmaptools
: dithering and alphablend are new.keypad.Event
s now include timestamps.framebufferio
: support for IS31FL3741.- Espressif now provides
I2CPeripheral
, WiFi monitor mode, setting MAC address, ESP32-C3 support,ParallelImageCapture
. gifio.GifWriter
is new.- HID now provides boot device and feature report support.
rotaryio
now allows setting the divisor of counts per transition.- SAMD now provides
watchdog
, andalarm
with sleep. - SAMx5 boards now all have sleep support.
- The STM port now provides STM32L4R5 support.
- MicroPython 1.17 has been merged in.
- Russian translation.
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.0.0
The full commit log is here.
Fixes and enhancements
sdcardio
. Idle state not needed during early init. #5688. Thanks @jepler.- Fix
_bleio
HCI support. #5683. Thanks @dhalbert. - Update
_stage
to avoid backlight problems. #5657. Thanks @deshipu. - Allocate
busio.UART
object more carefully. #5647. Thanks @jepler. - Update
ulab
to 3.3.7. #5642. Thanks @jepler. - Make
bitbangio.SPI
keyword args matchbusio.SPI
. #5641. Thanks @jepler. - Update frozen libraries. #5700. Thanks @dhalbert.
Port and board-specific changes
Broadcom
RP2040
- Use proper slice number for
PWMOut
. #5667. Thanks @dhalbert. - Protect
nvm
writes from interrupts. #5663. Thanks @FoamyGuy. - Use longer clock-stretch timeout for RP2040 zero-byte I2C writes. #5656. Thanks @dhalbert.
SAMx
- Fix
FrequencyIn
. #5665. Thanks @dhalbert. - Enable sleep on all SAM5x boards. #5634. Thanks @dhalbert.
Spresense
- Fix
time.time()
. #5635. Thanks @kamtom480.
Individual boards
- [no changes for individual boards]
New boards Since 7.0.0
- Adafruit Feather ESP32-S2. #5517. Thanks @ladyada.
- Adafruit Feather ESP32-S2 TFT. #5573, #5570. Thanks @ladyada.
- Adafruit KB2040. #5550. Thanks @ladyada.
- Adafruit QT Py ESP32-S2. #5622, #5621, #5620. Thanks @ladyada.
- AIThinker ESP32-C3S_Kit. #5409. Thanks @skieast.
- Challenger NB RP204. #5395. Thanks @pontus0.
- Cytron Maker Nano RP2040. #5673. Thanks @waiweng83.
- JPConstantineau Pykey60. #5507, #5497, #5365. Thanks @jpconstantineau.
- 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.
- Raspberry Pi 4B. #5610. Thanks @tannewt.
- Raspberry Pi Compute Module 4 IO Board. #5610. Thanks @tannewt.
- Raspberry Pi Zero 2W. #5610. Thanks @tannewt.
- Seed XIAO variant build for HID devices. #5442. Thanks @jpconstantineau.
- Solder Party RP2040 Stamp. #5504. Thanks @solderparty.
- Swan R5. #5403. Thanks @blues.
Documentation
- [no documentation changes]
Build and infrastructure changes
- Partial submodule fetching using sha. #5687, #5681. Thanks @tannewt.
- Update file formatting due to
blacken
anduncrustify
updates. #5670. Thanks @hdalbert. - Fix running traceback test. #5649. Thanks @microdev1.
- Add tests for
aesio
. #5638. Thanks @jepler. - Fix CI dependency fetching for automated circuitpython.org updates. #5636. Thanks @dhalbert.
- Add
board_deinit()
for all boards that lacked it. #5634. Thanks @dhalbert. - Add
make fetch-submodules
, to do partial fetches of submodules. #5627. Thanks @tannewt. - Reorder pins to match silk, for automated pin diagrams. #5652, #5626. Thanks @kattni.
Translation additions and improvements
- Thanks for translations:
- @Pixel-Clay (Russian)
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.
CircuitPython 7.1.0 Beta 1
This is CircuitPython 7.1.0-beta.1, the second 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
-
Initial port for Raspberry Pi Broadcom-based boards.
-
Preliminary support for
asyncio
cooperative multitasking. -
bitmaptools
: dithering and alphablend are new. -
keypad.Event
s now include timestamps. -
framebufferio
: support for IS31FL3741. -
Espressif now provides
I2CPeripheral
, WiFi monitor mode, setting MAC address, ESP32-C3 support, ParallelImageCapture`. -
gifio.GifWriter
is new. -
HID now provides boot device and feature report support.
-
rotaryio
now allows setting the divisor of counts per transition. -
SAMD now provides
watchdog
, andalarm
with sleep. -
The STM port now provides STM32L4R5 support.
-
MicroPython 1.17 has been merged in.
-
Russian translation.
-
Preliminary support for
asyncio
is included. Use the CircuitPython asyncio library.
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).
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, 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.0.0
The full commit log is here.
Fixes and enhancements
bitmaptools
: fix dithering and other bugs. #5616, #5605. Thanks @jepler.- Fix when to write
boot_out.txt
. #5611. Thanks @jepler. - Fix tracebacks. #5608, #5574. Thanks @microdev1.
- Don't run
code.py
when restarting in raw mode. #5602. Thanks @aivarannamaa. - Fix
camera
constructor signature. #5596. Thanks @kamtom480. - Update frozen libraries, notably adafruit_hid to support non-US keyboard layouts. #5587. Thanks @dhalbert.
framebufferio
: support for IS31FL3741. #5584. Thanks @gamblor21.
Port and board-specific changes
Broadcom
Espressif
wifi
: Allow setting access point MAC address. #5593. Thanks @anecdata.wifi
: Allow setting station MAC address; validate SSID length. #5571. Thanks @anecdata.
SAMx
Individual boards
- Adafruit Feather ESP32-S2: fix name of I2C power control pin. #5595. Thanks @anecdata.
- Adafruit Feather ESP32-S2: reorder pins for preferred naming. #5626. Thanks @kattni.
New boards Since 7.0.0
- Adafruit Feather ESP32-S2. #5517. Thanks @ladyada.
- Adafruit Feather ESP32-S2 TFT. #5573, #5570. Thanks @ladyada.
- Adafruit KB2040. #5550. Thanks @ladyada.
- Adafruit QT Py ESP32-S2. #5622, #5621, #5620. Thanks @ladyada.
- AIThinker ESP32-C3S_Kit. #5409. Thanks @skieast.
- Challenger NB RP204. #5395. Thanks @pontus0.
- JPConstantineau Pykey60. #5507, #5497, #5365. Thanks @jpconstantineau.
- 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.
- Raspberry Pi 4B. #5610. Thanks @tannewt.
- Raspberry Pi Compute Module 4 IO Board. #5610. Thanks @tannewt.
- Raspberry Pi Zero 2W. #5610. Thanks @tannewt.
- Seed XIAO variant build for HID devices. #5442. Thanks @jpconstantineau.
- Solder Party RP2040 Stamp. #5504. Thanks @solderparty.
- Swan R5. #5403. Thanks @blues.
Documentation
Build and infrastructure changes
- Shrink some overflowing builds. #5617. Thanks @tannewt.
- Enable
-Werror=missing-prototypes on more builds
. #5582, #5580. Thanks @jepler. - Remove FAT32
mkfs
on boards that don't need it; re-enablerainbowio
on some boards. #5578. Thanks @jepler. - Enable
bitmaptools
onunix
coverage
build. #5575. Thanks @jepler.
Translation additions and improvements
- Initiate new Russian translation. Thanks @urfdvw.
- Enable Russian translation builds. #5592, #5589. Thanks @tannewt and @dhalbert.
- Thanks for translations:
Known issues
- The
broadcom
port for the Raspberry Pi Zero 2 W will sometimes hang when accessing the CIRCUITPY drive. #5628. - 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.
CircuitPython 7.1.0 Beta 0
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.
CircuitPython 7.0.0
This is CircuitPython 7.0.0, the latest major revision of CircuitPython, and is a new stable release.
Notable additions to 7.0.0 since 6.3.0
- Support for the CircuitPython development workflow over BLE.
- Camera support on ESP32S2.
qrio
: QR code decoding.- The
keypad
key-scanning module. - Run-time customization of USB devices.
- Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
_pixelbuf
is nowadafruit_pixelbuf
.colorwheel()
routine moved torainbowio
.supervisor.ticks_ms()
to allow easier time-keeping.- Simplifications to the RGB status LED codes.
- A clocking fix for a few samples of RP2040 boards.
- Rework of
vectorio
and some of its API.VectorShape
is no longer needed for user code. atexit
module.getpass
module.traceback
module.supervisor.get_previous_traceback()
.board.LED
now consistently present on all boards that have such an LED.PulseOut
no longer needs aPWMOut
.- Unicode filename support.
- Board ID is now in
boot_out.txt
and available asboard.board_id
. aesio
on for full builds by default.
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 our new 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).
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, 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-rc.3
This release is a relabeling of 7.0.0-rc.3 and is otherwise the same as that release.
Breaking changes and deprecations since 6.x
- The RGB status LED codes have changed for clarity and to save power.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
.colorwheel()
has been moved from_pixelbuf
torainbowio
.displayio.Group
no longer has amax_size
parameter.vectorio
:Rectangle
,Circle
, andPolygon
are added directly to aGroup
;VectorShape
is not needed.- Using a
PWMOut
forPulseOut
is deprecated and will be removed in 8.0.0. gamepad
is removed: usekeypad
.gamepadshift
is still present but will be removed in 8.0.0.settings.py
andsettings.txt
are no longer alternative names forboot.py
.- The default for
displayio.Display.refresh(..., minimimum_frames_per_second, ...)
is now 0. displayio.Display()
argumentset_vertical_scroll
argument is deprecated and will be removed in 8.0.0.displayio.ParallelBus
is now available asparallelbus.ParallelBus
and will be removed fromdisplayio
in 8.0.0.busio.OneWire
/bitbangio.OneWire
is now available asonewireio.OneWire
and will be removed frombusio
andbitbangio
in 8.0.0.
New boards since 6.3.0
- ARAMCON2 Badge. #4627. Thanks @aramcon-badge.
- ATMegaZero ESP32-S2. #4634. Thanks @eddieespinal.
- Adafruit LED Glasses nRF52840 Driver. #5224, #5265, #5326. Thanks @dhalbert and @ladyada.
- Adafruit MacroPad RP2040. #4770, #4864. Thanks @ladyada.
- AiThinker ESP-12K NodeMCU. #5149. Thanks @codetyphon.
- Arduino Nano RP2040 Connect. #4802. Thanks @BlitzCityDIY.
- BlueMicro840. #5114. Thanks @jpconstantineau.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- Challenger RP2040 WiFi. #5323. Thanks @PontusO.
- CrumpSpace CrumpS2. #5143. Thanks @tylercrumpton.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- EncoderPad RP2040. #5247 Thanks @jpconstantineau.
- Espressif HMI DevKit 1. Thanks @jepler.
- Espressif HMI Development Kit. #5335. Thanks @skieast.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
- Gravitech Cucumber M. #5097. Thanks @anecdata.
- Gravitech Cucumber MS. #5097. Thanks @anecdata.
- Gravitech Cucumber R. #5097. Thanks @anecdata.
- Gravitech Cucumber RS. #5097. Thanks @anecdata.
- Lolin Mini S2. #5239, #5297. Thanks @durapensa.
- micro:bit V2 (first BLE-only board). #5002. Thanks @tannewt.
- Morpheans MorphESP-240. #5129. Thanks @skieast.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- Oak Development Technologies PixelWing ESP32-S2. #5156. Thanks @skerr92.
- Pimoroni Interstate 75. #5099. Thanks @ZodiusInfuser.
- Pimoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- Pimoroni Plasma 2040. #5099. Thanks @ZodiusInfuser.
- RayTac MDBT50Q-RX nRF52840 dongle. #5095. Thanks @dhalbert.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- SparkFun MicroMod STM32. #5060. Thanks @cdwilson.
- UnexpectedMaker Feather S2 Neo. #5294. Thanks @UnexpectedMaker.
- WarmBit BluePixel nRF52840. #5229 Thanks @warmbit.
Known issues
- We are not aware of any show-stopper issues.
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.3.0. See the 7.0.0 alpha, beta and RC releases for all who contributed. Join us on the Discord chat to collaborate.
This release is based on MicroPython 1.16. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
CircuitPython 7.0.0 Release Candidate 3
This is CircuitPython 7.0.0-rc.3, a release candidate for CircuitPython 7.0.0 final. We have addressed all the issues we scheduled for the 7.0.0 release. This release fixes an RP2040 regression introduced in 7.0.0-rc.2. We believe this release is stable, but want to give time for further testing.
Notable additions to 7.0.0 since 6.3.0 include:
- Support for the CircuitPython development workflow over BLE.
- Camera support on ESP32S2.
qrio
: QR code decoding.- The
keypad
key-scanning module. - Run-time customization of USB devices.
- Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
_pixelbuf
is nowadafruit_pixelbuf
.colorwheel()
routine moved torainbowio
.supervisor.ticks_ms()
to allow easier time-keeping.- Simplifications to the RGB status LED codes.
- A clocking fix for a few samples of RP2040 boards.
- Rework of
vectorio
and some of its API.VectorShape
is no longer needed for user code. atexit
module.getpass
module.traceback
module.supervisor.get_previous_traceback()
.board.LED
now consistently present on all boards that have such an LED.PulseOut
no longer needs aPWMOut
.- Unicode filename support.
- Board ID is now in
boot_out.txt
and available asboard.board_id
. aesio
on for full builds by default.
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 our new 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).
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, 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-rc.2
The full commit log is here.
Fixes and enhancements
Port and board-specific changes
nRF
RP2040
- Disable use of
WFI
when idling. Fixes regression introduced by #5341. #5357. Thanks @dhalbert and @Neradoc.
ESP32-S2
Spresense
STM32
Individual Boards
New boards Since 6.3.0
- ARAMCON2 Badge. #4627. Thanks @aramcon-badge.
- ATMegaZero ESP32-S2. #4634. Thanks @eddieespinal.
- Adafruit LED Glasses nRF52840 Driver. #5224, #5265, #5326. Thanks @dhalbert and @ladyada.
- Adafruit MacroPad RP2040. #4770, #4864. Thanks @ladyada.
- AiThinker ESP-12K NodeMCU. #5149. Thanks @codetyphon.
- Arduino Nano RP2040 Connect. #4802. Thanks @BlitzCityDIY.
- BlueMicro840. #5114. Thanks @jpconstantineau.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- Challenger RP2040 WiFi. #5323. Thanks @PontusO.
- CrumpSpace CrumpS2. #5143. Thanks @tylercrumpton.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- EncoderPad RP2040. #5247 Thanks @jpconstantineau.
- Espressif HMI DevKit 1. Thanks @jepler.
- Espressif HMI Development Kit. #5335. Thanks @skieast.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
- Gravitech Cucumber M. #5097. Thanks @anecdata.
- Gravitech Cucumber MS. #5097. Thanks @anecdata.
- Gravitech Cucumber R. #5097. Thanks @anecdata.
- Gravitech Cucumber RS. #5097. Thanks @anecdata.
- Lolin Mini S2. #5239, #5297. Thanks @durapensa.
- micro:bit V2 (first BLE-only board). #5002. Thanks @tannewt.
- Morpheans MorphESP-240. #5129. Thanks @skieast.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- Oak Development Technologies PixelWing ESP32-S2. #5156. Thanks @skerr92.
- Pimoroni Interstate 75. #5099. Thanks @ZodiusInfuser.
- Pimoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- Pimoroni Plasma 2040. #5099. Thanks @ZodiusInfuser.
- RayTac MDBT50Q-RX nRF52840 dongle. #5095. Thanks @dhalbert.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- SparkFun MicroMod STM32. #5060. Thanks @cdwilson.
- UnexpectedMaker Feather S2 Neo. #5294. Thanks @UnexpectedMaker.
- WarmBit BluePixel nRF52840. #5229 Thanks @warmbit.
Documentation
Build and infrastructure changes
Translation additions and improvements
Breaking changes and deprecations since 6.x
- The RGB status LED codes have changed for clarity and to save power.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
.colorwheel()
has been moved from_pixelbuf
torainbowio
.displayio.Group
no longer has amax_size
parameter.vectorio
:Rectangle
,Circle
, andPolygon
are added directly to aGroup
;VectorShape
is not needed.- Using a
PWMOut
forPulseOut
is deprecated and will be removed in 8.0.0. gamepad
is removed: usekeypad
.gamepadshift
is still present but will be removed in 8.0.0.settings.py
andsettings.txt
are no longer alternative names forboot.py
.- The default for
displayio.Display.refresh(..., minimimum_frames_per_second, ...)
is now 0. displayio.Display()
argumentset_vertical_scroll
argument is deprecated and will be removed in 8.0.0.displayio.ParallelBus
is now available asparallelbus.ParallelBus
and will be removed fromdisplayio
in 8.0.0.busio.OneWire
/bitbangio.OneWire
is now available asonewireio.OneWire
and will be removed frombusio
andbitbangio
in 8.0.0.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.3.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
This release is based on MicroPython 1.16. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
CircuitPython 7.0.0 Release Candidate 2
This is CircuitPython 7.0.0-rc.2, the third release candidate for CircuitPython 7.0.0. We have addressed all the issues we scheduled for the 7.0.0 release. We believe this release is stable, but want to give time for further testing.
RP2040 PROBLEM NOTED AFTER RELEASE: RP2040 boards will not restart properly after a power cycle with 7.0.0-rc.2. You can press reset and the board will restart, but stick with 7.0.0-rc.1 for RP2040 now and we will publish a fix soon. Issue is being tracked at #5354.
Notable additions to 7.0.0 since 6.3.0 include:
- Support for the CircuitPython development workflow over BLE.
- Camera support on ESP32S2.
qrio
: QR code decoding.- The
keypad
key-scanning module. - Run-time customization of USB devices.
- Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
_pixelbuf
is nowadafruit_pixelbuf
.colorwheel()
routine moved torainbowio
.supervisor.ticks_ms()
to allow easier time-keeping.- Simplifications to the RGB status LED codes.
- A clocking fix for a few samples of RP2040 boards.
- Rework of
vectorio
and some of its API.VectorShape
is no longer needed for user code. atexit
module.getpass
module.traceback
module.supervisor.get_previous_traceback()
.board.LED
now consistently present on all boards that have such an LED.PulseOut
no longer needs aPWMOut
.- Unicode filename support.
- Board ID is now in
boot_out.txt
and available asboard.board_id
. aesio
on for full builds by default.
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 our new 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-rc.1
The full commit log is here. A few changes before 7.0.0-rc.1 are included as well.
Fixes and enhancements
- Correct
sdioio
name. #5345. Thanks @dhalbert. - Enhance BLE file service. #5340. Thanks @tannewt.
- Fix 24-bit decoding in
bitmaptools.readinto()
. #5338. Thanks @lesamouraipourpre. - Update TinyUSB to pass compliance test suite. #5337, #5286, #5268. Thanks @hathach and @tannewt.
- Fix use of allocations for
get_previous_traceback()
. #5333. Thanks @microdev1. - Consistently validate
VectorShape
location properties. #5327. Thanks @lesamouraipourpre. - BLE: do not scan and advertise simultaneously. #5321. Thanks @tannewt.
- Update frozen libraries. #5314, #5288. Thanks @dhalbert and @UnexpectedMaker.
- Do not use translated messages for REPL messages read by editors. #5308. Thanks @microdev1.
- Add
board.board_id
andboard.__name__
. #5299. Thanks @Neradoc. aesio
is now available on more builds. #5293. Thanks @microdev1.- BLE workflow fix. #5284. Thanks @tannewt.
- Move
paralleldisplay
to its own module. #5260. Thanks @jepler.
Port and board-specific changes
nRF
- Correct
I2SOut
pin checking. #5326. Thanks @dhalbert. - Fix builds for use with gcc 11.2. (We still use gcc 10.2.1 for production.) #5319. Thanks @tannewt.
- Fix
watchdog
crashes. #5272. Thanks @tannewt.
RP2040
- Enable use of
WFI
when idling. #5341. Thanks @tannewt and @urish. - Implement
microcontroller.Processor.reset_reason
. #5320. Thanks @rjp5th. - Fix
I2SOut
audio. #5310. Thanks @dhalbert.
ESP32-S2
Spresense
- Update SDK to 2.3.0. #5336. Thanks @kamtom480.
- Update TinyUSB to fix USB MSC issue. #5303. Thanks @kamtom480.
STM32
Individual Boards
- LilyGo T8 S2 ST7789: Add pins. #5279. Thanks @microdev1.
- Nordic PCA10100: shrink flash size. #5339. Thanks @tannewt.
- UnexpectedMaker TinyS2: add
_stage
. #5289. Thanks @UnexpectedMaker.
New boards Since 6.3.0
- ARAMCON2 Badge. #4627. Thanks @aramcon-badge.
- ATMegaZero ESP32-S2. #4634. Thanks @eddieespinal.
- Adafruit LED Glasses nRF52840 Driver. #5224, #5265, #5326. Thanks @dhalbert and @ladyada.
- Adafruit MacroPad RP2040. #4770, #4864. Thanks @ladyada.
- AiThinker ESP-12K NodeMCU. #5149. Thanks @codetyphon.
- Arduino Nano RP2040 Connect. #4802. Thanks @BlitzCityDIY.
- BlueMicro840. #5114. Thanks @jpconstantineau.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- Challenger RP2040 WiFi. #5323. Thanks @PontusO.
- CrumpSpace CrumpS2. #5143. Thanks @tylercrumpton.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- EncoderPad RP2040. #5247 Thanks @jpconstantineau.
- Espressif HMI DevKit 1. Thanks @jepler.
- Espressif HMI Development Kit. #5335. Thanks @skieast.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
- Gravitech Cucumber M. #5097. Thanks @anecdata.
- Gravitech Cucumber MS. #5097. Thanks @anecdata.
- Gravitech Cucumber R. #5097. Thanks @anecdata.
- Gravitech Cucumber RS. #5097. Thanks @anecdata.
- Lolin Mini S2. #5239, #5297. Thanks @durapensa.
- micro:bit V2 (first BLE-only board). #5002. Thanks @tannewt.
- Morpheans MorphESP-240. #5129. Thanks @skieast.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- Oak Development Technologies PixelWing ESP32-S2. #5156. Thanks @skerr92.
- Pimoroni Interstate 75. #5099. Thanks @ZodiusInfuser.
- Pimoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- Pimoroni Plasma 2040. #5099. Thanks @ZodiusInfuser.
- RayTac MDBT50Q-RX nRF52840 dongle. #5095. Thanks @dhalbert.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- SparkFun MicroMod STM32. #5060. Thanks @cdwilson.
- UnexpectedMaker Feather S2 Neo. #5294. Thanks @UnexpectedMaker.
- WarmBit BluePixel nRF52840. #5229 Thanks @warmbit.
Documentation
- Update documentation for
vectorio
. #5330. Thanks @lesamouraipourpre. - Remove remaining reference to
settings.py
. #5324. Thanks @Neradoc. - Add required Python packages to build documentation. #5322. Thanks @rdoursenaud.
- Add frozen library information for each board. #5304. Thanks @sommersoft.
- Update
ColorConverter
documentation. #5295. Thanks @lesamouraipourpre. - Update
Display.refresh()
documentation. #5292. Thanks @lesamouraipourpre. - Document
ParallelBus.frequency
. #5290. Thanks @jepler. - Update
TileGrid
argument types. #5285. Thanks @FoamyGuy.
Build and infrastructure changes
- Rename
esp32s2
port directory toespressif
, to handle future chips. #5342. Thanks @tannewt. - Only build boards or ports that have changed. #5312, #5238. Thanks @tannewt.
- Add test for
traceback
. #5296. Thanks @microdev1. - Fix link templates. #5284. Thanks @tannewt.
- Use
MP_REGISTER_MODULE
for more built-in modules. #5281. Thanks @capellini. - Add
0x
prefix on%p
uses inprintf()
. #5263. Thanks @jepler.
Translation additions and improvements
- Thanks for translations:
- @hexthat (Chinese Pinyin)
- @lesamouraipourpre (English UK)
Breaking changes and deprecations since 6.x
- The RGB status LED codes have changed for clarity and to save power.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
.colorwheel()
has been moved from_pixelbuf
torainbowio
.displayio.Group
no longer has amax_size
parameter.vectorio
:Rectangle
,Circle
, andPolygon
are added directly to aGroup
;VectorShape
is not needed.- Using a
PWMOut
forPulseOut
is deprecated and will be removed in 8.0.0. gamepad
is removed: usekeypad
.gamepadshift
is still present but will be removed in 8.0.0.settings.py
andsettings.txt
are no longer alternative names forboot.py
.- The default for
displayio.Display.refresh(..., minimimum_frames_per_second, ...)
is now 0. displayio.Display()
argumentset_vertical_scroll
argument is deprecated and will be removed in 8.0.0.displayio.ParallelBus
is now available asparallelbus.ParallelBus
and will be removed fromdisplayio
in 8.0.0.busio.OneWire
/bitbangio.OneWire
is now available asonewireio.OneWire
and will be removed frombusio
andbitbangio
in 8.0.0.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.3.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
This release is based on MicroPython 1.16. Support upstream Micr...
CircuitPython 7.0.0 Release Candidate 1
This is CircuitPython 7.0.0-rc.1, the second release candidate for CircuitPython 7.0.0 with a TinyUSB update to fix a critical USB issue on RP2040. We believe it is stable, but want to give time for further testing.\
Notable additions to 7.0.0 since 6.3.0 include:
- Support for the CircuitPython development workflow over BLE.
- Camera support on ESP32S2.
qrio
: QR code decoding.- The
keypad
key-scanning module. - Run-time customization of USB devices.
- Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
_pixelbuf
is nowadafruit_pixelbuf
.colorwheel()
routine moved torainbowio
.supervisor.ticks_ms()
to allow easier time-keeping.- Simplifications to the RGB status LED codes.
- A clocking fix for a few samples of RP2040 boards.
- Rework of
vectorio
and some of its API.VectorShape
is no longer needed for user code. atexit
module.getpass
module.traceback
module.supervisor.get_previous_traceback()
.board.LED
now consistently present on all boards that have such an LED.PulseOut
no longer needs aPWMOut
.- Unicode filename support.
- Board ID is now in
boot_out.txt
and available asboard.board_id
. aesio
on for full builds by default.
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 our new 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-beta.0
The full commit log is here.
Fixes and enhancements
- Fix USB HID custom devices. #5214 Thanks to @dhalbert and @fasteddy516
- Add
displayio.EPaperDisplay.update_refresh_mode
for changing the refresh settings. Thanks to @amit-bsides displayio.ParallelBus
is now available asparallelbus.ParallelBus
and will be removed fromdisplayio
in 8.0.0. Thanks to @jepler- Add
0x
prefix when printing%p
to match CPython. Thanks to @jepler - Frozen stage library now uses
keypad
. #5264 Thanks to @deshipu - Board ID is now in
boot_out.txt
and available asboard.board_id
. #5222 Thanks to @Neradoc - Fix WaveFile validation. #5234 Thanks to @dhalbert
- Support multiple DotStars as status LEDs. #5219 Thanks to @tannewt
- Updated TinyUSB to improve USB compliance. Thanks to @hathach
- Enable
aesio
for full builds. Thanks to @microdev1 - Update frozen NeoPixel library. Thanks to @UnexpectedMaker
Port and board-specific changes
nRF
- Fix two hard crashes with watchdog use. Thanks to @tannewt and @mrdalgaard
- TinyUSB improvements based on USB compliance testing. Thanks to @hathach
- Fix light sleep early wakeup on pending USB serial. #5273 Thanks to @tannewt and @mrdalgaard
- BLE workflow uses unique UUIDs for serial instead of the Nordic UUIDs. #5271 Thanks to @tannewt
- Fix crash due to shared external interrupts. #5253 Thanks to @tannewt
RP2040
- Make PIO interruptibility configurable. #5243 Thanks to @dhalbert
- Stop PIO on deinit. #5244 Thanks to @dhalbert
- Fix
countio
resetting. #5255 Thanks to @tannewt - Fix unlikely USB race that delayed USB enumeration. #5238 Thanks to @tannewt
- V2 BLE Workflow that changes delete to recurse. #5217 Thanks to @tannewt
- Fix audio sample rate calculation. #5218 Thanks to @jepler
- Fix DEBUG builds. #5210 Thanks to @DavePutz
ESP32-S2
- Fix rare (but reproducible) hang due to heap metadata placement. #5245 Thanks to @jepler, @jfurcean, @tannewt
- Update to newer ESP IDF 4.3 #5250 Thanks to @tannewt
- Fix I2CDisplay crash. #5220 Thanks to @tannewt
STM32
Individual Boards
- Add BATTERY pin to
lilygo-t8-s2-st7789
. #5278 Thanks to @skieast - Add
_stage
module to TinyS2 build. Thanks to @UnexpectedMaker
New boards Since 6.3.0
- Adafruit MacroPad RP2040. #4770, #4864. Thanks @ladyada.
- AiThinker ESP-12K NodeMCU. #5149. Thanks @codetyphon.
- Arduino Nano RP2040 Connect. #4802. Thanks @BlitzCityDIY.
- ARAMCON2 Badge. #4627. Thanks @aramcon-badge.
- ATMegaZero ESP32-S2. #4634. Thanks @eddieespinal.
- BlueMicro840. #5114. Thanks @jpconstantineau.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- CrumpSpace CrumpS2. #5143. Thanks @tylercrumpton.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
- Gravitech Cucumber M. #5097. Thanks @anecdata.
- Gravitech Cucumber MS. #5097. Thanks @anecdata.
- Gravitech Cucumber R. #5097. Thanks @anecdata.
- Gravitech Cucumber RS. #5097. Thanks @anecdata.
- micro:bit V2 (first BLE-only board). #5002. Thanks @tannewt.
- Morpheans MorphESP-240. #5129. Thanks @skieast.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- Oak Development Technologies PixelWing ESP32-S2. #5156. Thanks @skerr92.
- Pimoroni Interstate 75. #5099. Thanks @ZodiusInfuser.
- Pimoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- Pimoroni Plasma 2040. #5099. Thanks @ZodiusInfuser.
- RayTac MDBT50Q-RX nRF52840 dongle. #5095. Thanks @dhalbert.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- SparkFun MicroMod STM32. #5060. Thanks @cdwilson.
- Lolin Mini S2. #5239 Thanks to @durapensa
- EncoderPad RP2040. #5247 Thanks to @jpconstantineau
- WarmBit BluePixel nRF52840. #5229 Thanks to @warmbit
- Adafruit LED Glasses nRF52840 Driver. #5224 Thanks to @dhalbert
- Espressif HMI DevKit 1. Thanks to @jepler
- UnexpectedMaker Feather S2 Neo. Thanks to @UnexpectedMaker
Documentation
- TileGrid doc string improvements. #5280 Thanks to @FoamyGuy
- Fixes to displayio docs. Thanks to @lesamouraipourpre
Build and infrastructure changes
- Switch to MP_REGISTER_MODULE. Thanks to @capellini
- Fix
gen_display_resources.py
crash. #5275 Thanks to @lesamouraipourpre - Allow for disabling safe mode wait at build time. #5270 Thanks to @deshipu
- Size improvements. Thanks to @jepler, @dhalbert and @tannewt
Translation additions and improvements
Breaking changes and deprecations since 6.x
- The RGB status LED codes have changed for clarity and to save power.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
.colorwheel()
has been moved from_pixelbuf
torainbowio
.displayio.Group
no longer has amax_size
parameter.vectorio
:Rectangle
,Circle
, andPolygon
are added directly to aGroup
;VectorShape
is not needed.- Using a
PWMOut
forPulseOut
is deprecated and will be removed in 8.0.0. gamepad
is removed: usekeypad
.gamepadshift
is still present but will be removed in 8.0.0.settings.py
andsettings.txt
are no longer alternative names forboot.py
.- The default for
displayio.Display.refresh(..., minimimum_frames_per_second, ...)
is now 0. displayio.Display()
argumentset_vertical_scroll
argument is deprecated and will be removed in 8.0.0.displayio.ParallelBus
is now available asparallelbus.ParallelBus
and will be removed fromdisplayio
in 8.0.0.busio.OneWire
/bitbangio.OneWire
is now available asonewireio.OneWire
and will be removed frombusio
andbitbangio
in 8.0.0.
Known issues
- I2SOut on the Raspberry Pi may not play samples and WaveFiles correctly. #5283
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.3.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
This release is based on MicroPython 1.16. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
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 our new Welcome to CircuitPython! guide. To install the latest libraries, see ...
CircuitPython 7.0.0 Release Candidate 0
This release will not be posted to the website due to mass storage flakiness on the RP2040. Stay tuned for an rc.1.
This is CircuitPython 7.0.0-rc.0, the initial release candidate for CircuitPython 7.0.0. We believe it is stable, but want to give time for further testing.
Notable additions to 7.0.0 since 6.3.0 include:
- Support for the CircuitPython development workflow over BLE.
- Camera support on ESP32S2.
qrio
: QR code decoding.- The
keypad
key-scanning module. - Run-time customization of USB devices.
- Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
_pixelbuf
is nowadafruit_pixelbuf
.colorwheel()
routine moved torainbowio
.supervisor.ticks_ms()
to allow easier time-keeping.- Simplifications to the RGB status LED codes.
- A clocking fix for a few samples of RP2040 boards.
- Rework of
vectorio
and some of its API.VectorShape
is no longer needed for user code. atexit
module.getpass
module.traceback
module.supervisor.get_previous_traceback()
.board.LED
now consistently present on all boards that have such an LED.PulseOut
no longer needs aPWMOut
.- Unicode filename support.
- Board ID is now in
boot_out.txt
and available asboard.board_id
.
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 our new 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-beta.0
The full commit log is here.
Fixes and enhancements
- Fix USB HID custom devices. #5214 Thanks to @dhalbert and @fasteddy516
- Add
displayio.
for changing the refresh settings. Thanks to @amit-bsides displayio.ParallelBus
is now available asparallelbus.ParallelBus
and will be removed fromdisplayio
in 8.0.0. Thanks to @jepler- Add
0x
prefix when printing%p
to match CPython. Thanks to @jepler - Frozen stage library now uses
keypad
. #5264 Thanks to @deshipu - Board ID is now in
boot_out.txt
and available asboard.board_id
. #5222 Thanks to @Neradoc - Fix WaveFile validation. #5234 Thanks to @dhalbert
- Support multiple DotStars as status LEDs. #5219 Thanks to @tannewt
Port and board-specific changes
nRF
- Fix two hard crashes with watchdog use. Thanks to @tannewt and @mrdalgaard
- TinyUSB improvements based on USB compliance testing. Thanks to @hathach
- Fix light sleep early wakeup on pending USB serial. #5273 Thanks to @tannewt and @mrdalgaard
- BLE workflow uses unique UUIDs for serial instead of the Nordic UUIDs. #5271 Thanks to @tannewt
- Fix crash due to shared external interrupts. #5253 Thanks to @tannewt
RP2040
- Make PIO interruptibility configurable. #5243 Thanks to @dhalbert
- Stop PIO on deinit. #5244 Thanks to @dhalbert
- Fix
countio
resetting. #5255 Thanks to @tannewt - Fix unlikely USB race that delayed USB enumeration. #5238 Thanks to @tannewt
- V2 BLE Workflow that changes delete to recurse. #5217 Thanks to @tannewt
- Fix audio sample rate calculation. #5218 Thanks to @jepler
- Fix DEBUG builds. #5210 Thanks to @DavePutz
ESP32-S2
- Fix rare (but reproducible) hang due to heap metadata placement. #5245 Thanks to @jepler, @jfurcean, @tannewt
- Update to newer ESP IDF 4.3 #5250 Thanks to @tannewt
- Fix I2CDisplay crash. #5220 Thanks to @tannewt
STM32
Individual Boards
New boards Since 6.3.0
- Adafruit MacroPad RP2040. #4770, #4864. Thanks @ladyada.
- AiThinker ESP-12K NodeMCU. #5149. Thanks @codetyphon.
- Arduino Nano RP2040 Connect. #4802. Thanks @BlitzCityDIY.
- ARAMCON2 Badge. #4627. Thanks @aramcon-badge.
- ATMegaZero ESP32-S2. #4634. Thanks @eddieespinal.
- BlueMicro840. #5114. Thanks @jpconstantineau.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- CrumpSpace CrumpS2. #5143. Thanks @tylercrumpton.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
- Gravitech Cucumber M. #5097. Thanks @anecdata.
- Gravitech Cucumber MS. #5097. Thanks @anecdata.
- Gravitech Cucumber R. #5097. Thanks @anecdata.
- Gravitech Cucumber RS. #5097. Thanks @anecdata.
- micro:bit V2 (first BLE-only board). #5002. Thanks @tannewt.
- Morpheans MorphESP-240. #5129. Thanks @skieast.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- Oak Development Technologies PixelWing ESP32-S2. #5156. Thanks @skerr92.
- Pimoroni Interstate 75. #5099. Thanks @ZodiusInfuser.
- Pimoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- Pimoroni Plasma 2040. #5099. Thanks @ZodiusInfuser.
- RayTac MDBT50Q-RX nRF52840 dongle. #5095. Thanks @dhalbert.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- SparkFun MicroMod STM32. #5060. Thanks @cdwilson.
- Lolin Mini S2. #5239 Thanks to @durapensa
- EncoderPad RP2040. #5247 Thanks to @jpconstantineau
- WarmBit BluePixel nRF52840. #5229 Thanks to @warmbit
- Adafruit LED Glasses nRF52840 Driver. #5224 Thanks to @dhalbert
- Espressif HMI DevKit 1. Thanks to @jepler
Documentation
- TileGrid doc string improvements. #5280 Thanks to @FoamyGuy
- Fixes to FourWire docs. Thanks to @lesamouraipourpre
Build and infrastructure changes
- Switch to MP_REGISTER_MODULE. Thanks to @capellini
- Fix
gen_display_resources.py
crash. #5275 Thanks to @lesamouraipourpre - Allow for disabling safe mode wait at build time. #5270 Thanks to @deshipu
- Size improvements. Thanks to @jepler, @dhalbert and @tannewt
Translation additions and improvements
Breaking changes and deprecations since 6.x
- The RGB status LED codes have changed for clarity and to save power.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
.colorwheel()
has been moved from_pixelbuf
torainbowio
.displayio.Group
no longer has amax_size
parameter.vectorio
:Rectangle
,Circle
, andPolygon
are added directly to aGroup
;VectorShape
is not needed.- Using a
PWMOut
forPulseOut
is deprecated and will be removed in 8.0.0. gamepad
is removed: usekeypad
.gamepadshift
is still present but will be removed in 8.0.0.settings.py
andsettings.txt
are no longer alternative names forboot.py
.- The default for
displayio.Display.refresh(..., minimimum_frames_per_second, ...)
is now 0. displayio.Display()
argumentset_vertical_scroll
argument is deprecated and will be removed in 8.0.0.displayio.ParallelBus
is now available asparallelbus.ParallelBus
and will be removed fromdisplayio
in 8.0.0.busio.OneWire
/bitbangio.OneWire
is now available asonewireio.OneWire
and will be removed frombusio
andbitbangio
in 8.0.0.
Known issues
- I2SOut on the Raspberry Pi may not play samples and WaveFiles correctly. #5283
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.3.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
This release is based on MicroPython 1.16. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
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 our new 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 con...
CircuitPython 7.0.0 Beta 0
This is CircuitPython 7.0.0-beta.0, the initial beta release for CircuitPython 7.0.0. It is relatively stable, but contains issues still to be addressed for 7.0.0. The Python API's it presents are not expected to change incompatibly before the final 7.0.0 release, though they may be augmented.
Notable additions to 7.0.0 since 6.3.0 include:
- Support for the CircuitPython development workflow over BLE.
- Camera support on ESP32S2.
qrio
: QR code decoding.- The
keypad
key-scanning module. - Run-time customization of USB devices.
- Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
_pixelbuf
is nowadafruit_pixelbuf
.colorwheel()
routine moved torainbowio
.supervisor.ticks_ms()
to allow easier time-keeping.- Simplifications to the RGB status LED codes.
- A clocking fix for a few samples of RP2040 boards.
- Rework of
vectorio
and some of its API.VectorShape
is no longer needed for user code. atexit
module.getpass
module.traceback
module.supervisor.get_previous_traceback()
.board.LED
now consistently present on all boards that have such an LED.PulseOut
no longer needs aPWMOut
.- Unicode filename support.
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 our new 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-alpha.6
The full commit log is here.
Fixes and enhancements
- Add
atexit
module. #5077. Thanks @microdev1. - Fix sorting in
displayio.Group
. #5203. Thanks @lesamouraipourpre. - Remove redundant routine
displayio_copy_coords()
. #5200. Thanks @lesamouraipourpre. - Turn on Unicode for FAT filesystems. #5171. Thanks @tannewt.
- Check whether background tasks need running before sleeping. #5182, #5202. Thanks @tannewt and @dhalbert.
- Move
bitbangio/busio.OneWire
toonewire
. #5139, #5188. Thanks @tannewt and @cwalther. canio
: Run background tasks while waiting for messages. #5175. Thanks @jepler.- Prevent duplicate listings in
help("modules")
. #5166. Thanks @jepler. - Check for duplicated pins in
keypad
. #5123. Thanks @gamblor21. - Fix crash on reload exceptions. #5152. Thanks @microdev1.
- Update TinyUSB submodule. #5172. Thanks @dhalbert.
- Support multiple reports per device in
usb_hid.Device
. #5151. Thanks @dhalbert. - Fix
audiomp3
playback stopping issue. #5165. Thanks @jepler. - Update
terminalio
ter-u12n.bdf font file. #5078. Thanks @rpavlik. - Reset timers separately from
pwmio
. #5127. Thanks @tannewt. - Increase transmit power when doing BLE workflow pairing. #5147. Thanks @tannewt.
displayio.Display.refresh()
minimimum_frames_per_second
default is now 0. Thanks @jepler.- Deprecate
displayio.Display()
set_vertical_scroll` argument. #5205. Thanks @jepler. - Add
bitmaptools.boundary_fill()
. #5145. Thanks @FoamyGuy.
Port and board-specific changes
nRF
RP2040
- Honor
write_value
inbusio.SPI
. #5173. Thanks @jepler. - Fix overly-restrictive RP2040 I2C pin check. #5174. Thanks @tannewt.
- Update TinyUSB submodule; includes RP2040 fixes. #5172. Thanks @dhalbert.
SAMx
- Check for I2C frequency values that are too low. #5190. Thanks @jepler.
- Use
PER
event for SAMD21 ticks. #5100. Thanks @tannewt. - Improve DMA-based audio. #5196. #Thanks @dhalbert.
Spresense
Individual Boards
- Adafruit Funhouse, Unexpected Maker microS2, and Particle Argon and Boron: fix status LED. #5161. Thanks @ZodiusInfuser and @dhalbert.
- Adafruit MacroPad: rename
SPEAKER_SHUTDOWN
toSPEAKER_ENABLE
. #5181. Thanks @kattni. - CP Sapling M0 RevB: fix name of
board.UART
. #5162. Thanks @rpavlik. - Nordic PCA10100: Remove
synthio
for space reasons. #5206. Thanks @microdev1. - Pimoroni boards: remove unneeded internal pin definitions. #5161. Thanks @ZodiusInfuser.
- Pimoroni Tiny2020: remove default
board
devices. #5160. Thanks @ZodiusInfuser.
New boards Since 6.3.0
- Adafruit MacroPad RP2040. #4770, #4864. Thanks @ladyada.
- AiThinker ESP-12K NodeMCU. #5149. Thanks @codetyphon.
- Arduino Nano RP2040 Connect. #4802. Thanks @BlitzCityDIY.
- ARAMCON2 Badge. #4627. Thanks @aramcon-badge.
- ATMegaZero ESP32-S2. #4634. Thanks @eddieespinal.
- BlueMicro840. #5114. Thanks @jpconstantineau.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- CrumpSpace CrumpS2. #5143. Thanks @tylercrumpton.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
- Gravitech Cucumber M. #5097. Thanks @anecdata.
- Gravitech Cucumber MS. #5097. Thanks @anecdata.
- Gravitech Cucumber R. #5097. Thanks @anecdata.
- Gravitech Cucumber RS. #5097. Thanks @anecdata.
- micro:bit V2 (first BLE-only board). #5002. Thanks @tannewt.
- Morpheans MorphESP-240. #5129. Thanks @skieast.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- Oak Development Technologies PixelWing ESP32-S2. #5156. Thanks @skerr92.
- Pimoroni Interstate 75. #5099. Thanks @ZodiusInfuser.
- Pimoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- Pimoroni Plasma 2040. #5099. Thanks @ZodiusInfuser.
- RayTac MDBT50Q-RX nRF52840 dongle. #5095. Thanks @dhalbert.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- SparkFun MicroMod STM32. #5060. Thanks @cdwilson.
Documentation
- Fix typo in README.rst. #5144. Thanks @rpavlik.
- Update
EPaperDisplay
constructor documentation. #5131. Thanks @lesamouraipourpre.
Build and infrastructure changes
- Allow customized setting of
MICROPY_CPYTHON_COMPAT
. #5157. Thanks @DavePutz and @nitz. - Check version of
uncrustify
. #5137. Thanks @jepler. - Update
tools/adabot
submodule. #5130. Thanks @dhalbert.
Translation additions and improvements
Breaking changes and deprecations since 6.x
- The RGB status LED codes have changed for clarity and to save power.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
.colorwheel()
has been moved from_pixelbuf
torainbowio
.displayio.Group
no longer has amax_size
parameter.vectorio
:Rectangle
,Circle
, andPolygon
are added directly to aGroup
;VectorShape
is not needed.- Using a
PWMOut
forPulseOut
is deprecated and will be removed in 8.0.0. gamepad
is removed: usekeypad
.gamepadshift
is still present but will be removed in 8.0.0.settings.py
andsettings.txt
are no longer alternative names forboot.py
.- The default for
displayio.Display.refresh(..., minimimum_frames_per_second, ...)
is now 0. displayio.Display()
argumentset_vertical_scroll
argument is deprecated and will be removed in 8.0.0.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.3.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
This release is based on MicroPython 1.16. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
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 our new 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 connectio...
CircuitPython 7.0.0 Alpha 6
This is CircuitPython 7.0.0-alpha.6, an alpha release for CircuitPython 7.0.0. It is relatively stable, but contains a number of issues still to be addressed for 7.0.0. The Python API's it presents may change.
Notable additions to 7.0.0 since 6.3.0 include:
- Support for the CircuitPython development workflow over BLE.
- Camera support on ESP32S2.
qrio
: QR code decoding.- The
keypad
key-scanning module. - Run-time customization of USB devices.
- Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
_pixelbuf
is nowadafruit_pixelbuf
.colorwheel()
routine moved torainbowio
.supervisor.ticks_ms()
to allow easier time-keeping.- Simplifications to the RGB status LED codes.
- A clocking fix for a few samples of RP2040 boards.
- Rework of
vectorio
and some of its API.VectorShape
is no longer needed for user code. getpass
module.traceback
module.board.LED
now consistently present on all boards that have such an LED.PulseOut
no longer needs aPWMOut
.supervisor.get_previous_traceback()
.
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 our new 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-alpha.5
The full commit log is here.
Fixes and enhancements
- Add
qrio
, which does QR code decoding. #5094. Thanks @jepler. vectorio
has been extensively reworked.VectorShape
is no longer needed for user code. #5087, #5090. Thanks @WarriorOfWire.- Add CPython-compatible
getpass
module. #5115. Thanks @microdev1. - Add CPython-compatible
traceback
module. #5072, #5115. Thanks @microdev1 and @jepler. - Allow disabling of BLE workflow. #5089. Thanks @tannewt.
PulseOut
now does not need to be created with aPWMOut
. Using aPWMOut
is deprecated. #5067. Thanks @tannewt.- Fix empty
boot_out.txt
. #5088. Thanks @cwalther. - Remove
gamepad
: usekeypad
instead. #5068. Thanks @dhalbert. - Remove
settings.py
andsettings.txt
as alternative names forboot.py
. #5065. Thanks @jepler. - Add
supervisor.get_previous_traceback()
. #5037. Thanks @hierophect. - Remove
OSError(0)
errors. #5036. Thanks @tannewt. - Remove obsolete
network
modules. #5036. Thanks @tannewt. - Allow multiple
PulseOut
instances. #5032. Thanks @DavePutz. - Remove
display.Group
'smax_size
parameter. #5040. Thanks @lesamouraipourpre.
Port and board-specific changes
- Add
board.LED
for all boards that should have it. #5066, #5112. Thanks @dhalbert and @NathanY3G.
ESP32S2
NRF
RP2040
- Fix crackly and erratic audio playback. #5079. Thanks @dhalbert.
- Add board-specific
pico-sdk
settings. #5085. Thanks @dhalbert. - Fix XOSC delay multiplier for Adafruit boards. #5085. Thanks @dhalbert.
- Allow specifying the JMP pin in
rp2io
. #5042. Thanks @NathanY3G.
SAMx
Spresense
- Update SDK to 2.2.0. #5069. Thanks @kamtom480.
STM32
- Add
alarm.SleepMemory
. #5083. Thanks @hierophect.
Individual Boards
- Adafruit Circuit Playground Express and Bluefruit: Use all ten NeoPixels for status. #5052. Thanks @tannewt.
- Adafruit MagTag: Use all four LEDs for status. #5075. Thanks @tannewt.
- Adafruit Proximity Trinkey: Add native
adafruit_busdevice
. #5058. Thanks @ladyada. - Arduino Nano RP2040 Connect: Add IS25LP128F flash chip support. #5055. Thanks @todbot.
- ATMegaZero ESP32-S2: Fix MOSI and MISO pin mappings. #5116. Thanks @eddieespinal.
- STM32F405: Fix CAN pin assignments. #5056. Thanks @jepler.
- STM32F411 BlackPill: Correct manufacturer. #5102. Thanks @evildave666.
- STM32F411 BlackPill with flash: Remove empty flash space. #5061. Thanks @evildave666.
- BDMICRO VINA-D51: Add MX25L12833F flash chip support. #5098. Thanks @bd34n.
New boards Since 6.3.0
- Adafruit MacroPad RP2040. #4770, #4864. Thanks @ladyada.
- Arduino Nano RP2040 Connect. #4802. Thanks @BlitzCityDIY.
- ARAMCON2 Badge. #4627. Thanks @aramcon-badge.
- ATMegaZero ESP32-S2. #4634. Thanks @eddieespinal.
- BlueMicro840. #5114. Thanks @jpconstantineau.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
- Gravitech Cucumber M. #5097. Thanks @anecdata.
- Gravitech Cucumber MS. #5097. Thanks @anecdata.
- Gravitech Cucumber R. #5097. Thanks @anecdata.
- Gravitech Cucumber RS. #5097. Thanks @anecdata.
- micro:bit V2 (first BLE-only board). #5002. Thanks @tannewt.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- PiMoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- RayTac MDBT50Q-RX nRF52840 dongle. #5095. Thanks @dhalbert.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- SparkFun MicroMod STM32. #5060. Thanks @cdwilson.
Documentation
- Add list of supported boards to each module's documentation page. #5054. Thanks @jepler.
- Move
ulab
documentation to correct locations. #5028. Thanks @jepler.
Build and infrastructure changes
- Print test failure information. #5093. Thanks @microdev1.
- Compress word offset table, reducing build size. #5107. Thanks @jepler.
- Unpin
sphinx-autoapi
version due to fixed bug. #5096. Thanks @jepler. - VID/PID checker script is now more flexible about repo hierarhcy. #5070. Thanks @jepler.
- Clean up obsolete TODO comments. #5050. Thanks @cwalther.
Translation additions and improvements
Breaking changes and deprecations since 6.x
- The RGB status LED codes have changed for clarity and to save power.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
.colorwheel()
has been moved from_pixelbuf
torainbowio
.display.Group
no longer has amax_size
parameter.vectorio
:Rectangle
,Circle
, andPolygon
are added directly to aGroup
;VectorShape
is not needed.- Using a
PWMOut
forPulseOut
is deprecated and will be removed in 8.0.0. gamepad
is removed: usekeypad
.gamepadshift
is still present but will be removed in 8.0.0.settings.py
andsettings.txt
are no longer alternative names forboot.py
.
Known issues
- i.MX boards such as the Teensy 4.0 are not working with 7.0.0 yet: #5086.
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.3.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
This release is based on MicroPython 1.16. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
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 our new 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).