If you missed Tuesday’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). 9,918 subscribers worldwide!
The next newsletter goes out in a week and being subscribed 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! This issue finishes the builds community makers have done with Python for Halloween. I expect holiday themed projects to come out, perhaps after a short break. Beta 4 for CircuitPython 8.0.0 fixes the ESP32-C2 issue and adds a RasPi Pico web server capability among other fixes. macOS Ventura has a bug affecting file transfers for UF2 and hex files used by microcontrollers. And there is so much more – have fun checking it all out – Ed.
This Halloween (October 31st) has seen a bonanza of maker projects and so many of them used Python, MicroPython or CircuitPython. It appears using Python and current hardware is making it easier for people to make creative, feature-rich projects.
A dragon skull using CircuitPython on an Adafruit Gemma M0 and two 12 NeoPixel rings – Twitter.
A Guy Fawkes Noods Pumpkin using an Adafruit Feather ESP32-S2 + M4 Express w/Propmaker FeatherWing programmed in CircuitPython. Uses a 3W LED inside and Adafruit N00ds LED strings outside – GitHub.
The Computer Science Foundations class at Mountain Vista HS uses Adafruit Circuit Playgrounds to light up pumpkin creations – Twitter.
A motion activated animatronic skull without any visible sensors. It uses a Raspberry Pi Pico running CircuitPython and includes MP3 audio – Twitter.
CircuitPython 8.0.0 Beta 4 Released
WARNING: The flash partitioning for 2MB and 4MB flash ESP32 and ESP32-C3 boards has changed since 8.0.0-beta.2. When you load 8.0.0-beta.3 or later over beta.2 (or vice versa), on these boards, CIRCUITPY will be erased and reformatted. Also: The flash partitioning for the Raspberry Pi Pico W has changed since 8.0.0-beta.1. When you load 8.0.0-beta.2 or later over beta.1 (or vice versa), on the Pico W, CIRCUITPY will be erased and reformatted.
Notable changes since 8.0.0-beta.3
- ESP32-C3 builds now work again.
- Raspberry Pi Pico W can act as a server, and can use static IP addresses.
macOS Ventura Released, Breaks UF2 File Copy
macOS Ventura has introduced a regression bug in copying UF2 files to microcontroller boards. At present, copying with Finder results in an “error code 100093”. In the Terminal, you can use cp -X at the moment. A number of maker companies are jointly reaching out to Apple to seek a fix. Raspberry Pi has stated they’ll make a blog post about the issue and current status on November 1st. See details – Adafruit Blog.
OSHWA Announces New Board Members
The Open Source Hardware Association (OSHWA) has announced their 2022-2024 board members. Congrats to Thea Flowers, David Slik, Jinger Zeng, Oluwatobi Oyinlola, and Michael Weinberg – OSHWA.
Ubuntu Including More Support For RISC-V
Ubuntu is now rolling out development previews of Ubuntu for RISC-V single board computers. This past week, the Mango Pi MQ Pro D1 and SiPeed LicheeRV received software. Ubuntu notes that not all RISC-V hardware has the power to run a graphical user interface – Ubuntu Wiki.
Learn to Program in Python with Raspberry Pi Online Courses
If you are new to teaching programming or looking to build or refresh your programming knowledge, the Raspberry Pi Foundation has a free resource. Their ‘Learn to program in Python’ online course pathway is for educators who want to develop their understanding of the text-based language Python. Each course is packed with information and activities to help you apply what you learn in your classroom teaching – Raspberry Pi.
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 Pico W Trivia Game improvement and Core documentation.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – 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. Each episode features Paul in conversation with a guest for a short interview – CircuitPythonShow and Twitter.
Paul takes the podcast on the road in the latest episode and drives two hours east to Altoona, Wisconsin where he meets up with Jason Pecor and the River Prairie Trolls – Show List.
Project of the Week: Barcodes in Python and CircuitPython
The library auto-detects whether it needs Code128B (uppercase and lowercase), C (only numbers), or A (uppercase). You pass it a string, the thickness of each module in pixels, and the height of the bars. It does the rest.
News from around the web!
An HTTP server for the Raspberry Pi Pico W with CircuitPython. Work in progress from Liz, with a tutorial coming soon at learn.adafruit.com – Twitter.
The CircuitPython asyncio library makes cooperative multitasking easy. This lets your processor do other tasks while waiting for one to finish. A tutorial about this is coming soon – Twitter Thread.
Text on a 20×2 VFD display from the 1990s. CircuitPython code on a Raspberry Pi Pico W – Twitter.
Py-Opto-Docker is a Python to MQTT for a Raspberry Pi and opto isolator attached to a 240v PIR sensor – GitHub.
LED control using a Raspberry Pi Pico and a 74HC595 shift register with MicroPython – Twitter.
A step sequencer written in CircuitPython for the Adafruit CLUE and Littlebits/Korg Synth Kit using the Littlebits micro:bit adapter – YouTube.
A warm up jacket with lit with CircuitPython – Twitter.
Brian has been documenting the method of upgrading the firmware to the latest released beta version of CircuitPython for the BPI-PicoW-S3 – Twitter.
A Raspberry Pi Pico USB board that switches mirroring settings using CircuitPython – Twitter (Japanese).
RISC-V is thriving – here’s what you need to know – cadence.
How to generate WordPress Posts automatically with Python – FreeCodeCamp.
PyDev of the Week: Vinay Sajip on Mouse vs Python
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? The RedMonk Programming Language Rankings: June 2022.
Experimental Raspberry Pi RP2040 boards with Patrick Yang’s CH340N. It will be running MicroPython – 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 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!
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!
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 387!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
What’s the CircuitPython team up to this week?
What is the CircuitPython team up to this week? Let’s check in!
I released CircuitPython 8.0.0-beta.4 on Sunday, October 30. This release fixes the ESP32-C3 builds, which weren’t working at all, includes some additions to the Pi Pico W network support, and fixes a bunch of bugs, as usual.
Last week, I fix some sleep alarm problems, improved the documentation of hardware limitations in CircuitPython, and fixed one unusual Espressif board build. In the coming week, I’ll be working on more network and sleep problems. Some users may have also developed a workaround for the LC709203F problems on ESP32-S3, and I’ll take a look at that.
This week I published the Adafruit LTR-329 and LTR-303 guide. This guide has everything you need to get started with the LTR-329 and LTR-303 light sensor breakouts. They’re nearly identical, except the LTR-303 has interrupt capabilities. If you picked up one of these boards, check out this guide!
Next I’m working on the PCF8575 guide. This is a 16 pin I/O expander breakout that uses I2C and includes STEMMA QT connectors. It’s a fantastic little breakout if you need to add extra GPIO to your project. Keep an eye out for this guide!
I ended up coming down with COVID and was out sick most of this past week. I’m starting to get back into things as I get my stamina back. I did some work on the CLUE robot guide from my CircuitPython Day Livestream.
This week I extended a previously created displayio ListSelect widget to support showing a subsection of a list that is longer than the available space on the screen. I used this new functionality for selecting the category in the trivia game I am working on. I also soldered up a cow bell proto board and moved the circuit to it from a breadboard, and began modeling a case to put everything into.
Again, I’ve been working on Pico W. There were a number of small changes that improved reliability. And speaking of reliability, I was excited to accept a Pull Request from GitHub user @georgboe to fix the error “MQTTException:” with no explanation; georgboe had previously fixed exactly the same bug in the Pico W implementation.
While I don’t recommend it (responding to any HTTP server request takes about 8 seconds!), it will soon be possible to operate a secure HTTP server from a Pico W once the related Pull Request is merged.
This week I worked on a Flapping Halloween Vampire Bat project. It uses a Circuit Playground Express and two servo motors. The onboard NeoPixels use the LED Animation library to display a comet animation and the servo motors move the attached 3D printed wings in a flapping motion.
Next, I’m starting to look into using a Pico W for an HTTP server with CircuitPython. There are a lot of MicroPython examples, but I haven’t really seen many in CircuitPython so I think that will be useful for folks.
The next MicroPython Meetup in Melbourne will be on November 23rd – Meetup.
After two years in remote mode, Hackaday is very excited to announce that this year’s Hackaday Supercon will be coming back, live! Nov. 4th, 5th, and 6th in sunny Pasadena, CA for three days of hacks, talks, and socializing with the Hackaday community – Call for proposals and Hackaday.
PyCon US 2023 will be April 19-17, 2023, again in Salt Lake City, Utah US – PyCon US 2023.
Send Your Events In
As for other events, with the COVID pandemic, most in-person events are postponed or held online. If you know of virtual events or upcoming events, please let us know on Twitter with hashtag #CircuitPython or email to cpnews(at)adafruit(dot)com.
20221031 is the latest CircuitPython library bundle.
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.
Job of the Week
NYC FloodNet Sensor Engineer – FloodNet – New York University – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 35,808 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.