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! To no surprise, Python makes impressive gains in popularity this month. Some interesting new software has come out: new versions of Visual Studio, VS Code, and Arduino Lab for MicroPython. And another alpha of CircuitPython shows new additions. Finally some interesting tidbits on Raspberry Pi boards. All of this and some of the best Around the Web projects and information of the year. Grab a tasty drink and happy reading. – 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:

Python Popularity Climbs to Highest Ever – Tiobe

Python popularity climbs to highest ever – Tiobe

Python continues to soar in the Tiobe index of programming language popularity, rising 2.2% to a 25.35% share in May 2025. It’s the highest Tiobe rating for any language since 2001 when Java topped the chart – InfoWorld.

Agent Mode Arrives in Visual Studio and There is a New Visual Studio Code Version

Agent Mode

Agent mode is now available in public preview for Visual Studio 17.14. Agent mode in Visual Studio allows defining tasks using natural language, with Copilot autonomously planning, editing a codebase, invoking tools, and iterating to resolve issues. Unlike Copilot Chat or Edits, agent mode using OpenAI’s GPT-4.1 doesn’t stop at one suggestion or file edit but works iteratively until the task is complete – Microsoft and YouTube.

VS Code 1.100

The latest version of VS Code delivers several Copilot enhancements – GitHub Blog and InfoWorld.

New:

  • Prompt caching and other enhancements now leads to faster agent edits, especially in large files.
  • Prompt and instructions files customizes Copilot’s behavior with reusable prompts and coding guidelines.
  • Select and attach UI elements in Copilot Chat with the built-in Simple Browser.

New Version of Arduino Lab for MicroPython

Arduino Lab for MicroPython

MicroPython Package Installer v0.20.0 has been released and is simpler to manage, with easy installs from Arduino’s index, micropython-lib, or a custom URL – Arduino Labs. Via the Arduino Newsletter.

New features:

  • New Package Installer button
  • Refreshed toolbar design
  • Improved menu actions & shortcuts
  • Bug fixes for better performance

Booting the RP2350 from UART

Booting the RP2350 from UART

The RP2350 has a few advantages over its predecessor, one of which is the ability to load firmware remotely via UART – Thomas Pfister, Codeberg and YouTube. Via Hackaday.

CircuitPython 10.0.0-alpha.5 Released

CircuitPython 10.0.0-alpha.5 Released

CircuitPython 10.0.0-alpha.5 is an alpha release for 10.0.0. Further features, changes, and bug fixes will be added before a final release – Adafruit Blog and Release Notes.

Highlights of this release

  • Add stability fixes for Espressif port builds.
  • Add fixes for direct connecting USB devices to PIO USB host.
  • Improve accuracy of time.sleep() and similar functions.
  • Add MixerVoice.end().
  • Change partition layout for Adafruit Feather ESP32-S3 4MB Flash 2MB PSRAM board, allowing BLE and other features to be enabled.

A “Currently Undocumented” Raspberry Pi Feature for Secure A/B Updates

A "Currently Undocumented" Raspberry Pi Feature for Secure A/B Updates

Embedded engineering firm Bootlin has published a write-up of a project that required A/B-capable secure over-the-air (OTA) updates to a Raspberry Pi 5 target — and how they achieved it using the Robust Auto-Update Controller (RAUC) and the stock Raspberry Pi firmware, thanks to a somewhat-hidden new feature – hackster.io.

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, Tim streamed work on the new Sparkle Motion Stick setup and writing examples.

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 Seesaw Analog Read – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

The CircuitPython Show

The CircuitPython Show

In the latest episode of The CircuitPython Show, Paul welcomes 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 12, 2025 (notes) on YouTube.

Project of the Week: Leet AI

Leet AI

Leet AI is a pocket-sized synthesizer concept that explores what happens when many simple instruments work together—like a miniature electronic orchestra. Leet AI embraces a modular philosophy: multiple open-source, affordable units, each with a specific voice, combining to create something greater than the sum of their parts. Built with CircuitPython on an ESP32-S2 and a 1.8” 160×128 TFT color screen – Project Page, GitHub and YouTube. Via Reddit.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? High tariffs become ‘real’ with our first $36K bill.

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

Write Your Own 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

ESP-NOW-MIDI

ESP-NOW-MIDI is an Arduino and CircuitPython library for sending and receiving MIDI messages via the ESP-NOW protocol. A typical setup requires two ESP-NOW capable boards, where the board connected to your computer needs to be MIDI-capable – GitHub.

What programing framework should someone use for microcontrollers?

What programming framework should someone use for microcontrollers? Shawn Hymel talks about it in a short video – X.

Gaze-Tracking Working in Python — for Under $20

Gaze-tracking in Python for under $20 – hackster.io.

Zephyr Part 11: WiFi and IoT

Introduction to Zephyr Part 11: WiFi and IoT – YouTube. Via X.

Use a transparent OLED display with Raspberry Pi

Using transparent OLED displays with Raspberry Pi and Python – sozorablog (Japanese). Via X.

Assistive tech projects

Boston College assistive tech projects, Spring 2025, and many use CircuitPython – YouTube. Via Mastodon.

CircuitPython joystick test

A CircuitPython joystick test on Arduino Nano ESP32-S3 with an Adafruit Sharp Memory Display – X.

MicroPython ROMFS

An article on the ROMFS file system, now in MicroPython v1.25 – elektroda.pl (Polish).

Can MicroPython Handle Real Robotics? Let’s Find Out

Can MicroPython handle real robotics? Find out with Kevin McAleer – YouTube.

A Super Famicom cartridge reader

A Super Famicom cartridge reader implemented in MicroPython, for use with a Raspberry Pi Pico – Codeberg.

A MIDI controlled acoustic crank organ

A MIDI controlled acoustic crank organ with an ESP32-S3 N16R8 and MicroPython – GitHub and YouTube. Via Mastodon.

c7k keychain

The c7k keychain is a chording 7 key wearable I2C keyboard running CircuitPython – hackster.io.

RFID Lesson (CircuitPython School Student Post)

Abby Bergman, a Ph.D. student in the Boston College Physical Computing course, details how to use RFID with CircuitPython and the Raspberry Pi Pico – YouTube.

Who's That Bird

Who’s That Bird captures photos and images of birds and classifies them at a species and individual level, with Raspberry Pi and Python – Hackaday.io.

Party Necklace

Making a party necklace with a Circuit Playground Express and CircuitPython – Instructables.

5 Raspberry Pi Pico projects that cost under $10 but feel magical

5 Raspberry Pi Pico projects that cost under $10 but feel magical – XDA.

How to use template strings in Python 3.14

How to use template strings in Python 3.14 – InfoWorld.

Pyrefly

Pyrefly: A new type checker and IDE experience for Python – Meta Engineering.

New

T-Embed SI4732

LILYGO’s new T-Embed SI4732 is a pocket-friendly programmable Espressif ESP32-powered radio. FM, AM, LW, SW courtesy of a Skyworks Si4732 CMOS radio receiver connected to an Espressif ESP32-S3 – hackster.io.

PitFusion thermal imager

The PitFusion thermal imager for Raspberry Pi combines a Melexis MLX90640 sensor and an RGB camera. It uses an Adafruit LX90640 with 32 x 24 pixel array and Adafruit 0V5647 camera sensor, comparable to the RPi Camera Module v1.3 with 2592 x 1944 resolution – CNX Software.

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 20 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

New Learn Guides

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

Minesweeper on Metro RP2350 from M. LeBlanc-Williams

Motorized Camera Slider 2-Axis from Ruiz Brothers and Liz Clark

World Clock from Ben Everard

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

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 was away for a couple of weeks but am now back and have caught up.

CircuitPython 10.0.0 is a lot closer now, with about 20 issues to address left on the 10.0.0 milestone. Eightycc and I will be working on these while Scott is away on leave.

I fixed a bug on the Nordic port that caused microcontroller.cpu.reset_reason not to be updated in some cases.

Tim

This week I updated the core tilepalettemapper module to be more integrated with TileGrid and to take advantage of some internal behavior of TileGrid to make the mapper only cause a single tile to get refreshed when a mapping is updated instead of the entire grid. This was a done in anticipation of using TilePaletteMapper for the visible cursor inside of the editor, which I also did this week.

I’ve also started working on updating all of the CircuitPython libraries to use Ruff instead of pylint and Black. I’ve been using Claude Code for that process and it has sped up the process quite substantially, there were about 300 that needed updating when I started so the speed is welcome.

Scott

This last week I worked part time fixing bugs and I’m starting the remaining eight weeks of my paternity leave tomorrow. This week I fixed four bugs:

  • Fixed vectorio in group tracking so they can’t be added to multiple groups.
  • Fixed RISC-V register collection for GC.
  • Removed non-standard sys.print_exception() and removed one of two traceback object implementations we had added to CP.
  • Fixed terminal initialization after setting a new rotation.

Liz

This week I wrote a new CircuitPython helper library called MIDI Parser. It lets you read MIDI files (.mid) in CircuitPython and “play” them with the included BPM in the file if available. This came out of the new toy robot xylophone I’ve been working on. I wanted to have it be able to act as a music box and play music on its own. I had written code to do this in the code.py file and then realized it could be broken out into its own helper library.

Upcoming Events

PyCon US 2025

The community is coming back to Pittsburgh, Pennsylvania for PyCon US 2025 May 14 – May 22, 2025 – us.pycon.org.

MicroPython Meetup

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

KiCad Conferences

KiCad conferences (KiCon) to be held this year include 28 – 30 May 2025 in San Diego, California, 19 – 20 Sept 2024 in Bochum, Germany, and to be determined in Asia – KiCad.

Open Hardware Summit 2025

Open Hardware Summit 2025 is being held May 30 @ 10am – May 31 @ 6pm GMT+1 in Edinburgh, Scotland – Eventbrite.

PyOhio 2025

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

PyCon UK 2025

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

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

20250516 is the latest Adafruit CircuitPython library bundle.

20250516 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.0b1.

4,267 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,936 Thanks

38,936 THANKS

Adafruit Discord

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