Releases: adafruit/circuitpython
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).
CircuitPython 7.0.0 Alpha 5
This is CircuitPython 7.0.0-alpha.5, 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.
- 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.
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.4
The full commit log is here.
Fixes and enhancements
- Fix timing issue with
keypad.KeyMatrix
. #5031. Thanks @dhalbert. - Disable blue-blink pairing delay on reset on non-BLE workflowboards. #5024. Thanks @tannewt.
- Update frozen libraries. #5022. Thanks @dhalbert.
- Add
microcontroller.RunMode.UF2
. #4925. Thanks @microdev1. - Fix memory error in OnDiskBitmap. Allow passing in a filename. #5017. Thanks @jepler.
- Restore default epoch to 1970. #4961. Thanks @dhalbert.
- Rename
ScanEntry.matches()
arg tomatch_all
. #5006. Thanks @tannewt. - Fix
keypad.EventQueue
type name and missing.overflowed
. #5011. Thanks @dhalbert. - Rename
_pixelbuf
toadafruit_pixelbuf
; keep old name as alias. #5010. Thanks @kattni. - Fix timestamp values when epoch is 2000. #4762. Thanks @Neradoc.
- Allow subclassing
busio.UART
. #3941. Thanks @AdamCummick. - Fix MIDI write error. #4995. Thanks @hathach.
- Add
rainbowio
forcolorwheel()
. #4976, #4991. Thanks @kattni. Add supervisor.ticks_ms()
to allow easier time-keeping, especially on non-longint builds. #4936. Thanks @jepler.
Port and board-specific changes
ESP32S2
- Add
RunMode
sUF2
,NORMAL
, andBOOTLOADER
. #4925. Thanks @microdev1.
NRF
RP2040
- Use the specified flash size as the default size. Still try to read the actual flash size if possible at run-time. #5035. Thanks @tannewt.
- Update pico-sdk to 1.2.0. #5030. Thanks @dhalbert.
- Fix PulseOut problems. #4911, #4937, #5019, #5025. Thanks @DavePutz.
- Allow multiple instances of PulseIn. #4975. Thanks @DavePutz.
- Stop PIO state machine before restarting. #4987. Thanks @DavePutz.
SAMx
- Do not crash when
busio.UART
constructor fails. #5026. Thanks @tannewt. - Remove
MICROPY_PORT_*
macros used inatmel-samd
. Donever_reset()
instead. #5007. Thanks @tannewt. - Fix AnalogOut pin handling. #4994. Thanks @bobthechemist.
- Allow board-specific internal filesystem sizes on SAMD21. #4977. Thanks @deshipu.
Individual Boards
- Fix flash size for Arduino Nano RP2040 Connect. #5035. Thanks @tannewt.
- Adafruit FunHouse: Reduce display SPI speed to fix display glitches. #4793. Thanks @kmatch98.
- pewpew10. Use
_pew.get_ticks()
for time tracking. #4980. Thanks @deshipu. - Add
board.LED
andboard.GP25
on Cytron Maker Pi Pico. #4981. Thanks @DavePutz.
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 @eddiespinal.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- micro:bit V2 (first BLE-only board). #5002. Thanks @tannewt.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- PiMoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
Documentation
Build and infrastructure changes
- Upload only PR merges and releases to S3. #5027. Thanks @tannewt.
- Fix stubs upload issue. #5015. Thanks @dhalbert.
- Improve stubs building. #4907. Thanks @jepler.
- Allow differing-length type objects to save space. #4903. Thanks @jepler.
- Use a much more accurate heuristic for
makeqstrdata
. #4978. Thanks @jepler.
Translation additions and improvements
Breaking changes 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
.
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).
CircuitPython 7.0.0 Alpha 4
This is CircuitPython 7.0.0-alpha.4, 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.
- The
keypad
key-scanning module. - Run-time customization of USB devices.
- Merging in of MicroPython fixes and enhancements as of MicroPython 1.16.
- Simplifications to the RGB status LED codes.
- A clocking fix for a few samples of RP2040 boards.
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 6.3.0
The full commit log is here.
Fixes and enhancements
- Provide for a BLE development workflow with BLE file transfer and a BLE serial connection. #4918, #4957. Thanks @tannewt.
- Add
keypad
module for scanning keys or buttons, key matrices, and shift-register keys. #4891. Thanks @dhalbert. - displayio support for BGR color modes. #4952. Thanks @jepler.
- Correct partial refresh of
displayio.TileGrid
. #4876. Thanks @t-ikegami. - Merge in MicroPython 1.16. #4897. Thanks @jepler.
- Fix handling of hidden objects in
displayio
. #4915. Thanks @Neradoc. - Allow constructing a
time.struct_time()
from anotherstruct_time
. #4931. Thanks @microdev1. - Fix buffer handling in
usb_cdc.Serial
. #4922. Thanks @dhalbert. - Update
ulab
to 3.0.0. #4881. Thanks @jepler. - Re-enable slice indices. #4857. Thanks @dunkmann00.
- Fix REPL move-cursor escape sequence. #4853. Thanks @t-ikegami.
- Fix bytes() and bytearray() input validation. #4947. Thanks @microdev1.
Port and board-specific changes
ESP32S2
- Implement
ParallelImageCapture
, to support cameras. #4880. Thanks @jepler. - Update esp-idf to v4.3. #4194. Thanks @askpatrickw.
- Fix
spi_never_reset()
. #4960. Thanks @microdev1. - Enable 'audiomixer' #4963. Thanks @rsbohn.
NRF
- Allow setting transmit power. #3493. Thanks @gabewillen.
- Update TinyUSB to fix CDC race condition. #4900. Thanks @hathach.
RP2040
- Add
alarm
module, implementingTimeAlarm
andPinAlarm
. #4816. Thanks @hierophect. - Fix
PulseOut
leaving pin high. #4911. Thanks @DavePutz. - Fix
PulseIn
pause and resume. #4859., Thanks @DavePutz. - Fix handling of two or more
PWMAudioOut
s. #4809. Thanks @DavePutz. - Release DMA channels after play has finished. #4958. Thanks @dhalbert.
- Fix some audio DMA issues. Disallow ctrl-C interrupts of SPI and PIO. #4974. Thanks @dhalbert.
SAMx
Individual Boards.
- Add MacroPad RP2040 display initialization. #4949. Thanks @deshipu.
- Improve MacroPad RP2040 pin definitions. #4941. Thanks @kattni.
- Fix missing
board.SPI()
on MacroPad RP2040. #4966. Thanks @dgriswo. - PewPew M4: use
keypad
instead ofgamepad
. #4942. Thanks @deshipu. - Fix pin assignments on Wio Terminal. #4890, #4913. Thanks @t-ikegami.
- Fix pin assignments on Unexpected Maker TinyS2. #4887. Thanks @mcauser2.
- Add pin alias to Adafruit Slider Trinkey. #4889. Thanks @kattni.
- Update ESP config for LILYGO TTGO T8 ESP32-S2. #4873. Thanks @netroy.
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 @eddiespinal.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- PiMoroni PGA2040. #4865. Thanks @ZodiusInfuser.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
- Espressif Kalgua v1.3. #4870. Thanks @jepler.
Documentation
- Fix
pulseio.PulseIn.__len__()
doc. #4948. Thanks @dmcomm. - Update
busio
andadafruit_bus-device
doc. #4928. Thanks @2bndy5. - Fix
displayio.Display.__init__()
doc. #4938. Thanks @dhalbert. - Describe more ports as stable, and improve README. #4860. Thanks @microdev1.
- Upload native module stubs to pypi. #4861. Thanks @FoamyGuy.
- Improve installation of stubs. #4878. Thanks @jepler.
- Correct
rp2io
pull direction doc. #4875. Thanks @benclifford. - Fix
TileGrid
doc. #4973. Thanks@lesamouraipourpre.
Build and infrastructure changes
- Convert to using issue forms instead of templates in GitHub. #4950. Thanks @ajs256.
- Add manual tests for
alarm
module. #4904. Thanks @hierophect. - Fix duplicate line in setup.py. #4906. Thanks @FoamyGuy.
- Fix build issue when
CIRCUITPY_USB
is off. #4858. Thanks @EmergReanimator. - Improve parallelism of
run_tests
, incorporating changes from MicroPython. #4855. Thanks @jepler. - Delete
ports/nrf/examples/
. #4972. Thanks @microdev1.
Translation additions and improvements
- Remove some wide characters not in our fonts. #4943. Thanks @jepler.
- Thanks for translations:
- @bergdahl (Swedish)
- @fede2cr (Spanish)
- @hexthat (Chinese - Pinyin)
- @wtuemura (Portuguese - Brazil)
Breaking changes since 6.x
OnDiskBitmap
can now usePalette
s. #4823. Thanks @jepler.- The RGB status LED codes have changed for clarity and to save power. #4743. Thanks @tannewt.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
. #4694. Thanks @dhalbert.- @v923z (German)
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.2.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).
CircuitPython 7.0.0 Alpha 3
This is CircuitPython 7.0.0-alpha.3, 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 include run-time customization of USB devices, merging in of MicroPython fixes and enhancements as of MicroPython 1.15, simplifications to the RGB status LED codes, and a clocking fix for a few samples of RP2040 boards.
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), nrf
, and stm
for the F4 family are stable. esp32s2
, raspberrypi
, and stm
for other STM chip families are 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 6.3.0
The full commit log is here.
Fixes and enhancements
- Fix
.bit_length()
to work with longint 0. #4845. Thanks @t-ikegami. - Update frozen libraries. #4843. Thanks @dhalbert.
- Merge in upstream MicroPython changes from MicroPython 1.10 through 1.15. #4646, #4649, #4690, #4693, #4744, #4749. Thanks @tannewt.
- Support for run-time customization of USB devices. #4848, #4689, #4720, #4725, #4730, #4734, #4746, #4798, #4800, #4819. Thanks @dhalbert.
OnDiskBitmap
can now usePalette
s. #4823. Thanks @jepler.- Correct comment in
persistentcode.c
. #4806. Thanks @lesamouraipourpre. - Fix error message for
ipaddress
. #4804. Thanks @bergdahl. - Fix return values from
ipaddress.IPv4Address
. #4792. Thanks @Neradoc. - Don't print "hard crash" on
USER_SAFE_MODE
. #4790. Thanks @Neradoc. - Fix
usb_hid
error messges. #4745. Thanks @ajs256. - Simplify the RGB status LED codes for clarity and to save power. #4743. Thanks @tannewt.
- Fix native module examples, added during MicroPython merge. #4732. Thanks @jepler.
- Avoid casts in
qstr
code. #4707. Thanks @tyomitch. - Implement
supervisor_workflow_active()
internally. #4698. Thanks @tyomitch. - Do not include
pulseio
on small builds. #4696. Thanks @dhalbert. - Remove PWMOut from
pulseio
. It is now only inpwmio
. #4694. Thanks @dhalbert. - Handle subclasses in
instance_subscr()
. #4688. Thanks @jepler. - Add
wifi.AuthMode
. #4685. Thanks @microdev1. - Fix uses of type-checking macros after MicroPython 1.11 merge. #4684. Thanks @hierophect.
- Wrap values from
PulseIn
when maximum length is exceeded. #4683. Thanks @DavePutz. - Increased possible
PulseIn
length to about 65 ms. #4688. Thanks @DavePutz. - Fix buffer indexing in
PulseIn
. #4666. Thanks @DavePutz. - Add wifi access point modes. #4650. Thanks @anecdata.
- Autocomplete builtin modules in REPL. #4548, #4608. Thanks @tyomitch.
- Improve internal API for sleep. #4606. Thanks @hierophect.
- BLE: assume maximum characteristic size when a client. #4604. Thanks @tannewt.
- Remove specfic references to CircuitPython or MicroPython in errors. #4589. Thanks @hugodahl.
- Separate hash and length info from strings to allow overlapping. #4583. Thanks @tyomitch.
- Fix and refactor
rotaryio
implementations. #4559, #4580. Thanks @jepler. - Don't block serial output during an interrupt. #4579. Thanks @tannewt.
- Improve
PacketBuffer
. #4578. Thanks @tannewt. - Check for overflow errors in
re
. #4572. Thanks @jepler. - Simplify qstr compression heuristic. #4564. Thanks @tyomitch.
- Fix bug in message decompression. #4553. Thanks @jepler.
- Fix
displayio.BitMap
when modified via buffer protocol. #4549. Thanks @jepler. - Update
ulab
. #4533, #4547. Thanks @jepler. - Improve confusing error messages. #4543. Thanks @bergdahl.
- Update tinyusb to fix MIDI issue. #4538. Thanks @hathach.
- BLE: Fix pairing and a crash. #4522. Thanks @tannewt.
Port and board-specific changes
ESP32S2
i.MX
NRF
RP2040
- Fix status LED on Pimoroni Tiny 2040 and PicoSystem. #4796. Thanks @Neradoc.
- Fix RP2040 safe mode. #4783. Thanks @tannewt.
- Implement
PulseOut
for RP2040. #4773. Thanks @DavePutz. - Lengthen crystal oscillator startup time on RP2040. adafruit/pico-sdk#4, #4847. Thanks @dhalbert.
- Add PIO state-machine deinit. #4662. Thanks @dhalbert.
SAMx
- Support
DEBUG
UART on ATSAME5x. #4772. Thanks @EmergReanimator. - Correct SAMD21
PulseOut
timing. #4655. Thanks @DavePutz. - Add `ParallelImageCapture for ATSAME5x. #4635. Thanks @jepler.
- Enable specific modules based on chip family. #4591. Thanks @jepler.
Spresense
- Fix USB CDC and MS on Spresense. #4774. Thanks @kamtom480.
Trinkeys
Individual Boards.
- MagTag: Remove
board.SPI()
and rename display-only pins. #4695. Thanks @dhalbert. - Add pins to Wio Terminal. #4679. Thanks @t-ikegami.
- Improve DotStar pin names. #4674. Thanks @kattni.
- Release display on FunHouse when entering deep sleep. #4673. Thanks @makermelissa.
- Fix "QT Py" naming. #4577. Thanks @dglaude.
New boards Since 6.3.0
- ATMegaZero ESP32-S2. #4634. Thanks @eddiespinal.
- Adafruit MacroPad RP2040. #4770. Thanks @ladyada.
- Arduino Nano RP2040 Connect. #4802. Thanks @BlitzCityDIY.
- CP Sapling Rev B. #4677. Thanks @skerr92.
- Cytron Maker Pi RP2040. #4824. Thanks @CytronTechnologies.
- Muselab nanoESP32-S2 WROVER. #4834. Thanks @reppad.
- senseBox MCU. #4576. Thanks @felixerdy.
- SparkFun MicroMod SAMD51. #4852. Thanks @stonehippo.
Documentation
- Fix typos in
usb_hid
. #4840. Thanks @jepler. - Update documentation about incompatible
.mpy
files. #4805. Thanks @lesamouraipourpre. - Improve Design Guide. #4643, #4652, #4678, #4709, #4767. Thanks @jposada202020.
- Fix
struct_time
documentation. #4741. Thanks @lesamouraipourpre. - Fix typo in
gamepadshift
. #4721. Thanks @dhalbert. - Unify naming of "CircuitPython" without a space between words. #4716. Thanks @tyomitch.
- Fixes in
displayio
. #4650, #4651. Thanks @lesamouraipourpre. - Add module filtering field in Support Matrix in readthedocs. #4617. Thanks @Neradoc.
- Remove RP2040 PIO
colocate
reference. #4566. Thanks @tannewt. - Add aliased boards and modules to the Support Matrix. #4539. Thanks @Neradoc.
- Improve stubs package. #4844. Thanks @FoamyGuy.
Build and infrastructure changes
- Remove Adafruit boards that did not turn into products. #4812. Thanks @dhalbert.
- Generate mpy-cross builds for MacOS M1 machines. #4835, #4836. Thanks @jepler.
- Add trial CI Windows builds with MSYS2. #4826. Thanks @jepler.
- Print more firmware memory information on ESP32-S2. #4763. Thanks @jepler.
- Fix builds to support cp1252 code pages. #4751. Thanks @jepler.
- Fix stray warning on MacOS builds. #4740. Thanks @jepler.
- Make
.mpy
version info include origin as CircuitPython. #4713. Thanks @jepler. - Add
aarch64
version ofmpy-cross
for use on RPi 64-bit OS's. #4712. Thanks @jepler. - Ensure all appropriate code files are being consider for reformatting. #4692. Thanks @jepler.
- Correct builds with USB turned off. #4619. Thanks @tyomitch.
- Extract failed builds into a convenient list. #4605. Thanks @tannewt.
- Remove unstable release from circuitpython.org when superseded by stable release. #4594. Thanks @Neradoc.
Translation additions and improvements
- Translation additions and improvements. Thanks:
- @bergdahl (Swedish)
- @Edrig (French)
- @fede2cr (Spanish)
- @hexthat (Chinese - Pinyin)
- @hugodahl (French)
- @jposada202020 (Spanish)
- @rezaalmanda (Indonesian)
- @wtuemura (Portuguese - Brazil)
Breaking changes since 6.x
OnDiskBitmap
can now usePalette
s. #4823. Thanks @jepler.- The RGB status LED codes have changed for clarity and to save power. #4743. Thanks @tannewt.
PWMOut
is now only inpwmio
, and is no longer in bothpulseio
andpwomio
. #4694. Thanks @dhalbert.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.2.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.15. Support upstream MicroPython by purchasing [a PyBoard](...
CircuitPython 6.3.0
This is CircuitPython 6.3.0, the latest minor revision of CircuitPython, and is a new stable release. Notable changes since 6.2.0 include many new boards, many corrections to existing boards, and the addition of a consistent board.LED
to most boards. See Port status below for details on port stability for each port, and Known issues for known problems. If you find any issues with this release, please file an issue.
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), nrf
, and stm
for the F4 family are stable. esp32s2
, raspberrypi
, and stm
for other STM chip families are 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 6.2.0
The full commit log is here. Nearly all the changes in 6.3.0 were backported from the main
branch and will be present in 7.0.0 releases.
Fixes and enhancements
- Fix overwrite of
run_reason
. #4708. Thanks @hierophect. - Update frozen libraries.
adafruit_hid
is deliberately held at 4.3.0, instead of 5.0.0. Thanks @dhalbert. - Do not leave
board.I2C()
locked on soft reload. #4801. Thanks @dhalbert. - Fix GC problem in ulab. Fixes #4753. v923z/micropython-ulab#387. Thanks @v923z.
Port and board-specific changes
- Add
LED
pin to many Adafruit boards. #4742. Thanks @kattni. - Correct pins for UM TinyS2. #4534. Thanks @UnexpectedMaker.
- BDMicro VINA-D51 updates. #4561. Thanks @bd34n.
- QT Py RP2040
D3
pin correction. #4581. Thanks @dhalbert. - STM32F4 Black Pill add flash chip. #4582. Thanks @kevinlutzer.
- Turn storage back on for NeoPixel Trinkey. #4599. Thanks @dhalbert.-
- Add
VBUS_SENSE
pin to Pi Pico. #4624. Thanks @dhalbert. - Fix
board.I2C()
pins for Feather M0 Adalogger. #4631. Thanks @anecdata. - Adafruit ItsyBitsy RP2040 corrections. #4687. Thanks @kattni.
- Fix crystal settings for Espruino Pico. #4719. Thanks @hierophect.-
- Fix pins on SparkFun Pro Micro RP2040. #4733. Thanks @nm3210.
- Free up PA00 and PA01 on Big Honking Button. #4735. Thanks @bleything.
- Fix FunHouse name. #4736. Thanks @Neradoc.
- Fix overwrite of run_reason. #4708. Thanks @hierophect.
- Update SparkFun ThingPlus RP2040 pins. #4691. Thanks @nm3210.
- Fix SparkFun MicroMod RP2040 pins. #4663. Thanks @zapwizard.
- Lengthen crystal oscillator startup time on RP2040. adafruit/pico-sdk#4. Thanks @dhalbert.
New boards
- Adafruit NeoKey Trinkey. #4595. Thanks @ladyada.
- Adafruit ProxLight Trinkey. #4594. Thanks @ladyada.
- Adafruit Rotary Trinkey. #4594. Thanks @ladyada.
- Adafruit Slide Trinkey. #4595. Thanks @ladyada.
- Adafruit QT RP2040 Trinkey. #4750. Thanks @ladyada.
- ARAMCON2 Badge. #4627. Thanks @bmeisels.
- Arduino Nano RP2040. #4802. Thanks @BlitzCityDIY.
- BDMicro VINA-D51 updates. #4561. Thanks @bd34n.
- HunterCat NFC board. #4545. Thanks @sabas1080
- Pimoroni Pico LiPo 4MB. #4612, #4633. Thanks @ZodiusInfuser.
- Pimoroni Pico LiPo 16MB. #4612, #4633. Thanks @ZodiusInfuser.
- SparkFun MicroMod RP2040. #4625. Thanks @stonehippo.
Documentation
Build and infrastructure changes
(None in this release)
Translation additions and improvements
(None in this release)
Breaking changes since 5.x
i2cslave
is nowi2cperipheral
and the class in it is changed as well.- The
stop
kwarg has been removed fromI2C.writeto()
. If no stop is desired, then usewriteto_then_readfrom
. - The default speed of busio.I2C and board.I2C is now 100khz, not 400khz as before. Use
busio.I2C
to set the speed explicitly. _bleio.ConnectionError
has been removed. Code will now raise the nativeConnectionError
instead.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.2.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.9.4 @25ae98f. 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).
CircuitPython 6.3.0 Release Candidate 0
This release, 6.3.0-rc.0, is the first release candidate for the stable release of CircuitPython 6.3.0. Notable changes since 6.2.0 include many new boards, many corrections to existing boards, the addition of a consistent board.LED
to most boards, and a timing fix for the certain samples of RP2040 boards. See Port status below for details on port stability for each port, and Known issues for known problems. If you find any issues with this release, please file an issue.
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), nrf
, and stm
for the F4 family are stable. esp32s2
, raspberrypi
, and stm
for other STM chip families are 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 6.2.0
The full commit log is here. Nearly all the changes in 6.3.0 were backported from the main
branch and will be present in 7.0.0 releases.
Fixes and enhancements
- Fix overwrite of
run_reason
. #4708. Thanks @hierophect. - Update frozen libraries.
adafruit_hid
is deliberately held at 4.3.0, instead of 5.0.0. Thanks @dhalbert. - Do not leave
board.I2C()
locked on soft reload. #4801. Thanks @dhalbert. - Fix GC problem in ulab. Fixes #4753. v923z/micropython-ulab#387. Thanks @v923z.
Port and board-specific changes
- Add
LED
pin to many Adafruit boards. #4742. Thanks @kattni. - Correct pins for UM TinyS2. #4534. Thanks @UnexpectedMaker.
- BDMicro VINA-D51 updates. #4561. Thanks @bd34n.
- QT Py RP2040
D3
pin correction. #4581. Thanks @dhalbert. - STM32F4 Black Pill add flash chip. #4582. Thanks @kevinlutzer.
- Turn storage back on for NeoPixel Trinkey. #4599. Thanks @dhalbert.-
- Add
VBUS_SENSE
pin to Pi Pico. #4624. Thanks @dhalbert. - Fix
board.I2C()
pins for Feather M0 Adalogger. #4631. Thanks @anecdata. - Adafruit ItsyBitsy RP2040 corrections. #4687. Thanks @kattni.
- Fix crystal settings for Espruino Pico. #4719. Thanks @hierophect.-
- Fix pins on SparkFun Pro Micro RP2040. #4733. Thanks @nm3210.
- Free up PA00 and PA01 on Big Honking Button. #4735. Thanks @bleything.
- Fix FunHouse name. #4736. Thanks @Neradoc.
- Fix overwrite of run_reason. #4708. Thanks @hierophect.
- Update SparkFun ThingPlus RP2040 pins. #4691. Thanks @nm3210.
- Fix SparkFun MicroMod RP2040 pins. #4663. Thanks @zapwizard.
- Lengthen crystal oscillator startup time on RP2040. adafruit/pico-sdk#4. Thanks @dhalbert.
New boards
- Adafruit NeoKey Trinkey. #4595. Thanks @ladyada.
- Adafruit ProxLight Trinkey. #4594. Thanks @ladyada.
- Adafruit Rotary Trinkey. #4594. Thanks @ladyada.
- Adafruit Slide Trinkey. #4595. Thanks @ladyada.
- Adafruit QT RP2040 Trinkey. #4750. Thanks @ladyada.
- ARAMCON2 Badge. #4627. Thanks @bmeisels.
- Arduino Nano RP2040. #4802. Thanks @BlitzCityDIY.
- BDMicro VINA-D51 updates. #4561. Thanks @bd34n.
- HunterCat NFC board. #4545. Thanks @sabas1080
- Pimoroni Pico LiPo 4MB. #4612, #4633. Thanks @ZodiusInfuser.
- Pimoroni Pico LiPo 16MB. #4612, #4633. Thanks @ZodiusInfuser.
- SparkFun MicroMod RP2040. #4625. Thanks @stonehippo.
Documentation
Build and infrastructure changes
(None in this release)
Translation additions and improvements
(None in this release)
Breaking changes since 5.x
i2cslave
is nowi2cperipheral
and the class in it is changed as well.- The
stop
kwarg has been removed fromI2C.writeto()
. If no stop is desired, then usewriteto_then_readfrom
. - The default speed of busio.I2C and board.I2C is now 100khz, not 400khz as before. Use
busio.I2C
to set the speed explicitly. _bleio.ConnectionError
has been removed. Code will now raise the nativeConnectionError
instead.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.2.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.9.4 @25ae98f. 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).
CircuitPython 6.2.0
This is CircuitPython 6.2.0, the latest minor revision of CircuitPython, and is a new stable release. See Port status below for details on port stability, and Known Issues for known problems. If you find any issues with this release, please file an issue.
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 implementation for a variety of microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd
, cxd56
(Spresense), nrf
, and stm
for the F4 family are stable. esp32s2
, raspberrypi
, and stm
for other STM chip families are 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 6.2.-rc.0
Change since 6.1.0
The changes are too extensive to list here. Please see these releases for details:
Breaking changes since 5.x
i2cslave
is nowi2cperipheral
and the class in it is changed as well.- The
stop
kwarg has been removed fromI2C.writeto()
. If no stop is desired, then usewriteto_then_readfrom
. - The default speed of busio.I2C and board.I2C is now 100khz, not 400khz as before. Use
busio.I2C
to set the speed explicitly. #3471 Thanks @caternuson, @ladyada, @hierophect and @tannewt _bleio.ConnectionError
has be removed. Code will now raise the nativeConnectionError
instead.
Known issues
Thanks
Thank you to all who used, tested, and contributed since 6.1.0. Join us on the Discord chat to collaborate.
Documentation
Documentation is available in readthedocs.io.
This release is based on MicroPython 1.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
Translations
One important feature of CircuitPython is translated control and error messages. With the help of fellow open source project Weblate, we're making it even easier to add or improve translations. Sign in with an existing account such as Github, Google or Facebook and start contributing through a simple web interface. No forks or pull requests needed!
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having issues, then post to the Adafruit Support Forums and join Discord.
CircuitPython 6.2.0 Release Candidate 0
This release, 6.2.0-rc.0, is the first release candidate for the stable release of CircuitPython 6.2.0. Notable changes since 6.2.0-beta.4 include displayio
and vectorio
fixes and improvements, many i.MX fixes and additions, and RP2040 I2C improvement. See Port status below for details on port stability for each port, and Known issues for known problems. If you find any issues with this release, please file an issue.
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 implementation for a variety of microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd
, cxd56
(Spresense), nrf
, and stm
for the F4 family are stable. esp32s2
, raspberrypi
, and stm
for other STM chip families are 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 6.2.0-beta.4
Full commit log is here.
Fixes and enhancements
- Turn off remote wakeup in USB configuration descriptor. #4517. Thanks @dhalbert.
- Correct
TypeError
message intime
. #4509. Thanks @lesamouraipourpre. - Allow
memoryview()
to be used forRGBMatrix
. #4501. Thanks @ bitbangio.SPI
enhancements. #4497. Thanks @jepler.displayio
andvectorio
internal improvements. Thanks @kmatch98.- Correct
vectorio.Rectangle sizes
. #4484. Thanks @kmatch98. - Correct
displayio
redrawing when usingTileGrid.transform_xy
. #4464. Thanks @kmatch98. - Fix support for MS25R1635F chip. #4460. Thanks @lyusupov.
- Handle 4-bit colors in
bitmaptools
properly. #4454, #4455. Thanks @jepler and @kmatch98. - Improve handling of dirty areas in
displayio.Bitmap
. #4432. Thanks @jepler. - Mark bitmap area as dirty in
bitmaptools.arrayblit()
. #4430. Thanks @jepler. display.BitMap
can be amemoryview()
. #4429. Thanks @jepler.- Add
reverse_rows
capability tobitmaptools.readinto()
. #4428. Thanks @kmatch98.
Port and board-specific changes
- ESP32-S2
- i.MX
- Fix assertion in
busio.UART
. #4518. Thanks @jepler. - Fix UART pin checking. #4513. Thanks @jepler.
- Fix SPI gaps. #4487. Thanks @jepler.
- Correct SPI baudrate. #4474. Thanks @jepler.
- Fix reset to bootloader. #4442. Thanks @jepler.
- nRF
- RP2040
- Spresense
- STM32
- i.MX1010 EVK
- Metro M7 1011
- QT Py RP2040
Build and infrastructure changes
- Remove problematic sentence from bug issue template. #4511. Thanks @jepler.
- List modules for alias boards. #4507. Thanks @Neradoc.
- Use allowed language list when building circuitpython.org information. #4483. Thanks @Neradoc.
- Use
nvm.toml
data for flash device information. #4481. Thanks @tannewt. - Use gcc
@file
mechanism to shorten linker command line. #4480. Thanks @tannewt. - Correct USB mount checking so that
CIRCUITPY_USB_MSC = 0
will compile. #4462. Thanks @jepler.
Documentation
- (no PRs in this category)
Translation Additions and Improvements
- English - UK (new translation). Thanks @garethcoleman. Enabled by #4521. Thanks @dhalbert.
- French. Thanks @hugodahl.
- Portuguese - Brazil. Thanks @wtuemura .
- Spanish. Thanks. @jposada202020.
- Swedish. Thanks @bergdahl
Breaking changes since 5.x
i2cslave
is nowi2cperipheral
and the class in it is changed as well.- The
stop
kwarg has been removed fromI2C.writeto()
. If no stop is desired, then usewriteto_then_readfrom
. - The default speed of busio.I2C and board.I2C is now 100khz, not 400khz as before. Use
busio.I2C
to set the speed explicitly. _bleio.ConnectionError
has been removed. Code will now raise the nativeConnectionError
instead.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.2.0-beta.4, including @anecdata, @bergdahl, @d-c-d, @deshipu, @dhalbert, @FoamyGuy, @gamblor21, @garethhcoleman, @hexthat, @hierophect, @hugodahl, @jepler, @jposada202020, @kmatch98, @ladyada, @lesamouraipourpre, @lyusupov, @miclooking, @microdev1, @Neradoc, @tannewt, @tyomitch, @WarriorOfWire, @weblate, @wtuemura, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.
New boards since 6.2.0-beta.4
- Adafruit ItsbyBitsy RP2040. #4459. Thanks @ladyada.
- Adafruit Rotary Trinkey. #4449. Thanks @ladyada.
- Adafruit FunHouse. #4439. Thanks @dhalbert.
Breaking changes since 5.x
i2cslave
is nowi2cperipheral
and the class in it is changed as well.- The
stop
kwarg has been removed fromI2C.writeto()
. If no stop is desired, then usewriteto_then_readfrom
. - The default speed of busio.I2C and board.I2C is now 100khz, not 400khz as before. Use
busio.I2C
to set the speed explicitly. _bleio.ConnectionError
has been removed. Code will now raise the nativeConnectionError
instead.
Known issues
- See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.2.0-beta.4, including [[FILLIN]], 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.9.4 @25ae98f. 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).
CircuitPython 6.2.0 beta 4
This release, 6.2.0-beta.4, is the fifth beta release of CircuitPython 6.2.0. Notable changes since 6.2.0-beta.3 include new RP2040 fixes and features, enhancements to bitmaptools
, and turning off usb_cdc
by default (it can still be enabled in a custom build). See Port status below for details on port stability for each port, and Known issues for known problems. If you find any issues with this release, please file an issue.
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 implementation for a variety of microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd
, cxd56
(Spresense), nrf
, and stm
for the F4 family are stable. esp32s2
, raspberrypi
, and stm
for other STM chip families are 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 6.2.0-beta.3
Full commit log is here.
Fixes and enhancements
- Mark
bitmaptools.arrayblit()
destination as dirty. #4430. Thanks @jepler. - Add
displayio.Palette.is_transparent(palette_index)
. #4426. Thanks @kmatch98. - Add uniform
board.LED
pin names for several boards. More later. #4421. Thanks @kattni. - Add
bitmaptools.readinto()
andbitmaptools.arrayblit()
. #4403. Thanks @jepler. - Disable
usb_cdc
, the second USB serial port, by default. it was on by default in 6.2.0-beta.3. It is still available to use in a custom build. #4384. Thanks @dhalbert. - Save ~1500 bytes of firmware space via slight changes in vm execution with a minor speed penalty. #4344. Thanks @jepler.
- Refactor displayio set_pixel for use in bitmap_tools. #4357. Thanks @kmatch98.
- Update TinyUSB. #4327. Thanks @hathach.
- Fix regression of TinyUSB version. #4365. Thanks @tannewt.
- Fix incorrect 16-bit signedness in
displayio.TileGrid
. #4287. Thanks @deshipu. - Fix
TileGrid.transpose_xy
crash. #4331. Thanks @dhalbert. - Update
ulab
to fix matrix vetor multiplication issue. #4250. Thanks @jepler. - Code and documentation cleanups. #4335. #4337, #4338, #4351, #4391. Thanks @tyomitch.
Board- and port-specific changes
- ESP32-S2
- Fix wifi and I2C interfering with each other. #4387. Thanks @dhalbert.
- Fix watchdog
deinit()
. #4325. Thanks @microdev1.
- RP2040
- Add
displayio.ParallelBus
. #4130. Thanks @gamblor21. - Add
rotaryio
. #4329. Thanks @jepler. - Enable
audiomp3
; it works at low bit rates. #4380. Thanks @jepler. - Lower default flash speed. #4392, #4393. Thanks @tannewt.
- Initalize
rtc
with a reasonable time. #4379. Thanks @jepler. - Add new features to
rp2pio.StateMachine
. #4329. Thanks @jepler. - Add double reset into UF2 bootloader. #4375. Thanks @hathach.
- Fix use of
tud_disconnect()
. #4327. Thanks @hathach. - Fix clock stretch on
board.I2C()
. #4390. Thanks @dhalbert. - Allow more than one program per PIO. #4405. Thanks @DavePutz.
- Add
- SAMD51
- Spresense
- Minor I2C, SPI, and UART fixes. #4386, #4412. Thanks @kamtom480.
- STM32
- Add all modules enabled in STM32F405 to STM32F407. #4385. Thanks @hierophect.
- Fix
UART.deinit()
. #4383. Thanks @hierophect. - Add GD25Q16C as a possible flash chip. #4356. Thanks @jerryneedell.
- Teensy 4.0 and 4.1
- Enable EVE. #4342. Thanks @jamesbowman.
Build and infrastructure changes
- Run code-formatting over source code based and add to pre-commit. #4362, #4415. Thanks @microdev1 and @jepler.
- Shrink some builds, using optimization flags. #4333. Thanks @dhalbert.
- Avoid secondary build failure when a test fails. #4340. Thanks @jepler and thanks @microdev1 for the original inspiration PR.
- Automatically count
EXTERNAL_FLASH_DEVICES
. #4358. Thanks @jepler.
Documentation
- Improve documentation for
RTC
,TouchIn
, andanalogio
. #4402, #4407. Thanks @jposada2020. - Add
README.rst
link to SourceGraph, which provides searching in thecircuitpython
repo. #4416. Thanks @tannewt. - Add RP2040 port to
README.rst
. #4416. Thanks @tannewt. - Correct and enhance documentation for
usb_cdc
. #4359. Thanks @dhalbert. - Fix typos in
microcontroller.nvm
documentation. #4346. Thanks @jepler. - Translation additions and improvements. Thanks:
- @MisterD66 (German)
- @Edrig (French)
- @hugodahl (French)
- @Padanian (Italian)
- @bergdahl (Swedish)
- Amir Muhammad Al-Omari (Swedish)
- @fede2cr (Spanish)
- @jposada202020 (Spanish)
- @wtuemura (Portuguese - Brazil)
- @hexthat (Chinese - Pinyin)
- Luca De Filippo (Italian)
New boards since 6.2.0-beta.3
- Franzininho WiFi Wroom. #4347. Thanks @FBSeletronica.
- Franzininho WiFi Wrover.#4348. Thanks @FBSeletronica.
- Pimoroni Tiny 2040. #4228. Thanks @ZodiusInfuser.
- Pimoroni Keybow 2040. #4228. Thanks @ZodiusInfuser.
- Pimoroni PicoSystem. #4228. Thanks @ZodiusInfuser.
- SparkFun MicroMod nRF52840. #4350. Thanks @nitz.
- SparkFun Pro Micro RP2040. #4419. Thanks @spe2.
Breaking changes since 5.x
i2cslave
is nowi2cperipheral
and the class in it is changed as well.- The
stop
kwarg has been removed fromI2C.writeto()
. If no stop is desired, then usewriteto_then_readfrom
. - The default speed of busio.I2C and board.I2C is now 100khz, not 400khz as before. Use
busio.I2C
to set the speed explicitly. _bleio.ConnectionError
has been removed. Code will now raise the nativeConnectionError
instead.
Known issues
- RP2040: A few I2C devices do not work on the RP2040 with
busio.I2C
. Usebitbangio.I2C
instead, and usebitbangio.I2C(..., probe=False)
if necessary. See #4082 and #4235. - See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.2.0-beta.3, including @ajs256, @askpatrickw, @bergdahl, @caternuson, @danielwarnersmith, @DavePutz, @dglaude, @dhalbert, @dpgeorge, @Edrig, @falkenad, @FBSeletronica, @fede2cr, @FoamyGuy, @hathach, @hexthat, @hierophect, @hugodahl, @ismael-miguel, @jamesbowman, @jepler, @jerryneedell, @jposada202020, @kamtom480, @kattni, @kevinjwalters, @kmatch98, @ladyada, @makermelissa, @microdev1, @mintakka, @MisterD66, @nitz, @Padanian, @siehputz, @skieast, @spe2, @tannewt, @tylercrumpton, @tyomitch, @v923z, @weblate, @wtuemura, 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.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
Translations
One important feature of CircuitPython is translated control and error messages. With the help of fellow open source project Weblate, we're making it even easier to add or improve translations. Sign in with an existing account such as Github, Google or Facebook and start contributing through a simple web interface. No forks or pull requests needed!
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having issues, then post to the Adafruit Support Forums and join Discord.
CircuitPython 6.2.0 beta 3
This release, 6.2.0-beta.3, is the fourth beta release of CircuitPython 6.2.0. Across most ports it adds a second USB serial (CDC) channel, adds a bitmaptool
module for help with displayio
, and removes the limitation on displayio.Group
size. The RP2040 port has many enhancements and fixes, and the Spresense port has several improvements as well. See Port status below for details on port stability for each port, and Known issues for known problems. If you find any issues with this release, please file an issue.
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 implementation for a variety of microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd
, cxd56
(Spresense), nrf
, and stm
for the F4 family are stable. esp32s2
, raspberrypi
, and stm
for other STM chip families are 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 6.2.0-beta.2
Fixes and enhancements
- Add
bitmaptools
for bitmap blit operations. #4268, #4278. Thanks @kmatch98. - Add second USB CDC serial channel. #4215. Thanks @dhalbert.
displayio.Group
now uses a Python list internally. Its size is no longer limited, and it can be sorted. #4233, #4322. Thanks @deshipu and thanks @dhalbert for a fix.- Fix compile-time disabling of USB MSC. #4283. Thanks @deshipu.
- Fix typos for
CIRCUITPY_USB_HID_SYS_CONTROL
. #4249. Thanks @dhalbert. - Avoid pulling in unneeded float/uint64 routines. #4238. Thanks @dhalbert.
_pixelbuf
: increase performance of brightness scaling. #4258. Thanks @jepler.- Add
memoryview.cast()
. #4231. Thanks @jepler. - Add
bitops.transpose()
function to support piopixl8. #4219. Thanks @jepler. - Allow
memoryview
as argument toexec()
. #4206. Thanks @iot49. - Remove unneeded
adafruit_bus_device.SPIDevice.spi
property. #4179. Thanks @dhalbert. - Update
ulab
to 1.7.5. #4229. Thanks @jepler. - Fix ability to use the reset button to enter safe mode when
.reset_reason
is not implemented. #4306. Thanks @Neradoc.
Board- and port-specific changes
- ESP32-S2
- Pin name additions for UnexpectedMaker TinyS2 and Feather S2. #4264. Thanks @UnexpectedMaker.
- Fix free-pin checking. #4205. Thanks @hierophect.
- RP2040
- Add
busio.UART
support. #4224. Thanks @microdev1 and @tannewt. Thanks @jerryneedell for testing. - Add
os.urandom
. #4213. Thanks @jepler. - Add
PWMAudioOut
. #4167. Thanks @tannewt. - Add
countio
. #4254. Thanks @gamblor21. - Add
microcontroller.nvm
. #4177. Thanks @microdev1. - Enable
RGBMatrix
(protomatter). #4186. Thanks @jepler. - Board-specific flash sizes. #4247. Thanks @tannewt.
- Update flash sizes for various RP2040 boards. #4297. Thanks @tannewt.
- Fix use of second shared PWM. #4253. Thanks @tannewt.
- Correct
DigitalInOut
behavior; increase pin drive strength. #4267. Thanks @dhalbert. - Implement short I2C writes with bitbang I2C. #4315. Thanks @dhalbert.
- Fix
rp2pio
writing when stride 2 or 4. #4269. Thanks @jepler. - Fix off-by-one
PWMOut
top count. #4192. Thanks @dhalbert. - Allow keyboard interrupts while waiting for PIO TX FIFO. #4309. Thanks @jepler.
- Allow directly specifying the original boot
.s
file. #4308. Thanks @jepler. - Use generic flash init for now to be able to support more flash chips. #4302. Thanks @tannewt.
- Clear out PIO's and
StateMachine
objects on soft-reload. #4265. Thanks @DavePutz.
- Add
- SAMD21
- Spresense
- return the correct value for Analog In. #4294. Thanks @kamtom480.
- Fix USB enumeration issues. #4245. Thanks @kamtom480.
AnalogIn:
Return value in proper range. #4294. Thanks @kamtom480.AnalogIn
: return valid reference voltages, which can vary per pin. #4310. Thanks @kamtom480.
- STM32
- Fix I2C repeated start. #4169. Thanks @hierophect.
- TG-Watch
- Fix board crystal settings. #4232. Thanks @TG-Techie.
- pewpew10
- Feather M4 Express
- Add EVE support. #4299. Thanks @jamesbowman.
Build and infrastructure changes
- Set
SUPEROPT_VM = 0
on most non-Express SAMD21 boards. #4248. Thanks @dhalbert. - Shrink flash storage needed for USB descriptor serial number. #4243. Thanks @jepler.
- Add directory for manually-run tests; add
Socket
tests. #4187. Thanks @hierophect. - Only build translations listed in an allow list. #4298. Thanks @jepler.
Documentation
- Fix formatting in SPI documentation. #4296. Thanks @ajs256.
- Typo fix in RP2040
rp2pio
documentation. #4277. Thanks @tannewt. - Ignore
idf-tools
folder. #4225. Thanks @jepler. - Update Design Guide discussion of exceptions and asserts. #4185. Thanks @caternuson.
- Improve
StateMachine
messages. #4276. Thanks @bergdahl. - Translation additions and improvements. Thanks:
- @bergdahl (Swedish)
- @rodrigoargumedo (Spanish)
- @jposada202020 (Spanish)
- @wtuemura (Portuguese - Brazil)
- @MisterD66 (German)
- @hugodahl (French)
- @dglaude (French)
- @hexthat (Chinese - Pinyin)
- Luca De Filippo (Italian)
New boards since 6.2.0-beta.2
- Adafruit Feather RP2040. #4270, #4312, #4319. Thanks @tannewt and @jepler.
- Adafruit QT Py RP2040. #4188. Thanks @ladyada.
- Pimoroni RP2040 boards. #4228. Thanks @ZodiusInfuser.
- Pimoroni Tiny 2040.
- Pimoroni Keybow 2040.
- Pimoroni PicoSystem.
- UnexpectedMaker TinyS2. #4244. Thanks @UnexpectedMaker.
Full commit log is here.
Breaking changes since 5.x
i2cslave
is nowi2cperipheral
and the class in it is changed as well.- The
stop
kwarg has been removed fromI2C.writeto()
. If no stop is desired, then usewriteto_then_readfrom
. - The default speed of busio.I2C and board.I2C is now 100khz, not 400khz as before. Use
busio.I2C
to set the speed explicitly. _bleio.ConnectionError
has been removed. Code will now raise the nativeConnectionError
instead.
Known issues
- ESP32-S2: Crash when repeatedly creating and destroying busio.I2C object on ESP32-S2. #3846.
- RP2040: A few I2C devices do not work on the RP2040 with
busio.I2C
. Usebitbangio.I2C
instead, and usebitbangio.I2C(..., probe=False)
if necessary. See #4082 and #4235. - See https://github.com/adafruit/circuitpython/issues for other issues.
Thanks
Thank you to all who used, tested, and contributed since 6.2.0-beta.2, including @ajs256, @anecdata, @arturo182, @bergdahl, @caternuson, @DavePutz, @deshipu, @dglaude, @dhalbert, @ecasadod, @gamblor21, @hathach, @hexthat, @hierophect, @hugodahl, @iot49, @jamesbowman, @jedgarpark, @jepler, @jerryneedell, @jfabernathy, @joelburton, @jposada202020, @kamtom480, @kattni, @kevinjwalters, @kmatch98, @ladyada, @lesamouraipourpre, @microdev1, @MisterD66, @Neradoc, @rodrigoargumedo, @siehputz, @tannewt, @tawez, @TG-Techie, @UnexpectedMaker, @weblate, @wtuemura, @ZodiusInfuser, 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.9.4 @25ae98f. Support upstream MicroPython by purchasing a PyBoard (from Adafruit here) or sponsoring MicroPython on GitHub.
Translations
One important feature of CircuitPython is translated control and error messages. With the help of fellow open source project Weblate, we're making it even easier to add or improve translations. Sign in with an existing account such as Github, Google or Facebook and start contributing through a simple web interface. No forks or pull requests needed!
Troubleshooting
Check out this guide for info on common problems with CircuitPython. If you are still having issues, then post to the Adafruit Support Forums and join Discord.
Assets
Builds are no longer stored as assets on this release page, because there are too many of them. Please see the Download from circuitpython.org section above.