The Python on Microcontrollers Newsletter: Adafruit Metro P4 Hydra, Possible New Raspberry Pi Boards, JIT Gone and More!
View this email in your browser. Caution: Moving Imagery
Welcome to the latest Python on Microcontrollers newsletter! With Halloween past, it is truly time for falling leaves and hot beverages. And the Python news keeps on coming. The Just-in-Time compiler for Python seems to be out according to the JIT team. Digging into Linux, one finds evidence for possibly two new Raspberry Pi single-board computers. And Adafruit comes out of the gate with a really nice ESP32-P4 board.
I would say the current trend is software. There are more tools available and the software that exists is getting faster and more optimized. Methods for looking at software to find bugs can also be used to fix the bugs and make the code better. CircuitPython has significantly improved software speed in several packages and I expect the trend to continue. – Anne Barela, Editor
The Adafruit Metro ESP32-P4 Hydra
Adafruit’s Metro ESP32-P4 Hydra puts an Espressif ESP32-P4 with 16 MB of PSRAM and an ESP32-C6 for WiFi 6, Bluetooth 5.3 LE, Thread and Zigbee on an Arduino UNO-shaped board, with Raspberry Pi-compatible MIPI display and camera connectors, a high-speed USB host port, a microSD slot and a STEMMA QT connector. CircuitPython 11.0.0-alpha.2 supports it, and it sells for $34.95 – CNX and Adafruit.
Linux Changes Point to a Raspberry Pi Zero 3 W and Pi 4 Model A
New device tree files in a Raspberry Pi Linux kernel tree describe two unannounced boards built on the Pi 4’s quad-core Cortex-A72 BCM2711 chip: a Raspberry Pi Zero 3 W with WiFi, Bluetooth and a single HDMI port, and a Raspberry Pi 4 Model A without Ethernet. Raspberry Pi hasn’t announced either board, and RAM, clock speeds, price and release date are still unknown – Hackster and bret.dk.
CPython’s Experimental JIT Compiler is Being Removed
The experimental just-in-time (JIT) compiler in CPython is coming out after its team withdrew PEP 836 on October 19, missing the Steering Council’s deadline for a plan to support, measure and maintain it. The council had paused JIT work in June and found its speed gains small, mostly helping long-running tight loops; others can still carry the work on outside mainline CPython – InfoWorld and PEP 836.
Security Releases for Python 3.11 Through 3.15
The Python core team put out expedited security releases of Python 3.15.2, 3.14.10, 3.13.18, 3.12.16 and 3.11.18. The ssl module now blocks the compromised eMudhra intermediate CA keys, so normal pip use is safe from attacks based on them even before pip is updated, and the releases also fix tarfile and http.cookiejar issues. Python 3.15.2 and 3.14.10 have binary installers; the other three are source-only – Python Insider.
Timing the Faster displayio in CircuitPython 11.0.0-alpha.2
Akkiesoft timed loading and showing a bitmap with OnDiskBitmap on a 240×240 ST7789 display, comparing CircuitPython 10.3.1 with 11.0.0-alpha.2 on a Raspberry Pi Pico and a Pico 2 W. The draw dropped from 0.77 to 0.29 seconds on the Pico and from 0.38 to 0.14 seconds on the Pico 2 W, and the post also notes that alpha.2’s acceptance of cross-signed root certificates fixed a TLS error the author had been working around. The article is in Japanese – Hatena Blog and YouTube.
One LVGL Binding for CPython, MicroPython and CircuitPython
Brad Barnett released omnipython-lvgl, which generates one set of bindings for the LVGL graphics library from LVGL’s own headers, so CPython, MicroPython and CircuitPython programs all share the same import lvgl as lv. On a desktop it installs as a Python wheel (on TestPyPI for now), and on a board LVGL is built into the MicroPython or CircuitPython firmware from the repository’s ports. It’s part of PyDevices’ OmniPython effort – GitHub and examples.
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 LVGL displayio.
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 Capacitive Touch on STEMMA Ports – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
Deep Dive with Tim
Last week, Tim streamed work on more SSTV photos from space and web workflow display mirroring.
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 October 26, 2026 (notes) on YouTube.
Project of the Week: A Game Boy Color Emulator on the GitHub Universe Badge
Steve Francia wrote a Game Boy and Game Boy Color emulator in MicroPython for the GitHub Universe 2026 badge, an RP2350 board with PSRAM and a 320×240 display. Viper-compiled code keeps each frame within the 60 Hz budget, so games like Link’s Awakening DX and Pokémon Crystal play at native size, and the work also sped up the earlier NES emulator for the badge – spf13.com and GitHub.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? iCircuit.
Did you know you can read past issues of this newsletter in the Adafruit Daily Archive? Check it out.
Adafruit Playground Notes
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
Gammawave updates an MP3 player built into a 3D-printed cassette shell, now with a flexible PCB to cut down the wiring. An ESP32-C3 mini board with a built-in OLED display runs MicroPython, driving a DFPlayer Mini that feeds the tape head so the cassette plays in a regular tape deck – Instructables.
klemens13 built a 12-key macropad with a 0.96-inch OLED that shows the active layer, a map of pressed keys and a small animated face. It runs CircuitPython and KMK as a USB HID keyboard on an ESP32-S2 Mini, LOLIN S3 Mini or ESP32-S3 Super Mini, with 3D-printable cases for MX or tactile switches. The README is in Indonesian – GitHub.
Video 113 in a long-running MicroPython and LVGL series looks at the new LVGL 9.6.0 release on a Raspberry Pi Pico 2 W (RP2350) with an ST7796 display, covering its memory and flash needs and running test programs on ST7796, ILI9341 and ST7735 screens – YouTube and GitHub.
Maker Class has an unofficial fork of CircuitPython that adds a desktop port, so CircuitPython code and libraries run as a program on Linux, Windows or macOS. The terminal is the serial console, a window is the display, a folder is the CIRCUITPY drive, and real pins are available through an FT232H or MCP2221A USB adapter or a Raspberry Pi’s header – GitHub.
Haunted Matrix is a Halloween slideshow for an Adafruit MatrixPortal M4 and a 64×32 RGB LED matrix, written in CircuitPython. It shuffles through 99 bundled illustrations, fading through black between pictures and slowly dimming one color region of each scene during its hold – GitHub.
PyDevices has a gallery of showcase apps, including a piano, a spectrum analyzer, games, dashboards and a photo viewer, built on its display stack. The same Python code runs on MicroPython and CircuitPython boards, in a desktop window, in a browser tab and on an Android phone, and the apps install on WiFi boards with mip – GitHub and try it in the browser.
DIYvolt built PICO Arc, a pocket-sized handheld game console on a Raspberry Pi Pico with an SSD1306 OLED, five buttons, a buzzer and a rechargeable battery, all on a small perfboard in a case made from flattened PVC pipe. It plays six retro games, including Snake, Pong and Space Survival, written in MicroPython – Instructables.
Arduino released App Lab 0.11.0, the desktop tool for building apps on the UNO Q, where Python runs on the board’s Linux side alongside an Arduino sketch on its microcontroller. The update adds versioned app releases, streaming sensor data from a smartphone, pose estimation, and support for several Raspberry Pi HATs on the UNO Q – Hackster and GitHub.
This open hardware board design pairs a Raspberry Pi Pico with an EC11 rotary encoder to make a USB volume knob: turn it to change the PC’s volume and press it to mute. The Pico shows up as a media keyboard running CircuitPython, so no driver is needed, though the post notes the board hasn’t been built yet – 3v3.dev and Bluesky.
A ring of 12 RGB LEDs in a 3D-printed case shows Great Britain’s live electricity generation mix, fetched every five minutes from the free Carbon Intensity API. It runs MicroPython on a Seeed Studio XIAO ESP32 board, with a touch sensor to switch display modes – Instructables.
The Oracle is a dice cup for reflection: roll the dice, a camera in the base photographs them, the pips are counted, and an LLM writes a short poem that plays from a speaker in the cup. A Seeed XIAO ESP32S3 Sense running CircuitPython captures the image, and an Arduino UNO Q running Python counts the pips and generates the poem – Molecularist and Hackster.
Pi-Esp Jarvis is a desktop voice assistant: you say “Jarvis” to a Waveshare ESP32-S3 Touch AMOLED 1.8 board, which runs the open-source xiaozhi-esp32 firmware (C++) for the microphone, speaker and animated face, while a Raspberry Pi 5 running standard Python (CPython 3.11) does the work and passes harder questions to Claude. It handles timers, alarms, weather, shopping lists, music and voice notes – Moth Cloud and GitHub.
Mario Cruz gave a 1984 Tomy Omnibot a Raspberry Pi 5 brain and a Raspberry Pi AI Camera, which runs YOLO11 object detection on its IMX500 sensor. The Python code drives the robot’s original motor board by playing its control tones through a Bluetooth cassette adapter, and adds an animated OLED eye and web dashboards for steering it toward people and objects – Circuit Digest and GitHub.
Kritish Mohapatra turned a Raspberry Pi Zero 2 W into a headless IoT gateway running a Mosquitto MQTT broker, Node-RED and a Node-RED dashboard. It collects sensor data from Mohapatra’s ESP32 and Raspberry Pi Pico projects, most of which are written in MicroPython – X and GitHub.
A beginner guide covers the ways to run a Python script on Windows, macOS and Linux: from the terminal, as an executable file with a shebang line, as a module with python -m, at the interactive REPL, and from editors such as IDLE, Visual Studio Code, PyCharm and Thonny – Dataconomy.
This tutorial builds a vulnerability tracker in about 500 lines of Python using only the standard library. It checks a package inventory against the OSV database, ranks findings with CISA’s Known Exploited Vulnerabilities list and EPSS exploit scores, and tracks fix deadlines in SQLite – shattered.io.
Four 8×8 WS2812B matrices make a 16×16 display driven by a Raspberry Pi Pico (RP2040) running 26 MicroPython animations, including fire, a clock, Game of Life and a raycasting shooter. The current is capped so it runs from USB power alone, and a Python GUI on the PC uploads demos and streams images, video and sound visualizations, with an OpenSCAD case to print. The README is in German – GitHub.
Christen Dijoux shares apps and mods for the GitHub Universe 2026 badge, the RP2350-based Badger 2350 with a 320×240 color screen running MonaOS and MicroPython, including a contacts app, a radar for nearby badges, a pedometer and a maze game. The repo also has Badge Studio, a browser-based app store that installs apps onto the badge – GitHub and Badge Studio.
The Engineer designs a modular ESP32-S3 controller board for RC models, with an IMU, USB-C and JST-GH connectors for add-on modules, from the four-layer KiCad layout through stencil and hot plate assembly. The board runs MicroPython to read the IMU, and a React app on the PC shows a 3D airplane that moves in real time with the board over WebSockets – YouTube.
HexaPud is a 3D-printed, 18-servo hexapod robot built by a team of students, with an ESP32 running MicroPython and driving the servos through two PCA9685 boards. The code handles inverse kinematics, omnidirectional walking, a four-legged mantis crawl mode and a WiFi web page for remote control – GitHub.
New
LILYGO’s T-Display K230 is an AI dev kit built on the Kendryte K230 dual-core RISC-V chip, with a 4.1-inch AMOLED touchscreen, WiFi, LoRa and an optional QWERTY keyboard that can add LTE-M/NB-IoT and GNSS. It ships with Linux and CanMV/RT-Smart firmware; the article doesn’t mention Python, but CanMV for the K230 is based on MicroPython – CNX.
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 two new boards added:
- Metro ESP32-P4 – Adafruit
- Eliobot – ELIO
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:
- How to Add a New Board to CircuitPython
- How to add a New Board to the circuitpython.org website
- Adding a Single Board Computer to PlatformDetect for Blinka
- Adding a Single Board Computer to Blinka
New Adafruit Learning System Guides
The Adafruit Learning System has over 3,200 free guides for learning skills and building projects including using Python.
FLAC and Ogg Playback with CircuitPython from Anne Barela
Computer Graphics Turbo Demos from John Park
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 596!
New Libraries
Here are this week’s new CircuitPython libraries:
Updated Libraries
Here are this week’s updated CircuitPython libraries:
- No updated libraries this week.
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
I’ve been working on Zephyr support for NXP i.MX boards, such as the Metro M7 boards. These are unusual chips, with multiple kinds of RAM partitions, so RAM management is somewhat tricky. It’s brought up some new space-saving and heap management issues, which I’ve been addressing.
Tim
Last week was the series 34 ARISS SSTV event. I was prepared with some different antennas for this one and managed to capture some great photos from the ISS as it passed over my area. I even submitted one of the photos to the ARISS gallery and received a virtual certificate, making the Fruit Jam now ARISS certified. I updated the ARISS page in the SSTV guide with a gallery of some photos I captured during the event and details on which antennas worked the best. This week I’m working on an SDR mapping project that includes ADS-B, APRS, and FT8 receiver apps that plot points relevant to the received signals on a map using the new adafruit_maptiles library. I got a Metro ESP32-P4 device and have been testing and updating the project code to work with it. The Metro P4’s high-speed USB host capability is particularly helpful for the ADS-B receiver, increasing by about 10x the amount of airtime that it can decode packets from.
Scott
This week I was on vacation. When I got back I polished up the camera PR and now I’m waiting for a review. Next I’m working on LVGL backed displayio.
Liz
I worked on adding support in the Adafruit_DAP library to use the CH32V203 QT Py as a host. This lets you use it to program and debug a board via SWD. It works with OpenOCD, PyOCD and a web app that I put together.
Upcoming Events
Espressif DevCon 2026 starts Tuesday and runs November 3-4 in Milan, Italy and online – Espressif DevCon.
The 2026 Hackaday Superconference will be November 6-8 in Pasadena, California. It opens with a badge-hacking day, followed by two days of hardware talks and workshops – Hackaday.
PyCon España (PyConES) 2026 will be November 6-8 in Barcelona, Spain, with a day of workshops followed by two days of talks – PyConES.
Maker Faire Orlando will be November 7-8 at the Central Florida Fairgrounds in Orlando, Florida, with a field trip day for schools on Friday, November 6 – Maker Faire Orlando.
The next MicroPython Meetup in Melbourne will be on November 25 – Luma. You can see recordings of previous meetings on YouTube.
There is no MicroPython Meetup planned for December.
Maker Faire Shenzhen 2026 will be December 12-13 in Nanshan, Shenzhen, China – Maker Faire Shenzhen.
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.1 and its unstable release is 11.0.0-alpha.2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20261030 is the latest Adafruit CircuitPython library bundle.
20261008 is the latest CircuitPython Community library bundle.
v1.29.0 is the latest MicroPython release. Documentation for it is here.
3.15.2 is the latest Python release. The latest pre-release version is 3.16.0a1.
4,573 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,009 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,009 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 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.