View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! It’s a time where the community is looking back at the previous year and planning for the new. Python is the top language worldwide and for good reason: it can handle tasks from microcontrollers to supercomputers. In this week’s wrap-up, Scott summarizes CircuitPython 2025 and there is a new bugfix revision. A nice article on the differences in Open Source licenses and an article focus on using Python. Plus the bevy of news and projects being created worldwide. – 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:
CircuitPython 2025 Wraps-Up
Scott Shawcroft thanks the 16 folks who wrote in about #CircuitPython2025. He states “It was a great mix of detailed suggestions and big news around who will be working on CircuitPython. It’ll be an exciting year and we’re happy to have you all participating.” – Adafruit Blog.
The Raspberry Pi RP2350 Hacking Challenge Results Are In
All chips have vulnerabilities, and most vendors’ strategy is not to talk about them. Raspberry Pi consider this to be suboptimal, so they entered into the DEF CON hacking spirit by offering a one-month, $10,000 prize to the first person to retrieve a secret value from the one-time-programmable (OTP) memory on the device.
On January 14, 2025, Raspberry Pi announced that they received not one but four valid submissions, all of which require physical access to the chip, with varying degrees of intrusiveness – Raspberry Pi News and Adafruit Blog.
LVGL Ported to MicroPython
Keith Mukai notes on X that Kevin Schlosser has “lvgl working on the latest MicroPython and it runs just fine on an ESP32-S3.” – X. See the software – GitHub.
A HUB75 Matrix Driver for Raspberry Pi 5 Using PIO
The Raspberry Pi 5 uses the new RP1 peripheral chip for GPIO, different from previous Raspberry Pi computers. This breaks some libraries including those driving LEDs. CircuitPython developer Jeff Epler has programmed the PIO on the RP1 to output image frames for HUB75 LED matrices – GitHub.
Open Source Licenses: Everything You Need to Know
Open source makes the technology world go ’round, forming as much as 90% of the modern software stack via frameworks; libraries; databases; operating systems; and countless stand-alone applications. However, there’s a perennial struggle between the open source and proprietary realms. At the heart of all this is the thorny issue of licensing. Read about various licenses and their use – TechCrunch.
Focus: Using Python
Python is the New Basic
A thread discussing the concept that Python is the new BASIC language in terms of ease of use and ubiquity – YCombinator.
Python For Everything
Python For Everything: why Python is the best programming language, and you should learn it – Medium.
Why Every Python Dev Needs Virtual Environments Now
A virtual environment is an isolated sandbox that allows you to install everything you need for a project without affecting things globally. Python contains everything you need to create and use a virtual environment, and it’s easy – The New Stack.
CircuitPython 9.2.3 Released
CircuitPython 9.2.3 is the latest bugfix revision of CircuitPython and is a new stable release – Adafruit Blog and release notes – GitHub.
Highlights of this release
- Fix ESP32-S3 regression: did not connect properly to USB without an interposed hub.
- New boards: Adafruit Sparkle Motion and Mini Sparkle Motion, M5Stack StampS3.
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 in CircuitPython (hopefully).
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 LED attenuation – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
The CircuitPython Show
The CircuitPython Show has returned after a one year hiatus! In the latest episode, host Paul Cutler interviews CircuitPython community member Aaron Pendley, who is known by squid.jpg in the Adafruit community. Aaron shares how he got started with computers, how he discovered CircuitPython, and some of his favorite CircuitPython projects – The CircuitPython Show
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for January 13, 2025 (notes) on YouTube.
Project of the Week: Putting a Music Sequencer in a PS4 Controller
Becky Stern uses an Adafruit KB2040 microcontroller board with a Raspberry Pi RP2040 chip, programmed in CircuitPython, to turn a Playstation PS4 controller into a music sequencer – Instructables.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Free book online: Think Python.
Did you know you can read past issues of this newsletter in the Adafruit Daily Archive? Check it out.
A New Note 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.
Getting Started with Zephyr on Linux – Adafruit Playground.
Zephyr Shell over USB or BLE + Bluefruit Connect – Adafruit Playground.
News From Around the Web
Bhavesh Kakwani shows two ways to install MicroPython on an ESP32 – bhave.sh.
Python 3.14.0 alpha 4 is out – Python Insider.
There are many new features planned in Python 3.14 including the use of Greek letters as constants
from math import pi as π
def circumference(radius: float) -> float:
return 2 * π * radius
print(circumference(6378.137)) # 40075.016685578485
Raspberry Pi presents several Compute Module use case studies – Raspberry Pi News.
Maker builds a Raspberry Pi 5 powered stereoscopic 3D video camera with Python – Tom’s Hardware.
Showing times of upcoming high/low tides using a WiPy and an e-paper display to try MicroPython in a project – hackaday.io.
A QWERTY keyboard for the PICOPAD by Pájeníčko, using CircuitPython and Raspberry Pi Pico 2 W – X.
Porting adafruit_button
in CircuitPython to the GT911 display on the T-Deck Plus – X.
Making a 3D-printed toy car with Adafruit Circuit Playground Express and CircuitPython – Instructables.
A Raspberry Pi Pico I2S & PCM5100 based Pico sound player – YouTube and Elecrow.
A remote-controlled walking robot using Raspberry Pi Pico W controlled servos and MicroPython – Instructables and YouTube.
AgriAid: an IoT smart irrigation system using Raspberry Pi and Python – Instructables.
Raspberry Pi and Python power a Meshtastic network BBS – Tom’s Hardware.
Friend Lights to stay in touch with a friend. They use a Raspberry Pi Pico W and MicroPython – Instructables snd YouTube.
Geolocation using WLAN and MicroPython – hackaday.io.
Video streaming with the ESP32-S3 Sense in MicroPython – Instructables.
ESP32 in MicroPython: One Wire Bus DS1820 – i-programmer.
Bringing SerenityOS to real hardware with RP2040 and CircuitPython – sdomi.pl.
A soccer ball launcher prototype using MicroPython and a Raspberry Pi Pico with a dual motor controller, and a couple of DC motors – X.
A gentle introduction to Rust for Python programmers – KDnuggets.
New
Seeed Studio XIAO Plus series adds more GPIOs through castellated holes. The new series includes the XIAO ESP32S3 Plus, XIAO nRF52840 Plus, and XIAO nRF52840 Sense Plus which are direct upgrades of the XIAO ESP32S3, XIAO nRF52840 BLE, and XIAO nRF52840 Sense boards. The XIAO nRF52840 Plus and the XIAO nRF52840 Sense Plus can be programmed with Arduino, CircuitPython, and MicroPython – CNX Software.
PicoPD Pro adds Power Delivery 3.1 (PD3.1) with PPS EPR AVS to a RP2040 board in a Pico footprint – hackaday.io and YouTube.
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 no 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 497!
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
After the recent release of CircuitPython 9.2.2, I investigated a USB problem with ESP32-S3 that may be due to a TinyUSB update, and am working with the TinyUSB maintainer on this. There is now a fix in the just-released CircuitPython 9.2.3.
I tested and merged a user-contributed pull request for the Adafruit Arduino NeoPixel library that fixes using longer NeoPixel strands.
I’m now working on a CircuitPython DMA issue that broke PicoDVI.
Tim
This week I worked on a couple infrastructure maintenance tasks, one was some fixes in cookiecutter to get it so a freshly generated project will pass pre-commit. The other is a change that is necessary to our read the docs configuration based on the RTD service deprecating some behavior around default configuration which used to allow us not to specify a configuration value that we will need to specify moving forward. I’ve submitted PRs for cookiecutter and the Bundle repo to resolve that, and next I will patch the libraries with the same fix.
Jeff
This week I made the initial release of the new piomatter
Python package for driving HUB75 style RGB matrices on the Raspberry Pi 5. Some bugfixes will be needed before this can be declared a stable version, though.
Scott
This week we wrapped up #CircuitPython2025. Thank you to everyone who posted their ideas. I’m very excited for the future of CircuitPython.
My own #CircuitPython2025 post and work this week has been on CircuitPython on Zephyr. This week I’ve gotten flash support working and also USB via TinyUSB. It is all a bit of a hack but I’m getting closer to polishing it all up.
Liz
This week I updated the Feather RP2350 guide to have PSRAM examples in both CircuitPython and Arduino. PSRAM is automatically used as the first line of storage on the board, so these demos just confirm that you have the heap space by running a check. 8MB of PSRAM will be incredibly helpful for CircuitPython projects that utilize a lot of graphical elements.
Upcoming Events
The next MicroPython Meetup in Melbourne will be on January 22nd – 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.
20250116 is the latest Adafruit CircuitPython library bundle.
20250111 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,173 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,612 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,612 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.