If you missed this week’s Python on Microcontrollers Newsletter, here is the ICYMI (in case you missed it) version.
To never miss another issue, subscribe now! – You’ll get one terrific newsletter each Tuesday (which is out before this post). 10,346 subscribers worldwide.
The next newsletter goes out in a week and subscribing is the best way to keep up with all things Python for hardware. No spam, no selling lists, leave any time.
Welcome to the latest Python on Microcontrollers newsletter! It has been a very busy week in the Python on hardware space. Just yesterday, Raspberry Pi came out with an RP2040-based debug tool. CircuitPython 8.0.2 provides some minor bug fixes with a couple more estimated point releases in the pipeline. And a bevy of projects of interest expanding the bounds of what can be done. I hope you enjoy this choc-full issue – 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:
Raspberry Pi Debug Probe: a plug-and-play debug kit for $12
Yestertoday, Raspberry Pi launched the Raspberry Pi Debug Probe, a complete debug hardware solution for Arm-based microcontrollers, powered by RP2040, and priced at just $12 – Raspberry Pi.
The Raspberry Pi Debug Probe provides:
- A USB to Serial Wire Debug (SWD) bridge
- A generic USB serial adapter
- Cables to connect to a host computer, and to the debug target
While it has been designed with Raspberry Pi Pico, and other RP2040-based targets, in mind, the Raspberry Pi Debug Probe can be used to debug any Arm-based microcontroller that provides an SWD port with 3V3 I/O.
CircuitPython 8.0.2 Released
We knew it was coming… with the recent release of CircuitPython 8.0.0, a large number of users have tried it out. And users tend to find “edge cases” where something minor might not be right. See the list of issues this release corrects – Adafruit Blog and GitHub.
Use an iPad or Android to Code your MicroPython or CircuitPython Application
Do you need to write some MicroPython or CircuitPython code for your board but don’t have a PC around? How about using your phone or tablet? I-SYST inc. provides their solution with their blueio832mini and blueioterm App for iOS & Android – Twitter and Crowd Supply.
The Raspberry Pi Computing Curriculum
The Raspberry Pi Computing Curriculum is a complete bank of free lesson plans and other resources that offer educators everything needed to teach computing lessons to all school-aged learners. It covers the full breadth of computing, including computing systems, programming, creating media, data and information, and societal impacts of digital technology. The 500 hours of free, downloadable resources within The Computing Curriculum include all the materials needed in the classroom – Raspberry Pi Foundation.
A Virtual Block-level Device for CircuitPython – Remote File System
Twitter user Nibble Poker (Herwin Bozet of Azias Creations) has managed to get a working virtual block-level device running on CircuitPython – each sector is fetched and written to from a remote host. It also allows for remote code updates without having to touch or be anywhere near the microcontroller – Twitter and GitHub.
Linux 6.2 is out
Linux 6.2 is out with initial support for some Apple Arm processors. There is also more support for for the Arm, RISC-V and MIPS architectures – CNX Software via Twitter.
News from the Python Software Foundation
Python 3.11.2, Python 3.10.10 and 3.12.0 alpha 5 are available – PSF Blog.
More to include a second Developer-in-Residence discussion, Python Packaging, and second quarter PSF Fellow members – PSF.
This Week’s 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
This week, Tim streamed work on trying out GIF support.
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 Supervisor Reload – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
Project of the Week: 0x33.board MIDI controller (Beta)
The 0x33.board is a 48-key isomorphic MIDI key controller.
It supports USB-MIDI, TRS-MIDI (out only) and I2C. It also has a jack for 1-bit line output. The 48 keys of the main note surface are arranged in four staggered rows of twelve keys each. Each key has independent RGB backlighting that can be used to highlight scales.
Settings can be changed on the device using a small oled display and three dedicated menu/navigation keys. The 0x33.board firmware currently supports the Wicki-Hayden, Jankó, Harmonic Table and Gerhard layouts, but others can easily be added to the open-source CircuitPython firmware. It is currently in beta with production units expected to cost less – Lectronz.
News from around the web!
WizFi Chip Counter: a project using a WizFi360-EVB-PICO with sensors to create a tape microchip counting device, using CircuitPython – hackster.io.
Managed to make a FAT12 filesystem with a code.py file and run it with CircuitPython using rp2040js, which emulates the RP2040 (chip on the Pico) in Node.js! Hoping to make some cool CI/CD tools with this, but just cool to see the CircuitPython firmware running on the desktop! – Mastodon.
Powering a Pimoroni Badger W from a battery and programming it via WiFi link using CircuitPython Web workflow code editor – Twitter Thread.
ESP32 AI assistant is an ESP32 that can be programmed in MicroPython by voice and in natural language – hackaday.io.
Learning the micro:bit Python Editor – microbit.org.
A self-contained board and display with a large button interface and 3D printed case using CircuitPython – Twitter.
How to detect difference between Pico and Pico W (code added to the Earl Philhower core) – GitHub.
A next generation String Car Robot FeatherWing features a beautiful Oshpark After Dark PCB. Limit switch end-of-string detectors, audio amp and integral speaker, NeoPixel path illumination, and StemmaQT are also available, programmable in CircuitPython – Mastodon.
LoKiPAD is an inexpensive MacroPad clone with integrated audio hardware – hackster.io and YouTube.
A digital clock with the Pimoroni Interstate 75W and MicroPython – Twitter.
Routing of the Eurorack Precision VCO module. It will be ready for Oshpark after confirming all footprints. The VCO will accept frequency and amplitude CV inputs as well as MIDI. The module incorporates an Adafruit ItsyBitsyM4 and a 1.54-inch TFT display, all coded in CircuitPython – Mastodon.
A Raspberry Pi Pico powered directly with a small solar panel, +ve to VSYS. It is running CircuitPython, driving an OLED display – Twitter.
The pico-ducky project now supports the Raspberry Pi Pico W. It has also been updated to support CircuitPython 8.0.0 – Twitter and GitHub.
Programming the Maker Badge with Czech text in CircuitPython – Twitter.
A pancake flipping robot programmed in MicroPython – Twitter.
Putting a Raspberry Pi Pico watering monitor into deep sleep and then wake it up again with MicroPython – Twitter.
Details of the “note balancing” application for the Pico MIDI Splitter, used in the new LoFi Orchestra – DIYelectromusic via Twitter.
A Tiny2040 using CircuitPython with a counter to play MP3’s that “convert” to a monetary sentence… 1 Button + 1 Speaker and now built in MP3 playing ability! – Digital-Maker via Twitter.
Servo Easing with MicroPython – YouTube.
Badger 2040W hacking, making a simple web app with MicroPython – YouTube via Twitter.
How to Create Home Surveillance System Using Python – morioh and YouTube.
PyDev of the Week: Eric Mendes on Mouse vs Python
CircuitPython Weekly Meeting will occur today, Tuesday February 21 at 2 pm US Eastern time due to the US Presidents Day holiday on Monday.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Python 3 Cheat Sheet.
NetPi is an Ethernet HAT for Raspberry Pi Pico that enables connection to the internet, supporting various internet protocols such as TCP, UDP, WOL over UDP, ICMP, IPv4, and more. NetPi can be used to create IoT devices, robots, home automation systems, and industrial control systems – SB Components.
Badger 2040 W is a programmable badge with speedy B&W e-Ink display and now WiFi – Pimoroni via Twitter.
A low cost Raspberry Pi Pico to Uno FlexyPin Adapter – Lectronz.
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 was one new board 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:
- How to Add a New Board to CircuitPython
- How to add a New Board to the circuitpython.org website
- Adding a Single Board Computer to PlatformDetect for Blinka
- Adding a Single Board Computer to Blinka
New Learn Guides!
PyLeap ESP32-S2 TFT Boxing Glove Tracker w/ Adafruit IO from Trevor Beaton
Adafruit ESP32-S2 Reverse TFT Feather from Kattni
Adafruit NeoKey BFF from Liz Clark
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 406!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Statistics
Total Library Stats
228497 PyPI downloads over 306 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 26099
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 25705
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 2274
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2132
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1799
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1625
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1587
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1585
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1564
- Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1541
What’s the team up to this week?
What is the team up to this week? Let’s check in!
I released CircuitPython 8.0.2 on Tuesday, February 14. This has some minor but necessary fixes to 8.0.0. There is no 8.0.1 – I labeled the wrong thing with 8.0.1, so I just discarded it.
I added safemode.py to CircuitPython over the past week. safemode.py allows you to run some code to decide what to do after entering safe mode. Now you can recover automatically, instead of forcing the user to push a reset button to exit safe mode. This feature will be in the first beta of 8.1.0, which will be released soon, and is already available to test in the “Absolute Newest” builds.
This week the ESP32-S2 Reverse TFT Feather guide went live. It has everything you need to get started with and learn about your new Feather.
I updated the Feather ESP32-S3 guide to reflect the new revision having a different battery monitor chip onboard. There’s code for both of them, and instructions on how to tell the difference.
This past week, I have been working hard on the CircuitPython Installer for circuitpython.org. It is just about done feature-wise, but I’m still working on some debugging. At the moment, it is hanging while attempting to flash the device. Since I’m sure the code to flash the device is working, being that it is in a separate module and in use in other areas, it’s only a matter of figuring out why my code just isn’t working. I expect to have it working very soon since it was working at one point.
This week I tested PRs for the Wiznet Ethernet library and some others in the MiniMQTT library including new functionality to use secure communication on different ports rather than only the default one. I wired up a 7 color eink display and attempted to try out a PR build that adds support for displayio with it, I’ve been unsuccessful so far but will keep at it and have gotten a point in the right direction from Scott.
I’ve been hard at work on a guide for using the new OV5640 breakout board with ESP32 and RP2040 microcontrollers and CircuitPython – the guide should be out by Wednesday on learn.adafruit.com!
This week I wrapped up my dedicated work on pysigrok. It’s early but usable. In fact, I’ve started writing an “Implementer’s Guide to the CircuitPython API” and am using it for testing. The goal of this guide is to assist folks in implementing the various modules that make up the CircuitPython API. I’m working to test and fix the iMX RT APIs and documenting gotchas as a I run across them.
This week I wrote guides on two new products: the microSD Card BFF and the NeoKey BFF. The BFF boards are able to attach to the back of the QT Py boards, making them good for tiny projects. I think that the microSD Card BFF would be great for a tiny datalogger and the NeoKey BFF would be great for a tiny macro, like a commonly used keyboard shortcut or a password holder.
The next MicroPython Meetup in Melbourne will be on February 22nd – Meetup.
Unlock the Power of MicroPython on an Arduino: Join a Live Webinar March 9, 2023 – Elector.
Hackaday Berlin 2023 has been scheduled for Saturday, March 25 – Adafruit Blog and announcement.
PyCon US 2023 will be April 19-17, 2023, again in Salt Lake City, Utah USA – PyCon US 2023.
The Open Hardware Summit is an annual conference organized by Open Source Hardware Association in New York City and virtually for 2 days: April 28-29, 2023 – Eventbrite.
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.
CircuitPython’s stable release is 8.0.2 and its unstable release is 8.0.3. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20230220 is the latest CircuitPython library bundle.
v1.19.1# is the latest MicroPython release. Documentation for it is here.
3.11.2 is the latest Python release. The latest pre-release version is 3.12.0a5.
3,404 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 – 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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 36,787 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.