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! This week there are more projects than usual, so you may wish to browse them to look for items of interest.

We’re online! Go to 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:

The CircuitPython in 2022 Survey

CircuitPython in 2022

As 2022 starts, Scott Shawcroft, lead CircuitPython developer, requests the Python on Hardware community take time to share their goals for CircuitPython in 2022.

Just like past years (full summaries for 2019, 2020, and 2021), Adafruit would like everyone in the Python community to contribute by posting their thoughts to some public place on the Internet.

Here are a few ways to post:

  • a video on YouTube
  • a post on the CircuitPython Discord forum
  • a post in the /r/circuitpython subreddit
  • a blog post on your site
  • a series of Tweets
  • a Gist on GitHub

Please consider sharing your thoughts. When you post, please add #CircuitPython2022 and email circuitpython2022@adafruit.com to let the teams know about your post so they can blog it up – Adafruit Blog.

TIOBE Declares Python Programming Language of the Year 2021

Python Programming Language of the Year

Python has won the prestigious TIOBE Programming Language of the Year award for 2021. This is the second time in a row. The award is given to the programming language that has gained the highest increase in ratings in one year. C# was on its way to get the title for the first time in history, but Python surpassed C# in the last month.

Python started at position #3 of the TIOBE index at the beginning of 2021 and left both Java and C behind to become the number one of the TIOBE index. But Python’s popularity didn’t stop there. It is currently more than 1 percent ahead of the rest. Java’s all time record of 26.49% ratings in 2001 is still far away, but Python has it all to become the de facto standard programming language for many domains – TIOBE.

Using Both Cores of a Raspberry Pi Pico in MicroPython

Using Both Cores of a Raspberry Pi Pico in MicroPython

diyelectromusic has been doing musical/MIDI visualization projects with a Raspberry Pi Pico. Dual use of an LED matrix and a 4×7-segment display was a bit slow. So they looked to use the unused core on the Pico to provide extra processing power.

One core is listening to the MIDI and updating the LED matrix using the WS2812 protocol; the other is keeping the 8-segment LED scanning (over SPI) showing the last MIDI command/note received.

See more – diyelectromusic and GitHub, via Twitter.

Project of the Week: An LED Choker

LED Choker

LED Choker

LED Choker

Twitter user rmna demonstrates a wonderful LED alphanumeric choker – Twitter.

My new favorite project: a text display choker for status updates at the club. (It) uses an Adafruit alphanumeric display FeatherWing and a Feather M0. Proto grid hosts a button to switch patterns, and CircuitPython lets the owner edit the code to add new text!

CircuitPython Deep Dive Stream with Scott Shawcroft

Deep Dive with Scott

This week, Scott did a recap of 2021 and review of the #CircuitPython2021 posts and how close we got to the mark.

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:

Catch all the episodes in the YouTube playlist.

PrettyPins – Generate “Pretty” Pinout Diagrams


PrettyPins is designed to create lovely pinout diagrams for circuit boards. It uses Python along with some Fritzing and an SVG file editor – GitHub via Twitter.

News from around the web!

Adafruit KB2040 Review

Adafruit KB2040 Review: Custom Keyboard Creator – Tom’s Hardware.

Yozh, a small robot

Yozh is a small (under 10cm x 10cm) robot, based on Pololu’s Zumo chassis, programmable in CircuitPython – Twitter, GitHub and ReadTheDocs.

CircuitPython Raspberry Pi Pico USB HID keyboard

CircuitPython Raspberry Pi Pico USB HID keyboard

A very small CircuitPython Raspberry Pi Pico USB HID keyboard – YouTube and Hackaday.io, via Reddit.

MatrixPortal Information Display

So last month I built this lil time/weather/Spotify display from an Adafruit Matrix Portal kit. Very impressed how easy it was (it’s Python!!). The only real difficulty: the Spotify API. They don’t have a “limited input device” API for displays – Twitter.

Sending sensor data from Raspberry Pi Pico to HiveMQ

Sending sensor data from a Raspberry Pi Pico and Adafruit Airlift to HiveMQ Cloud with CircuitPython – HiveMQ and YouTube, via Twitter.


macropopsicle: an open source two key macro-pad modeled to look like a cartoony melting popsicle – GitHub and Hackaday.

Deploy 5 Duckyscript Payloads With CircuitPython

Deploy 5 Duckyscript Payloads With CircuitPython – Hacking Reviews and YouTube, via Twitter.

More on Rubber Duckies and CircuitPython – Adafruit Learning System.


My kickboard is (Raspberry Pi) Pico and CircuitPython powered! CircuitPython is a great and approachable spot to start, because of the fantastic community behind it – Twitter.

Internet Clock

An internet clock using Maker Pi Pico and CircuitPython – YouTube and Tutorial, via Twitter.

Interfacing balena edge devices with AdafruitIO

Interfacing balena edge devices with AdafruitIO – balena.io.

Which Editor?

A lively thread discussing Mu vs. an editor with more features like VSCode – Twitter.

Bouncing ball

A bouncing ball example in CircuitPython – Twitter.

Encrypt and Decrypting strings (Easily) in CircuitPython

Encrypt and Decrypting strings (Easily) in CircuitPython – Mark McGookin.

FIDI: Fast prototyping with CircuitPython

FIDI SAMD21 board: Fast prototyping with CircuitPython – lectronz.

Album Art

I did it! Using CircuitPython, I can download a bitmap of an album over WiFi from my web server and display it locally – and not run out of memory! Now to hook up MQTT to push new album art. Say hello to Liz Phair. (Ignore the lines, LEDs don’t like having their picture taken) – Twitter.

Pi DIY Music Player

A portable Raspberry Pi Zero-based media player – imgur and Hackaday.

MicroPython deployment to PyPI

Packaging a MicroPython module, deploying it to PyPI, and installing it directly onto a Raspberry Pi Pico via Thonny – Twitter.

How to measure temperature

Secrets of MicroPython: How to measure temperature – Bhavesh Kakwani.


CircuitBreaker is a Python implementation of the “Circuit Breaker” PatternGitHub.

Overengineering Coffee Bean Storage

Overengineering Coffee Bean Storage – Dennis Schubert.


python-minifier – transforms Python source code into it’s most compact representation – GitHub via Twitter.


lectronz.com is a new marketplace for electronic enthusiasts focusing on the open-hardware and DIY electronics community – lectronz.

FREE Python Self-Study Course

Fundamental Python: a comprehensive and FREE Online Python Development tutorial going step-by-step into the world of Python (under development) – GitHub.

PyDev of the Week: Lais Carvalho on Mouse vs Python

CircuitPython Weekly Meeting for January 10, 2022 (notes) on YouTube

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? The Pinouts Book.

Coming soon

QT Party

Ladyada at Adafruit spent long hours in the last few days routing some new QT Py / Xiao form factor microcontroller boards: QT Py Bluefruit, QT Py ESP32-S3, QT Py ESP32 Pico V3, and QT Py ESP32-C3.

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 ten (!) 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

PyLeap EyeLights LED Glasses Rainbows for Circuit Playground Bluefruit from Trevor Beaton

Adafruit QT Py ESP32-S2 from Kattni

PyLeap Blink Animation from Trevor Beaton

CircuitPython Libraries!

CircuitPython Libraries

CircuitPython support for hardware continues to grow. We are adding support for new sensors and breakouts all the time, as well as improving on the drivers we already have. As we add more libraries and update current ones, you can keep up with all the changes right here!

For the latest libraries, download the Adafruit CircuitPython Library Bundle. For the latest community contributed libraries, download the CircuitPython Community Bundle.

If you’d like to contribute, CircuitPython libraries are a great place to start. Have an idea for a new driver? File an issue on CircuitPython! Have you written a library you’d like to make available? Submit it to the CircuitPython Community Bundle. Interested in helping with current libraries? Check out the CircuitPython.org Contributing page. We’ve included open pull requests and issues from the libraries, and details about repo-level issues that need to be addressed. We have a guide on contributing to CircuitPython with Git and Github if you need help getting started. You can also find us in the #circuitpython 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 343!

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

What’s the team up to this week?

What is the team up to this week? Let’s check in!


Last week I added some features to countio, allowing counting of both rising and falling edges, and also added pullup/pulldown support. This week I wrote a simple example demonstrating using asyncio to control and vary a NeoPixel animation. Now I am working on some further bugs we should fix for the next release of CircuitPython.


I’ve been pulled into the floppy vortex of winter 2021/2022. With some work-in-progress code, I can grab raw flux timings in CircuitPython, then take them to a desktop computer and decode MFM data with a second Python program. The ultimate goal is to allow read access to old DOS floppies directly in CircuitPython with mount("/floppy", floppy)


This past week was short for me, but I started splitting the Blinka Displayio shared functions into a Display Core module. The transition is started, but due to the relatively small number of people that are actually using the system and the availability of much better graphics systems, it makes sense to not put any more work into the library, so I am leaving it to the community or whomever wants to use it to advance it more. The library can be found at https://github.com/adafruit/Adafruit_Blinka_Displayio.

I also started on a second project to generate a LittleFS file system using pure JavaScript. There were other projects that had made a wrapper around the c code, but no actual ports, so this will be the first port, though really only a partial one since only a subset of the features will be required. This will replace the NVM Generator that I had made last year since it will work on both the ESP32 and the ESP8266.


I’m just starting up after taking another long weekend for the holidays. My main goal this week is to wrap up the Raspberry Pi work for the time being and spend some time on the ESP32-S3. I’ve got a pull request out that adds Pi Zero support and hopefully fixes the SD card support along with it. The last thing I want to do is merge in Piunora support because I’ve already started. I should be able to get all of those changes out this week.

On New Year’s Day I also kicked off #CircuitPython2022. I’m excited to see where folks would like CircuitPython to go. I’m going to do a retrospective on #CircuitPython2021 for my first stream of the year and then follow up with #CircuitPython2022 the following stream. So, please let us know when you post something by emailing circuitpython2022@adafruit.com. Thanks!

Upcoming events!

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on January 26th – Meetup. See the blog for past notes.

PyCascades 2022

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. DATES ANNOUNCED! February 5th-6th, 2022 The conference will take place on Saturday and the first half of Sunday, with the post-conference sprints following that on Sunday afternoon. After three amazing in-person conferences and an engaging online conference, we are ready to do it again! – PyCascades 2022.

PyCon US 2022

PyCon US 2022 planning is underway. The team is planning to host the event in person with an online component. April 27, 2022 – May 5, 2022. Head over to the PyCon US 2022 website for details about the conference and more information about the sponsorship program – PyCon Blog.

PyCon IT 2022

PyCon Italia is the Italian conference on Python. Organised by Python Italia, it is one of the more important Python conferences in Europe. With over 700 attendees, the next edition will be June 2-5, 2022 – Ticket Registration.

Send Your Events In

As for other events, with the COVID pandemic, most in-person events are postponed or cancelled. If you know of virtual events or events that may occur in the future, please let us know on Twitter with hashtag #CircuitPython or email to cpnews(at)adafruit(dot)com.

Latest releases

CircuitPython’s stable release is 7.1.0 and its unstable release is 7.2.0-alpha.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20220110 is the latest CircuitPython library bundle.

v1.17 is the latest MicroPython release. Documentation for it is here.

3.10.1 is the latest Python release. The latest pre-release version is 3.11.0a3.

2,746 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.

jobs.adafruit.com – Find a dream job, find great candidates!


jobs.adafruit.com has returned and folks are posting their skills (including CircuitPython) and companies are looking for talented makers to join their companies – from Digi-Key, to Hackaday, Micro Center, Raspberry Pi and more.

32,563 thanks!

32,563 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 32,563 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, IGTV (Instagram TV), 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.

Codecademy “Learn Hardware Programming with CircuitPython”

Codecademy CircuitPython

Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with Adafruit to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.


The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Tuesday. 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.