Daily tips and tricks from the experts at Adafruit!
View this email in your browser

View this email in your browser.

Welcome to the latest Python on Microcontrollers newsletter! The newsletter is back for 2025 with extra content covering the last couple weeks. A great deal has been happening. The beginning of the year is CircuitPython 2025, the annual call for users to let developers know their wishes and priorities. Open Hardware receives the spotlight this week, while open software CircuitPython gets an update. Finally, our hearts go out to those in California affected by wildfires. – 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

CircuitPython 2025

Let’s take this moment to reflect on 2024 and look ahead to 2025 for CircuitPython. Just like past years dating back to 2019, we’d like folks in the CircuitPython community to share their thoughts about CircuitPython’s future. So, please post about #CircuitPython2025 to some public place on the internet.

There is still time to get your submission in! Send yours in to circuitpython2025@adafruit.com or post it to a public place and send the link in by Tuesday January 14th – Adafruit Blog.

See some of the submissions which have already come in – blog.adafruit.com/tag/circuitpython2025/.

Scott and Ladyada Talk CircuitPython 2025

Scott and Ladyada talk CircuitPython 2025

Scott Shawcroft, the lead developer of CircuitPython, speaks with Ladyada on the past, present and future of CircuitPython – Adafruit Blog and YouTube.

Raspberry Pi Releases the Raspberry Pi 5 with 16GB RAM

Raspberry Pi Releases the Raspberry Pi 5 with 16GB RAM

On Thursday, Raspberry Pi released the awaited 16GB RAM version of their Raspberry Pi 5 flagship single board computer. Boards are available from retailers at a price point of $120 US – Raspberry Pi News.

“The optimised D0 stepping of the Broadcom BCM2712 application processor includes support for memories larger than 8GB. And our friends at Micron were able to offer a single package containing eight of their 16Gbit LPDDR4X dies, making a 16GB product feasible for the first time.”

They also launched Raspberry Pi Carbon Removal Credits, providing an option to mitigate the carbon footprint of manufacturing, shipping, and disposing of one of their computers. Priced at $4, they use offsets based on UNDO Carbon’s enhanced rock weathering (ERW) technology – Raspberry Pi News.

OSHWA Nears 3,000 Open Source Projects and Adafruit Reaches 800

OSHWA Nears 3,000 Open Source Projects and Adafruit Reaches 800

OSHWA Nears 3,000 Open Source Projects and Adafruit Reaches 800

The Open Source Hardware Association (OSHWA) is nearing the certification of 3,000 open source projects worldwide as of the end of 2024. Of those, 800 are by Adafruit – OSHWA.

The Year in Open Source Hardware: Why Open Hardware is Needed

The Year in Open Source Hardware

Open Hardware isn’t just about abstract principles. Several projects this year offered powerful demonstrations of why Open Hardware is needed – Adafruit Blog and The New Stack. Via BlueSky.

CircuitPython 9.2.2 Released

CircuitPython 9.2.2 Released

CircuitPython 9.2.2 is the latest bugfix revision of CircuitPython and is a new stable release – Adafruit Blog and release notes – GitHub.

Highlights of this release

  • int.from_bytes() and .to_bytes() calls can omit byteorder arg, as in CPython.
  • DemuxKeyMatrix: add scan delay, add columns_to_anodes and transpose args.
  • Implement audiomixer.MixerVoice.level as synthio.BlockInput.
  • displayio now supports 24-bit color depth.
  • Add sideset_pindirs to rp2pio.StateMachine.
  • rp2pio: support on GPIO pins 32 and up, available on RP2350B.
  • Initial implementation of audiobusio.PDMIn on Espressif.
  • Update Espressif ESP-IDF to v5.3.2, which supports ESP32-P4 v1.0 chips.
  • New ports/analog port, initially supporting Analog Devices ADI MAX32690 microcontroller.
  • Over 20 new boards.

Python is TIOBE’s Programming Language of the Year for 2024

Python is TIOBE's programming language of the year 2024

The TIOBE Index has named Python its programming language of the year based on the considerable growth in usage and popularity of the language over the past year. Among the reasons for Python’s rapid growth is that it has become a preferred language for organizations building next-generation AI applications – TIOBE. Via The New Stack.

“Python is everywhere nowadays, and it is the undisputed default language of choice in many fields,” wrote Paul Jansen, founder and CEO of TIOBE Software. “It might even become the language with the highest ranking ever in the TIOBE index. Python’s only serious drawbacks are (and thus leaving room for competition) its lack of performance and that most errors occur run-time.”

RISC-V Made Nice Software Progress In 2024 While Interesting Hardware Is Still Rare

RISC-V Made Nice Software Progress In 2024 While Interesting Hardware Still Rare

RISC-V on the software front made very nice progress over the past year with a lot of Linux kernel and toolchain improvements, new targets being enabled, and new instructions being supported along with other additions for improving the overall RISC-V software ecosystem. When it comes to hardware though most of the readily available RISC-V systems are painstakingly slow and the more performant/featureful options are much harder to come by – Phoronix.

Free Python Book Gets Yet Another Update

Think Python 3rd Edition

Think Python 3rd Edition by Allen B. Downey has been updated and released. While it’s on Amazon, etc. for purchase via Green Tea Press, there is a free version on GitHub – github.io.

KiCad 9 Release Candidate Available

KiCad 9 Release Candidate

The KiCad project announced the first release candidate for the next major version of their free printed circuit board design software. Version 9.0.0 is expected to be released by 01/31/25 – X. New Features and Downloads.

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 #CircuitPython2025 and more Zephyr.

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 is on hiatus due to the California fires. John and family are safe at the moment. 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. 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 6th, 2025 (notes) on YouTube.

Project of the Week – A Raspberry Pi Pico MIDI Gesture Controller

Raspberry Pi Pico MIDI Gesture Controller

Guitarist and keen coder Gary Rigg created a Raspberry Pi Pico-based MIDI expression pedal with 3D printing and CircuitPython – The MagPi and YouTube.

Popular Last Week

What was the most popular, most clicked link, in the last newsletter? 5 of the best budget-friendly SBCs.

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.

Option Map: Microcontroller form factors

Option Map: Microcontroller form factors – Adafruit Playground.

CircuitPython "Ring Oscillator" RNG with SN74AHCT14

CircuitPython “Ring Oscillator” RNG with SN74AHCT14 – Adafruit Playground.

GFFA - Aurebesh!

Galaxy Far, Far Away Aurebesh font – Adafruit Playground.

News From Around the Web

Linux 6.13-rc6 Released Following A Fairly Quiet Week

Linus Torvalds just released Linux 6.13-rc6 as the newest weekly test release of the Linux 6.13 kernel that is working its way toward stable release later this month – Phoronix.

2024 Was Raspberry Pi's Biggest Year to Date

2024 was Raspberry Pi’s biggest year to date – How-to Geek.

Git Cheatsheet

A Git crash course cheat sheet – X (click the graphic to get a larger version). The author’s site has other guides.

Maker uses Raspberry Pi 5 and Pico to power this multi-sensor project

Maker uses Raspberry Pi 5 and Pico to power a multi-sensor project using Python – Tom’s Hardware, GitHub and Reddit.

Raspberry Pi CM5 review

Raspberry Pi CM5 review with different cooling solutions (and camera tribulations) – CNX Software.

Baby logger

A baby logger for tracking various vital functions during the first few months after birth using Python on a Raspberry Pi Zero W – hackster.io and GitHub. Via Hackaday.

Automatic toothbrushing timer

An automatic toothbrushing timer using MicroPython – GitHub.

“This toothbrush timer tracks how long you spend on actively brushing your teeth. It uses an accelerometer to measure motion, and analyzes it using a simple machine learning model. The device helps you get to the 2 minute mark, which is the recommend duration. This is a demo project for emlearn-micropython, a library for efficient machine learning and digital signal processing in MicroPython.”

11 projects the Raspberry Pi Compute Module 5 (CM5) is perfectly suited for

11 projects the Raspberry Pi Compute Module 5 (CM5) is perfectly suited for – XDA.

MQTT Message Display with Word Wrapping on Presto Display

An MQTT message display with word wrapping on a Pimoroni Presto – GitHub. Via X.

Cyber WalkMan

Cyber WalkMan: a Cyberpunk-style multi-display music player using Python – hackster.io, DFRobot and hackaday.io. Via X.

Personalized Digital Tree Ornament with Animated Icons

A personalized digital tree ornament with animated icons using CircuitPython – hackster.io.

Raspberry Pi Pico Top Octave Generator

Making a Raspberry Pi RP2040 top octave generator chip replacement with MicroPython and PIO – cctv.fm.

Bringing SerenityOS to real hardware, one driver at a time

Bringing SerenityOS to real hardware, one driver at a time, with RP2040 and CircuitPython – sdomi.pl.

Raspberry Pi Pico W-Powered "pic0rick"

The Raspberry Pi Pico W-powered “pic0rick” delivers low-cost ultrasound experimentation, interfaced with Jupyter Notebook – hackster.io and GitHub.

Morse code transmitter

Morse code transmitter – flash messages to friends with an LED connected to a Raspberry Pi powered by Python – sean.co.uk.

Clock Features a Raspberry Pi Zero-Powered Thinking Machines Animation

Simon Boak’s upcycled forth clock features a Raspberry Pi Zero-powered Thinking Machines animation using a Raspberry Pi Zero and Python – hackster.io.

Focus Dial — a Digital Distraction Blocker

Focus Dial: a digital distraction blocker, using an Adafruit ESP32 QT Py – Instructables and GitHub.

How to Send Text Messages With a Raspberry Pi

How to send text messages with a Raspberry Pi and Python – Circuit Basics.

Human Activity Recognition with tree-based models

Human activity recognition with tree-based models, tested with an ESP32 and MicroPython – GitHub.

10 reasons you should use a Raspberry Pi as a dedicated print server

10 reasons you should use a Raspberry Pi as a dedicated print server – XDA.

Python Concurrency: Threads, Processes, and asyncio Explained

Python concurrency: threads, processes, and asyncio explained – newvick.com.

A deep dive into multithreading, multiprocessing, and asyncio – Towards Data Science.

New

Cygnet - The New STM32 Feather MCU from Blues

Cygnet is a new Feather-compatible host microcontroller from Blues – supporting Arduino, C, C++, and soon CircuitPython – Blues.

Radxa Cubie A5E

Radxa Cubie A5E is a tiny single-board PC with an M.2 socket and dual LAN ports – Liliputing.

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 eleven 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.

Holiday IoT Switch from Ruiz Brothers

Control Wiz Lights With CircuitPython from Tim C

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 497 (9 community bundle libraries were withdrawn)

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’m preparing CircuitPython 9.2.2 for release soon (Ed: It’s been released, see above). It will include over fifty pull requests with fixes, new boards, and new features.

I’m continuing working on getting CircuitMatter running in CircuitPython. I now am at the point in a simple example where all the encryption keys have been generated. At this point it appears I will need to add some needed features to the mDNS implementation in CircuitPython.

I fixed a bug in the CircuitPython MiniMQTT library that caused large packets to be truncated.

Tim

I’ve continued working on issues and reviewing PRs submitted CircuitPython libraries. This week I tested a few on the VEML7700 and submitted a fix a value that was changed in the newer revisions of the datasheet. I also tested some reported issues for WS2801 LEDs and refactored that library to use pixelbuf internally. I’ve started making a displayio based analog clock face widget that has customizable hands, numbers, and background.

Jeff

I took almost two full weeks off during the holidays, but when I was working it was all PIO, all the time.

As mentioned in the final newsletter of last year, I am still working on RGB matrix display support on the Pi5.

I also have started working on enabling PIO on the Metro RP2350 to use pins 32 and up in CircuitPython, which is also needed for the board’s USB host functionality.

Scott

This week I’ve been facilitating #CircuitPython2025 and collecting the posts on the blog. I’ve been working on CircuitPython on Zephyr otherwise. I’m working on supporting their flash API and am excited to abstract on top of it. Theoretically we’ll be able to support newer flash devices like NAND (instead of NOR) that Zephyr already supports.

Liz

This week I returned from my end of year nap. I kicked off 2025 by documenting the Newxie vertical TFT displays. These displays are meant to emulate nixie tubes with right angle header pins that allow them to stand-up easily on a breadboard. For the guide, I wrote examples for using one display with CircuitPython, Python and Arduino and a special page for using four of them at once with Python on a Raspberry Pi.

Upcoming Events

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on January 22nd – Meetup. You can see recordings of previous meetings on YouTube.

PyCon US 2025

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

20250110 is the latest Adafruit CircuitPython library bundle.

20250110 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.0a3.

4,168 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,600 Thanks

38,600 THANKS

Adafruit Discord

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