CircuitPython 8.0.0 Beta 1 Released! @circuitpython

From the GitHub release page:

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

Firmware downloads are available from the downloads page on The site makes it easy to select the correct file and language for your board.


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 is available in

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


  • Enable console UART by default. #6887. Thanks @RetiredWizard.


  • Manage I2C device locking for esp32_camera. #6940. Thanks @jepler.
  • Pin state can be preserved during deep sleep. #6907. Thanks @dhalbert.
  • Fix PWM reset issues. #6898. Thanks @dhalbert.
  • Correct available run modes on different chips. #6886. Thanks @MicroDev1.
  • Improve esp32_camera error checking. #6794. Thanks @jepler.



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


  • Preliminary implementation of WiFi on the Pi Pico W. #6976, #6960, #6933. Thanks @jepler.
  • Bulk analog input: analogbufio. #6911, #6757. Thanks @latkinso42.
  • Fix rp2pio issue when no OUT pins used. #6863. Thanks @jepler.
  • Update pico-sdk to 1.4.0. #6822. Thanks @jepler.
  • Improve compilation error checking. #6973. Thanks @jepler.



  • Can now enter DFU bootloader mode programmatically. #6961, #6919. Thanks @flom84.

Individual boards

  • Adafruit ESP32-S2 TFT: remove now-unneeded pin reset workaround. #6909. Thanks @dhalbert.
  • Adafruit Grand Central M4: update preferred pin names to match silkscreen. #6953. Thanks @kattni.
  • Adafruit MatrixPortal: disable ulab to make room for frozen modules. #6779. Thanks @dhalbert.
  • AIThinker ESP32-C3S-2M: use unique creation ids. #6937. Thanks @jepler.
  • Cytron Maker Feather AIoT S3: most pins now enable pulldown when reset. #6895. Thanks @CytronTechnologies.
  • Cytron Maker Feather AIoT S3: change pin assignments due to redesign. #6881. Thanks @CytronTechnologies.
  • MicroDev microC3: update board definition. #6888. Thanks @MicroDev1.
  • PewPew: remove alias to non-existent PewPew13 board. #6842. Thanks @Neradoc.
  • PewPew ugame10: Update and fix build typo. #6823. Thanks @pypewpew (@deshipu).
  • Smart Bee Designs Bee-Motion-S3: fix pin name. #6917. Thanks @strid3r21.
  • Unexpected Maker FeatherS3: fix pin names. #6873. Thanks @UnexpectedMaker (@UnexpectedCircuitPython).
  • Unexpected Maker ProS3: fix pin names. #6873. Thanks @UnexpectedMaker (@UnexpectedCircuitPython).
  • Waveshare Electronics ESP32-S2-Pico: pin fixes. #6864. Thansk @bill88t.

Documentation changes

  • Run black over all inline documentation to make its formatting consistent. #6972, #6951, #6950. Thanks @jepler.
  • Temporary fixes to work around documentation building issues. #6946, #6944. Thanks @jepler.
  • Correct documentation for usb_cdc.Serial.readinto(). #6944. Thanks @jepler.
  • Correct documentation for #6908. Thanks @dhalbert.
  • Fix some type annotations. #6905. Thanks @hardfury-labs.
  • Add more links to external documentation. #6900. Thanks @tekktrik.
  • Add documentation for socketpool.SocketPool(). #6855. Thanks @tekktrik.
  • Add web workflow documentation and links. #6854. Thanks @makermelissa.
  • Fix UART documentation. #6846. Thanks @tekktrik.
  • Improve os.stat documentation. #6841. Thanks @thetazero.
  • Copyediting in Design Guide. #6833. Thanks @rshah713.
  • Update license files. #6826. Thanks @MicroDev1.
  • Fix type annotation for adafruit_bus_device.SPIDevice(). #6814. Thanks @MicroDev1.
  • Add ESP32 to Espressif port status in README. #6974. Thanks @MicroDev1.

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:

  • @alvaro (Spanish)
  • @bergdahl (Swedish)
  • @bill88t (Greek)
  • @boranroni (Turkish)
  • @hexthat (Chinese – Pinyin)
  • @Lisapple (French)
  • @urfdvw (Chinese – Pinyin)
  • @wtuemura (Portugese – Brazil)

New boards since 8.0.0-beta.0

  • BananaPi BPI-Bit-S2. #6899. Thanks @BPI-STEAM.
  • BananaPi BPI-Leaf-S3. #6904. Thanks @BPI-STEAM.
  • Invector Labs Challenger RP2040 subGhz. #6681. Thanks @PontusO.
  • Invector Labs Challenger RP2040 WiFi/BLE. #6868. Thanks @PontusO.
  • STM Nucleo-F446RE. #6945. Thanks @flom84.
  • Unexpected Maker TinyPICO Nano. #6918. Thanks @UnexpectedMaker.
  • Unexpected Maker TinyPICO (V2/V3). #6918. Thanks @UnexpectedMaker.
  • WEMOS LOLIN S3 16MB Flash 8MB PSRAM. #6859. Thanks @wemos.

Known issues

  • See for other issues, including issues still to be addressed for:


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

Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here:

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in!

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 36,000+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython – The easiest way to program microcontrollers –

Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at !

No Comments

No comments yet.

Sorry, the comment form is closed at this time.