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 connection (the REPL).