View this email in your browser.
Welcome to the latest Python on Microcontrollers newsletter! This week’s issue has a couple of features. First are three how-to articles on Meshtastic, Time-of-Flight sensors and the pitfalls of Raspberry Pi PIO. Second is new materials for teaching CircuitPython at Boston College. We’re all searching for easier ways of doing our projects, and this issue might just help with that and spur creativity. - 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:
Arduino Launches a MicroPython Package Manager
The Arduino team has announced a new library management system aimed at making it easier to write MicroPython code for compatible Arduino microcontrollers by providing single-click installation from an official package index - hackster.io and Arduino Blog.
“The Arduino Lab for MicroPython has now gained an external package management system. Run outside the IDE itself, it works almost identically to the library manager in the standard Arduino IDE: it connects to an official package index and provides a searchable list of libraries, any one of which can be installed to a compatible microcontroller board in a single click. It also provides a way to add third-party packages from a URL — and all files can be automatically converted to MPY format for inclusion in a sketch.
The official package index includes, the Arduino team says, both officially-maintained packages, MicroPython standard libraries, and community contributions; those interested in adding to the latter are invited to send pull requests in to the MicroPython Package Index on GitHub.
Those who just want to try it out as an end-user, meanwhile, can find the source code and initial release on GitHub. Boards supported are the Arduino Portenta H7, Portenta C33, Nicla Vision, Giga, Nano RP2040, Nano ESP32, and Nano 33 BLE; “this tool may work for third party boards too,” the Arduino team notes, but warns “this is, however, not officially supported.”
MicroPython at FOSDEM
MicroPython will once again be joining forces with Espruino at FOSDFEM this year, 1-2 February in Brussels. Their table will be in building AW and they’d like you to show off your projects using MicroPython. There will also be two talks by Jon Nordby - X.
The Boston College Semester of Code
Prof. John Gallaugher of Boston College posts on Mastodon:
“If anyone wants to get in on a newbie-friendly #SemesterOfCircuitPython I am posting all of our weekly flipped class lessons in a playlist at YouTube.com/@BuildWithProfG. Plus weekly notes in Keynote & .pdf format, complete with in-class challenges in the PhysComp Google drive at Gallaugher.com. The first 2 weeks have lots of set up/config/background info. Starting with the Adafruit Circuit Playground Bluefruit, switching to Raspberry Pi Pico W midsemester. PyCharm, CircUp. All welcome!”
See a new selection of videos highlighted below in this newsletter.
Dominic Plunkett Discusses Engineering the Raspberry Pi Compute Module 5
In the latest issue of The MagPi magazine, Andrew Gregory speaks to Senior Principal Hardware Engineer Dominic Plunkett about how the pieces of the Raspberry Pi Compute Module 5 puzzle came together - Raspberry Pi News.
Hacker’s Guide to Meshtastic: Off-Grid, Encrypted LoRa Meshnets for Cheap
Beginners can now create off-grid, encrypted mesh networks for cheap using Meshtastic, with applications in emergency communication, sensor monitoring, and more. These mesh networks have been popping up in cities all over the world. A recent talk at 38c3 by Kody Kinzie goes over everything a beginner needs to run or build their own nodes - 38c3.
Time of Flight Sensors: How do They Work?
Hackaday looks into Time of Flight sensors: what they are and how they work - Hackaday and MicroPython code - GitHub.
Raspberry Pi Programmable IO Pitfalls
The Raspberry Pi RP2xxx’s Programmable Input/Output (PIO) subsystem, while incredibly powerful and versatile, comes with peculiarities. This article focuses on understanding PIO programming and its quirks - Towards Data Science.
Matter Will Be Better in 2025 — Say the People Who Make It
The CSA, Thread Group, and Wi-Fi Alliance say they’re working together to fix the problems that have plagued the smart home standard in its first two years. The Verge asks them how and when - TheVerge.
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 Zephyr WiFi.
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 Feather ESP32-S2/S3 I2C battery monitoring - Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
The CircuitPython Show
In the latest episode released January 27th, Paul welcomes back Jan Goolsbey, who shares how he built a corrosion and weather monitoring system using CircuitPython - The CircuitPython Show.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for January 21, 2025 (notes) on YouTube.
Project of the Week: Upcycling an Air Quality Sensor
Using a PM2.5 sensor pulled from a broken “smart” air purifier, Daniel James created a simple two-component CircuitPython-powered air quality monitor using a Raspberry Pi RP2040-based Adafruit KB2040 microcontroller board - hackster.io, website, and GitHub.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Free eBook: Think Python.
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.
CircuitPython Matrix Portal S3 NTP Clock - Adafruit Playground.
Adventure Engine: mapping a world in a NeoTrinkey - Adafruit Playground.
News From Around the Web
This week starts with highlighting a set of new videos on CircuitPython by Professor Gallaugher at Boston College.
Bring in Da Noise! Playing .wav files in CircuitPython on a Circuit Playground Express (CircuitPython School) - YouTube.
Bring in Da Func! Pt. 1, Introducing CircuitPython Functions (CircuitPython School) - YouTube.
Clip It Good! Clip a Speaker to a CircuitPlayground (CircuitPython School) - YouTube.
Better Buttons with Debouncing (CircuitPython School) - YouTube.
ifs, ands, and buttons - Conditionals in CircuitPython (CircuitPython School) - YouTube.
Importing and Using NeoPixel Colors from the Adafruit LED Colors Library (CircuitPython School) - YouTube.
Flash & Loop NeoPixels with Lists in Python (CircuitPython School) - YouTube.
And back to community projects:
Linux 6.13 release – main changes for the Arm, RISC-V, and MIPS architectures - CNX Software.
A USB to I3C converter using a Raspberry Pi Pico. Computer tests in Python - Hackaday and GitHub.
Anything to Home Assistant - with PSOC™ and MicroPython. Bring any sensor into Home Assistant, easier than ever, with MicroPython - hackster.io.
Using desktop Python to manage external sensors and motors with a Raspberry Pi Pico RP2040 and Adafruit Blinka - YouTube.
An ESP32-C3 SHT40 weather web server using CircuitPython - Instructables.
ESP32-C6: a beginner’s guide to LED blinking in 5 minutes with CircuitPython - YouTube.
A Raspberry Pi weather station made with Python and Grafana - X.
Making Belshazzar’s Clock using MicroPython - karliner.net. Via Mastodon.
Using a WebSocket control panel to broadcast data from the Raspberry Pi Pico W and control LEDs in real time with MicroPython and the Microdot framework - hackster.io and YouTube.
Four Raspberry Pi CyberDeck projects to inspire your own build - SlashGear.
Next-gen Ethernet standards set to move forward in 2025 - NetworkWorld.
MicroPython vs CircuitPython - Python for Microcontroller and Embedded System - YouTube (Hindi).
New
Olimex has recently released the PICO2-XL and PICO2-XXL open-source hardware RP2350B development boards with up to 16MB flash, 8MB PSRAM, 48 GPIOs, a microSD card slot, and more. Open hardware RP2350B boards are hard to find, and the only others besides these Olimex boards are the JumperLess V5 and Bus Pirate 6, but they are not general-purpose boards - 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 four 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:
Learn Guides
The Adafruit Learning System has over 3,000 free guides for learning skills and building projects including using Python.
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 498!
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 released CircuitPython 9.2.3 about ten days ago to fix a problem with USB and ESP32-S3. Since then, another fix has been made for USB and STM, and I hope to release 9.2.4 soon, along with some other fixes.
I’m now working on completing an update to the NINA-FW firmware for AirLift co-processors that will allow using elliptic cryptography certificate chains. A lot of this work was done more than a year ago, but it still needs to be debugged.
Tim
This week I’ve been working on some fixes for Blinka Displayio. I also searched the bundle for and fixed a few instances of our docs conf.py using deprecated Python modules. Lastly, I tested all of the CircuitPython examples for the Sparkle Motion Mini product guide pages.
Jeff
I’ve continued working in Raspberry Pi 5 land, making improvements to the piomatter
Python package for driving HUB75 style RGB matrices. This includes an example where part of the “/dev/fb0” framebuffer is copied and displayed on an attached matrix.
Scott
I’m continuing to work on CircuitPython on Zephyr. I fixed flash support so that CIRCUITPY is writable. I’ve changed memory management to support multiple RAM regions including SDRAM. The RA8 dev board has an external flash with varying page sizes so I’ve added support for a uniform subregion. I’m hoping to get WiFi working next.
Liz
This week I worked on CircuitPython code for a motorized turntable project with Noe. This turntable is meant for getting dynamic video shots. It uses the new TMC2209 silent stepper motor driver, which works by toggling the step pin to move the motor. I found that when I added the rotary encoder and button checks into the loop, even with ticks, that the driver basically stalled and wasn’t moving. I switched to asyncio
and that allowed the project to work with toggling the step pin, reading the rotary encoder and button and updating the OLED screen. I’m hoping this will be a nice demo for folks on how to use asyncio
, which can be a bit tricky to wrap your head around.
Upcoming Events
FOSDEM is a free event for software developers to meet, share ideas and collaborate. This year it will be February 1-2 in Brussels and the MicroPython folks will be there - FOSDEM 2025.
PyCascades is a regional PyCon in the Pacific Northwest, celebrating the west coast Python developer and user community. Our organizing team includes members of the Vancouver, Seattle, and Portland Python user groups. February 8-9, Portland, Oregon US - PyCascades 2025.
The next MicroPython Meetup in Melbourne, Australia will be on February 26th – Meetup. You can see recordings of previous meetings on YouTube.
The community is coming back to Pittsburgh, Pennsylvania for PyCon US 2025 May 14 - May 22, 2025 - us.pycon.org.
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.3). New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20250123 is the latest Adafruit CircuitPython library bundle.
20250124 is the latest CircuitPython Community library bundle.
v1.24.1 is the latest MicroPython release. Documentation for it is here.
3.13.1 is the latest Python release. The latest pre-release version is 3.14.0a4.
4,181 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,659 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,659 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.