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). 11,380 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! Oh, what a busy week! Two versions of CircuitPython (stable and beta) were released. And a slew of books on Python on hardware. Programming Pico is supported officially in VS Code with a new plug-in. And so much more – you’ll want to browse this issue for items of interest. – Anne Barela, Editor
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 9.1.4 and CircuitPython 9.2.0 Beta 0 Released
CircuitPython 9.1.4 is the latest bugfix release of CircuitPython and is a new stable release – Adafruit Blog and Release Notes.
Highlights of this release
- On nRF boards, fix programmatic resetting directly into bootloader.
- Fix BLE storage leak.
- Clear input after ctrl-C on UART REPL boards. This fixes some USB workflow issues.
CircuitPython 9.2.0-beta.0 is a beta release for 9.2.0. It has known bugs that will be fixed before the final release of 9.2.0 – Adafruit Blog and Release Notes.
Highlights of this release
- On nRF boards, fix programmatic resetting directly into bootloader.
- Fix BLE storage leak.
- Clear input after ctrl-C on UART REPL boards. This fixes some USB workflow issues.
- Update to Espressif ESP-IDF V5.3.1.
- Merge MicroPython updates from v1.23.
- Raspberry Pi RP2350 additions, fixes, and documentation.
- Espressif BLE improvements.
- Add
math.dist()
. _eve
updates.
TinyUSB 0.17.0 Brings Nice Enhancements
TinyUSB is an open-source cross-platform USB Host/Device stack for embedded systems, designed to be memory-safe with no dynamic allocation, and thread-safe with all interrupt event deferred then handled in the non-ISR task function – Adafruit Blog.
The latest version has so many changes, a sampling:
- Rewrite and Generalize driver to support non-STM32 MCUs such as WCH
- Add support for CH32 e.g CH32V203
- MAX3421E Host support
- Video Added support for USB Video Class (UVC) with MJPEG
71 folks contributed to this release! MIT Licensed – Release Notes.
The new Pico VS Code Extension
Pico VS Code is a Microsoft Visual Studio Code extension designed to make your life easier when creating, developing, and debugging projects for Raspberry Pi Pico-series boards using C/C++ or MicroPython. If you’ve ever tried to set up an embedded development environment, you know it’s no small feat. Beginners often find themselves tangled up in the complexities of build systems, SDKs, and toolchains – Raspberry Pi and Adafruit Blog.
The Online CircuitPython Code Editor
With Adafruit’s Circuit Python code editor, you can edit code from a web browser. This lets you connect via WiFi, Bluetooth or USB. The editor features AutoComplete, a REPL serial monitor and file management tools – Editor and Adafruit Blog.
DroidScript – Program Your RP2040 Projects from an Android Phone
DroidScript has a new free-to-use feature which lets you program several RP2040 devices directly from your phone via a USB-C cable. Use Linux style commands like cd, ls, cat, cp, rm, mkdir etc to manage the on-board flash memory and upload files from your phone or PC over WiFi. Make apps that communicate with RP2040 based gadgets over USB, WiFi or Bluetooth, such as robots or phone powered sensor modules – DroidScript.
October is Open Hardware Month
October is Open Hardware Month! Join OSHWA by certifying hardware as open source, becoming a member, or hosting a small event – OSHWA.
“We are providing resources and asking the community to host small, local events (if it’s safe) in the name of open source hardware. We ask that you have followed OSHWA’s rules listed on the “Dos and Don’ts” page.”
How to Install MicroPython for RISC-V on the Raspberry Pi Pico 2
Right now there are two ways to use the new RP2350: via the C++ workflow and using a preview of the latest MicroPython firmware. Tom’s Hardware shows how to use the latest MicroPython firmware for RISC-V to demonstrate that it’s as easy as the version of MicroPython used for the Arm CPU – Tom’s Hardware.
CircuitPython Building Open Source Businesses
Adafruit loves that the Maker community has embraced CircuitPython, for hobby and business. Five years ago, arturo182 introduced the Serpente board, a CircuitPython SAMD21 board in a Digispark form factor. His open source company, Solder Party, now makes a wide range of products. Another example is KMK firmware for keyboards. Based on CircuitPython, it powers a wide range of home build keyboards and innovative products for sale – Adafruit Blog.
Running MicroPython on the Flipper Zero
A MicroPython firmware release has been tailored to the Flipper Zero handheld device – Flipper Lab, Documentation and GitHub.
20 Years Later, Real-Time Linux Makes It to the Kernel – Really
The work done on real-time Linux has benefitted the open-source OS for years, but it was only this week that Linus Torvalds admitted its last piece into the mainline kernel – ZDNet.
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
Last Friday, Scott streamed work on more CircuitMatter.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
CircuitPython Parsec
John Park’s CircuitPython Parsec this week is on List Comprehension – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for September 16, 204 (notes) on YouTube.
Project of the Week: Measuring Beer Color with an Open-Source Colorimeter
Gerrit Niezen has built colorimeter using the Open Colorimeter design by IO Rodeo. A colorimeter is a scientific instrument used to measure the intensity of a color in a solution. The Open Colorimeter consists of an Adafruit TSL2591 Light Sensor and an Adafruit PyBadge inside a 3D printed enclosure. The light sensor is attached to a 3D printed cuvette holder, with a white LED light board attached to the other side – Gerrit Niezen.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Six Underrated Features and Upgrades of the Raspberry Pi 5.
New Notes from Adafruit Playground
Adafruit Playground is a new place for the community to post their projects and other making tips/tricks/techniques. Ad-free, it’s an easy way to publish your work in a safe space for free.
Prime Time Python! – Adafruit Playground.
Special! New and Revised Books
A new book release: Design an RP2040 board with KiCad – Raspberry Pi.
MicroPython for the Internet of Things: A Beginner’s Guide to Programming with Python on Microcontrollers Second Edition by Charles Bell is out now – X.
Code the Classics Volume II from Raspberry Pi Press provides some lovely Python programs for Raspberry Pi SBCs – Raspberry Pi News and GitHub.
Workers-Framework: A simpler way to MultiTask in MicroPython, on sale – LeanPub.
News From Around the Web
CircuitPython_SynthVoice is a library to help manage more advanced synthio
voices. It’s a great start for anyone who’s looking for a few more features out of the box – Post, YouTube, GitHub and ReadTheDocs.
Initial Raspberry Pi 5 support & more Snapdragon X1 laptops submitted For Linux 6.12 – Phoronix.
A trail camera using satellites and AI for animal research. A camera enables flexible study of animals in areas with poor cellular reception, such as the mountain ranges of Colorado, using Orange Pi Zero 2W and Python – hackster.io via X.
Ben Heckendorn learns MicroPython by making a Python watch with MicroPython – X.
BUBBY – a pocket chording keyboard based on a ESP32-S3 and programmed in CircuitPython – Keyboard Builders’ Digest and GitHub.
Maximizing Storage: SD card with FAT and LFS2 filesystems on MicroPython – hackster.io.
Use Raspberry Pi Pico to monitor the humidity of your laundry with MicroPython – X (Japanese).
“Testing the soil moisture sensor. Touching the sensor to a damp towel will change the reading.” Using a Raspberry Pi Pico W and MicroPython – X (Japanese).
Smart lock using face recognition and MicroPython – hackster.io.
Building an LED Roulette with CircuitPython, Part 2 – Designing a PCB with KiCad – YouTube.
10 amazing Raspberry Pi Zero projects – Raspberry Pi News.
Tube Time on Mastodon uses curve tracing to characterize the RP2350-E9 erratum – Mastodon.
Excel’s new Python integration may redefine spreadsheets – How-To Geek.
11 open source Python projects you should know in 2024 – DEV.
Comic Mono is a legible monospace font, the very typeface you’ve been trained to recognize since childhood – GitHub and Fontsource.
New
ASUS Tinker Board 3 (2024) is a credit card-sized SBC based on Rockchip RK3566 SoC with an HDMI port, 12V to 19V DC input, a 3.5mm audio jack, gigabit Ethernet, an M.2 socket for WiFi and Bluetooth, four USB ports, and a 40-pin GPIO header with a layout similar to the Raspberry Pi 3 Model B – CNX Software.
WIZnet has recently made available to retailers two new Raspberry Pi RP2350-based Ethernet boards – W5100S-EVB-Pico2 and W5500-EVB-Pico2 – based on different Ethernet controllers – CNX Software.
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 but eight are in process.
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
DOOM Keeb from John Park – also in hackster.io!
CircuitPython Libraries
The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!
To get the latest Adafruit libraries, download the Adafruit CircuitPython Library Bundle. To get the latest community contributed libraries, download the CircuitPython Community Bundle.
If you’d like to contribute to the CircuitPython project on the Python side of things, the libraries are a great place to start. Check out the CircuitPython.org Contributing page. If you’re interested in reviewing, check out Open Pull Requests. If you’d like to contribute code or documentation, check out Open Issues. We have a guide on contributing to CircuitPython with Git and GitHub, and you can find us in the #help-with-circuitpython and #circuitpython-dev 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 497!
New Libraries
Here’s this week’s new CircuitPython libraries:
Updated Libraries
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 207,119 PyPI downloads over 333 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 17,601
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 17,483
- Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 16,015
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2,903
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1,816
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1,808
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1,568
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1,558
- Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1,550
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1,540
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
I released CircuitPython 9.1.4 and 9.2.0-beta.0 last Tuesday, with a number of fixes. Scott fixed several issues that were blocking 9.2.0.
I finished merging CircuitPython v1.23 into CircuitPython; that merge is in 9.2.0-beta.0. But the changes are largely invisible to the user.
The ESP-IDF SDK we use on Espressif boards recently revamped the I2C driver, and deprecated the old driver. We had held back converting to the new driver because the esp-camera
library we rely on had not yet been updated. But now it has, and we can move forward. Thanks to Scott for doing most of the work of updating to the new driver. I am now debugging some remaining I2C issues and regressions.
Jeff
I’ve been going module by module to make sure the functionality of the RP2350 chip, particularly on the Pico 2, is working.
One problem I found and resolved actually affected the RP2040 as well: the timing of neopixel data in adafruit_neopxl8 was not quite right, with all pulses being somewhat shorter than they should have been. This is now fixed and an updated version of the lib will likely be released shortly.
Scott
This week I’ve fixed a number of issues on the ESP32 series of chips and one on nRF. The fixes are in 9.1.4 and 9.2.0-beta.0. Thanks to Dan for releasing those. I’m finally back to working on CircuitMatter. I starting to work on commissioning and am currently figuring out how to encrypt my reply so the commissioner can decrypt it.
Liz
This week I’ve been working on a few product guides. The first is for the Adafruit DS2482S-800 8 Channel I2C to 1-Wire Bus Adapter. This breakout lets you use up to 8 1-Wire sensors over I2C and intead of having to know the ROM address of the sensors, you can call them out by channel. I updated the CircuitPython library to be able to handle passing a ROM address or channel number to the DS18B20 temperature function.
I have also been working on the Feather RP2350 guide. I have a few more pages to take care of now that Arduino support has been merged into the Philhower Arduino BSP but it should be wrapped up and ready to show off next week.
I have also been using the new itsaSnap iOS app with Apple Shortcuts. This lets you use your phone to send data to Adafruit IO. I’ve been having a lot of fun working with shortcuts and have a few projects ideas that I’m starting to work on. If you want a sample of what you can do, check out Trevor’s new weather display guide. It uses CircuitPython on a Matrix Portal S3 with Apple Shortcuts and itsaSnap to send weather data from iOS to Adafruit IO and then display the data on the RGB matrix. I think this is a really cool use of itsaSnap because usually getting weather data can be cumbersome with API requests and API keys.
Upcoming Events
The next MicroPython Meetup in Melbourne will be on September 25th – Meetup. You can see recordings of previous meetings on YouTube. The August 2024 Roundup.
Maker Faire Bay Area returns to Mare Island Naval Shipyard on October 18-20, 2024 – Maker Faire.
Hackaday Superconference is an epic gathering of hardware hackers, makers, and tech enthusiasts happening November 1-3 in Pasadena, California – Hackaday and Eventbrite.
PyCon AU will be held from the 22nd to the 26th of November at the Melbourne Convention and Exhibition Centre (MCEC) in Narrm/Melbourne. Matt Trentini and Damien George will both be presennting on MicroPython – PyCon AU.
PyLadies Conference (PyLadiesCon) is a transformative event designed to promote diversity, learning, and empowerment within the Python community. December 6-8, 2024 online – PyLadies.
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 9.1.4 and its unstable release is CircuitPython 9.2.0-beta.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20240917 is the latest Adafruit CircuitPython library bundle.
20240920 is the latest CircuitPython Community library bundle.
v1.23.0 is the latest MicroPython release. Documentation for it is here.
3.12.6 is the latest Python release. The latest pre-release version is 3.13.0rc2.
4,044 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.
38,330 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,330 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, Instagram), 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.
Contribute
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Monday. 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.