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! A new version of CircuitPython is available with some fixes and features. The main focus this week is a trio of articles on machine learning (often called AI). Rather than just parrot hype, I quote three articles: two on running models on Raspberry Pi hardware and another on ethics and data handling. I believe they will have broad interest to readers. As always, there is a bevy of other content including projects to catch your interest. Happy February. – 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 9.2.4 Released

CircuitPython 9.2.4 Released

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

Highlights of this release

  • Update frozen modules, including a fix for adafruit_requests.
  • audiofilters: add Distortion and implement LFO ticking.
  • Add canio support for i.MX boards.
  • Fix RP2 picodvi crash.
  • Fix STM USB crashes.

Focus on AI/ML for Microcontrollers and Single Board Computers

You may notice that this newsletter avoids fads, instead looking to highlight things that can actually be done with hardware and software we might actually obtain. Here are three articles I found which address just that.

New Neural Network Slashes Sensor-Data Overload

While most models take in terabytes and need high end compute to process and provide results, IEEE Spectrum highlights Pennsylvania State University and MIT’s paper, published in Nature Scientific Reports, which demonstrates how a neural network can achieve an accuracy of more than 90 percent while sampling as little as 10 percent of the original sensor data.

To punctuate this, they demonstrate things using a Raspberry Pi Pico – IEEE Spectrum.

Deepseek R1 on a Raspberry Pi

Deepseek, a new AI startup run by a Chinese hedge fund, allegedly created a new open weights model called R1 that beats OpenAI’s best model in every metric. Besides the embarrassment of a Chinese startup beating OpenAI using one percent of the resources (according to Deepseek), their model can ‘distill’ other models to make them run better on slower hardware. Jeff Geerling tests this out using a Raspberry Pi 5 connected to a PC GPU/graphics card – JeffGeerling.com and YouTube.

Ethical Coding LLMs

Software Heritage was founded in 2016 to collect and preserve all publicly available source code. After the ChatGPT explosion, it quickly became clear that Software Heritage held the largest dataset for training AI models on code in the world. Another IEEE Spectrum article delves into ethical coding of AIs, data cleaning, opt-out, personal information in open code, license checks, and more – IEEE Spectrum.

ESP32-C5 Engineering Samples Are Out

ESP32-C5

The ESP32-C5 is the first 32-bit single-core RISC-V-based MCU from Espressif to support both 2.4 GHz and 5 GHz WiFi 6, along with Bluetooth 5 (LE) and IEEE 802.15.4 standards. The dual-band support opens new possibilities for IoT applications, allowing devices to operate on the less crowded 5 GHz band for lower latency and more reliable connectivity. The inclusion of advanced WiFi 6 features such as Target Wake Time (TWT), MU-MIMO, and OFDMA ensures improved performance in dense network environments – Circuit Digest, Espressif and YouTube. Via X.

CircuitPython Pull Request Milestones

CircuitPython Pull Request Milestones

CircuitPython reached a milestone with Pull Request number Ten Thousand made by Jeff Epler. Also CircuitPython blew past the milestone of 5000 merged PRs sometime last year, with a total 5,143 merged PRs at the moment – GitHub.

Raspberry Pi Programmable IO Pitfalls – Part 2

Raspberry Pi Programmable IO Pitfalls

Part 2 of an exploration into the unexpected quirks of programming the Raspberry Pi Pico PIO with MicroPython. In Part 1 (in the last issue of this newsletter), there were four challenge assumptions about register count, instruction slots, the behavior of pull(noblock), and smart yet cheap hardware – Towards Data Science.

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 more Zephyr CircuitPython.

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 LED Matrix Shifting – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

The CircuitPython Show

The CircuitPython Show

The CircuitPython Show has returned after a one year hiatus! In the latest episode, host Paul Cutler interviews Jan Goolsbey. He shares how he built a weather monitoring system using sensors, weather APIs, display devices, CircuitPython, and Adafruit IO – The CircuitPython Show

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for January 27, 2025 (notes) on YouTube.

Project of the Week: The Cyber WalkMan

CyberWalkman

A Cyberpunk-style multi-display music player integrating a Unihiker single board computer with Python and Tkinter to build a sleek GUI. It incorporates an SSD1306 OLED display for supplementary information, such as time and song status – DFRobot, GitHub and YouTube and X.

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.

7" Sunton ESP32S3 8048S070 CircuitPython

Using a 7” Sunton ESP32-S3 8048S070 with CircuitPython – Adafruit Playground.

Greenhouse Temperature Logger

Greenhouse Temperature Logger – Adafruit Playground.

News From Around the Web

Using Sensors with the Raspberry Pi Pico

The book Using Sensors with the Raspberry Pi Pico by Daniel Quadros contains examples in Pico SDK, Arduino, MicroPython and CircuitPython – Leanpub and YouTube. Via X.

Solar-powered wildlife monitor

A solar-powered wildlife monitor uses a Raspberry Pi AI HAT+ and Python to track birds to soon be used in real-world conservation efforts – hackster.io, GitHub and YouTube.

BEAPER Pico robot

The 3D-printed BEAPER Pico robot is controlled by a Raspberry Pi Pico 2 W microcontroller programmed in MicroPython or CircuitPython – X.

Bluetooth Remote Control for your robots using a GamePAD

Build your own Bluetooth remote control for your robots using a GamePAD PCB, some buttons and MicroPython – YouTube. Via X.

Baby Cry Detector with Home Assistant Integration

A baby cry detector with Home Assistant integration via MicroPython – hackster.io.

Easy Python Coding for Robots: Getting Started

Easy Python Coding for Robots: Getting Started with CircuitPython – YouTube.

IchigoJam

IchigoJam for Raspberry Pi Pico (RP2040) “IchigoJam P” is a self-contained computer with DVI video out and USB keyboard support. Plug in a Raspberry Pi Pico and download firmware (ZIP) to program in IchigoJam BASIC – PCN.

Here is a new batch of CircuitPython School videos from Prof John Gallaugher at Boston College:

Light Sensor and the Circuit Playground

Light Sensor and the Circuit Playground – YouTube.

Alarm! Play Sound and Animate NeoPixel LED Lights

Alarm! Play Sound and Animate NeoPixel LED Lights – YouTube.

Brightness! Pulsing NeoPixel lights in CircuitPython

Brightness! Pulsing NeoPixel lights in CircuitPython – YouTube.

Fidget Dot - a CircuitPython School Challenge Solution

Fidget Dot – a CircuitPython School Challenge Solution – YouTube.

Bring in da Func Part 2 Scope, Global v Local, Return Values

Bring in da Func Part 2 Scope, Global vs Local, Return Values – YouTube.

Animated Pixel Art Using the Adafruit Matrix Portal and CircuitPython

Animated Pixel Art Using the Adafruit Matrix Portal and CircuitPython – YouTube.

Old phone reads poetry to you using a Raspberry Pi Zero

Théo Z. V. Champion modifies an old phone to read poetry using a Raspberry Pi Zero – YouTube. Via Tom’s Hardware.

Python Methods Cheat Sheet

Python Methods Cheat Sheet – X.

Python-Powered RTL-SDR Signal Analyzer Can Warn of Active Jamming Attacks

Python-powered RTL-SDR signal analyzer can warn of active jamming attacks – hackster.io and GitHub.

How I Would Learn Python in 2025 (If I Could Start Over)

How I would learn Python in 2025 (if I could start over) – KDnuggets.

Coming Soon and New

OmniController

The Unexpected Maker OmniController is an upcoming NANOS3 based motor controller board – X.

SparkFun Digi X-ON LoRaWAN development kit

SparkFun Digi X-ON LoRaWAN development kit combines Digi HX15 gateway with RP2350 IoT node and environmental sensors module, programmable in MicroPython, Pico SDK and Arduino – 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 seven 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.

Stepper Motor Turntable from Ruiz Brothers

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

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.4 last week to fix some board builds that were not working. I’m continuing to fix bugs for future 9.x.x. releases, alternating that work with continuing work on getting CircuitMatter to run on CircuitPython.

Tim

This week I’ve been working on the examples and guide pages for the new Sparkle Motion device. Many of the examples are the same as the ones featured in the Mini Sparkle Motion guide, but I did create a new one to demonstrate usage of the IR receiver. I’ve been using the CircuitPython web editor a lot while working on the examples and I’m using the beta branch in order to test out the features not in the live version yet, I’ve documented a few issues that I’ve found and intend to look into. Next I’ll be working on Raspberry Pi 5 w/ RGB Matrixes using the Blinka compatibility layer.

Jeff

I released adafuit_rp1pio, a subset of the CircuitPython rp2pio module. This enables use of the Programmed I/O (pio) peripheral in the Raspberry Pi 5 computer from Python code.

Scott

This week I’m continuing to work on the CircuitPython Zephyr port. I got WiFi scanning working on the nRF7002 DK. I meant to get connecting working but got distracted by build improvements. The build improvements were my next to do, so it’s ok to work on too. It is needed before we can PR it to the main repo and release new boards based on it. We’re getting closer to an alpha port that will be released for testing.

Upcoming Events

PyCascades 2025

PyCascades is a regional PyCon in the Pacific Northwest, celebrating the west coast Python developer and user community. The organizing team includes members of the Vancouver, Seattle, and Portland Python user groups. February 8-9, Portland, Oregon US – PyCascades 2025.

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on February 26th – 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.4. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20250131 is the latest Adafruit CircuitPython library bundle.

20250130 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,186 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,703 Thanks

38,703 THANKS

Adafruit Discord

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