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! Everyone is shopping for bargains and getting information published before the holidays, so there is so much activity. Finally, Raspberry Pi has released code to allow use of the RP1 chip on the Raspberry Pi 5, so we can program it for real-time work. VSCode once again works with CircuitPython, thanks to a community member. There are so many projects and more in this issue. Grab a beverage and take it all in. – Anne Barela, Editor

We’re on Discord, Twitter, and for past newsletters – view them all here. If you’re reading this on the web, subscribe here. Here’s the news this week:

Raspberry Pi Release piolib for Raspberry Pi 5 RP1 Programming

piolib

PIOlib/libPIO is a user-space API to the rp1-pio driver, which gives access to the PIO hardware of the RP1 chip controlling GPIO on a Raspberry Pi 5. It will be an important method of running time-critical GPIO interface code, such as using smart LED strips (like NeoPixels). It takes the form of a clone of the PICO SDK PIO API, where most of the methods are implemented as RPC calls to RP1 – GitHub and NeoPixel Example.

Jeff Epler at Adafruit has the code working and is integrating it into libraries for community use.

An Updated CircuitPython Plug-in for VSCode is Available

CircuitPython Plug-in for VSCode

Will S. Merkens has come to the rescue of many in the community who have asked for a working VSCode extension for CircuitPython development. Will forked an older, broken version and has applied fixes.  – GitHub and Visual Studio Marketplace.

Arduino Releases Its First Zephyr Cores, as It Makes the Move Away From Arm’s Discontinued Mbed

Arduino Releases Its First Zephyr Cores

Arduino has released its first microcontroller cores to feature the Zephyr real-time operating system, as it looks to transition away from Arm’s discontinued Mbed platform for its devices — with beta builds now available – hackster.io.

“Last July, when we announced the beginning of the transition from Mbed to Zephyr, we promised to release the first beta by the end of 2024,” the Arduino team explains. “Today, we are excited to announce the first release of Arduino cores with ZephyrOS in beta! We are transitioning Arduino cores to ZephyrOS to ensure continued support and innovation for developers. This change follows Arm’s deprecation of MbedOS, which has historically powered some of our cores.”

Raspberry Pi Pico 2W with MicroPython, A Guide

Raspberry Pi Pico 2W with MicroPython

Folks would like to try out the new Raspberry Pi Pico 2 W with MicroPython but they may be having a hard time finding out how. lucstechblog finds out the preview version of MicroPython v1.25.0 has the code and the guide shows how to get started – Lucstechblog.

A Wireless Mouse in a Ring

Mouse in a Ring

Mouse Ring V2 by Rafał Gajek is a marvel of engineering. It uses a Seeed Studio XIAO nRF52840 microcontroller programmed in CircuitPython. The controller connects to a PC via Bluetooth. It acts as a HID controller with a joystick (4 ways and push) – GitHub and Instructables.

Raspberry Pi Boosts Pi 5 Performance With SDRAM Tuning

Raspberry Pi boosts Pi 5 performance with SDRAM tuning

Raspberry Pi engineers tweaked SDRAM timings and other memory settings on the Pi, resulting in a 10-20% speed boost at the default 2.4 GHz clock. Jeff Geerling tested overclocking, which resulted in a 32% speedup at 3.2 GHz. Changes may roll out in a firmware update for Pi 5 and Pi 4 users soon – Jeff Geerling.

An LED Matrix Festive Timer and CircuitPython BLE Tracker

Matrix Festive Timer / CircuitPython BLE Tracker

Leonard and Gabriel developed a CircuitPython coded, BLE (Bluetooth Low Energy) assistive tech tracking device for behaviour in reinforcement learning. This project was created for a class at Boston College called “Physical Computing”. Specifically this was for the “Campus School Project” in which they collaborate with the Campus School at Boston College to create assistive tech devices for their students.

A BLE tracker interfaces with an Adafruit S3 Matrix Portal, a wall-mounted 64×32 LED matrix display. The longer one stays in range of the display, the bigger an animated LED tree grows – Instructables.

10 Python Libraries Every Developer Should Know

10 Python Libraries Every Developer Should Know

Are you a developer who enjoys coding in Python? If so, there are a few (big) Python libraries you can add to your dev toolbox. As a developer, you should be comfortable with debugging, logging, and unit testing. Besides, you’ll need to work with data sources, account for data validation, and build APIs – KDnuggets.

Python 3.13.1, 3.12.8, 3.11.11, 3.10.16 and 3.9.21 Are Now Available

Python 3.13.1, 3.12.8, 3.11.11, 3.10.16 and 3.9.21 are now available

A big release day! Python 3.13.1 and 3.12.8 were regularly scheduled releases, but they do contain a few security fixes. That makes it a nice time to release the security-fix-only versions too, so everything is as secure as the devs can make it – Python Insider Blog.

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 moving CircuitPython to 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 this week covers the Touchscreen Triangle Editor – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for December 2, 2024 (notes) on YouTube

Project of the Week: Porting Adventure to MicroPython

Porting Adventure to MicroPython

In 1977, on a DEC PDP-10, the text game Adventure was coded in FORTRAN and countless CPU hours have been burned by players worldwide playing it. Mike Markowski decided to port the FORTRAN (here) into MicroPython. Success is having a running version on an HP Prime calculator and PC – Mike Markowski.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? 10 Raspberry Pi Pico project ideas to get you started.

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.

Remix: Cedar Grove Weather Architecture v2.0

Remix: Cedar Grove Weather Architecture v2.0 – Adafruit Playground.

News From Around the Web

Remote shutter control

“A DIY remote shutter control for a redkomodo using Adafruit’s CircuitPython, an ESP32-S3 and websockets. I’m still working on displaying the right LED colors. Check the websocket client library for CircuitPython here” – BlueSky.

Python Book Cipher Implementation

Use this Python class to hide messages inside of any book – YouTube and GitHub.

Wonderbox

Making a child’s busy box with lights, switches and more. It uses Adafruit parts, programmed in CircuitPython – Oxford Echoes. Via Reddit.

Midi Billow

Mark Washeim’s Midi Billow is a Raspberry Pi RP2040-powered Python-programmable pocket mellotron – hackster.io and GitHub. Via X.

RaspberryPICO I2C & VL53l0x Laser Distance

Explore how to use the Raspberry Pi Pico to interface with the VL53L0X laser distance sensor through the I2C protocol in this informative tutorial – YouTube and GitHub.

Getting started with the RP2040 Pico and MicroPython

Curriculum (5 lessons) – Getting started with the RP2040 Pico and MicroPython – Computing at School. Via X.

displayio.OnDiskBitmap on Pico 2 W/CircuitPython 9

displayio.OnDiskBitmap on Pico 2 W with CircuitPython 9 – YouTube.

When to Transition from Python to MicroPython?

When to transition from Python to MicroPython? – Medium.

PCF85176 LCD Driver

A new PCF85176 LCD Driver for MicroPython – GitHub and X.

Maker Advent

The Pi Hut has two Maker Advent calendars this year and they are both programmable in MicroPython – The PiHut.

Turn a Raspberry Pi Pico into a Wi-Fi Thermometer for Mobile

Turn a Raspberry Pi Pico into a WiFi thermometer for mobile with MicroPython – hackster.io.

Linux

Linux 6.13-rc1 has been released with many new features – Phoronix.

Servo Driver

Koshiro Robot Creator’s STMicro STM32-powered board turns hobby servos into smart servos – hackster.io and YouTube.

Controlling a 5V Laser Diode With Raspberry Pi Pico W

Controlling a 5V laser diode with MicroPython on a Raspberry Pi Pico W – Instructables.

Two-knob drone synth with echo effect in CircuitPython synthio

A two-knob drone synth with an echo effect using CircuitPython synthioYouTube.

Turn your Raspberry Pi into a home server with these 5 operating systems

Turn your Raspberry Pi into a home server with these 5 operating systems – XDA.

Open Source Security Priorities Get a Reshuffle

Open Source security priorities get a reshuffle – DarkReading.

New

Compute Module 5 active cooler

Raspberry Pi Compute Module 5 receives the active cooler that it really needs: ED-CM5ACOOLERTom’s Hardware.

ESP32-PICO-D4 Board with LoRa, Wi-Fi, and BLE Connectivity

The LILYGO T3 V3.0 TCXO is a ESP32-PICO-D4 Board with LoRa, Wi-Fi, and BLE Connectivity – LinuxGizmos.

Arduino Nano Matter

Following a “community preview” soft launch, the Arduino Nano Matter, targeting Matter-compliant smart home projects, is now available – hackster.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 two 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.

Using ItsaSNAP for HomeKit PIR Motion Detection from Trevor Beaton

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

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 am adding a CircuitPython interface to cryptographic functionality provided by mbedTLS. We’ll use that functionality to do cryptography for CircuitMatter in CircuitPython.

Tim

I have been continuing to work on issues in the Libraries. This week I worked on a few fixes in the turtle graphics repo. I’ve added type annotations to a few libraries and am moving them to use ruff in their GitHub Actions as well so that the annotations and ruff change can go under a single release. I also worked on a change to circuitpython.org to split up the raspberrypi processor family into rp2040 and rp2350 so that it’s possible to search by the specific chip now.

Jeff

I’ve been back to working on CircuitPython bugs, including work to resolve an audio glitch that occurred when using the MP3Decoder.open method to switch streams before an earlier stream finished.

Scott

I’ve started prototyping building CircuitPython on top of Zephyr. I’m using my own async Python code to build the CircuitPython bits when delegated to from Zephyr’s cmake. I’ve gotten it to the point that linking CircuitPython is missing core pieces like flash functions. This means I’m starting to interface from CircuitPython into the Zephyr APIs. The main benefit of this is that these implementations will work for any Zephyr supported board!

Liz

I took last week off for the Thanksgiving holiday. It was a nice restful break and now I’m ready to pump out some work between now and Christmas/New Years. Before my week-long nap, I published the Feather RP2350 Audio Reactive Video Synth guide. This project uses a Feather RP2350 with HSTX to DVI to run a video synthesizer that uses analog potentiometers and audio input with FFT to control fun animations. I’m really proud of this project. It had been a goal of mine to work on a video synth in CircuitPython and I was thrilled to finally be able to do it with bonus points for audio reactivity.

Upcoming Events

PyLadies

PyLadies Conference (PyLadiesCon) is a transformative event designed to promote diversity, learning, and empowerment within the Python community. December 6-8, 2024 online – PyLadies.

MicroPython Meetup

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

20241206 is the latest Adafruit CircuitPython library bundle.

20241206 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.0a2.

4,140 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,519 Thanks

38,519 THANKS

Adafruit Discord

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