View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! This week is a cornucopia of podcasts and interviews revolving around Python on Hardware. A new podcast has kicked off and a catchup on Jeff & Melissa’s broadcast to the Dublin Linux Developers Meetup. A new version of CircuitPython just dropped and some very interesting projects from the past week. Let’s get to it all.
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:
CircuitPython 7.2.1 Released
CircuitPython 7.2.1, the latest bugfix revision of CircuitPython, was released Monday and it’s the new stable release – GitHub.
Notable fixes to 7.2.1 since 7.2.0
- Espressif I2C pull-up detection fix.
- SAMD21 auto-reload reliability. In addition, for auto-reloads on any board, the program will stop more quickly, and will wait 0.75 seconds (was 0.5 seconds) after the last filesystem write before restarting.
- Update known certificates.
countio problems when used outside of code.py.
from __future__ import annotations to allow program compatibility with CPython.
Arduino Nicla Vision
The new Arduino Nicla Vision is a ready-to-use 2MP standalone camera that lets you analyze and process images on the edge for advanced machine vision and edge computing applications. It integrates with OpenMV, supports MicroPython and features WiFi and Bluetooth Low Energy connectivity – Arduino Article and Store, via Twitter.
Best microSD Cards for Raspberry Pi & SBCs
Best microSD Cards for Raspberry Pi & SBCs by Bret Weber, inspired by Jeff Geerling’s microSD benchmarks – Article via Twitter.
The Tom’s Hardware Pi Cast with Special Guest Paul Cutler, Host of the CircuitPython Show
The Pi Cast (3/15/22): The CircuitPython Show with Paul Cutler – YouTube via Twitter.
For this episode, we are joined by Paul Cutler, host of The CircuitPython Show podcast to talk about the rise of CircuitPython, the RP2040 and of course, the Raspberry Pi.
Anne Barela on the Python Bytes Stream
Python Bytes Episode #274: 12 Questions You Should Be Asking of Your Dependencies features CircuitPython team member Anne Barela (note: Anne is your newsletter editor). Discussions of this newsletter, CircuitPython, MicroPython, and GitHub in addition to some other wonderful Python topics – Python Bytes and YouTube.
This Week’s Python Streams
CircuitPython Deep Dive Stream
This week, Tim streams work on experimenting with async displayio.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
John Park’s CircuitPython Parsec this week is on Display Rotation – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
The CircuitPython Show
The CircuitPython Show is an independent podcast, hosted by Paul Cutler, focusing on the people doing awesome things with CircuitPython – CircuitPythonShow, Blog Post and Twitter.
The second episode aired on March 8th featuring an interview with Les Pounder. The third episode airs today March 15th with Professor John Gallaugher (above) – Show List.
TammyMakesThings is Streaming CircuitPython
Community member and CircuitPython contributor Tammy Cravit is streaming on Twitch. Her stream focuses on electronics, coding and making, with a focus on CircuitPython. The first few streams have been working on a MacroPad-based MIDI controller, and she’s got lots of other project ideas in the works. An exact schedule for her streams is still being worked out, but she’s targeting 2-3 streams per week. Check it out and follow now to be notified of future streams – Blog Post and Twitch.
Jeff and Melissa Speak at the Dublin Linux Developers Meetup
As promised last week, here is the video recorded of Adafruit folks Jeff and Melissa discussing CircuitPython, Python, and Linux a few days ago – YouTube.
Forth on Raspberry Pi Pico
Forth is certainly not one of the most modern programming languages, but it takes limited resources into account. Here is an implementation for the Raspberry Pi Pico.
Mecrisp Forth on the Raspberry Pico – Twitter, heise online and more on FORTH – Hackaday.
Projects of the Week
We’re big fans of the tutorials by Boston College Professor John Gallaugher. Out now are two new tutorials:
Raspberry Pi School – Using STEMMA QT on a Raspberry Pi – YouTube.
CircuitPython School – Use Capacitive Touch to Build a Raspberry Pi based Drum Machine – YouTube.
News from around the web!
A Raspberry Pi Pico-powered 3D mouse with CircuitPython – Tom’s Hardware and GitHub.
A pseudo-“Linux” has been written in CircuitPython for the Raspberry Pi Pico – Adafruit Blog and GitHub.
Spent the day object-ifying the JoyPad. The end user’s code.py will now be clean and simple! Create an instance of JoyPad() and then just process key events in the “while True” loop. The code also detects missing libraries and provides links! – Twitter.
BadgerOS ported (and enhanced) to CircuitPython from the original Pimoroni MicroPython version – GitHub via Twitter.
ampule is a tiny HTTP server made for CircuitPython WiFi devices – GitHub.
CircuitPython v7.2.0 on an Espressif RISC-V ESP32-C3 dev board – Twitter.
Making an eInk eBook with a Pimoroni Badger2040 with CircuitPython – Twitter.
Multiple builds of Pimoroni MicroPython for 2, 4, 8, and 16MB variant Raspberry Pi boards. This isn’t available for the Blinka build yet – GitHub via YouTube.
A practical Guide to Modules, MicroPython and the Raspberry Pi Pico – Kitronik via Twitter.
pipkin is a tool for installing distribution packages for MicroPython and CircuitPython – GitHub.
Adafruit MQTT Home Automation MicroPython – YouTube via Twitter.
Circuit Garden by artist Kelly Heaton is an art exhibit on view February 28 to June 3 at 450 West 33rd Street NYC – Adafruit Blog and YouTube.
MicroFlow: running TensorFlow models on Arduino microcontrollers – Adafruit Blog and GitHub.
The Apoca-pi Now is a luggable, rugged, EMP-proof Raspberry Pi Portable – hackster.io and Reddit, via Twitter.
Sending an email with Python – Twitter.
Manim: a community maintained Python library for creating mathematical animations – Manim Community.
Did you know that there are multiple implementations of the Python programming language? – Twitter Thread and python.org.
Design patterns in the Python programming language – python-patterns.guide.
Python built-in functions to know – Trey Hunner.
A Python recursive function visualizer – recurseivevisualizer.
PyDev of the Week: Jessica Greene on Mouse vs Python
CircuitPython Weekly Meeting for March 14th, 2022 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Awesome CircuitPython.
Development of the Raspberry Pi Compute Module 4 Compute Module-based Compute Blade is coming along nicely with version 0.9 release candidates and then public betas – Twitter.
The key micro RP offered by abitkeys is a RP2040-based controller. It has an Arduino Pro Micro footprint similar to Adafruit’s KB2040. It should be CircuitPython compatible – we’ve written to the company to add this capability for KMK use – Keyboard Builders Digest.
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!
Personal and Portable ESP32-S2 Web Server from John Park
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 347!
Here’s this week’s new CircuitPython 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!
After several days of debugging, I was able to fix a bug that prevent auto-reload from working on CircuitPython on the SAMD21.
I released CircuitPython 7.2.1 this week. It included the bug fix above and several others. Then we will move on to 7.3.0-beta.0.
I’ve been working the bugs out of reading and writing Apple floppies using fluxengine host software and Adafruit_Floppy. I’ve also wired up and written software so that fluxengine can use an Apple “Disk ][” via Adafruit_Floppy. In this photo, you can see the optical sensor installed inside the Disk ][ to sense the rotation of the floppy drive. This fully reversible modification will be documented in an upcoming guide.
This week, I finally finished the TFT Feather ESP32-S2 guide. I ran into quite a few issues with code, the Learn System itself, and the physical board. It was a bugtastic week! I’m a huge fan of finding bugs, but that was getting old by the end. In the process, I also wrote a number of new templates which were included in the TFT Feather guide, and added to the non-TFT Feather ESP32-S3 guide.
After all of that, I was finally able to get started on the Feather ESP32 V2 guide. This board has no CircuitPython support, so the guide is significantly different than the ones I’m used to writing. And since it’s a new board, with new features, I’ve had to update some of the Arduino templates and code to work properly. I’ve run into some issues with this guide as well, but it’s still going much faster than the last one. Keep an eye out for that to be published soon!
This past week I gave my talk, which was more of a demo, for the Dublin Linux Developers group. I had a chance to work on Blinka a bit before that and added pre-commit support so that it will be much easier for people to submit pull requests. After that, I worked on the WebSerial ESPTool some more. I went and cleaned it up a bit and added ESP32-C3 support.
I had a few days of vacation this week and spent a bit less time with CircuitPython. I did some quick testing of a core auto-reload issue before leaving. I am back to full capacity now and will be working on some documentation around our recent efforts to add typing information to the CircuitPython repos. We also discovered that older libraries are having the wrong version number embedded within them when installed via pip. There was already a fix in the cookiecutter repo, I’ll be looking into a way to update the existing repos with the fix.
This week I’ve continued working on USB Host support on the iMX RT (used in Teensy 4.x) I’ve sent out a draft PR but discovered when testing Teensy 4.1 that the non-debug build doesn’t actually work. The debug prints must slow down the code to avoid a timing issue. The next step I took was to create a TinyUSB example that shows the problem outside of CircuitPython. I’ll hand this off to Thach who has been helping me by making the needed changes to TinyUSB. We’ll keep tag teaming USB host until it is in CircuitPython.
While I’m waiting for Thach, I’ll be picking up the ESP32-S3 and fixing a few issues that have come up with it. In particular, there are a couple deep sleep issues that I’m going to take a look at. So, I’ll be switching between USB Host and refining the ESP32-S3.
Monday March 14th (Pi Day), the team welcomed Liz!
The 4th annual Python Web Conf is the most in-depth Python conference for web developers. It will be hosted virtually on LoudSwarm by Six Feet Up, coming March 21-25th, 2022 – Python Web Conf 2022.
The next MicroPython Meetup in Melbourne will be on March 23rd – Meetup. See the slides of the February 23rd meeting.
PyConDE and PyData 2022 will be held in Berlin, Germany from April 11 – 13, 2022 at the Berlin Conference Center – PyCon DE.
PyCon US 2022 planning is underway. The event is in-person with an online component. April 27, 2022 – May 5, 2022 in Salt Lake City, Utah USA. Head over to the PyCon US 2022 website for details about the conference and the schedule (new) – PyCon Blog.
PyCon Italia is the Italian conference on Python. Organized 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.
SciPy 2022, the 21st annual Scientific Computing with Python conference, will be held in Austin, Texas, USA from July 11-17, 2022. The annual SciPy Conference brings together attendees from industry, academia, and government to showcase their latest projects, learn from skilled users and developers, and collaborate on code development. The full program will consist of 2 days tutorials (July 11-12), 3 days of talks (July 13-15) and 2 days of developer sprints (July 16-17) – SciPy 2022.
EuroPython 2022 will be held from 11th – 17th July 2022 and it will be both in person and virtual. The in-person conference will be held at The Convention Centre Dublin (The CCD) in Dublin, Ireland – EuroPython 2022.
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.
CircuitPython’s stable release is 7.2.1 and its next unstable release will be 7.3.0-alpha.1 (not yet available). New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20220314 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.0a6.
2,882 Stars Like CircuitPython? Star it on GitHub!
Call for help – Translating CircuitPython is now easier than ever!
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 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
MatrixPortal Project – BOB PROPERTY LLC – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 33,532 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, 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.