Daily tips and tricks from the experts at Adafruit!
View this email in your browser

View this email in your browser. Warning: Flashing Imagery

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

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 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() and bitbangio.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. Use wifi.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

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

Awesome MicroPython is a curated list of awesome MicroPython libraries, frameworks, software and resources – Awesome MicroPython.

The Ultimate Guide to Error Handling in Python

Ultimate Guide to Error Handling

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!

Join the Python Developers Survey 2024

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

Alvik Dances Cumbia

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

Seeing the Invisible - Visualizing Wi-Fi 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 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

Deep Dive

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

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 LED Orb

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

Keyboard Featherwing Messenger powered by LVGL – Adafruit Playground.

Installing Python 3.13 using uv

Installing Python 3.13 using uv – Adafruit Playground.

MatrixWeather System

Display AIO+ Local Weather Conditions: MatrixWeather System – Adafruit Playground.

News From Around the Web

CyberPunk LCD Clock

A CyberPunk LCD clock with Raspberry Pi Pico and CircuitPython – YouTube via X.

ViperIDE can now open and edit multiple files

ViperIDE, thanks to community contributions, now can open and edit multiple files – X.

Pi PoE+ NVMe HAT

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.

CircuitPython Experimental audiodelays.Echo Demonstration

A CircuitPython experimental audiodelays.Echo demonstration – YouTube and pull request.

Gugusse Roller transfers analog film to digital with Raspberry Pi

Gugusse Roller transfers analog film to digital with Raspberry Pi and Python – Raspberry Pi News.

CircuitPython: Gif Animation(RP2040)

CircuitPython GIF animation using an RP2040 – YouTube.

Add rain detection to your smart home with Python

Add rain detection to your smart home with Python – YouTube and GitHub.

Raspberry Pi SD Cards and the Raspberry Pi Bumper

Raspberry Pi SD cards and the Raspberry Pi bumper introduced – Raspberry Pi News.

Score Lamp

Using Raspberry Pi and Python to create a score lamp for a costume contest – X (Japanese).

Alternate way to do your CircuitPython projects in VS Code

An alternate way to do CircuitPython projects in VS Code – YouTube.

Pong

Making a Pong Game in MicroPython with a “War Games” menu front end – X.

Ubuntu Linux 24.10

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.

Chill Out with Your Raspberry Pi 5

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.

Music marketing fridge

Guy Dupont makes the music marketing fridge from Popstar a real thing with an Adafruit Feather and CircuitPython – X and Code.

StateSmith

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

How to work with date and time in Python – The New Stack.

The Easiest Way to Learn and Use Python Today

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

5 of the most-asked questions about Python answered – How-To Geek.

Upcoming

Partnership

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:

New Learn Guides

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

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:

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

Maker Faire Bay Area returns to Mare Island Naval Shipyard on October 18-20, 2024 – Maker Faire.

MicroPython Meetup

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.

SuperCon 2024

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

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

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

CircuitPython translation statistics on weblate

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

38,371 THANKS

Adafruit Discord

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

ICYMI

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.