Skip to content

Releases: adafruit/circuitpython

CircuitPython 8.0.0 Beta 3

20 Oct 20:11
9c8e6a8
Compare
Choose a tag to compare
Pre-release

This is CircuitPython 8.0.0-beta.3, a beta release for 8.0.0. It is relatively stable, but there will be further additions and fixes before final release.

NOTE: ESP32-C3 board builds are not functional since 8.0.0-beta.2. Use 8.0.0-beta.1.

WARNING: The flash partitioning for 2MB and 4MB flash ESP32 and ESP32-C3 boards has changed since 8.0.0-beta.2. When you load 8.0.0-beta.3 or later over beta.2 (or vice versa), on these boards, CIRCUITPY will be erased and reformatted.

WARNING: The flash partitioning for the Raspberry Pi Pico W has changed since 8.0.0-beta.1. When you load 8.0.0-beta.2 or later over beta.1 (or vice versa), on the Pico W, CIRCUITPY will be erased and reformatted.

Notable changes to 8.0.0 since 7.3.0

Functionality additions

  • Added WiFi workflow with browser-based device discovery, filesystem browsing, upload, download, file editing, serial/REPL connection (available only on Espressif for now).
  • Added a one-line status bar, which displays connection status, last exception, and version on a terminal window title or on the top line of an attached display. Support for status bar display is also being added to the Mu and Thonny editors.
  • .env file in CIRCUITPY specifies WiFI connection parameters, BLE name, and other startup values.
  • dotenv support: os.getenv() values are set by values in .env file. Values can be fetched from other dotenv-format files.
  • WiFi functionality implemented on the Pi Pico W.
  • Revised Espressif camera support, now available on ESP32, ESP32-S2, and ESP32-S3.
  • Bulk analog input: analogbufio (available only on RP2040 for now).
  • Pin state can be preserved during deep sleep (available only on Espressif for now).
  • Allow setting USB VID, PID, manufacturer, and product ids at runtime.
  • Enabled collections.deque on most builds.
  • MP3Decoder and WaveFile can now take a filename instead of an open file.
  • AnalogIn values are full range from 0 to 65535, instead of having zeros on low-order bits.
  • In-place firmware update (dualbank) capability may be disabled in favor of a larger CIRCUITPY drive.
  • Added TileGrid.contains().
  • Added os.utime().
  • Added coproc module, for running programs on an on-chip co-processor. Currently available for the RISC-V core on the ESP32-S2 and ESP32-S3.

Compatibility changes

  • PulseOut no longer accepts a PWMOut. Use a Pin instead.
  • Auto-brightness support in displayio and framebufferio has been removed. It was never implemented completely.
  • OneWire is only in onewireio, and is no longer in busio or bitbangio.
  • gamepadshift has been removed: use keypad.ShiftRegisterKeys instead.
  • Print out whole-number floats exactly and correctly.
  • Restored rainbowio and onewireio to a number of boards. Some boards still have rainbowio turned off for space reasons.
  • i2ctarget.I2CTarget is the new name for i2cperipheral.I2CPeripheral. Accept both for now. I2CPeripheral will be removed in 9.0.0.
  • The property supervisor.runtime.ble_workflow replaces supervisor.disable_ble_workflow().
  • The property supervisor.runtime.next_stack_limit replaces supervisor.set_next_stack_limit().
  • The property supervisor.runtime.rgb_status_brightness replaces supervisor.set_rgb_status_brightness().

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32, ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 8.0.0-beta.2

Fixes and enhancements

  • Improve asyncio implementation and add automated tests. #7059. Thanks @jepler.
  • Add coproc module, for running programs on an on-chip co-processor. Currently avaialable for the RISC-V core on the ESP32-S2 and ESP32-S3. #6902. Thanks @microdev1.

Port and board-specific changes

Broadcom

Espressif

i.MX

nRF

RP2040

SAMx

STM

Individual boards

  • Cytron Maker Feather AIoT S3: add pin definitions. #7053. Thanks @CytronTechnologies.
  • Raspberry Pi Pico W:
    • Fix pin counting issues affecting PulseIn and other functionality. #7089. Thanks @jepler.
    • Implement static IP configuration. #7088. Thanks @jepler.
    • Fix large send() requests. Add sendall(). Resolve .local names. Allow stopping radio. #7079. Thanks @jepler.
    • Connect to wifi asynchronously. #7076. Thanks @bill88t.
    • Fix check for wifi interface being up. #7075. Thanks @jepler.
    • Fix CYW43 pin initialization. #7064. Thanks @jepler.
    • Power down CYW43 wifi co-processor during deep sleep. #7050. Thanks @jepler.
    • Implement hashlib. #7051. Thanks @jepler.

Documentation changes

  • Remove hashlib and zlib from MicroPython-specific modules. #7074. Thanks @jepler.

Build and infrastructure changes

  • Use py/stream.h instead of py/ioctl.h. #7058. Thanks @jepler.
  • Improve calculation of partial builds. #7057. Thanks @jepler.
  • Save about 124 bytes, related to string0.c. #6397. Thanks @jepler.

Translation additions and improvements

Thanks for translations:

New boards since 8.0.0-beta.2

Known issues

Thanks

Thank you to all who used, tested, and contributed since 8.0.0-beta.2, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.

CircuitPython 8.0.0 Beta 2

14 Oct 01:02
f8b033c
Compare
Choose a tag to compare
Pre-release

This is CircuitPython 8.0.0-beta.2, a beta release for 8.0.0. It is relatively stable, but there will be further additions and fixes before final release.

NOTE: ESP32-C3 board builds are not functional in this release. Use 8.0.0-beta.1.

NOTE: Some ESP32 board builds are not functional in this release. Use 8.0.0-beta.3.

Warning: The flash partitioning for the Raspberry Pi Pico W has changed since 8.0.0-beta.1. When you load 8.0.0-beta.2 over beta.1 (or vice versa), on the Pico W only, CIRCUITPY will be erased and reformatted.

Notable changes to 8.0.0 since 7.3.0

Functionality additions

  • Added WiFi workflow with browser-based device discovery, filesystem browsing, upload, download, file editing, serial/REPL connection (available only on Espressif for now).
  • Added a one-line status bar, which displays connection status, last exception, and version on a terminal window title or on the top line of an attached display. Support for status bar display is also being added to the Mu and Thonny editors.
  • .env file in CIRCUITPY specifies WiFI connection parameters, BLE name, and other startup values.
  • dotenv support: os.getenv() values are set by values in .env file. Values can be fetched from other dotenv-format files.
  • WiFi functionality implemented on the Pi Pico W.
  • Revised Espressif camera support, now available on ESP32, ESP32-S2, and ESP32-S3.
  • Bulk analog input: analogbufio (available only on RP2040 for now).
  • Pin state can be preserved during deep sleep (available only on Espressif for now).
  • Allow setting USB VID, PID, manufacturer, and product ids at runtime.
  • Enabled collections.deque on most builds.
  • MP3Decoder and WaveFile can now take a filename instead of an open file.
  • AnalogIn values are full range from 0 to 65535, instead of having zeros on low-order bits.
  • In-place firmware update (dualbank) capability may be disabled in favor of a larger CIRCUITPY drive.
  • Added TileGrid.contains().
  • Added os.utime().

Compatibility changes

  • PulseOut no longer accepts a PWMOut. Use a Pin instead.
  • Auto-brightness support in displayio and framebufferio has been removed. It was never implemented completely.
  • OneWire is only in onewireio, and is no longer in busio or bitbangio.
  • gamepadshift has been removed: use keypad.ShiftRegisterKeys instead.
  • Print out whole-number floats exactly and correctly.
  • Restored rainbowio and onewireio to a number of boards. Some boards still have rainbowio turned
    off for space reasons.
  • i2ctarget.I2CTarget is the new name for i2cperipheral.I2CPeripheral. Accept both for now. I2CPeripheral will be removed in 9.0.0.
  • The property supervisor.runtime.ble_workflow replaces supervisor.disable_ble_workflow().
  • The property supervisor.runtime.next_stack_limit replaces supervisor.set_next_stack_limit().
  • The property supervisor.runtime.rgb_status_brightness replaces supervisor.set_rgb_status_brightness().

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32, ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 8.0.0-beta.1

Fixes and enhancements

  • Fix parsing long dotenv values. #7049. Thanks @jepler.
  • Improve traceback functionality. #7046. Thanks @jepler.
  • Delay very first serial write to allow host connection setup time; especially needed on Linux. #7041. Thanks @dhalbert.
  • Restore nvm as an importable module. #7014. Thanks @jepler.
  • Add Unicode support to dotenv. #7003. Thanks @jepler.
  • Improve dotenv file parsing to be more like the CPython library. #7001, #6987. Thanks @dhalbert.
  • Allow choosing between dualbank capability (in-place firmware update) and a larger CIRCUITPY drive. #7000. Thanks @microdev1.
  • Fix I2CTarget timeout check and documentation. #6985. Thanks @PaulskPt.
  • Fix web workflow file-modified-time minutes value. #6982. Thanks @electronerdian.
  • Replace some supervisor functions with supervisor.runtime properties. #6980. Thanks @microdev1.
  • Add os.utime(). #6923. Thanks @isacben.
  • Do not allow renaming a directory inside itself. #6883. Thanks @makermelissa.

Port and board-specific changes

Broadcom

Espressif

  • Update ESP-IDF to latest release/v4.4 commit to fix WiFi scanning and other issues. #7023. Thanks @dhalbert.
  • Clean up mpconfigboard.mk on multiple boards. #7008. Thanks @microdev1.

i.MX

nRF

RP2040

SAMx

  • Improve code size for microcontroller.cpu.temperature, with some loss of accuracy. Extra reductions on very small builds. #7045. Thanks @jepler.

STM

  • Remove redundant header files in build (no change in code). #7024. Thanks @flom84.

Individual boards

  • AITHinker ESP32-C3S_Kit: fix creation id. #6986. Thanks @dhalbert.
  • AITHinker ESP32-C3S_Kit_2M: fix creation id. #6986. Thanks @dhalbert.
  • Raspberry Pi Pico W: fix pin definitions. #7021. Thanks @jepler.
  • Raspberry Pi Pico W: increase size of CIRCUITPY. #7011. Thanks @jepler.

Documentation changes

  • Fixed README.rst formatting. #7022. Thanks @tekktrik.
  • Add _asyncio, array, builtins, collections, io, select, and sys to the Module Support Matrix. #6995. Thanks @dhalbert.
  • Add ESP32 to README.rst. #6974. Thanks @microdev1.

Build and infrastructure changes

Translation additions and improvements

Thanks for translations:

New boards since 8.0.0-beta.1

Known issues

Thanks

Thank you to all who used, tested, and contributed since 8.0.0-beta.1, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.

CircuitPython 8.0.0 Beta 1

01 Oct 20:11
ad79f59
Compare
Choose a tag to compare
Pre-release

This is CircuitPython 8.0.0-beta.1, a beta release for 8.0.0. It is relatively stable, but there will be further additions and fixes before final release.

Notable changes to 8.0.0 since 7.3.0

  • Added WiFi workflow with browser-based device discovery, filesystem browsing, upload, download, file editing, serial/REPL connection.
  • Added a one-line status bar, which displays connection status, last exception, and version on a terminal window title or on the top line of an attached display. Support for status bar display is also being added to the Mu and Thonny editors.
  • .env file in CIRCUITPY specifies WiFI connection parameters, BLE name, and other startup values.
  • dotenv support: os.getenv() values can be set in the .env file.
  • Preliminary implementation of WiFi on the Pi Pico W.
  • Revised Espressif camera support, now available on ESP32, ESP32-S2, and ESP32-S3.
  • Bulk analog input: analogbufio (available only on RP2040 for now).
  • Pin state can be preserved during deep sleep (available only on Espressif for now).
  • Allow setting USB VID, PID, manufacturer, and product ids at runtime.
  • AnalogIn values are full range from 0 to 65535, instead of having zeros on low-order bits.
  • OneWire is only in onewireio, and is no longer in busio or bitbangio.
  • gamepadshift has been removed: use keypad.ShiftRegisterKeys instead.
  • MP3Decoder and WaveFile can now take a filename instead of an open file.
  • PulseOut no longer accepts a PWMOut. Use a Pin instead.
  • Added TileGrid.contains().
  • i2ctarget.I2CTarget is the new name for i2cperipheral.I2CPeripheral. Accept both for now. I2CPeripheral will be removed in 9.0.0.
  • Auto-brightness support in displayio and framebufferio has been removed. It was never implemented completely.
  • Restored rainbowio and onewireio to a number of boards.
  • Print out whole-number floats exactly and correctly.
  • Enabled collections.deque on most builds.

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32, ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 8.0.0-beta.0

Fixes and enhancements

  • Update frozen libraries #6971. Thanks @dhalbert.
  • Simplify status bar code, and make partial writes less likely. #6952. Thanks @dhalbert.
  • Support opening a file by name in MP3Decoder and WaveFile. #6943, #6931. Thanks @snkYmkrct.
  • Update ulab to 5.1.1. #6939. Thanks @jepler.
  • Clean up implementation and internal use of ringbuf. #6915. Thanks @dhalbert.
  • Fix slowdown on devices with dimmable displays. #6894. Thanks @gamblor21.
  • Improve web workflow directory page. #6885. Thanks @microdev1.
  • Allow writing empty color frame in EpaperDisplay. #6871. Thanks @pepijndevos.
  • Allow status bar to be enabled and disabled. #6847. Thanks @dhalbert.
  • Make PulseIn objects be long-lived so they won't be moved. #6834. Thanks @DavePutz.
  • Improve usb_hid.Device.get_last_received_report(). #6818, #6810, #6767. Thanks @maximkulkin.
  • Allow move and rename to be used from localhost in web workflow. #6807. Thanks @makermelissa.
  • Remove deprecated usb_hid.Device.last_received_report, replaced by get_last_received_report(). #6802. Thanks @dhalbert.
  • Fix hashlib.Hash.digest_size. #6797. Thanks @jepler.
  • Make rotaryio objects be long-lived so they won't be moved. #6789. Thanks @DavePutz.
  • Add UID to web workflow version.json. #6787. Thanks @Neradoc.
  • Fix is31fl3741 display issues. #6784. Thanks @gamblor21.
  • Fix display scroll area issues when scale > 1. #6783. Thanks @tannewt.
  • Allow setting USB VID, PID, manufacturer, and product ids at runtime. #6247. Thanks @s-ol.

Port and board-specific changes

Broadcom

Espressif

i.MX

nRF

  • UART.read() now returns None when nothing read, consistent with other ports. #6908. Thanks @dhalbert.
  • Handle zero-length PulseOut pulses properly. #6798. Thanks @DavePutz.

RP2040

SAMx

STM

Individual boards

Documentation changes

Build and infrastructure changes

  • Clean up of port/*/.gitignore. #6974. Thanks @microdev1 and @dhalbert.
  • Make makeversionhdr more strict. #6912. Thanks @jepler.
  • fontio by itself can now be enabled or disabled at compile time. #6890. Thanks @jepler.
  • Provide default versions for common board.c routines. #6878. Thanks @dhalbert.
  • Use Ubuntu 22.04 for pre-commit CI runs. #6875. Thanks @jepler.
  • Check creatorid:creationid uniqueness. #6831. Thanks @jepler.
  • Improve argument validation and consolidate error messages. #6522. Thanks @jepler.

Translation additions and improvements

Thanks for translations:

New boards since 8.0.0-beta.0

Read more

CircuitPython 7.3.3

29 Aug 17:53
a325ba1
Compare
Choose a tag to compare

This is CircuitPython 7.3.3, the latest bugfix revision of CircuitPython, and is a new stable release.

Notable changes to 7.3.3 since 7.3.2

  • Adafruit MatrixPortal: Turn off ulab to allow freezing adafruit_portalbase, to create more available RAM.
  • Return None from usb_hid.get_last_received_report() when no report is available or the last report has already been read.
  • Don't reload or enter REPL when autoreloading.
  • Fix _bleio.PacketBuffer handling of fixed-length characteristics.
  • Update frozen libraries.
  • Build macOS mpy-cross executables with macOS 11.

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 7.3.2

Fixes and enhancements

Port and board-specific changes

nRF

  • Fix _bleio.PacketBuffer handling of fixed-length characteristics. #6800. Thanks @dhalbert.

Individual boards

  • Adafruit MatrixPortal: Remove ulab to allow freezing of adafruit_portalbase, to create more available RAM. #6809, #6779. Thanks @dhalbert.

Build and infrastructure changes

New boards since 7.3.2

  • (none)

Known issues

Thanks

Thank you to all who used, tested, and contributed since 7.3.2, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.

CircuitPython 8.0.0 Beta 0

18 Aug 20:19
43e18f1
Compare
Choose a tag to compare
Pre-release

This is CircuitPython 8.0.0-beta.0, a beta release for 8.0.0. It is relatively stable, but there will be further additions and fixes before final release.

Notable changes to 8.0.0 since 7.3.0

  • Added WiFi workflow with browser-based device discovery, filesystem browsing, upload, download, file editing, serial/REPL connection.
  • Added a one-line status bar, which displays connection status, last exception, and version on a terminal window title or on the top line of an attached display. Support for status bar display is also being added to the Mu and Thonny editors.
  • .env file in CIRCUITPY specifies WiFI connection parameters, BLE name, and other startup values.
  • Revised Espressif camera support, now available on ESP32, ESP32-S2, and ESP32-S3.
  • Added TileGrid.contains().
  • AnalogIn values are full range from 0 to 65535, instead of having zeros on low-order bits.
  • OneWire is only in onewireio, and is no longer in busio or bitbangio.
  • gamepadshift has been removed: use keypad.ShiftRegisterKeys instead.
  • dotenv support: os.getenv() values can be set in the .env file.
  • PulseOut no longer accepts a PWMOut. Use a Pin instead.
  • i2ctarget.I2CTarget is the new name for i2cperipheral.I2CPeripheral. Accept both for now. I2CPeripheral will be removed in 9.0.0.
  • Auto-brightness support in displayio and framebufferio has been removed. It was never implemented completely.
  • Restored rainbowio and onewireio to a number of boards.
  • Print out whole-number floats exactly and correctly.
  • Enabled collections.deque on most builds.

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32, ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 8.0.0-alpha.1

Fixes and enhancements

Port and board-specific changes

Broadcom

Espressif

i.MX

nRF

RP2040

SAMx

STM

Individual boards

  • Adafruit CLUE: release display before deep sleep. #6520, #6486. Thanks @DavePutz.
  • Adafruit MagTag: add board.GPIO0. #6657. Thanks @nitz.
  • Adafruit MatrixPortal: restore traceback. #6530. Thanks @dhalbert.
  • Blues Wireless Swan R5: build UF2's. #6511. Thanks @blues.
  • Blues Wireless Swan R5: fix 3v3 enabling. #6458. Thanks @blues.
  • ELECFREAKS Pico:ed: support status LED, use frozen libraries. #6578, #6526. Thanks @xuhow.
  • HiiBot IoTs2: add default buses. #6516. Thanks @Neradoc.
  • Invector Challenger 840: add support for 8MB flash. #6652. Thanks @Arudinne.
  • Pimoroni Interstate 75: add board.LED. #6664. Thanks @dglaude.

Documentation changes

  • Add adafruit_register library documentation to design guide. #6726. Thanks @tannewt.
  • Fix autoapi signature parsing bug. #6643. Thanks @jepler.
  • Link to more Learn Guides from documentation. #6581. Thanks @FoamyGuy.
  • Correct typo in build instructions. #6567. Thanks @thetazero.
  • Add WiFi workflow to branding documentation. #6545. Thanks @jepler.
  • Improve rotozoom() documentation. #6477. Thanks @FoamyGuy.

Build and infrastructure changes

  • Update macOS version for mpy-cross builds and canonicalize executable names. #6665, #6659. Thanks @dhalbert.
  • Add pre-commit to requirements-dev.txt. #6658. Thanks @andywarburton.
  • Specify which firmware extensions (.bin, .uf2, .hex) to build in mpconfigport.mk and mpconfigboard.mk. #6629. Thanks @Neradoc.
  • Download ARM gcc t...
Read more

CircuitPython 7.3.2

20 Jul 16:41
4a5790b
Compare
Choose a tag to compare

This is CircuitPython 7.3.2, the latest bugfix revision of CircuitPython, and is a new stable release.

Notable changes to 7.3.2 since 7.3.1

  • Adafruit MatrixPortal: restore traceback, which allows asyncio use.
  • Always release displays during deep sleep.
  • Update frozen libraries: fixes issues due to older libraries on certain AirLift 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 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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 7.3.1

Fixes and enhancements

Port and board-specific changes

Individual boards

  • Adafruit MatrixPortal: restore traceback module. #6530. Thanks @dhalbert.
  • ELECFREAKS PICO:ED: update and add frozen libraries. #6587. Thanks @xuhow.

Build and infrastructure changes

New boards since 7.3.1

  • (none)

Known issues

Thanks

Thank you to all who used, tested, and contributed since 7.3.1, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.

CircuitPython 7.3.1

22 Jun 21:43
83c1de4
Compare
Choose a tag to compare

This is CircuitPython 7.3.1, the latest bugfix revision of CircuitPython, and is a new stable release.

Notable changes to 7.3.1 since 7.3.0

  • Adafruit MatrixPortal: fix ESP32SPI hang.
  • Espressif: fix use of multiple rotaryio.IncrementalEncoder objects.
  • nRF: fix crash when waking up from sleep when a display is in use.
  • Update frozen libraries.

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 7.3.0

Fixes and enhancements

Port and board-specific changes

Espressif

  • Fix allocation of multiple rotaryio.IncrementalEncoder objects. #6430. Thanks @dhalbert.

nRF

SAMx5x

  • Make SPI DMA setup be atomic. Fixes hangs on Adafruit MatrixPortal. #6498. Thanks @dhalbert.

Individual boards

  • Adafruit Circuit Playground Express boards: Do not freeze unneeded code. #6508. Backport of #6346. Thanks @Neradoc.

Build and infrastructure changes

New boards since 7.3.0

  • (none)

Known issues

Thanks

Thank you to all who used, tested, and contributed since 7.3.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.

CircuitPython 8.0.0 Alpha 1

09 Jun 15:14
6925a00
Compare
Choose a tag to compare
Pre-release

This is CircuitPython 8.0.0-alpha.1, an alpha release for 8.0.0. It is relatively stable, but there will be further additions and fixes before final release.

Notable changes to 8.0.0 since 7.3.0

  • Added TileGrid.contains().
  • AnalogIn values are full range from 0 to 65535, instead of having zeros on low-order bits.
  • OneWire is only in onewireio, and is no longer in busio or bitbangio.
  • gamepadshift has been removed: use keypad.ShiftRegisterKeys instead.
  • dotenv support: os.getenv() values can be set in the .env file.

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 7.3.0

Fixes and enhancements

Port and board-specific changes

Broadcom

Espressif

i.MX

  • Teensy boards: preserve filesystem when updating firmware. #6425. Thanks @KurtE.

nRF

RP2040

SAMx

STM

Individual boards

Documentation changes

Build and infrastructure changes

  • Fix dependencies for translate.c. #6466. Thanks @jepler.
  • Restore ulab to boards that now have room. #6465. Thanks @tannewt.
  • Speed up translation calculation. #6455. Thanks @jepler.
  • Switch translate() to a header file to save space. #6440. Thanks @tannewt.
  • Use -flto and -flto-partition=one only when necessary, to speed up builds. #6436. Thanks @dhalbert.
  • Restore rainbowio to most small builds. #6428. Thanks @dhalbert.
  • Consolidate similar error messages; use argument validators. #6409. Thanks @dhalbert.

Translation additions and improvements

Thanks for translations:

New boards since 7.3.0

Known issues

Thanks

Thank you to all who used, tested, and contributed since 7.3.0, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.

CircuitPython 7.3.0

23 May 18:12
eb4ed30
Compare
Choose a tag to compare

This is CircuitPython 7.3.0, the latest minor revision of CircuitPython, and is a new stable release.

Notable changes to 7.3.0 since 7.2.5

  • Experimental mDNS support.
  • USB to to Serial/JTAG support for REPL on appropriate boards.
  • Initial experimental USB host support.
  • Merge MicroPython 1.18 changes.
  • Preliminary zlib module support. gzip module will be added later.
  • RP2040 PIO: Background write to a PIO state machine. Looping is possible.
  • RP2040 PIO: wrap and wrap_target support.
  • keypad: scan keystates immediately on creation.
  • Improve NeoPixel timings on many ports, to handle a wider range of devices.
  • Add floppyio, used in conjunction with a library.
  • Allow TileGrid bitmap to be changed.
  • Module support matrix includes frozen modules for each board.
  • f-strings available in all builds.

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 7.3.0-rc.2

This release is a relabeling of 7.3.0-rc.2 and is otherwise the same as that release.

Known issues

Thanks

Thank you to all who used, tested, and contributed since 7.2.5, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.

CircuitPython 7.3.0 Release Candidate 2

21 May 17:04
eb4ed30
Compare
Choose a tag to compare
Pre-release

This is CircuitPython 7.3.0-rc.2, the third release candidate for CircuitPython 7.3.0. It is considered stable, and is available as a release candidate for testing before the final release of 7.3.0.

Notable changes to 7.3.0 since 7.2.5

  • Experimental mDNS support.
  • USB to to Serial/JTAG support for REPL on appropriate boards.
  • Initial experimental USB host support.
  • Merge MicroPython 1.18 changes.
  • Preliminary zlib module support. gzip module will be added later.
  • RP2040 PIO: Background write to a PIO state machine. Looping is possible.
  • RP2040 PIO: wrap and wrap_target support.
  • keypad: scan keystates immediately on creation.
  • Improve NeoPixel timings on many ports, to handle a wider range of devices.
  • Add floppyio, used in conjunction with a library.
  • Allow TileGrid bitmap to be changed.
  • Module support matrix includes frozen modules for each board.
  • f-strings available in all builds.

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, these ports are consider stable:

  • atmel-samd: Microchip SAMD21, SAMx5x
  • cxd56: Sony Spresense
  • espressif: Espressif ESP32-S2
  • nrf: Nordic nRF52840, nRF52833
  • raspberrypi: Raspberry Pi RP2040
  • stm: ST STM32F4 chip family

These ports are considered alpha and will have bugs and missing functionality:

  • broadcom: Raspberry Pi boards such as RPi 4, RPi Zero 2W
  • espressif: ESP32-S3, ESP32-C3
  • litex: fomu
  • mimxrt10xx: NXP i.MX RT10xxx
  • stm: ST non-STM32F4 chip families

Changes since 7.3.0-rc.1

Fixes and enhancements

Port and board-specific changes

Broadcom

Espressif

i.MX

nRF

RP2040

SAMx

STM

Individual boards

Documentation changes

Build and infrastructure changes

Translation additions and improvements

New boards since 7.3.0-rc.1

Known issues

Thanks

Thank you to all who used, tested, and contributed since 7.3.0-rc.1, including the contributors above, and many others on GitHub and Discord. Join us on the Discord chat to collaborate.