# CircuitPython Weekly Meeting for May 5, 2025

***Liz** is hosting.*

Video is available on [YouTube](https://youtu.be/2hFkvHjS_Yk).

Join here for the chat all week: [http://adafru.it/discord](http://adafru.it/discord).

The CircuitPython Weekly Meeting normally is held at 2pm US ET/11am PT on Mondays. Check the \#circuitpython channel on Discord for notices of change in time and links to past meetings. Meeting times are also available in [iCal format](https://raw.githubusercontent.com/adafruit/adafruit-circuitpython-weekly-meeting/master/meeting.ical) for use with standard calendar applications and can also be viewed [in your browser](https://open-web-calendar.hosted.quelltext.eu/calendar.html?url=https%3A%2F%2Fraw.githubusercontent.com%2Fadafruit%2Fadafruit-circuitpython-weekly-meeting%2Fmain%2Fmeeting.ical&title=CircuitPython%20Meeting%20Schedule&tab=agenda&tabs=month&tabs=agenda).

If you want to be able to participate in the meeting by speaking, you will need to be added to the @circuitpythonistas role on Discord. Please ask any of the moderators or admins to add you if you’d like to join.

CircuitPython development is sponsored by Adafruit. Please support them by purchasing hardware from https://adafruit.com.

Reminders: Podcast available on most services. Let us know if we’re missing some. The canonical URL for the podcast version is [https://adafruit-podcasts.s3.amazonaws.com/circuitpython\_weekly\_meeting/audio-podcast.xml](https://adafruit-podcasts.s3.amazonaws.com/circuitpython_weekly_meeting/audio-podcast.xml) which you may be able to enter directly into compatible podcast apps.

## 02:03 Community News

### \#\#\# Improving Garbage Collection Time in CircuitPython

Garbage collection is the process where in-use memory is reclaimed for reuse. The Python language doesn’t require the programmer to explicitly request and free memory instead it is tracked internally. However, the process to determine which memory is still in use can be slow and requires extra memory to track. CircuitPython developer Scott Shawcroft has developed an algorithm to quickly collect unused memory and return it to use, increasing speed and space \- [Adafruit Blog](https://blog.adafruit.com/2025/04/28/improving-garbage-collection-time-in-circuitpython/).

### \#\#\# 02:41 CircuitPython 10.0.0-alpha.3 is Out

CircuitPython 10.0.0-alpha.3, an alpha release for 10.0.0, is now out. Further features, changes, and bug fixes will be added before the final release of 10.0.0 \- [GitHub](https://github.com/adafruit/circuitpython/releases/tag/10.0.0-alpha.3).

Highlights of this release

* A number of new audio effects.  
* Improved garbage collection times  
* ESP-IDF update to 5.4.1  
* Improved audio playback on RP2

### \#\#\# 03:08 The CircuitPython Show

In the latest episode of The CircuitPython Show, Paul welcomes Cooper Dalrymple, who was a recent guest on the Audio Effects panel discussion. Cooper shares how he got started with electronics, his music background, what’s next for CircuitPython’s audio effects, and more \- [The CircuitPython Show.](https://www.circuitpythonshow.com/@circuitpythonshow)

### \#\#\# 03:29 Project of the Week: Synthio Tutorial

Tod Kurt has been documenting how to use the CircuitPython synthio module. The latest edition is on [Audio Effects](https://todbot.github.io/CircuitPython_Synthio_Tutorial/README-6-Audio-Effects.html) \- [GitHub](https://todbot.github.io/CircuitPython_Synthio_Tutorial/#sections).

### 03:43 Newsletter Details

The Python on Microcontrollers Weekly Newsletter is a CircuitPython-community-run newsletter emailed every Monday. The complete archives are \[here\](https://www.adafruitdaily.com/category/circuitpython/). It highlights the latest Python on hardware related news from around the web including CircuitPython, Python and MicroPython developments. 

To contribute your own news or project, edit next week's draft [on GitHub](https://github.com/adafruit/circuitpython-weekly-newsletter/tree/gh-pages/_drafts) and [submit a pull request](https://help.github.com/articles/editing-files-in-your-repository/) with the changes. You may also or email [cpnews@adafruit.com](mailto:cpnews@adafruit.com), or tag a post with \#CircuitPython on Mastodon, Bluesky, or X (formerly known as Twitter),.

## 04:26 State of CircuitPython, Libraries and Blinka

**This report contains information from the previous seven days. Any changes (PRs merged, etc.) made today are not included in this report.**

### 04:44 Overall

\* 22 pull requests merged  
  \* 9 authors \- relic-se, FoamyGuy, BlitzCityDIY, gamblor21, RetiredWizard, casten, tannewt, eightycc, supcik  
  \* 7 reviewers \- relic-se, FoamyGuy, gamblor21, dhalbert, tekktrik, tannewt, ladyada  
\* 17 closed issues by 9 people, 5 opened by 5 people

### \#\#\# 04:57 Core

\* 10 pull requests merged  
  \* 7 authors \- relic-se, BlitzCityDIY, FoamyGuy, gamblor21, tannewt, eightycc, supcik  
  \* 4 reviewers \- tannewt, dhalbert, relic-se, gamblor21  
\* 17 open pull requests  
  \* https://github.com/adafruit/circuitpython/pull/8647 (Open 530 days) (draft)  
  \* https://github.com/adafruit/circuitpython/pull/9009 (Open 425 days)  
  \* https://github.com/adafruit/circuitpython/pull/9094 (Open 404 days) (draft)  
  \* https://github.com/adafruit/circuitpython/pull/9349 (Open 320 days)  
  \* https://github.com/adafruit/circuitpython/pull/9559 (Open 254 days)  
  \* https://github.com/adafruit/circuitpython/pull/9844 (Open 157 days) (draft)  
  \* https://github.com/adafruit/circuitpython/pull/9883 (Open 146 days)  
  \* https://github.com/adafruit/circuitpython/pull/9909 (Open 132 days) (draft)  
  \* https://github.com/adafruit/circuitpython/pull/9955 (Open 112 days) (draft)  
  \* https://github.com/adafruit/circuitpython/pull/10023 (Open 91 days)  
  \* https://github.com/adafruit/circuitpython/pull/10056 (Open 80 days)  
  \* https://github.com/adafruit/circuitpython/pull/10080 (Open 74 days)  
  \* https://github.com/adafruit/circuitpython/pull/10265 (Open 18 days) (draft)  
  \* https://github.com/adafruit/circuitpython/pull/10283 (Open 12 days)  
  \* https://github.com/adafruit/circuitpython/pull/10287 (Open 11 days) (draft)  
  \* https://github.com/adafruit/circuitpython/pull/10297 (Open 8 days)  
  \* https://github.com/adafruit/circuitpython/pull/10303 (Open 3 days) (draft)  
\* 11 closed issues by 6 people, 1 opened by 1 people  
\* 767 open issues  
  \* https://github.com/adafruit/circuitpython/issues  
\* 9 active milestones  
 \* 10.0.0: 30 open issues  
 \* 10.0.x: 0 open issues  
 \* 10.x.x: 35 open issues  
 \* 11.0.0: 7 open issues  
 \* 9.2.x: 0 open issues  
 \* Libraries: 16 open issues  
 \* Long term: 635 open issues  
 \* Support: 29 open issues  
 \* Third-party: 16 open issues  
 \* 0 issues not assigned a milestone

### \#\#\# 06:00 Libraries

\* Adafruit Libraries: 358 Community Libraries: 163 (Total: 521\)  
\* 12 pull requests merged  
  \* 3 authors \- FoamyGuy, RetiredWizard, **casten**  
  \* 4 reviewers \- tannewt, ladyada, FoamyGuy, tekktrik  
  \* Merged pull requests:  
	\* https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_SH1107/pull/28 (Days open: 23\)  
	\* https://github.com/adafruit/Adafruit\_CircuitPython\_OV5640/pull/36 (Days open: 20\)  
	\* https://github.com/adafruit/CircuitPython\_Community\_Bundle/pull/247 (Days open: 2\)  
	\* https://github.com/adafruit/Adafruit\_CircuitPython\_RGB\_Display/pull/133 (Days open: 1\)  
	\* https://github.com/adafruit/Adafruit\_CircuitPython\_Pathlib/pull/1 (Days open: 1\)  
	\* https://github.com/adafruit/Adafruit\_CircuitPython\_Bundle/pull/503 (Days open: 1\)  
	\* https://github.com/adafruit/CircuitPython\_Community\_Bundle/pull/252 (Days open: 1\)  
	\* https://github.com/adafruit/CircuitPython\_Community\_Bundle/pull/250 (Days open: 1\)  
	\* https://github.com/adafruit/CircuitPython\_Community\_Bundle/pull/251 (Days open: 1\)  
	\* https://github.com/adafruit/CircuitPython\_Community\_Bundle/pull/249 (Days open: 1\)  
	\* https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/248 (Days open: 1\)  
	\* https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/247 (Days open: 1\)  
  \* 49 open pull requests (Oldest: 991, Newest: 1\)  
\* 6 closed issues by 3 people, 1 opened by 1 people  
  \* 714 open issues  
  \* 3 good first issues  
\* https://circuitpython.org/contributing

#### \#\#\#\# Library updates in the last seven days:

\* \*\*New Libraries\*\*  
  \* \[adafruit/Adafruit\_CircuitPython\_FruitJam\](https://github.com/adafruit/Adafruit\_CircuitPython\_FruitJam)  
  \* \[circuitpython/CircuitPython\_Org\_DisplayIO\_Cartesian\](https://github.com/circuitpython/CircuitPython\_Org\_DisplayIO\_Cartesian)  
  \* \[circuitpython/CircuitPython\_Org\_DisplayIO\_Effects\](https://github.com/circuitpython/CircuitPython\_Org\_DisplayIO\_Effects)  
  \* \[circuitpython/CircuitPython\_Org\_DisplayIO\_Dial\](https://github.com/circuitpython/CircuitPython\_Org\_DisplayIO\_Dial)  
\* \*\*Updated Libraries\*\*  
  \* \[adafruit/Adafruit\_CircuitPython\_PIO\_UART\](https://github.com/adafruit/Adafruit\_CircuitPython\_PIO\_UART)  
  \* \[adafruit/Adafruit\_CircuitPython\_RGB\_Display\](https://github.com/adafruit/Adafruit\_CircuitPython\_RGB\_Display)

### \#\#\# 10:45 Blinka

\* 0 pull requests merged  
  \* 0 authors \-  
  \* 0 reviewers \-  
\* 31 open pull requests  
  \* https://github.com/adafruit/Adafruit\_Blinka\_bleio/pull/40 (Open 1305 days)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/335 (Open 493 days) (draft)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/884 (Open 264 days) (draft)  
  \* https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/140 (Open 260 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/888 (Open 247 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/908 (Open 177 days) (draft)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/914 (Open 154 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/915 (Open 149 days)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/372 (Open 144 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/925 (Open 116 days)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/375 (Open 116 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/928 (Open 113 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/143 (Open 109 days) (draft)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/378 (Open 107 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/931 (Open 104 days)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/379 (Open 85 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/945 (Open 71 days)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/380 (Open 71 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/156 (Open 70 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/950 (Open 61 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/955 (Open 54 days)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/381 (Open 54 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_Piomatter/pull/38 (Open 47 days) (draft)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/959 (Open 37 days)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/382 (Open 37 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka/pull/960 (Open 29 days)  
  \* https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/383 (Open 29 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/162 (Open 6 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_Piomatter/pull/43 (Open 6 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_Neopixel/pull/9 (Open 6 days)  
  \* https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_rp1pio/pull/22 (Open 6 days)  
\* 0 closed issues by 0 people, 3 opened by 3 people  
\* 158 open issues  
  \* https://github.com/adafruit/Adafruit\_Blinka/issues  
\* Number of supported boards: 146

## 11:14 Hug reports

11:31 @Liz (hosting)

* @TodBot for finding an issue with the TLV320 DAC library  
* Group hug\!

11:53 @eightycc

* @James Fowler for all the fine and helpful work testing and giving feedback on ESP-IDF 5.4.1.

12:12 @foamyguy

* @neradoc for sharing a bytes storage library that makes writing data to various places very convenient  
* Group hug

12:32 @mark\[gamblor21\] (missing)

* tannewt for fixing a a weird audio bug  
* relic-se for more effects and good discussion in them

12:44 @tannewt (notes only)

* Gamblor21 for reviews.  
* JP, relic-se and todbot for finding the finaliser issue and testing the fix.

## 12:58 Status Updates

@Liz

* I’ve been working on a CircuitPython-powered two axis camera slider. This is a collab project with Noe and the Learn Guide should be live this week. This slider uses two TMC2209 stepper motor drivers that are controlled via UART. I put a lot of work into the menu system and two different operating modes (timelapse and one-shot).  
* I’ve also started working on my next robot instrument. It’s a small kid’s piano xylophone that will be played with solenoid motors. This uses the new I2C to 8 Channel Solenoid Driver breakout that is essentially a small STEMMA version of the very large perma-proto circuit I put together for my robot xylophone project. This makes the build solderless and a lot more accessible.

14:39 @eightycc

* Finally found the root cause of the Python interpreter crashes with CP 10.alpha2 on ESP32-C3 and ESP32-C6. It came down to interaction between garbage collection and gcc RISC-V code generation. RISC-V code gen was partially materializing a pointer to compiled Python code, then calling garbage collection, and finally completing materialization of the pointer. Because it was not fully materialized, garbage collection saw the memory allocated to the compiled Python code as free and reclaimed it. Subsequent execution of the code resulted in memory corruption and a crash. The problem was exacerbated with ESP-IDF 5.4.1, which included gcc 14.2.0 with more aggressive code optimization.

15:49 @foamyguy

* Move remaining circuitpython-org repos to community bundle and update their infrastructure files, also removed circuitpython-org as a choice from cookiecutter and a few other updates to cookiecutter versions used for actions utils  
* Testing USB Host with direct IO pin connections and various builds of circuitpython with different versions of tinyusb and pico-pio-usb  
* Finish bitmaptools implementations for Blinka Displayio and submit PR  
* Fix for TilePaletteMapper memory alloc issue from recent change  
* Adafruit\_fruitjam library with request\_display\_config() function  
* Fruit Jam OS  
  * Implemented pagination for launcher icons  
  * Adapted editor code from an older project to work with a Terminal instance instead of stdout and integrated it with the launcher  
  * Added additional features to editor: hotkeys for mount writeable, run the code file, and save without exiting, use a mocked argv file as input to determine which file to launch  
  * Refactored the boot animation to its own file and implemented mock argv files for boot.py and the launcher that allow them to launch other specified files, these are used by the editor. 

19:06 @mark\[gamblor21\] (missing)

* Given a few absences at the moment if anyone needs reviews done feel free to tag me on the PR. I’ll do my best to look during evenings/weekend.

19:19 @tannewt (notes only)

* Working as the baby sleeps. (\~2 hours a day)  
* Fixed finaliser issue.  
* Tried doing two releases but the release script is failing. It is my priority.  
* Working on iMX missing pins fix.

## In The Weeds

(no topics)

## 19:47 Wrap-Up

Next meeting is at the usual day/time Monday May 5th 2pm Eastern 11am Pacific
