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
- Fix fake deep-sleep issues. #5074. Thanks @tannewt.
NRF
- Fix fake deep-sleep issues. #5074. Thanks @tannewt.
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
- Audio playback improvements. #5079. Thanks @dhalbert.
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
- Thanks for translations:
- @bergdahl (Swedish)
- @Edrig (French)
- @wtuemura (Portuguese – Brazil)
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).