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

View this email in your browser. Warning: Flashing Imagery

Welcome to the latest Python on Microcontrollers newsletter! The last three days have been a holiday weekend in many places, giving a short break between busy weeks. School is out too, with student projects sitting idle, waiting for Autumn. But there are always events and the newsletter below provides the latest happenings around the world. Of note is CircuitPython 8.1.0 release and a 8.2.0-beta.0 with some neat capability. I hope you can relax and read this issue rather than catch up with a busy inbox. – Ed.

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:

Two New CircuitPython Versions Released


The CircuitPython team simultaneously released CircuitPython 8.1.0 and a new beta 8.2.0-beta.0. 8.1.0 remains unchanged from the 8.1.0 release candidate reported last week. 8.2.0-beta.0 incorporates some interesting new features:

  • Continued enhancement of synthio.
  • RP2040 alarm.sleep_memory.

CircuitPython 8.1.0 – Adafruit Blog.

CircuitPython 8.2.0-beta.0 – Adafruit Blog and Release Page.

zigpy-zboss library makes Nordic Semi nRF52840 Zigbee dongles compatible with Home Assistant

zigpy-zboss library

zigpy-zboss is a Python library that adds support for Nordic Semiconductor nRF52840 modules to zigpy open-source Python Zigbee stack project, as well as other Network Co-Processor radios that run firmware based on ZBOSS Open Initiative (ZOI). This enables integration with compatible Zigbee gateway implementations such as Home Assistant’s ZHA integration component and allows users to directly control Zigbee devices from a wide range of manufacturers such as IKEA, Philips Hue, Samsung SmartThings, ITEAD SONOFF, Xiaomi Aqara, and others – CNX Software and GitHub.

Microsoft DeviceScript for Programming Microcontrollers


Microsoft has quietly released a Technical Preview of DeviceScript. It brings a professional TypeScript developer experience to low-resource microcontroller-based devices. DeviceScript is compiled to a custom VM bytecode, which can run in very constrained environments. It uses a Visual Studio Code Extension to make an Integrated Development Environment with full debugging – GitHub.

Free Certification Courses in Data Science with Python from IBM

Free Certification Courses in Data Science with Python from IBM

Cognitive Class is offering three IBM courses in Data Science using Python – Twitter.

Sending Data Between Multiple Raspberry Pi Pico W’s

Sending Data Between Multiple Raspberry Pi Pico W's

Connecting multiple Raspberry Pico W’s can be essential in projects involving distributed systems. In a tutorial, ShillehTek demonstrates how to send messages between two Raspberry Pi Pico W devices using the Thonny IDE in MicroPython – ShillehTek, GitHub and YouTube.

The Python Language Summit 2023: What is the Standard Library for?

The Python Language Summit 2023: What is the Standard Library for?

What is the Python Standard Library for? The Python Language Summit looks to answer this question – Python Blog.

“Overall, there was agreement that the original motivations for a large, ‘batteries-included’ standard library no longer held up to scrutiny. ‘In the good old days,’ Ned Deily reminisced, ‘We said ‘batteries-included’ because we didn’t have a good story for third-party installation.’ But in 2023, installing third-party packages from PyPI is much easier.”

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

This week, Tim is on the hunt for a displayio bug.

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 S3 (“nightly”) builds of CircuitPython – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

The CircuitPython Show

The CircuitPython Show

The CircuitPython Show is an independent podcast hosted by Paul Cutler, focusing on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a short interview – CircuitPythonShow and Twitter.

The show is off this week. Last week featured CircuitPython core developer Dan Halbert and next week Martin Tan, author of micro:bit Projects with Python and Single Board Computers: Building STEAM Projects with Code Club and Kids’ Maker Groups, joins the show.

Project of the Week: A Handheld LoRa Messenger Using Wio Terminal

Handheld Computer

This handy LoRa messenger is built using a WIO Terminal with a QWERTY keyboard. The keyboard matrix is scanned by GPIO, with the software in CircuitPython – Twitter, Instagram, Tindie and YouTube.

News from around the web!

Bluetooth Candle

A rechargeable BLE Candle project. It uses an Adafruit ItsyBitsy nRF52840 RGB BLE, an electric candle, and Cedar Grove adapter. It has flicker, pulse, rainbow, coded with pure PWM from scratch, no animation library is used. Controllable via a Bluetooth phone or tablet – Twitter and Mastodon.

LEGO Robot

An all-terrain LEGO robot climbs obstacles like no other! Built with LEGO SPIKE and coded with Pybricks MicroPython – Twitter.

Resistor Tester

Measuring a resistor using a voltage divider to find the nearest E12 value and draw a picture of the resistor. Written in MicroPython on a Pimoroni Pico Explorer Base with a Raspberry Pi Pico – Twitter.

LEGO Sorter

Pybricks: Control a LEGO robot with Python to sort color candies – Heise Online via Twitter.


An MQTT communications protocol primer – Kev’s Robots.

Analog Meter Clock

Remaking an analog meter clock with Raspberry Pi Pico and CircuitPython – Twitter Thread.

Linesman Set

An old telephony linesman set is upgraded with an Adafruit PyPortal and CircuitPython – Twitter Thread.


CircuitPython 8.1.0 and up fully supports the Fig Pi boards (RP2040 microcontroller boards shaped like LEGO Minifigs) as well as Mini SAM M4. Upgrading the firmware is as easy as booting into BOOT mode, and dragging the new firmware from here onto the drive that shows up – Mastodon.

Python Regular Expressions Cheatsheet

A Python Regular Expressions Cheatsheet – Twitter.


With a handful of really cheap electronics, a Raspberry Pi Pico and CircuitPython, oh and a banana, you too can turn an LED on/off – Tom’s Hardware via Twitter.

Media Keyboard

A media keyboard with Raspberry Pi and Python – Medium via Reddit.

Quirkey chord keyboard

Extending the Quirkey chord keyboard code to work with 3D printed modern replicas programmed in CircuitPython – Twitter and GitHub.

Pico powered Barometer

A Raspberry Pi Pico powered Barometer featuring the PiicoDev atmospheric sensor programmed in MicroPython to point out the weather conditions – Twitter and Guide.

Graphing in MicroPython

Plotting with the Pimoroni Pico Explorer Base. The Raspberry Pi Pico has the memory and power to do this using MicroPython – Twitter.

Raspberry Pi Adapter Sends Keyboard Input From iPad via HID to Devices

Raspberry Pi adapter sends keyboard input from an iPad, via HID, to devices – Tom’s Hardware.

ChatGPT on RasPi Zero W

ChatGPT running on a Raspberry Pi W with an Adafruit LCD display via Python – Reddit and GitHub.

Raspberry Pi Gramophone

Raspberry Pi Gramophone with Python – Instructables and YouTube.


Keyboard Builders’ Digest, Issue 123 – kbd.news via Twitter.

PyDev of the Week: Draga Doncila Pop on Mouse vs Python

CircuitPython Weekly Meeting will be today 5/30/2023 at 1pm/1300 US Eastern Time on the Adafruit Discord Server.

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Raspberry Pi Pico W Lessons for Absolute Beginners.


Adafruit Mini I2C Gamepad with seesaw - STEMMA QT / Qwiic

Adafruit Mini I2C Gamepad with seesaw – STEMMA QT / Qwiic I2C port for no solder needed connectivity – Adafruit.


Olimex shows off an ESP32-WROVER Open-Hardware Single-Board Computer built specifically for Fabrizio Di Vittorio’s FabGL library. This new board can power emulated PCs, handheld games consoles, and more – hackster.io.

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 17 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

Magic Storybook with ChatGPT from Erin St Blaine

Canary Nightlight from Kattni Rembor

PiPyPirate Radio from Carter Nelson

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

New Libraries!

Here’s this week’s new CircuitPython libraries:

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

Library Statistics

Total Library Stats

  • 132362 PyPI downloads over 310 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9907
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9153
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2973
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1924
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1273
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1158
  • Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1049
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 924
  • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 920
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 901

What’s the CircuitPython team up to this week?

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


I released CircuitPython 8.1.0 final on Monday May 22, and followed quickly with CircuitPython 8.2.0-beta.0 on Wednesday, May 24. It’s great to have 8.1.0 out the door.

We’ll continue to work on 8.2.0, which will probably appear as a stable release relatively soon. However, I’m also working toward the longer range goal of 9.0.0. The first task is to merge the MicroPython v1.19.1 changes; later someone else may do the v1.20 changes.

I also spruced up the Adafruit Forums a bit last week. I updated subforum titles and descriptions, and moved a few forums around.


This week I published the Canary Nightlight guide. In this project, you’ll build a little glowing friend to watch over you from the outlet by the light switch. This 3D printed canary lights up blue when it’s your time to be awake, and red when it’s your time to sleep. As well, it watches over you by telling you when your internet is down by blinking red. The code is super customisable, so you can change the timing, colors, and brightness to whatever works for you, or disable the network down detection if that isn’t your thing. Not to put top fine a point on it, but you should definitely check out this guide!



This week, I worked with Erin to finish up the Magic Storybook with ChatGPT learn guide. I wrote the Software Setup and Usage pages. I was able to fix the majority of the bugs, but being that this project is as complex as it is, there are likely some cases where bugs can occur. It was a joy to work with Erin and she kept me on my toes by finding bugs that I had overlooked.


This week I finalized testing and reviews on an update to the HTTPServer library that brings many new features and improved functionality. I’ve also submitted a few changes for the requests, and websocket libraries to allow more control over redirect behavior and headers sent to open the socket respectively. I’ve continued building an API for NeoPixels and DotStars on top of the upgraded HTTPServer library, dynamically import animations are the latest feature added.


After several weeks of work, I think that CircuitPython’s new synthesizer support is pretty complete. You can check it out in the new beta of CircuitPython 8.2! Thanks to all who helped educate me during this project. I can’t wait to see what folks do with this new capability.


This week I’ve been bouncing between MCU flasher and the Pyrate code bases. MCU flasher needs a little reorg and polish. Pyrate has many more modes to implement. I got the prototype board, so I’ve been making that work fully. You can now toggle power supplies, pull ups and use SPI mode.


This week I published a guide for the new ANO encoder STEMMA QT breakout. This breakout uses an ATtiny816 to run seesaw firmware. This makes wiring up one of these encoders super easy. It makes it so much easier that I started working on a project with five of them to build a synth using the new synthio module in CircuitPython. The circular shape of the encoders has inspired the evolution of the synth to use Euclidean rhythms and advance chords using the circle of fifths.

Upcoming events!

The next MicroPython Meetup in Melbourne will be on June 28th – Meetup. From the May 24th meeting – Notes.

EuroPython 2023

EuroPython 2023 will be July 17-23, 2023, in Prague, Czech Republic and Remote – EuroPython 2023.


PyCon UK will be returning to Cardiff City Hall from Friday 22nd September to Monday 25th September 2023 – PyCon UK.

Hackaday has announced that the Hackaday Supercon is on for 2023, and will be taking place November 3 – 5 in Pasadena, California, USA. They’d like to hear your proposals for talks and workshops! The Call for Speakers and Call for Workshops forms are online now, and you have until July 18th to sign up – Adafruit Blog and Hackaday.

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 8.1.0 and its unstable release is 8.2.0 Beta 0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20230529 is the latest CircuitPython library bundle.

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

3.11.3 is the latest Python release. The latest pre-release version is 3.12.0b1.

3,549 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.

37,375 thanks!

37,375 THANKS

Adafruit Discord

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


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.