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! I thought last week’s article on Claude 3.7 Sonnet would be a one-off but there apparentlly development environments are working to integrate AI in. Digging inside the chips, Zephyr is becoming a player in real-time ooperating systems on the faster microcontrollers (including alpha work in CircuitPython). Meanwhile Raspberry Pi is hacking their platform to support retro emulators with composite video. With the last newsletter, we hit exactly 12,000 subscribers. I’d like to personally thank all of you who subscribe and read, as it’s a barometer of the strength of Python on Hardware, embedded systems, making and more. - 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, subscribe here. Here’s the news this week:

The Newsletter Hits 12,000 Subscribers

12,000 Subscribers

The Python on Microcontrollers Newsletter hit exactly 12,000 subscribers with the last issue published a week ago. The last 8 months have shown increased growth from previous milestones. Thank you to all of our subscribers! - Adafruit Blog.

Introduction to Zephyr

Introduction to Zephyr

Professional Maker Shawn Hymel starts a video and tutorial series on the open source Zephyr real-time operating system. Zephyr is being used increasingly in more complex microcontroller projects and provides a common platform for services to programs running CircuitPython or MicroPython - DigiKey and YouTube.

Hacking Composite Video Support on the Raspberry Pi 5

Composite Video Support on the Raspberry Pi 5

The very first Raspberry Pi had a composite video output, and all models with a 40-pin header have a display parallel interface (DPI) output. With some external components, DPI can be converted to VGA or RGB/SCART video. Those analogue interfaces are still in demand for retro media and gaming. Now Nick Hollinghurst shows how DPI can output NTSC or PAL composite video through some additional hacks - Raspberry Pi News and the code is on GitHub.

A MicroPython Interpreter For Flipper Zero

A MicroPython Interpreter For Flipper Zero

Do you have a Flipper Zero? Have you ever wanted to use a high-level but powerful scripting language on it? There is now a MicroPython application for the Flipper, complete with a library for hardware and software feature support - GitHub and Hackaday. Via X.

Is an Intel N100 a better value than a Raspberry Pi?

Is an Intel N100 a better value than a Raspberry Pi?

Is an Intel N100/150 a better value than a Raspberry Pi 5? The answer is: it depends. Are you looking at raw compute, compute per watt, and/or if any special features (like GPIO or Thunderbolt) are required? - Jeff Geerling Blog.

How to Create a Virtual Environment in Python

How to create a virtual environment in Python

A Python virtual environment is an isolated workspace that allows developers to install and manage project-specific dependencies without interfering with the system-wide Python installation. This ensures that different projects can use different versions of packages and dependencies without conflict - Techloy.

AI Model Integration Into Development Platforms

As reported last week, AI / large language models have been increasingly used in coding. Here are two new examples this week to keep you abreast of the segment.

GitHub Copilot is Now in the Espressif IDE

GitHub Copilot Now in Espressif-IDE

A lot of Python developers work with the Espressif intergrated development environment (ESP-IDF) also. Espressif and GitHub have announced the Copilot4Eclipse plugin with the Espressif-IDE LSP C/C++ Editor, bringing Copilot’s AI-assisted code generation to the Eclipse IDE. Last week, we mentioned Claude 3.7 Sonnet use for coding. Are we getting to the point where all development environments will have a large language model tie-in? - Espressif.

Google Launches a Free Gemini-Powered Data Science Agent on Colab Python

Free Gemini-Powered Data Science Agent on Colab Python

A new, free, Gemini 2.0-powered AI assistant which automates data analysis is now available to users in select countries and languages. The assistant is through Google Colab, the company’s eight-year-old service for running Python code live online atop graphics processing units (GPUs) owned by the search giant and its own, in-house tensor processing units (TPUs) - VentureBeat.

“This expansion aligns with Google’s ongoing efforts to integrate AI-driven coding and data science features into Colab, building on past updates… It also acts as a kind of advanced and belated rejoinder to OpenAI’s ChatGPT advanced data analysis (previously Code Interpreter), which is now built into ChatGPT when running GPT-4.”

Build Precise Lab Equipment Using a Raspberry Pi and Lego

built precise lab equipment using a Raspberry Pi and Lego

A DIY Michelson-Morley interferometer proves that you don’t need expensive lab hardware. Kyra Cole set up the interferometer using Lego bricks as a base, then wired up a Raspberry Pi to analyze interference fringes - Osnabrück University Ultrafast Physics Research Group and Instructables. Via XDA.

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 was introducing and working on the new Core Module TilePaletteMapper.

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 SD Card Detect - Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

The CircuitPython Show

The CircuitPython Show

Tod Kurt and Jan Goolsbey join the show and share their experience in writing drivers and libraries for the CircuitPython Community bundle - The CircuitPython Show.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for March 3, 2025 (notes) on YouTube.

Project of the Week: Prop-Maker Lightsaber Remix

Prop-Maker Lightsaber Remix

GoulagmanFrYt on Reddit demonstrates the power of Open Source Software: “I recently did (the Adafruit Light Saber project). But I had problems with latency between movements and sounds and I wanted to improve the program. Not having too much knowledge in CircuitPython I improvised things and also used AI to finally get to make a program that works for me much better than the original. In addition, I have included a crackling animation when the lightsaber is moving.” - Reddit and code.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Resources for Learning Embedded Systems.

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.

Zephyr Quest: ST7789 Display with Feather RP2350

Zephyr Quest: ST7789 Display with Feather RP2350 - Adafruit Playground.

C3P0, Take the Wheel!

C3P0, Take the Wheel! - Adafruit Playground.

News From Around the Web

New pitch shift effect

A new audio pitch shift effect was just merged into CircuitPython - ReadTheDocs. Via X.

The Pico Touch Board

The Pico Touch Board turns a Raspberry Pi Pico into a MIDI marvel for touch-based music - hackster.io.

New #Zepir Raspbery Pi Zero based handheld computer

The new Zepir Raspberry Pi Zero 2 based handheld computer runs Python - X.

unittest: Python’s Built-In Safety Net for Developers

unittest: Python’s built-in safety net for developers - TheNewStack.

Watch cursor clock

A watch cursor clock display using an Adafruit ThinkInk Feather and Waveshare 4.2” eink display with CircuitPython - Mastodon.

Connect LED Strand to CircuitPlayground (CircuitPython School)

Connect LED Strand to CircuitPlayground (CircuitPython School) - YouTube.

Interfacing cheap digital calipers to Raspberry Pi

Interfacing cheap digital calipers to Raspberry Pi - GitHub. Via Hackster.io.

TheJedi in my microcontroller!

The Jedi in my microcontroller! Sensing gestures with the Adafruit APDS9960 (CircuitPython School) - YouTube.

Game of Life

Fr4nkFletcher on GitHub whipped up a fun Game of Life in CircuitPython over HDMI on the Waveshare RP2040 Pi Zero - X.

Programming Tutorial for Beginners

Starting with the RP2040 / RP2350 Pico, a programming tutorial for beginners: StepByStep CircuitPython - YouTube.

CircuitPython Snake Game

A CircuitPython snake game on the TV running on a Metro RP2350 - YouTube.

PSF Distinguished Service Award

PSF Distinguished Service Award granted to Ewa Jodlowska - Python Blog.

Raspberry Pi Pico W with BME280

Raspberry Pi Pico W with BME280 and OLED in Thonny and MicroPython - hackster.io.

VSCode to run MicroPython

Using VSCode to run MicroPython on a Raspberry Pi Pico - YouTube.

Bus Pirate bluetag

Bus Pirate bluetag automates JTAG and SWD pin finding - X.

New extended temperature range for Compute Module 4

New extended temperature range for Compute Module 4: -40°C to +85°C - Raspberry Pi News.

New

Wi-Fi HaLow mini PCIe module for Raspberry Pi

Seeed Studio launches WiFi HaLow mini PCIe module for Raspberry Pi, add-on board for XIAO boards - CNX.

STMicroelectronics Launches the Multi-Protocol STM32WBA6 and Ultra-Low-Power STM32U3

STMicroelectronics launches the multi-protocol STM32WBA6 and the ultra-low-power STM32U3 - hackster.io and 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 three 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.

Portable Macrodata Refinement Terminal from Liz Clark

Breakout Game on the Metro RP2350 from Anne Barela

No-Code Offline Data Logger with WipperSnapper from Brent Rubell

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

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

My update of the NINA-FW firmware for AirLift is now running and can do HTTP fetches and other operations. I need to add code to read the bundle of root certificates so it can do HTTPS. This version is running on ESP32 chips, as before, but I am also porting it to ESP32-C6, which is a modern and low-cost alternative.

Tim

This week I went back to working on the RPi5 with RGB Matrix panels. I expanded upon the xvfb example that Jeff wrote for PioMatter with a new version that reads data from the keyboard and passes it into the virtual X instance running the mirrored program. This allows interacting with mirrored apps and games that don’t have their own built-in support for gamepads. I’ve also been working on a new module for the CircuitPython core that allows you to set up color mappings for tiles within a TileGrid. It’s based on some feedback and discussions with Scott. Compared to my attempt last week, this is a more general approach that will be useful for inverted colors, but also allow for some other nifty things like mapping a 2bit Bitmap to a wider array of colors.

Jeff

Once again, my CircuitPython activity was limited over the past week. I was especially happy, though, to take a few minutes to review some PRs contributed by the community. @eightycc found and fixed a problem with storage.erase_filesystem on RP2350s when a HSTX display was active and @relic-se contributed a new pitch shift effect for real time audio processing.

Scott

This last week I’ve gotten USB host working well enough that I can work on my Chime Garden game and a menu system to select what program to run. I’ve still got to get the changes merged into the main CircuitPython branch and the underlying PIO USB host library. Getting these improvements in is my top priority before my vacation next week. With the remaining time, I’m adding a second “saves” partition so that CircuitPython can write files even when also connected to a host computer.

Liz

This week I published the Portable Macrodata Refinement Terminal Learn Guide. I’m really proud of this project. I put a lot of work into the Python code and 3D design to channel the vibe of Severance. It’s really satisfying to use with the trackball mouse, and I hope that it can be a useful example for folks looking to build their own.

Upcoming Events

Embedded World 2025

Embedded World 2025 will be held March 11 to 13, 2025 in Nuremberg, Germany. Raspberry Pi will be there - Embedded World.

Hackaday Berlin 2025

The Hackaday Europe hardware conference returns on Saturday, March 15th in Berlin, Germany. Plus extra festivities on the 14th and 16th - EventBright.

MicroPython Meetup

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

Maker Faire+City of STEM

City of STEM and Maker Faire Los Angeles, California is being held April 12, 2025 - MakerFaire.

PyCon US 2025

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

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.

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.4. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20250307 is the latest Adafruit CircuitPython library bundle.

20250220 is the latest CircuitPython Community library bundle.

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

3.13.2 is the latest Python release. The latest pre-release version is 3.14.0a5.

4,216 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,810 Thanks

38,810 THANKS

Adafruit Discord

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