View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! School is out for Summer and some of this weeks projects reflects the work done in class. The RISC-V emulator that runs CircuitPython, MicroPython and more is very nice. A new version of CircuitPython 9.2 corrects a few issues noted in the community. A new article on Cortex-M bootloaders for getting under the hood on Arm chips. And how does one choose a microcontroller and the software that supports it? All that and some great projects & more from around the world to review from this past 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:
A RISC-V Emulator in Python that Runs MicroPython and CircuitPython

This is a simple and readable RISC-V RV32I emulator written in pure Python. It supports machine mode, and can run programs compiled with Newlib or Newlib-nano. It is designed for educational use, experimentation, and portability — not for high performance or full system emulation - GitHub.
It has pre-built images for MicroPython and CircuitPython:

CircuitPython 9.2.8 Released

CircuitPython 9.2.8, the latest bugfix revision of CircuitPython and is the new stable release - Adafruit Blog and Release Notes.
Highlights of this release
- Fix
deque
bug.
- Fix I2S audio file read causing memory corruption.
- Support “Spectra6” six-color e-ink displays.
- Fix
audiodelays.Delay
when freq_shift=True
.
- Board fixes.
Bootloaders on Cortex-M CPUs

Bootloaders are the unsung heroes of ARM Cortex-M-based systems, used in many microocontrollers. They ensure reliable startup, application execution, and allow for firmware updates. By leveraging the Cortex-M’s vector table, VTOR, and low-power features, developers can create efficient and secure bootloaders tailored to their application’s needs - Pyjama Brah.

After Shawn’s Zephyr real-time operating system videos, he has written an article about choosing the right embedded platform. He hadn’t included CircuitPython and MicroPython but said he’d put them in the Arduino category - Shawn Hymel.
An eInk Dashboard

The MIT licensed information dashboard by Max Pflaum uses ESP32, MicroPython, OpenWeatherMap API, and the Pi-hole API to create a sleek eInk display with essential data indicators - pflaumax.dev, XDA and GitHub.
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, Tim streamed work on CircuitPython Requests library tests.
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 reading button sequences - Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
The CircuitPython Show

In the last episode of The CircuitPython Show, Paul welcomed Justin Myers. Justin shares how he started with computers and electronics and how he developed connectionmanager
to make networking easier in CircuitPython - The CircuitPython Show.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for May 27, 2025 (notes) on YouTube.
Project of the Week: PyBadge Face Invaders

PyBadge Face Invaders is an asteroids-like arcade game that runs on the Adafruit PyBadge and features personalized faces to dodge and destroy, programmed in CircuitPython - hackster.io and GitHub.
Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Python 3 Cheat Sheet.
Did you know you can read past issues of this newsletter in the Adafruit Daily Archive? Check it out.
Write Your Project Notes on Adafruit Playground
Adafruit Playground is a new 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

A MicroPython implementation of the TV-B-Gone project using an ESP32-S3 - GitHub.

PECKUS: A (very small) USB mass-storage device that is only active when you want it to be, using CircuitPython - GitHub. Via Adafruit Blog.

These DIY Raspberry Pi Microsoft Teams buttons ensure you don’t fumble for the unmute button mid-call, using an RP2040 board programmed in CircuitPython - XDA.

An Android app controlling an RP2350-based W5100S-EVB-Pico 2 as an IoT device. It allows communication between your desired app with the board using CircuitPython and a local network or cloud service - hackster.io.

Andy Warburton finished a new keyboard: “It’s an evolution of my old keyboard with some function keys and media keys moved to the top right so I stop pressing mute instead of ctrl!” It uses KMK and CircuitPython - Mastodon.

mim, the mip package list for MicroPython, has been improved. Loooking for a driver, etc.? Check here - mim. Via Mastodon.

Johnson Francis runs his first MicroPython script in Raspberry Pi Pico with the help of ChatGPT - YouTube. Via X

MicroPython for motion sensors in fence security systems - Dev.

OpenMV’s Secret Sauce: MicroPython, Low Power, and Vision AI - YouTube.

Smart Glove: an interactive manual on your hand, via Circuit Playground Bluefruit and CircuitPython - Instructables.

I tried Cockpit to manage my Raspberry Pi and regret not using it sooner - XDA.

Testing the TROPIC01 secure element with an ESP32-S3 in MicroPython - X.

A WiFi controlled Pico car prototype – a simplified start to accessible remote play - Instructables.

A digital piano made with a Raspberry Pi Pico and MicroPython - X (Japanese).

Changing the main.py program with the push of a button in CircuitPython - X.

Articulating an eye with servos and MicroPython - X.

Solving the MemoryError issue on ESP32 with Micropython - YouTube.

Making a Tower of Lights game for accessibility using CircuitPython - Instructables.
New

The NXP MCX W72x series Cortex-M33 wireless SoCs support Bluetooth 6.0 and an 802.15.4 radio for Zigbee, Thread, and Matter. The MCX W72x family also implements Bluetooth Channel Sounding for accurate distance measurements with the help of a Localization Compute Engine (LCE) to reduce latency - CNX Software.

FriendlyELEC NanoPi M5 is a Rockchip RK3576 SBC with an optional metal case, up to 16GB LPDDR5, supports UFS 2.0 or M.2 NVMe SSD storage, features HDMI and MIPI DSI interfaces, two gigabit Ethernet ports, two USB ports - CNX Software. Via X.
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 Learn Guides

The Adafruit Learning System has over 3,000 free guides for learning skills and building projects including using Python.
“Mother of all Demos” USB Keyset from Ruiz Brothers and Liz Clark
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 528!
New Libraries
Here’s this week’s new CircuitPython libraries:
Updated Libraries
Here’s this week’s updated CircuitPython libraries:
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
I tracked down why BLE did not come back after deep sleep on the nordic port. It was a one-line change, but as sometimes happens, I was looking carefully in the wrong place for a while.
I released CircuitPython 9.2.8 to catch up on a few useful fixes and additions.
Tim
This week I ported the OPT4048 driver to CircuitPython and wrote the CircuitPython and Arduino example guide pages for it. There is a simpletest example, and a webserial demo that visualizes the CIE x/y color values by plotting them onto a chart. In between work on that, I have been reviewing library PRs, and updating libraries and examples to update usages of displayio APIs that are deprecated and being removed soon.
Liz
This week I wrote code for the USB Keyset Learn Guide. This project is a remake of the “Mother of All Demos” keyset from the Zerox Alto computer in the 1960s. It is a chording keyboard that lets you use different combinations of key presses as keyboard shortcuts. I had always wanted to try and send key press combinations in CircuitPython and this project serves as a good example for how to do that.
Upcoming Events

The next MicroPython Meetup in Melbourne will be on June 25th – Meetup. You can see recordings of previous meetings on YouTube.

PyOhio 2025 will be held Saturday & Sunday July 26 & 27, 2025 at the Cleveland State University Student Center in Cleveland, Ohio - PyOhio 2025.

KiCad conferences (KiCon) to be held this year include 19 - 20 Sept 2024 in Bochum, Germany, and to be determined in Asia - KiCad.

PyCon UK will be at CONTACT in Manchester from Friday 19th September to Monday 22nd September 2025 - PyCon UK 2025.

Maker Faire Bay Area 2025 will be Sep 26 – 28, 2025 in Vallejo, California, US - Maker Faire.
Send Your Events In
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 9.2.8 and its unstable release is 10.0.0-alpha.6. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20250529 is the latest Adafruit CircuitPython library bundle.
20250529 is the latest CircuitPython Community library bundle.
v1.25.0 is the latest MicroPython release. Documentation for it is here.
3.13.3 is the latest Python release. The latest pre-release version is 3.14.0b2.
4,272 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,980 Thanks


The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,980 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. The complete archives are here. It highlights the latest CircuitPython related news from around the web including Python and MicroPython developments. To contribute, edit next week’s draft on GitHub and submit a pull request with the changes. You may also tag your information on Twitter with #CircuitPython.
Join the Adafruit Discord or post to the forum if you have questions.