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! The last issue was rather traditional in respect to the news. This week there is a bounty of content where Python intersects AI and LLMs. Not in an evil “AI will write all the code” but in a benevolent “LLMs can help you do things better” approach.

Examples: GitHub scans to ensure your private secrets.txt or settings.toml are not uploaded. Or connecting your oscilloscope to your computer so Claude Code can see I2C timings from MicroPython. Or having AI review your project and help with the documentation. You’re still in the loop, AI is helping. Beyond all that is the usual cornucopia of Python/MicroPython/CircuitPython goodness you have come to expect each week, hand curated for your situational awareness. – 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:

Scanning Your GitHub Uploads for Data Loss Via the GitHub MCP Server

Secret scanning in AI coding agents via the GitHub MCP Server

It can happen to any of us. We’re posting our MicroPython/CircuitPython/Python code to GitHub. And there is one file, settings.toml, secrets.py, etc. that we put our password in to a weather API, Adafruit IO, WiFi, etc. It should have been posted generically, but wasn’t, and now your credentials are on GitHub forever. What to do? A new feature of GitHub Copilot allows a search for such files in a commit and warns you. It could save heartache – GitHub Blog.

Arduino GitHub Repository Now Requires a Huge Contributor License Agreement

Qualcomm’s 6,000-Word Privacy Policy

If you submit a pull request to an Arduino repository on GitHub, a bot called CLA Assistant pops up and asks you to sign a Contributor License Agreement before your code can be merged – Adafruit Blog. Via LinkedIn.

Standard stuff for open-source projects. But look at the checkbox at the bottom of the signing page:

“I accept that the information I provide to sign this CLA will be maintained in accordance with project owner’s privacy policy.”

That link goes to Arduino’s privacy policy, which was secretly rewritten on November 1, 2025… the same period when Qualcomm Technologies acquired Arduino S.r.l.

The privacy policy you’re now agreeing to goes beyond the lightweight data-handling notice you’d expect for a code contribution: a 6,000+ word Qualcomm-grade corporate privacy policy covering the full Arduino product ecosystem (accounts, cloud services, e-commerce, IoT apps, education products, social media interactions, and minors’ data).

OpenAI to Acquire Astral

OpenAI to acquire Astral

OpenAI will acquire Astral⁠, bringing open source developer tools into the Codex ecosystem. Astral has built some of the most widely used open source Python tools, helping developers with modern tooling like uv, Ruff, and ty. Codex looks to handle the full workflow, not just the code – OpenAI and Ars Technica.

Simon Willison’s thoughts on OpenAI acquiring Astral and uv/ruff/ty – Simon Willison’s Weblog.

Claude + Oscilloscope: Agentic Hardware Testing for MicroPython

Claude + Oscilloscope: Agentic Hardware Testing

By connecting Claude to an Agilent oscilloscope via a custom MCP server and PyVISA, the AI has insight to the test bench. The implementation includes verifying I2C timing and PWM signals for a MicroPython port on a DUT Hub, ensuring code performs correctly on physical hardware – YouTube and GitHub. Via Reddit.

Editor Note: I’d love to do the same with CircuitPython and my modest scope, as Agilent’s are rather pricey.

Raspberry Pi 500+ Launches

Raspberry Pi 500+ Launches

Raspberry Pi released the Pi 500+ with an M.2 slot that fits the common 2230, 2242, 2260, and 2280 size M.2 SSDs. The Pi 500+ has several other new features. The key switches used are custom Gateron KS-33 switches, which have a similar clicky sound and feel to that of Cherry Blue switches. Each switch has an independent RGB LED, with tons of glowing awesomeness. They have increased the size of the SDRAM to 16GB from the 8GB included with the Original Pi 500 and have included a 256GB SSD, which is pre-loaded with Raspberry Pi OS – DigiKey.

In other Pi News, Tim Mamtora joins Eben Upton and team full-time as Raspberry Pi’s new Chief Operating Officer – LinkedIn.

Raspberry Pi Connect Adds Remote Update

Raspberry Pi Connect

Raspberry Pi has added remote update to their Raspberry Pi Connect software – Raspberry Pi News and Project Page.

Markdown is Now a First-Class Coding Language: Deal with It (Opinion)

Markdown is now a first-class coding language

Nick Hodges in InfoWorld wrote an article by this name. Up until a few months ago, most Python folks used Markdown text as a way to format README and LICENSE files in their GitHub code repositories. Now X/Twitter feeds are clogged with posts that start with “🚨 BREAKING: Someone just open-sourced a tool that …”. They typically lead to a set of Markdown files for instructing an AI, most often Claude, to learn new skills. And the wave is not about to crest anytime soon. And when one asks Claude Cowork to do some data crunching, it often codes in Python. And when you save the project to use it again, it’ll remember what to do via a Markdown file. Python and Markdown were just thrown in the fast lane. And folks are keeping an eye out – InfoWorld.

That said, when you need to generate documentation for your project:

OpenDocs

OpenDocs

OpenDocs converts GitHub READMEs, Markdown files, and Jupyter Notebooks into structured, multi-format documentation. Written in Python and under an open MIT license – GitHub.

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 CircuitPython for the nRF54LM20A.

BONUS: Scott also streams about Zephyr displayio and CI – YouTube.

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 a Trellis MIDI Velocity Meter – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

The CircuitPython Show

Adafruit’s John Park joins the show and shares a behind the scenes look at his weekly shows, some of his favorite CircuitPython memories, favorite projects, and more – The CircuitPython Show.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for March 16, 2026 (notes) on YouTube.

Project of the Week: Upcycling a 1992 Brick Phone

Upcycling a 1992 Brick Phone

Alan Boris took a 1992 Motorola 1G brick-style cell phone, removed the insides, and rebuilt it from scratch using modern parts centered around a Pi Pico 2 microcontroller programmed in CircuitPython. Then he takes it out for a spin – YouTube and GitHub. Via Adafruit Blog.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Free eBook: The Big Book of Small Python Projects.

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

New Notes from 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.

Bluesound Node Companion

Bluesound Node Companion – Adafruit Playground.

News From Around the Web

Sony Infrared Remote Control Shutter Using Circuit Playground Express (CPX)

Turning the Circuit Playground Express (CPX) into an infrared remote control for a Sony NEX camera, includes an example of making stop motion animations, showing why the adafruit_irremote library needed a minor enhancement for the Sony Infrared Remote Code (SIRC) protocol and an attempt at seeing the infrared beam spread – Instructables.

Text from video

Generating text from video captured by a camera using the Raspberry Pi AI HAT+ 2. Running the entire process, from “translating the English output from the local VLM into Japanese using the local LLM”, with Python – X.

Memory chip shortage will last until 2030

SK Group chairman says memory chip shortage will last until 2030 — the wafer supply trails demand by 20%. Their CEO is expected to announce price stabilization measures soon – Tom’s Hardware.

SparkFun

SparkFun adds beta documentation with AI integration and an updated organization. CircuitPython and MicroPython show up approximately 17,500 times each in a search – SparkFun News. Via X.

KiCad Version 10.0.0 Released

The KiCad project is proud to announce the latest major stable version 10.0.0 release – KiCad.

Control your First LED with Python - Raspberry Pi Projects

Control your first LED with Python – Raspberry Pi projects – YouTube.

This is why I keep buying ESP32 boards instead of more smart home gadgets

This is why I keep buying ESP32 boards instead of more smart home gadgets – XDA.

Adding Arduino Uno Q board support to MicroPython

Adding Arduino Uno Q board support to MicroPython by using Zephyr – GitHub. Via Adafruit Blog.

Phone-free thought catcher

A phone-free thought catcher using Raspberry Pi and Python – Raspberry Pi News.

Visual Studio Code

Visual Studio Code has switched to weekly updates, so new features and bug fixes are now arriving at a rapid pace. The new version 1.112 update is now available, with a significant upgrade for web development and a few more AI coding features – How-To Geek.

Kevin McAleer

Kevin McAleer builds Will Cogley’s animatronic eye mechanism. Kevin walks through the build, the problems encountered, and how this connects to his own robot eye projects – YouTube.

6 e-ink Raspberry Pi projects that look amazing

Six e-ink Raspberry Pi projects that look amazing – XDA.

Project Detroit

Project Detroit, bridging Java, Python, JavaScript, moves forward – InfoWorld.

Powered by Raspberry Pi: Singing fish, educational synths, and agile robots

Powered by Raspberry Pi: singing fish, educational synths, and agile robots – Raspberry Pi News.

4 ways to practice Python without following a tutorial

Four ways to practice Python without following a tutorial – How-to Geek.

New

Clintech Pico

The Clintech Pico Board appears to be the first development board based on the Raspberry Pi RP2354B chip, which has 2MB on-chip flash. It retains the same form factor as a Raspberry Pi Pico 2 but adds extra GPIOs to make use of the 48 general-purpose GPIOs provided by the RP2354B chip – CNX.

reTerminal D1001

Seeed Studio has announced a new 8” smart display, built around the Espressif ESP32-P4: the reTerminal D1001. The ESP32-P4 doesn’t include any wireless connectivity — so Seeed’s design includes an ESP32-C6 acting as a communications coprocessor for single-band Wi-Fi 6 and Bluetooth 5 Low Energy (BLE). There’s a mini-PCI Express (mPCIe) slot for an optional cellular modem, along with an integrated speaker, two microphones, a real-time clock, six-axis inertial measurement unit (IMU), and a 1600×1200 camera capable of 30 frames per second (FPS) video. Everything is powered by an internal 2.5Ah battery, charged via a USB Type-C connection – hackster.io.

LiDAR Module for Raspberry Pi

The Okdo budget-friendly LiDAR (Infrared Distance Sensor) module for Raspberry Pi is an infrared distance sensor module capable of measuring distances to objects in the range of 0.02 to 12m. It can detect objects and create maps with 360-degree scanning. It mounts on Raspberry Pi 4 and is ROS compatible – RS Japan. 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 seven 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

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

New Learn Guides

Blurry Analog Clock from the Ruiz Brothers

CircuitPython on the Xteink X4 eReader

CircuitPython on the Xteink X4 eReader from Liz Clark

Updated Learn Guides

Adding a Single Board Computer to Blinka

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 563!

New Libraries

Here are this week’s new CircuitPython libraries:

Updated Libraries

Here are 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:

Tim

This week I worked on CircuitPython drivers and guides for the AS7343 and TCS3430 breakouts. While working on these I’ve been expanding my knowledge of Arduino CLI to be able to compare the CircuitPython driver functionality with the Arduino driver during development. I’m working on validation test scripts that enable low level I2C debugging prints and then compare the raw I2C data being read/written between the Arduino and CircuitPython drivers. These tools increase our automated testing capability for driver development.

Scott

This week I’ve continued to poke GitHub actions to get the Zephyr display changes merged in. Thanks to the two GitHub folks who suggested a working workaround, I’m finally unblocked. I’ve gotten BLE GATT basics working in the native_sim and need to test on real hardware. I’m continuing to work on bringing UF2 bootloading to Zephyr via mcuboot. That way folks will only need to do a complicated flash once.

Liz

This week I published the CircuitPython on Xteink X4 guide. This guide goes through the peripherals available on the Xteink X4, how to install CircuitPython and gives a few examples to try out. My favorite is a weather display that uses the OpenMeteo API

Upcoming Events

MicroPython Meetup

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

PyCon DE & PyData 2026

PyCon DE & PyData 2026 will be 13 April 2026 – 17 April 2026 in Darmstadt, Germany

Other Events This Year

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.1.4 and its unstable release is 10.2.0-alpha.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20260311 is the latest Adafruit CircuitPython library bundle.

20260319 is the latest CircuitPython Community library bundle.

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

3.14.3 is the latest Python release. The latest pre-release version is 3.15.0a7.

4,477 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.

39,077 Thanks

39,077 THANKS

Adafruit Discord

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