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! We have new software releases, neat technology and projects galore this issue.

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:

MicroPython version 1.18 released

MicroPython version 1.18 released

The MicroPython dev team has announced MicroPython, v1.18! There were 335 commits since the last release on September 2021, so there were about 2.5 commits per day since then – MicroPython Forums and Adafruit Blog.

This release of MicroPython sees a boost to the overall performance of the VM and runtime… Performance options are enabled on the esp32, mimxrt, rp2, stm32 and unix ports.

Source code and firmware and the full change log.

CircuitPython 7.1.1 Released

CircuitPython 7.1.1 Released

CircuitPython 7.1.1, the latest bugfix revision of CircuitPython, is the current stable release. It has fixes for RGBMatrix on RP2040 and PDMIn (microphone input) on SAMx boards, such as Circuit Playground Express. There are no other changes; unless you are affected by these problems, you do not need to upgrade from 7.1.0. – Adafruit Blog and GitHub.

CircuitPython2022 Updates

CircuitPython2022 Updates

Here’s the CircuitPython 2022 feedback received to date.

The CircuitPython Team wants to hear from you. When you post, please add #CircuitPython2022 and email circuitpython2022@adafruit.com to let us know about your post – More information.

Reading Floppy Disks in CircuitPython

Reading Floppy Disks in CircuitPython

JEpler just created a build of CircuitPython with the new native ‘adafruit_floppy’ module which implements MFM decoding ‘on the fly’ to provide Python-native filesystem support for floppy drives! You can now store files and code that is read or executed off of a floppy disk. Adafruit whipped up a quick demo that lists the files on a disk and pages through any text files it finds on these FAT12 disks. Arduino libraries and more CircuitPython capability are being worked on at the moment – Adafruit Blog, YouTube and Twitter.

Mounting Floppy Disks in Windows

In related work, Adafruit also demonstrates using TinyUSB and Arduino to make a USB mass storage floppy drive on Windows. Most of us have not seen a Drive A: on their computers in many years – Adafruit Blog, Hackster.io and YouTube.

The CircuitPython Show

The CircuitPython Show

The CircuitPython Show is a new independent podcast, hosted by Paul Cutler, focused on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a twenty to thirty minute interview – CircuitPythonShow, Blog Post and Twitter.

The Pi Cast Celebrates 10 Years of Raspberry Pi: New Episodes With Ladyada, Eben Upton, and More

The Pi Cast

The Pi Cast Celebrates 10 Years of Raspberry Pi: New Episodes With Ladyada, Eben Upton, and others. Adafruit’s Limor Fried will be on a livecast on February 15, 2022 – More on Tom’s Hardware and YouTube.

CircuitPython Deep Dive Stream with Scott Shawcroft

Deep Dive with Scott

This week, Scott discusses #CircuitPython2022, answers questions, and chats with Ladyada.

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.

News from around the web!

CircuitPython Debug Library

CircuitPython does not support Python’s pdb debugger, so River Wang has come up with a library for line-by-line debugging. It is a very coarse implementation at the moment – YouTube and GitHub.

PS4 controller over Bluetooth with CircuitPython

Melissa writes about finding some awesome firmware called Bluepad32 by Ricardo Quesada which runs on the Adafruit Airlift that allows her to use a PS4 controller over Bluetooth with CircuitPython – Twitter Thread.

Star Trek Warp Core

Making a model Star Trek: The Next Generation warp core with NeoPixels and CircuitPython – Twitter.

LED Glasses

I finally finished putting together my LED glasses from the last Adafruit AdaBox and setup the scrolling text over Bluetooth in an iOS app – so cool! (Of course the text says “Subscribe to the CircuitPython Show” – Twitter.

A distance-reacting LED lamp

CircuitPython School – A distance reacting lamp / luminaria with a the Adafruit VL53L1X Time of Flight distance sensor and CircuitPython – YouTube via Twitter.

Mini Midi Vizi Version 2

Version 2 of my Mini Midi Vizi board is looking way sharper and is much easier to assemble. And my fave part is that I got a self-hosted web app up and running via CircuitPython. The device carries around it’s own configuration software – Twitter.

nRF24L01 Radios

nRF24L01 Radios

Testing out the range of the nRF24L01 radios with my custom Vivaldi antennas. Currently getting 1000ft non-line-of-sight! The Adafruit CircuitPython PyBadges make really nice portable testing platforms – Twitter Thread.

New Year

A lunar New Year celebration with CircuitPython – Twitter.

A guide I made on keyboard sizes

A guide on keyboard sizes – Reddit via Twitter.

Microcontroller to microcontroller I2C using CircuitPython

Microcontroller to microcontroller I2C using CircuitPython – Twitter Thread.

WIZnet Ethernet HAT

WIZnet Ethernet HAT for Raspberry Pi Pico CircuitPython library – GitHub.

Running MicroPython in Minecraft

Using MicroPython in a terminal in Minecraft – Twitter.

MIDI to CV interface

Using a Raspberry Pi Pico as a MIDI to CV interface, using a 12-bit ADC (MCP4725). Coded in MicroPython, using @diyelectromusic’s SimpleMIDIDecoder class – Twitter and YouTube.

ProtoESP

ProtoESP – an educational ESP32 board with a small flock of peripherals, all pre-connected, MicroPython compatible – Twitter.

upip: the MicroPython package manager – Documentation and GitHub.

Heat-o-matic

A proportional integral derivative (PID) controller running a home-made precision heater with a Raspberry Pi Pico and MicroPython – Hackaday, GitHub and YouTube.

Skate of Die on Raspberry Pi

Coding an homage to Skate or Die! on Raspberry Pi in Python – Raspberry Pi News.

5 Ways To Use Python On An iPad

5 Ways To Use Python On An iPad – David Amos.

Numbers in Python

3 Things You Might Not Know About Numbers in Python – David Amos and Adafruit Blog.

Unicode in Python

PyFlow

PyFlow: a general purpose visual scripting framework for Python – GitHub.

Unicode in Python: Working With Character Encodings – Real Python via Twitter.

PyDev of the Week: Rodrigo Girão Serrão on Mouse vs Python

The CircuitPython Weekly Meeting is postponed to Tuesday in observance of Martin Luther King Jr. Day in the US. Check Adafruit’s YouTube channel for the video later on today.

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Adafruit PrettyPins.

Coming soon

ESP32 Pico V3 02 modules

New ESP32 Pico V3 02 modules are small, allowing for a new Feather with more capability – Twitter Thread.

They are also small enough to place on ItsyBitsy size boards – Twitter.

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 no new boards added, but several are in development.

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

MagTag James Webb Telescope Status from Tim C

Navi10 MacroPad with KB2040 and KMK CircuitPython keyboard firmware from Eva Herrada

PyPortal WFH Busy Sounds Simulator from Tim C

CircuitPython on Raspberry Pi (Bare Metal / No OS) from Scott Shawcroft

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

New Libraries!

Here’s this week’s new CircuitPython libraries:

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!

Dan

I fixed a longstanding problem with audiobusio.PDMIn, which reads data from PDM digital microphones, such as the one on the Circuit Playground Express. I’m now working on a deep-sleep power consumption issue with ESP32-S2.

Either or both of these deserve a CircuitPython 7.1.1 release, so I’ll do so after we figure out what should be in it.

Jeff

Great success with floppies! With my work in progress branch, I’ve been able to mount 1.44MB (3.5”) and 1.2MB (5.25”) floppies and access the files inside from CircuitPython! Next up, I’ll make the code usable from both CircuitPython and Arduino and then make a pull request to add it to CircuitPython.

If you want to ask me anything about the MFM floppy encoding, do it now, because in a week or so from now the knowledge will vanish from my working memory, safely sealed away in Adafruit_Floppy.

You can watch a demo of the code in action from a segment on last week’s Ask an Engineer.

Kattni

This week I published the basics of the Adafruit ESP32-S2 TFT Feather guide. We wanted to get something live so folks who picked up this board had a place to get started. Keep an eye on the guide for the rest of the content, coming soon!

I also updated the Factory Reset page for the ESP32-S2 to have all the info needed for a factory reset or a bootloader repair, and updated the Install the UF2 Bootloader page to point to that so all the information is in one place. The process is identical, so we ran into having two pages with the same lengthy info on them. Not anymore!

Next up is finishing up the rest of the content for the QT Py ESP32-S2 guide, followed by the content for the TFT Feather guide. It involves a bit of bouncing around, but I’m working to get everything good to go!

Scott

Last week I wrapped up my Raspberry Pi work for a while. I wrote a Learn guide to get folks going using it. I also merged in support for the original Zero and Zero W (not supporting WiFi).

After wrapping this up, I started working on the ESP32-S3 in CircuitPython. I’ve started by reworking the sdkconfig generation to support different target platforms. After wrapping that up, I’ll be debugging the problems with WiFi on the S3.

Lastly, I’ll be finishing my #CircuitPython2022 post so that I can cover it tomorrow in my second Deep Dive of the new year. In the first Deep Dive, I reviewed last year’s #CircuitPython2021.

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.1 and its unstable release is 7.2.0-alpha.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20220117 is the latest CircuitPython library bundle.

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

3.10.2 is the latest Python release. The latest pre-release version is 3.11.0a4.

2759 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

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.

Job of the Week

Education Engineer @ Hack Club – Adafruit Jobs Board.

32,696 thanks!

32,696 THANKS

Adafruit Discord

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

Contribute!

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.