Daily tips and tricks from the experts at Adafruit!
View this email in your browser

View this email in your browser. Warning: Flashing Imagery

Welcome to the latest Python on Microcontrollers newsletter! And a happy end of August, which usually means the beginning of school for students. All those new students learning Python, CircuitPython and MicroPython. And hopefully they’ll find the newsletter and get some creative ideas. Creativity can come from anywhere and the maker community is generous with their ideas, designs and code.

This week MicroPython has released a major update with many requested features. There is also a new release candidate for CircuitPython 10.3 to kick the tires, also having many new features. Real Linux on an ESP32 family chip? That is what Espressif and two community ports are working on, as the new ESP32-S31 has a memory management unit. Do you have some programs made with MakeCode? They can be converted to MicroPython with a bit of guidance. And Raspberry Pi has officially adopted Cyberdeck building, showing the community their reference design. All that and so much more this week. – Anne Barela, Editor

We’re on Discord, Twitter/X, BlueSky and for past newsletters – view them all here. If you’re reading this on the web, please subscribe here. Here’s the news this week:

MicroPython v1.29.0 Has Been Released

MicroPython v1.29.0 Has Been Released

MicroPython v1.29.0, released August 24 by Damien George, adds a bare-metal “psoc-edge” port for Infineon PSOC Edge microcontrollers, with one supported board, the KIT_PSE84_AI. The machine.CAN API from v1.28.0 now runs on alif and mimxrt alongside stm32, and a new machine.mem_backup() gives access to backup memory surviving a hard reset on seven ports. Custom builds get a c_module() manifest function for user C modules, plus a USB Network (NCM) driver that makes the device look like a USB Ethernet adapter to the host. Thirteen new boards are added — including the Adafruit Feather RP2350 and ESP32-H2 support — with updates to Unicode handling, mbedTLS 3.6.6, LittleFS, TinyUSB and pico-sdk.

Breaking changes include stricter encoding validation (LookupError on anything but utf-8/ascii), reversed SDCard readblocks/writeblocks return values on esp32 and stm32, and all nrf boards now reporting sys.platform as “nrf” – GitHub. Via X.

CircuitPython 10.3.0 Release Candidate 0

10.3.0-rc.0

CircuitPython 10.3.0-rc.0 is a release candidate for CircuitPython 10.3.0 final. CircuitPython 10.3.0 will be the latest minor revision of CircuitPython, and will be a new stable release – Adafruit Blog and release notes – GitHub.

Notable additions, changes, and fixes in 10.3.0 from 10.2.1

Gaming and Display

  • picogame game engine module, a performant game-oriented alternative to displayio.
  • E-ink display quality improvements, including on MagTag 2025.

Audio

  • audio.AudioOut, using DAC, now available on STM.
  • audio_i2sin, available on Espressif and RP2xxx.
  • audiofilewriter, to send an audio pipeline stream to a file.
  • audiodelays.Flanger, audiodelays.GranularPitchShift.
  • audiospeed.Resampler.
  • audiodelays, audiofilters, and audiofreeverb now available on RP2xxx.
  • synthio.Biquad filters now available in audiodelays.Echo and audiofreeverb.Freeverb.
  • usb_audio.USBMicrophone and usb_audio.USBSpeaker, which provide audio source and sink USB devices.
  • Duplex I2S.

settings.toml

  • CIRCUITPY_BLE_WORKFLOW toggle.
  • CIRCUITPY_HEAP_SRAM_SIZE.
  • CIRCUITPY_SAFE_MODE_DELAY time value.
  • CIRCUITPY_SDCARD_USB toggle.
  • CIRCUITPY_WIFI_HOSTNAME.
  • Float values can now be specified.

Storage

  • sdioio now available on RP2xxx.
  • storage.unsafe_disable_usb_drive() can disable the USB CIRCUITPY drive after the host has mounted it.

Fixes

  • ESP-NOW works again.
  • USB host fixes.
  • BLE workflow fixes (more to come).

Highlights of this release

  • Add picogame game engine module.
  • Add CIRCUITPY_HEAP_SRAM_SIZE setting in settings.toml.
  • Add audiodelays.Flanger.
  • Add synthio.Biquad filters to audiodelays.Echo and audiofreeverb.Freeverb.
  • Implement duplex I2S.
  • Add stereo support to usb_audio.
  • BLE workflow fixes (more to come).
  • Zephyr BLE support.
  • Many other Zephyr additions, fixes, and new boards.

Espressif Systems Releases a Linux BSP Developer Preview for ESP32-S31 RISC-V Microprocessor

Linux

The ESP32-S31 microprocessor is getting Linux support from Espressif Systems. The ESP32-S31 dual-core RISC-V microprocessor was first unveiled in March, two ESP32-S31 development boards followed in May, and mass production was announced a few weeks ago. The new RISC-V chip features an MMU (Memory Management Unit), which makes Linux much easier to handle, and the development boards also come with 16MB PSRAM, so a minimal Linux image is possible. Espressif Systems has now released a developer preview version of the ESP Linux BSP for ESP32-S31, and some community Linux ports are also in the works – CNX.

Rewriting MakeCode Into MicroPython

Rewriting MakeCode Into MicroPython

saitodev discusses how to rewrite the visual language MakeCode to the text-based MicroPython, using the BBC micro:bit as an example platform – saitodev.co. (Japanese)

Raspberry Pi Now Has an Official Guide for Building Your Own Cyberdeck

Official Guide for Building Your Own Cyberdeck

Raspberry Pi has shared a series of DIY instructions for building a custom cyberdeck. The organization said the maker community has fallen in love with these homemade machines, which is why it has now published an “official” tutorial explaining how to build one using Raspberry Pi hardware and accessories – Techspot and How-To Geek. Guide Raspberry Pi News.

Tod Kurt’s CircuitPython Board Viewer

Tod Kurt's CircuitPython Board Viewer

Tod Kurt’s CircuitPython board viewer lets you compare CircuitPython-compatible boards. For instance, ESP32-S3 vs ESP32-C3 QTPys. S3 has two I2C busses, C3 has a BOOT0 button – GitHub. Via Mastodon.

Using WebMCP To Interactively Program Hardware

Using WebMCP

André Bandarra demonstrates adding WebMCP to a website to allow an LLM (ChatGPT in this case) to program a Pimoroni Presto using MicroPython over WebSerial – X.

This Week’s Python Streams

Python Streams

Python on Hardware is all about building a cooperative ecosphere which allows contributions to be valued and to grow knowledge. Below are the streams within the last week focusing on the community.

CircuitPython Deep Dive Stream

Deep Dive

Last Friday, Scott streamed work on the Zephyr Bootloader.

You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.

CircuitPython Parsec

CircuitPython Parsec

John Park’s CircuitPython Parsec this week is on the Fruit Jam Infrared IR Receiver – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

Deep Dive with Tim

Deep Dive with Tim

Last week, Tim was working on the TE SP-1 CircuitPython Learn Guide.

You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for August 24, 2026 (notes) on YouTube.

Project of the Week: ColecoJam

ColecoJam

Dan pulls off a huge project: make a Colecovision emulator for the Adafruit Fruit Jam in CircuitPython. Not only does it work but there is also an optional Fruit Jam add-on board to allow for reading Colecovision cartridges – Dan The Geek.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? These Raspberry Pi builds make everyday hobbies better (August 21 – 23).

Did you know you can read past issues of this newsletter in the Adafruit Daily Archive? Check it out.

Adafruit Playground Notes

Adafruit Playground

Adafruit Playground is a place for the community to post their projects and other making tips/tricks/techniques. Ad-free, it’s an easy way to publish your work in a safe space for free.

News From Around the Web

Cheat Sheet

Promethee Spathis’ Python Cheat Sheet is a concise and practical cheat sheet, covering over 95% of all Python 3.x commands with examples. Designed for both Python developers, learners, and hobbyists. It provides quick answers and efficient learning without overwhelming you with details. This cheat sheet summarizes key Python syntax, concepts, and common functions – GitHub. (PDF)

Hauntomation: Automating Halloween with Python

Hauntomation – automating Halloween with CircuitPython – The Aspiring Roboticist.

Jumperless

Kevin Santo Cappuccio, founder of Architeuthis Flux, joins Embedded.fm to discuss creating Jumperless, an open-source breadboard that replaces physical jumper wires with software-controlled analog crossbar switches. They explore the need for 445 RGB LEDs on a breadboard, using MicroPython to create scriptable circuits, some of the lessons that can be implemented with the Jumperless, and how it might be used to create new instruments – embedded.fm.

cyd-fb4

The Cheap Yellow Display (CYD) can be clumsy to use from MicroPython since a full framebuffer uses a lot of the available RAM. cyd-fb4 is a 4-bit framebuffer that leaves enough RAM for programs while still allowing use of a fast FrameBuffer interface – GitHub. Via BlueSky.

Python 3.15 Preview: Sampling Profiler

Python 3.15 Preview: The new Sampling Profiler – Real Python.

Cybertruck

A Bluetooth radio controlled Cybertruck model. This project contains the 3D model, the MicroPython source code and Android application source code – GitHub. Via X.

How to Install DietPi on Raspberry Pi (And Save 77% Storage Space)

How to install DietPi on Raspberry Pi (and save 77% storage space) – peppe8o.

StickS3 WiFi Surveyor

A pocket-sized 2.4 GHz WiFi survey tool by Greg Gorman for the M5Stack StickS3, built with UiFlow2 MicroPython. It scans nearby networks, follows the strongest access point broadcasting a selected SSID, and records a walk-through signal graph one deliberate sample at a time – GitHub. Via X.

Yahoo! News using MicroPython

An LED board displaying Yahoo! News using MicroPython and tutorial on programming the Raspberry Pi Pico W / 2W – aloseed.com.

My First Robot Just Got Five New Senses

My first robot just got five new senses (Modulino and MicroPython) – YouTube.

Train Countdown Clock

The Pimoroni Galactic Unicorn Train Countdown Clock displays national rail train times using MicroPython with the current time and the minutes until the next 3 trains – GitHub. Via BlueSky.

Python Strings Explained: A Practical Guide for Beginners

Python strings explained: a practical guide for beginners – HackerNoon.

Tamagotchi

Building a custom MicroPython Tamagotchi from scratch – YouTube.

RISC-V

GCC patches added -mcpu=native -mtune=native support for RISC-V – Phoronix.

The best ESP32 board for any project isn't the original one

The best ESP32 board for any project isn’t the original one – Make Use Of.

Looking for easy ESP32 projects? These 3 are the best place to start

Looking for easy ESP32 projects? These three are the best place to start – How-To Geek.

"NotImplemented" is Awesome in Python

“NotImplemented” is awesome in Python – YouTube.

New

synthiota synthesizer kit in CircuitPython

The Synthiota synthesizer kit in CircuitPython – SmallRun. Via BlueSky.

“Pico/Pico2-based board for playing with synthesizers in CircuitPython or Arduino. A synthesizer designed for CircuitPython synthio that features 27 RGB LEDs, 16 touch pads, two touch sliders, 8 potentiometers, MIDI In/Out, high-quality 16-bit audio out, and an OLED display. All driven by a Pico or Pico2.”

Jetson Orin Nano 2

NVIDIA Jetson Orin Nano 2 is a new robotics computer for entry-level edge AI. Jetson Orin Nano 2 delivers 2x the inference performance of its predecessor in the same form factor and consumes 40% less power at the same performance – nVidia.

OrangePi Zero 4

The Orange Pi Zero 4 is a new compact single-board computer designed as an alternative to comparable Raspberry Pi platforms. Measuring just 2.0 x 2.2 inches, a display can be connected directly rather than only through an interface such as MIPI DSI, and dual-display operation is also supported. A mini HDMI port provides 4K output at 60 FPS. The USB-C port supports video output as well as USB 3.1 data transfers. An Ethernet port is also included. Wireless connectivity consists of Wi-Fi 6 and Bluetooth 5.4. The board is has an Allwinner A733 SoC that combines two Cortex-A76 cores with six Cortex-A55 cores. Depending on the model, it comes with up to 16GB of RAM. Optional storage includes up to 32GB of eMMC or up to 128GB of UFS storage, while a microSD card slot is included – NotebookCheck.

New Boards Supported by CircuitPython

The number of supported microcontrollers and Single Board Computers (SBC) grows every week. This section outlines which boards have been included in CircuitPython or added to CircuitPython.org.

This week there were no new boards added.

Note: For non-Adafruit boards, please use the support forums of the board manufacturer for assistance, as Adafruit does not have the hardware to assist in troubleshooting.

Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:

New Adafruit Learning System Guides

New Learn Guides

The Adafruit Learning System has over 3,200 free guides for learning skills and building projects including using Python.

Adding a Bubble Level to the MEMENTO from M. LeBlanc-Williams

CircuitPython Libraries

CircuitPython Libraries

The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!

To get the latest Adafruit libraries, download the Adafruit CircuitPython Library Bundle. To get the latest community contributed libraries, download the CircuitPython Community Bundle.

If you’d like to contribute to the CircuitPython project on the Python side of things, the libraries are a great place to start. Check out the CircuitPython.org Contributing page. If you’re interested in reviewing, check out Open Pull Requests. If you’d like to contribute code or documentation, check out Open Issues. We have a guide on contributing to CircuitPython with Git and GitHub, and you can find us in the #help-with-circuitpython and #circuitpython-dev channels on the Adafruit Discord.

You can check out this list of all the Adafruit CircuitPython libraries and drivers available.

The current number of CircuitPython libraries is 582!

New Libraries

Here are this week’s new CircuitPython libraries:

Updated Libraries

Here is this week’s updated CircuitPython library:

What’s the CircuitPython team up to this week?

What is the team up to this week? Let’s check in:

Dan

I released CircuitPython 10.3.0-rc.0 late last week, and we hope 10.3.0 will follow shortly. The minor version number change belies how much is new and how much is fixed in the release. Thanks to everyone who contributed additions, fixes, and changes. Before the release, I worked on BLE workflow fixes. Many issues were fixed, though there are some remaining, which will be addressed soon.

Tim

I have continued work on the SP-1 device CircuitPython core changes. I’m breaking up the changes required into more isolated chunks to PR separately. PRs are merged for an analogio fix needed to read faders and buttons on the device, and another for I2SOut external_clock support for nordic. Another is submitted that makes SoftDevice optional in the nordic port. Disabling it can regain a little bit of flash and RAM in cases where you don’t need BLE, but reverting back to a standard build can’t be done via UF2, it requires SWD programming. I am applying changes from feedback about the SP-1 board definition. Lastly, I wrote the teardown page for the learn guide.

Scott

This week I’ve gotten Zephyr BLE workflow going. Along the way I fixed the default advertising name and implemented safe mode. Now I’m working on the Zephyr and MCUboot based Adaboot bootloader. This will make it easier to update CircuitPython Zephyr builds.

Liz

This week I’ve been working on porting the M4 Monster Eyes project to RP2 and Espressif boards. The previous monster eyes were targeted for the Monster Mask and Hallowing boards, which use a SAMD51/M4. There was a lot of code in the project that was locked to the SAMD51. The new version is built to try and make it chip and display agnostic with room to expand. I did a lot of testing to make sure everything works as expected and the repo has CI jobs to build UF2s for popular board/display/eye count combos.

The project does make use of the CIRCUITPY drive. You drag and drop your monster eye graphics onto your CIRCUITPY drive and then load the Arduino firmware. The Arduino code is able to access the files on the CIRCUITPY drive, making it easy to swap different eyeball styles. I’ll be writing up a Learn Guide with more detailed instructions soon, just in time for Halloween.

Upcoming Events

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on September 23 – Luma. You can see recordings of previous meetings on YouTube.

Maker Faire Bay Area

Maker Faire Bay Area is September 26-28 at Mare Island, California.

Other Events This Year

  • PyConZA 2026, South Africa’s Python conference, will be 14–18 Oct at Belmont Square, Cape Town, South Africa.
  • Espressif DevCon 2026 will be November 3-4 in Milan, Italy and online.

If you know of virtual events or upcoming events, please let us know via email to cpnews(at)adafruit(dot)com.

Latest Releases

CircuitPython’s stable release is 10.2.1 and its unstable release is 10.3.0-rc.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20260815 is the latest Adafruit CircuitPython library bundle.

20260826 is the latest CircuitPython Community library bundle.

v1.29.0 is the latest MicroPython release. Documentation for it is here.

3.14.7 is the latest Python release. The latest pre-release version is 3.15.0rc1.

4,545 Stars Like CircuitPython? Star it on GitHub!

Call for Help – Translating CircuitPython is now easier than ever

CircuitPython translation statistics on weblate

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! As always, if you run into trouble join us on Discord, we’re here to help.

38,896 Thanks

38,896 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached 38,896 humans – thank you! Adafruit believes Discord offers a unique way for Python on hardware folks to connect. Join today at https://adafru.it/discord.

ICYMI – In case you missed it

ICYMI

Python on hardware is the Adafruit Python video-newsletter-podcast! The news comes from the Python community, Discord, Adafruit communities and more and is broadcast on ASK an ENGINEER Wednesdays. The complete Python on Hardware weekly videocast playlist is here. The video podcast is on iTunes, YouTube, Instagram, and XML.

The weekly community chat on Adafruit Discord server CircuitPython channel – Audio / Podcast edition – Audio from the Discord chat space for CircuitPython, meetings are usually Mondays at 2pm ET, this is the audio version on iTunes, Pocket Casts, Spotify, and XML feed.

Contribute

The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Monday. To contribute your content, please email your news to cpnews (at) adafruit (dot) com with information and link(s) to your content.

Join the Adafruit Discord or post to the forum if you have questions.