View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! This week involved a deep mining of the interwebs, and I believe it was well worth it. Starting with the final release of CircuitPython 10.3.0. The feature list is more like a major release rather than a point release. And anyone doing sound work will find CircuitPython on the bleeding edge. And on the display front, picogame is a fabulous way to do display work including scrolling games. Be sure to check out PyMCU. Compiling down to assembly does have its value and it works for CircuitPython, MicroPython and Python.
Do you know about the creator of Python? Read his story, it’s worth a couple minutes. Kevin McAleer is making SnakeROS, a pure-Python ROS 2 client for MicroPython and it would be great to have such capability. And much more, of course, in this issue. - 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:
CircuitPython 10.3.0 Released

CircuitPython 10.3.0 is a minor revision of CircuitPython and it’s the 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 changes since 10.3.0-rc.0
- Fix build failures.
- Update RP2350 PSRAM timing when processor frequency changes.

PyMCU is an open-source, experimental AOT compiler that translates a safe subset of Python directly into pure, highly optimized Assembly (ASM) for microcontrollers — aiming for deterministic, bare-metal execution with Zero-Cost Abstractions (ZCA). There are compatibility layers for both CircuitPython and MicroPython - GitHub.
- Deterministic by design: No OS, no Garbage Collector.
- Transparent & Educational: No black boxes. See exactly what your Python code turns into at the assembly level, making it perfect for both learning and high-performance embedded systems.
- Ecosystem-ready: Built-in standard library tailored for embedded constraints.
- MIT-licensed.
Guido van Rossum: Dutch Autodidact, Language Designer, and Creator of Python

Guido van Rossum is a Dutch programmer best known as the creator of the Python programming language. He served as Python’s Benevolent Dictator for Life until 2018. He is one of the most consequential figures in the history of software — the mathematician from Haarlem who, over a Christmas holiday in 1989 at the Centrum Wiskunde & Informatica in Amsterdam, began a “hobby” interpreter meant to combine the readability of the ABC language with the practicality Unix programmers needed, released it on Usenet in February 1991, and then spent three decades guiding it from a scripting experiment into the world’s most widely used language for science, education, automation, and artificial intelligence. Read his story - BBN Times.
A Robot Operating System (ROS2) Library for MicroPython

Kevin McAleer is making SnakeROS, a pure-Python ROS 2 client for MicroPython. SnakeROS lets a MicroPython board — a Pico 2 W, a Pico W, an ESP32 — publish and subscribe to real ROS 2 topics. No C toolchain. No custom firmware. No reflashing to add a message type - GitHub. Via X.
Building A Custom Prusa Print Companion App with MicroPython

Use a Tufty 2350 with the Prusa 3D printer API to create “Prusa Companion” to monitor 3D prints while away from the desk. With this app you can see the print progress, monitor temperatures and see the state of a print directly from a Tufty 2350 that is with you or worn around your neck - Pimoroni.
Quaddle Crowdfunding

“Quaddle is a palm-sized quadruped that lives on a desk or classroom table and folds flat on the go.” It features a modular design and an open-source framework that connects to a wide range of ecosystems. Code it in Python or Arduino from a phone or PC, drive it with a game controller, or simply tap it to interact - Petoi. Via hackster.io.
This Week’s 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

Last Friday, Scott streamed work on Bugs and Bootloader.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist - YouTube.
CircuitPython Parsec

John Park’s CircuitPython Parsec this week is on Fruit Jam SD card contents - Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
Deep Dive with Tim

Last week, Tim was looking at the CircuitPython watchdog module.
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 31, 2026 (notes) on YouTube.
Project of the Week: Dream Catcher

User Oblomovius on X has built a physical dream machine for their wife: “She always wants to capture her dreams when she wakes up. The device captures the dream, illustrates it beautifully and sends a postcard to a private website.” It uses a Raspberry Pi, and the project was planned out using Blueprint.io. OpenAI Codex was used to program the Python software. “You can literally just build things even as a non technical person. The future is electric. She absolutely loves it even though I destroyed her food storage box for the case.” - X.
Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Promethee Spathis’ Python Cheat Sheet. (PDF)
Did you know you can read past issues of this newsletter in the Adafruit Daily Archive? Check it out.
Notes from 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.

Making a Dragon Radar from Dragon Ball Z with a round Adafruit Qualia display and CircuitPython - Adafruit Playground and files - Codeberg.
News From Around the Web

Pi-Sky is a single Python application and web server that reads 1090 MHz aircraft data, enriches that data through public APIs, and streams live JSON to a connected browser. Everything runs locally, so you have control of the data - Raspberry Pi News.

Makers and educators, the slides for the first week of the Boston College AI-centric Physical Computing course with CircuitPython are up on a public Google Drive. First week has lots of configuration and setup. Getting started? Follow along with Prof. G - Google Drive. Via Mastodon.

Black Jack Folks: an AI dealer robot for elderly companionship - Instructables.

Sonos album art display with a Raspberry Pi and Python - Instructables.

The $15 Raspberry Pi Zero line board everyone recommends now costs $60, so here’s what to buy instead - MUO.

The configuration for FRDM-MCXN947 has been merged into the official MicroPython repository and its Zephyr port - NXP Community. (Japanese)

Seven projects you can build with an ESP32-powered Cheap Yellow Display - How-To Geek.

micrOS is a MicroPython based mini application execution platform with ShellCli (socket) and WebCli (http) servers and several other embedded features - GitHub and YouTube. Via X.

Turning a Tufty badge into a systems monitor with MicroPython - GitHub. Via X.

Building an internet radio with Raspberry Pi and Python - Raspberry Pi News.

How to install and configure UniFi Controller on Raspberry Pi - RaspberryTips.

Write Microsoft Project .mpp files from pure Python. No Java, no .NET, no Microsoft Project installation, no commercial library. MIT licensed. pymppwriter produces native MPP14 files (the format used by Project 2010 through the current Microsoft 365 desktop client). Files it writes will open in Project by double-click, which is the whole point: an .mpp download is associated with Project on every corporate PC, whereas the MSPDI .xml export has to be opened manually from inside Project - GitHub.

Displaying airplanes around Haneda Airport in real-time using Raspberry Pi Pico 2 W - X.

MicroPython OTA updates from GitHub on ESP32 - smysnk.com and YouTube.

I gave my blind local LLM eyes with a few hundred lines of Python, and it thinks it can see - XDA.

An MP3 player stuffed into a cassette, using MicroPython - Instructables.

Home Assistant/ESPHome - create a custom Bluetooth (BLE) scanner with ESPHome, MicroPython and LVGL - YouTube.

Broadcom pledges to lock down open source Python, Java libraries - The Register.

A green LED helmet coded in Python and MicroPython - BlueSky.
New

ArmSoM Sige6 is yet another SBC powered by the Allwinner A733 octa-core SoC, offered in a credit card form factor with up to 128GB soldered-on eMMC flash and up to 16GB LPDDR5. The single board computer features a microSD card slot and an M.2 M-key PCIe 3.0 x2 slot for storage, Gigabit Ethernet (with optional PoE), WiFi 6, and Bluetooth 5.4 connectivity, HDMI 2.0 and MIPI DSI display interfaces, a MIPI CSI camera interface, USB 3.0/2.0 ports, a 3.5mm audio jack, and a 40-pin GPIO header - CNX.

ARK Just A Pi is a tiny NDAA-compliant carrier board for the Raspberry Pi CM5 designed for drones, robots, or other space-constrained embedded applications that’s about the size of the Compute Module itself - CNX.

Makerfabs has an nRF52840 development board combining Bluetooth connectivity with a DW3000-series ultra-wideband radio. The board includes a 1.3-inch OLED display, dual USB Type-C connections, LiPo battery support, a fuel gauge, and expansion headers. Wireless connectivity from the MCU consists of 2.4GHz Bluetooth 5.0, with supported Bluetooth data rates of 2Mbps, 1Mbps, 500kbps, and 125kbps - LinuxGizmos.
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 was one new board added:
- SP-1 by Teenage Engineering
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

The Adafruit Learning System has over 3,300 free guides for learning skills and building projects including using Python.
Hacking The Teenage Engineering SP-1 from Tim C
CircuitPython Watchdog Module from Tim C
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:
- No new libraries this week.
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 final last Monday. I’m continuing to work on Espressif BLE bugs, and also fixing some regressions found in 10.3.0.
Tim
This week I made a few videos for the SP-1 guide and finished up its pages. After that I’ve started working on a new guide that will cover the watchdog module in CircuitPython. I learned a lot about the Nordic watchdog from the SP-1 project, so this was a natural next project. I’ve used a probe script to learn the behavior and allowed configurations of each of the different ports, in order to document all of them for the guide. While working on it I found a case that leads to a hard crash on Nordic and submitted a fix for it.
Scott
I’ve been doing a ton of reviews over the last week. LLMs are really helping folks extend and fix issues in CircuitPython. My main work has been on our fork of MCUboot to use with CircuitPython on Zephyr. I’ve split the changes on it out from CircuitPython and have it building the bootloader image and an updater on the Adaboot repo. CircuitPython will integrate with this once it is ready and provide UF2s and OTA binaries for Zephyr boards. I’m updating this to latest MCUboot now.
I’m also trying to debug an issue with the new saved word Zephyr test. It passes on my computer but fails often (but not always) in GitHub actions. I’m using address sanitizer to find memory issues in CircuitPython currently. It seems like the source of the issue.
Liz
This week I’ve been getting prepped for spooky season. I wrote some code for an upcoming Learn Guide with Noe that involves Frankenstein, candy and animated eyes. Speaking of eyes, I’ve also started a Learn Guide documenting the Adafruit Monster Eyes that I talked about last week. The guide will walk you through how to get the monster eyes code running on everything from a RP2040 Pico with DVI output to a Qualia S3.
Upcoming Events

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 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.3.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20260901 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.0rc2.
4,547 Stars Like CircuitPython? Star it on GitHub!
Call for Help – Translating CircuitPython is now easier than ever

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,891 Thanks


The Adafruit Discord community, where we do all our CircuitPython development in the open, reached 38,891 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

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.