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 Monday (which is out before this post). 11,413 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! This has been a surreal week, and not just because there were two significant Python releases (always good). Your editor was in the path Hurricane Milton took in Florida! Living on the eastern coast, the storm came over us (spawning tornadoes beforehand). We had some siding damage and a small one-meter shed will need replacing. The front yard flooding is receding. Overall, we were fortunate: we are safe and we kept power and internet, so I could get the newsletter out to you all. Yes, I have skewed priorities, perhaps. But once we were safe, I wanted to do my best for “y’all”. Please enjoy this monster issue – 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:
Python 3.13 (Final) Released
Python 3.13.0 is the newest major release of the Python programming language, and it contains many new features and optimizations compared to Python 3.12. (Compared to the last release candidate, 3.13.0rc3, 3.13.0 contains two small bug fixes and some documentation and testing changes) – Python Insider Blog.
Python 3.13 Boosts Performance and Developer Experience – ITPro Today.
Breaking Down Python 3.13’s Latest Features – InfoQ.
CircuitPython 9.2.0 Beta 1 Released
CircuitPython 9.2.0-beta.1 is a beta release for 9.2.0. There are a few known bugs that will be fixed before the final release of 9.2.0 – Adafruit Blog and GitHub.
Highlights:
- Many bug fixes since 9.2.0-beta.0.
- New
busio.I2C.probe()
andbitbangio.I2C.probe()
methods to check for a single device address. - Use new ESP-IDF I2C driver.
- ESP32-S3: Add
sdioio
. - Incompatible change: Change default hostname for all Espressif boards to the ESP-IDF default, which is
espressif
. Previous board-specific names were not applied consistently. Usewifi.radio.hostname
to set a custom hostname. - Incompatible change: Use default hostname for mDNS. Fix mDNS collision mangling.
The Book of Making 2025 Released
Book of Making 2025 distills the essence of HackSpace magazine down to favourite maker projects. Whether you want to build a rocket or hot air balloon, learn 3D-printed mechanical engineering, or control the world around you with a Raspberry Pi Pico, there’s something for you here – Raspberry Pi News.
Awesome MicroPython Lists Libraries
Awesome MicroPython is a curated list of awesome MicroPython libraries, frameworks, software and resources – Awesome MicroPython.
The Ultimate Guide to Error Handling in Python
How do you best capture errors in a Python program? This article shows you – Miguel Grinberg.
- When should you catch exceptions raised by functions you call, and when should you not?
- How can you know what exception classes to catch?
- When you catch an exception, what should you do to “handle” it?
- Why is catching all exceptions considered a bad practice, and when is it okay to do it?
Join the Python Developers Survey 2024: Share your Experience!
The eighth iteration of the official Python Developers Survey has been opened by the Python Software Foundation (PSF). The goal is to capture the current state of the language and the ecosystem around it. By comparing the results with last year’s, folks can identify and share the important trends in the Python community and key insights – PSF.
Arduino Alvik Dances Cumbia with MicroPython
With a little hack, Roni Bandini programmed an Arduino Alvik to dance cumbia! He connected a sound sensor to free GPIO pins on the Nano ESP32 board, so Alvik moves to the beat – Medium via X.
Seeing the Invisible – Visualizing WiFi Packets with CircuitPython
For Hackaday Supercon, SecurityFWD is creating a SAO (simple add on) that hosts an ESP32-S3 microcontroller with a built-in WiFi radio, which visualizes the invisible WiFi environment around you – YouTube and GitHub.
“Using a CircuitPython example, I’ve created a mockup of a circuit board that sorts packets into different colors, and displays them on a clock according to which of the 12 WiFi channels the packet appeared on.”
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 CircuitMatter with Apple Home.
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 Prop-Maker Pixel Power – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for October 7, 2024 (notes) on YouTube.
Project of the Week: The LED Orb to Celebrate Ada Lovelace Day
The world’s first computer programmer, Ada Lovelace (1815-1852) is an inspiration to women in STEM. In her honor, MAKE builds Debra Ansell’s spectacular LED Orb, programmed in CircuitPython from Adafruit Industries and Ladyada herself, Limor Fried – Make via X.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Review: ESP32 MPY-Jama, an Excellent IDE for Using MicroPython on ESP32.
Did you know you can read past issues of this newsletter in the Adafruit Daily Archive? Check it out.
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.
Keyboard FeatherWing Messenger powered by LVGL – Adafruit Playground.
Installing Python 3.13 using uv – Adafruit Playground.
Display AIO+ Local Weather Conditions: MatrixWeather System – Adafruit Playground.
News From Around the Web
A CyberPunk LCD clock with Raspberry Pi Pico and CircuitPython – YouTube via X.
ViperIDE, thanks to community contributions, now can open and edit multiple files – X.
Raspberry Pi hasn’t released their PoE+ HAT after pre-announcing it a year ago. Third parties are taking the idea and getting creative, combining NVMe and PoE on one HAT! How do these new HATs stack up? – Jeff Geerling.
A CircuitPython experimental audiodelays.Echo
demonstration – YouTube and pull request.
Gugusse Roller transfers analog film to digital with Raspberry Pi and Python – Raspberry Pi News.
CircuitPython GIF animation using an RP2040 – YouTube.
Add rain detection to your smart home with Python – YouTube and GitHub.
Raspberry Pi SD cards and the Raspberry Pi bumper introduced – Raspberry Pi News.
Using Raspberry Pi and Python to create a score lamp for a costume contest – X (Japanese).
An alternate way to do CircuitPython projects in VS Code – YouTube.
Making a Pong Game in MicroPython with a “War Games” menu front end – X.
Ubuntu Linux 24.10 is finally available. Oracular Oriole has many new features including some that mark the 20th anniversary of the operating system – How-To Geek.
This water-cooled Raspberry Pi 5 achieved a 60°C drop in CPU temperature, allowing it to be heavily overclocked for serious retro gaming – hackster.io and YouTube.
Guy Dupont makes the music marketing fridge from Popstar a real thing with an Adafruit Feather and CircuitPython – X and Code.
StateSmith is a cross platform, free/open source tool for generating state machines in multiple programming languages including Python – GitHub.
How to work with date and time in Python – The New Stack.
The easiest way to learn and use Python – Google Colab and its integrated generative AI – Towards Data Science.
5 of the most-asked questions about Python answered – How-To Geek.
Upcoming
A new partnership between STMicroelectronics and Qualcomm aims to enhance IoT solutions – sdx central.
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.
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
The Adafruit Learning System has over 3,000 free guides for learning skills and building projects including using Python.
Zelda Echoes Of Wisdom Tri Rod from Ruiz Brothers
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 498!
New Libraries
Updated Libraries
Here’s this week’s updated CircuitPython libraries:
- adafruit/Adafruit_CircuitPython_Logging
- adafruit/Adafruit_CircuitPython_AdafruitIO
- adafruit/Adafruit_CircuitPython_VEML7700
- adafruit/Adafruit_CircuitPython_WSGI
- adafruit/Adafruit_CircuitPython_GPS
- buildwithpiper/PiperBlocklyLibrary
Library PyPI Weekly Download Stats
Total Library Stats
- 1,224,321 PyPI downloads over 334 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 33,699
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 27,664
- Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 21,408
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 13,500
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 12,615
- Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 12,198
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 11,807
- Adafruit CircuitPython HTTPServer (adafruit-circuitpython-httpserver): 8,731
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 8,557
- Adafruit CircuitPython PortalBase (adafruit-circuitpython-portalbase): 8,365
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
I fixed BLE, I2C, and sleep issues in CircuitPython in the past week. I’m now getting ready to release CircuitPython 9.2.0-beta.1, to catch up on the many fixes in the past few weeks.
Tim
I finished up the change to adabot to test building the bundles before committing them and making the new bundle releases. It ran for the first time, but did have some unintended side effects that got cleaned up and repaired afterward. There is a new version of the Sphinx RTD Theme which is used by all of the libraries for their docs pages. The new version removed a deprecated function call that our config used so the libraries started to fail the actions check as a result.
I created a patch to fix this and ran it with adabot against all of the libraries, and then one additional one for a small subset that had a slightly different config. Next I used adabot to create releases for all of the libraries that it patched, in the process I’ve tweaked the way that it can accept the release title and will submit a PR with this more convenient way.
Jeff
A guide for “CircuitPython Polyphonic Audio FX” is now available on the Adafruit Learn System. Inspired by the original Adafruit Audio FX board, this version uses MP3 sound files and supports playback of more than one file simultaneously.
I also posted a Playground page detailing how to easily install the new Python 3.13 on a Debian Linux system using a tool called “uv”.
Scott
This week I’ve mainly been working on CircuitMatter. I got it commissioning working with chip-tool and matter.js. I then used CHIPTool for iOS to debug and fix commissioning with Apple. The next step is to implement enough to be a light.
Liz
This week I worked on a guide for the HSTX to DVI breakout. This breakout lets you use a 22-pin FPC with the Feather RP2350 HSTX to use the HSTX pins to output graphics over DVI. Support is available for this with CircuitPython. I’m looking forward to using this feature in a project since the RP2350 is faster than the RP2040 and has more memory.
Upcoming Events
Maker Faire Bay Area returns to Mare Island Naval Shipyard on October 18-20, 2024 – Maker Faire.
The next MicroPython Meetup in Melbourne will be on October 23rd – Meetup. You can see recordings of previous meetings on YouTube. September’s meeting notes are here.
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 9.2.0-beta.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20241011 is the latest Adafruit CircuitPython library bundle.
20241005 is the latest CircuitPython Community library bundle.
v1.23.0 is the latest MicroPython release. Documentation for it is here.
3.13.0 is the latest Python release.
4,078 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,371 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,371 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.