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 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).