# CircuitPython Weekly Meeting for April 21, 2025

*Welcome to the CircuitPython Weekly meeting notes\! Feel free to add your Hug Reports and Status Updates before the meeting, alphabetically by your username. During the meeting, we go through them in order. If you can’t make the meeting and would still like to participate, add your notes with a “(missing meeting)” after your username and we’ll read them off for you.* 

*Add any longer-form discussion topics or general questions you have to the “In the weeds” section.* 

*We now convert this document to Markdown on export, instead of including explicit raw Markdown formatting. When you type, just format your contributions with regular Google Docs formatting. If you type using Markdown formatting characters, your input will be converted on the fly to formatted text. You can also right-click and “Paste as Markdown” any text that is using raw Markdown.*

*Thanks\! We hope to see you in the meeting\!*

***Tim** is hosting.*

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

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.

## 04:06 Community News

### 04:09 MicroPython v1.25.0 Released\!

MicroPython v1.25.0 has been released after more than three years of development. Significant improvements include ROMFS, an Alif port, a RISC-V inline assembler, Datagram TLS (DTLS), mpremote recursive remove and much more. The ESP32 port now supports IDF v5.3 and v5.4, and support for versions below v5.2.0 has been dropped. The rp2 port sees the introduction of many new RP2350 boards, including the Pico 2 W, as well as support for PSRAM with size autodetection. WPA3 is now supported on the Pico W and Pico 2 W in both AP and STA modes \- [GitHub](https://github.com/micropython/micropython/releases).

### 05:17 The New Arduino AI Assistant

Arduino has just announced an AI assistant in their [Arduino Cloud](https://blog.arduino.cc/2024/01/17/your-classic-arduino-ide-experience-now-in-the-cloud/) editor, powered by Anthropic Claude. There is a 30 day trial, a free tier allowing 25 queries, a Maker Plan and Enterprise plans \- [Arduino Blog](https://blog.arduino.cc/2025/04/17/code-faster-with-the-new-arduino-ai-assistant/).

### 05:49 Interesting Books (for free)

One of the most popular items in the newsletter is when books related to programming and microcontrollers are made available for free by their authors or publishers. This week there are three, one very relevant, one handy, one reference. Many microcontrollers running Python use Arm Cortex-M chips (Raspberry Pi RP2xxx, Microchip SAMD, etc.). A book on these chips would seem useful. A book on C, which we must use at times rather than Python on embedded systems, looks good. The final one is a textbook for your reference shelf.

*Embedded Systems Fundamentals with Arm Cortex-M based Microcontrollers* gives an understanding of the most important topics in embedded systems design using a coherent, compelling and hands-on approach \- [GitHub](https://github.com/arm-university/Embedded-Systems-Fundamentals/) (PDF).

*Beej's Guide to C Programming* \- "What we’ll try to do over the course of this guide is lead you from complete and utter sheer lost confusion on to the sort of enlightened bliss that can only be obtained through pure C programming" \- [beej.us](https://beej.us/guide/bgc/html/split/index.html) (HTML).

*Mathematics for Computer Science* from MIT Press explains how to use mathematical models and methods to analyze problems that arise in computer science \- [mit.edu](https://courses.csail.mit.edu/6.042/spring18/mcs.pdf) (PDF).

### 07:39 Project of the Week: The MintyPiPico Gaming Device \- PCB Edition

![][image1]  
MintyPiPico is a super tiny handheld clamshell device inspired by the Minty Pi Altoids tin video game, but it uses the RP2040 Zero, CircuitPython, and an even smaller Altoids Smalls tin. It has an almost instant power-on, and can play NES and Gameboy games \- [Adafruit Blog](https://blog.adafruit.com/2025/04/15/the-mintypipico-tiny-video-game-rp2040-raspberrypi-circuitpython/), [hackster.io](https://www.hackster.io/MrRobotElectronics/mintypipico-tiny-video-game-pcb-version-d8e946) and [YouTube](https://youtu.be/_jK9sibcf8c).

### 08:26 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),.

## 09:18 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.**

### 09:35 Overall

* 16 pull requests merged  
  * 12 authors \- dglaude, weblate, jepler, **burtyb**, relic-se, dhalbert, hexthat, andibing, **philrittenhouse**, bablokb, FoamyGuy, eightycc  
  * 5 reviewers \- FoamyGuy, dhalbert, tannewt, jepler, gamblor21  
* 15 closed issues by 7 people, 14 opened by 10 people

### 10:35 Core

* 11 pull requests merged  
  * 8 authors \- weblate, jepler, relic-se, dhalbert, hexthat, andibing, FoamyGuy, eightycc  
  * 4 reviewers \- dhalbert, jepler, gamblor21, tannewt  
* 25 open pull requests  
  * [https://github.com/adafruit/circuitpython/pull/8647](https://github.com/adafruit/circuitpython/pull/8647) (Open 516 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9009](https://github.com/adafruit/circuitpython/pull/9009) (Open 411 days)  
  * [https://github.com/adafruit/circuitpython/pull/9094](https://github.com/adafruit/circuitpython/pull/9094) (Open 390 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9349](https://github.com/adafruit/circuitpython/pull/9349) (Open 306 days)  
  * [https://github.com/adafruit/circuitpython/pull/9559](https://github.com/adafruit/circuitpython/pull/9559) (Open 240 days)  
  * [https://github.com/adafruit/circuitpython/pull/9844](https://github.com/adafruit/circuitpython/pull/9844) (Open 143 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9883](https://github.com/adafruit/circuitpython/pull/9883) (Open 132 days)  
  * [https://github.com/adafruit/circuitpython/pull/9909](https://github.com/adafruit/circuitpython/pull/9909) (Open 118 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9955](https://github.com/adafruit/circuitpython/pull/9955) (Open 98 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10023](https://github.com/adafruit/circuitpython/pull/10023) (Open 77 days)  
  * [https://github.com/adafruit/circuitpython/pull/10056](https://github.com/adafruit/circuitpython/pull/10056) (Open 66 days)  
  * [https://github.com/adafruit/circuitpython/pull/10080](https://github.com/adafruit/circuitpython/pull/10080) (Open 60 days)  
  * [https://github.com/adafruit/circuitpython/pull/10196](https://github.com/adafruit/circuitpython/pull/10196) (Open 23 days)  
  * [https://github.com/adafruit/circuitpython/pull/10252](https://github.com/adafruit/circuitpython/pull/10252) (Open 6 days)  
  * [https://github.com/adafruit/circuitpython/pull/10250](https://github.com/adafruit/circuitpython/pull/10250) (Open 6 days)  
  * [https://github.com/adafruit/circuitpython/pull/10254](https://github.com/adafruit/circuitpython/pull/10254) (Open 5 days)  
  * [https://github.com/adafruit/circuitpython/pull/10265](https://github.com/adafruit/circuitpython/pull/10265) (Open 4 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10264](https://github.com/adafruit/circuitpython/pull/10264) (Open 4 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10263](https://github.com/adafruit/circuitpython/pull/10263) (Open 4 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10262](https://github.com/adafruit/circuitpython/pull/10262) (Open 4 days)  
  * [https://github.com/adafruit/circuitpython/pull/10269](https://github.com/adafruit/circuitpython/pull/10269) (Open 3 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10267](https://github.com/adafruit/circuitpython/pull/10267) (Open 3 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10271](https://github.com/adafruit/circuitpython/pull/10271) (Open 1 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10275](https://github.com/adafruit/circuitpython/pull/10275) (Open 0 days)  
  * [https://github.com/adafruit/circuitpython/pull/10273](https://github.com/adafruit/circuitpython/pull/10273) (Open 0 days)  
* 7 closed issues by 2 people, 7 opened by 7 people  
* 777 open issues  
  * [https://github.com/adafruit/circuitpython/issues](https://github.com/adafruit/circuitpython/issues)  
* 9 active milestones  
* 10.0.0: 40 open issues  
* 10.0.x: 0 open issues  
* 10.x.x: 36 open issues  
* 11.0.0: 7 open issues  
* 9.2.x: 0 open issues  
* Libraries: 16 open issues  
* Long term: 632 open issues  
* Support: 28 open issues  
* Third-party: 16 open issues  
* 3 issues not assigned a milestone

### 12:45 Libraries

* Adafruit Libraries: 356 Community Libraries: 159 (Total: 515\)  
* 3 pull requests merged  
  * 3 authors \- dglaude, dhalbert, burtyb  
  * 1 reviewers \- tannewt  
  * Merged pull requests:  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_asyncio/pull/71](https://github.com/adafruit/Adafruit_CircuitPython_asyncio/pull/71) (Days open: 3\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_PIO\_UART/pull/6](https://github.com/adafruit/Adafruit_CircuitPython_PIO_UART/pull/6) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Display\_Emoji\_Text/pull/4](https://github.com/adafruit/Adafruit_CircuitPython_Display_Emoji_Text/pull/4) (Days open: 1\)  
  * 56 open pull requests (Oldest: 977, Newest: 4\)  
* 4 closed issues by 3 people, 4 opened by 4 people  
  * 719 open issues  
  * 3 good first issues  
* [https://circuitpython.org/contributing](https://circuitpython.org/contributing)

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

* **Updated Libraries**  
  * [adafruit/Adafruit\_CircuitPython\_USB\_Host\_Descriptors](https://github.com/adafruit/Adafruit_CircuitPython_USB_Host_Descriptors)  
  * [adafruit/Adafruit\_CircuitPython\_asyncio](https://github.com/adafruit/Adafruit_CircuitPython_asyncio)  
  * [2bndy5/CircuitPython\_nRF24L01](https://github.com/2bndy5/CircuitPython_nRF24L01)  
  * [relic-se/CircuitPython\_SynthVoice](https://github.com/relic-se/CircuitPython_SynthVoice)

### 17:10 Blinka

* 2 pull requests merged  
  * 2 authors \- philrittenhouse, bablokb  
  * 1 reviewers \- FoamyGuy  
* 30 open pull requests  
  * [https://github.com/adafruit/Adafruit\_Blinka\_bleio/pull/40](https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40) (Open 1291 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/335](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335) (Open 479 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/884](https://github.com/adafruit/Adafruit_Blinka/pull/884) (Open 250 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/140](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140) (Open 246 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/888](https://github.com/adafruit/Adafruit_Blinka/pull/888) (Open 233 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/908](https://github.com/adafruit/Adafruit_Blinka/pull/908) (Open 163 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/914](https://github.com/adafruit/Adafruit_Blinka/pull/914) (Open 140 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/915](https://github.com/adafruit/Adafruit_Blinka/pull/915) (Open 135 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/372](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/372) (Open 130 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/925](https://github.com/adafruit/Adafruit_Blinka/pull/925) (Open 102 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/375](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/375) (Open 102 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/928](https://github.com/adafruit/Adafruit_Blinka/pull/928) (Open 99 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/143](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/143) (Open 95 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/378](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/378) (Open 93 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/931](https://github.com/adafruit/Adafruit_Blinka/pull/931) (Open 90 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/379](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/379) (Open 71 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/945](https://github.com/adafruit/Adafruit_Blinka/pull/945) (Open 57 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/380](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/380) (Open 57 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/156](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/156) (Open 56 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/950](https://github.com/adafruit/Adafruit_Blinka/pull/950) (Open 47 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/955](https://github.com/adafruit/Adafruit_Blinka/pull/955) (Open 40 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/381](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/381) (Open 40 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_Piomatter/pull/38](https://github.com/adafruit/Adafruit_Blinka_Raspberry_Pi5_Piomatter/pull/38) (Open 33 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_Piomatter/pull/41](https://github.com/adafruit/Adafruit_Blinka_Raspberry_Pi5_Piomatter/pull/41) (Open 26 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_Neopixel/pull/8](https://github.com/adafruit/Adafruit_Blinka_Raspberry_Pi5_Neopixel/pull/8) (Open 26 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_rp1pio/pull/21](https://github.com/adafruit/Adafruit_Blinka_Raspberry_Pi5_rp1pio/pull/21) (Open 26 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/959](https://github.com/adafruit/Adafruit_Blinka/pull/959) (Open 23 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/382](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/382) (Open 23 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/960](https://github.com/adafruit/Adafruit_Blinka/pull/960) (Open 15 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/383](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/383) (Open 15 days)  
* 4 closed issues by 3 people, 3 opened by 3 people  
* 154 open issues  
  * [https://github.com/adafruit/Adafruit\_Blinka/issues](https://github.com/adafruit/Adafruit_Blinka/issues)  
* Number of supported boards: 146

## 18:33 Hug reports

18:57 @foamyguy (hosting)

* @PaulCutler for having me on the CircuitPython show podcast  
* @bablokb for working to bring back support for auto\_refresh to my PyGameDisplay library  
* Group hug

19:16 @danh

* @eightycc for working on ESP-IDF v5.4.1 update.

19:37 @Mark(gamblor) \[may miss/late\]

* @Cooper for another audio effect and providing me valuable feedback on my ideas  
* @tannewt for review of the Reverb effect and letting me know what was off on the CI for Zephyr builds  
* @todbot for doing so much with audio and reporting all the weird issues that come up

20:17 @tannewt

* Foamyguy for deep diving when I’m out.  
* Eightycc for joining the host rotation.  
* Dan for the tip on the QSTR hash optimization for SAMD21.

## 20:48 Status Updates

21:14 @foamyguy (hosting)

* Match3 Guide published  
* Last two rounds of secrets \-\> settings updates for learn guide pages  
* Working on guide for USB SNES-like controller with CircuitPython and Arduino examples  
* Look into Adabot / cp.org action task that generates the reports used for the contributing page to try to understand why it sometimes stalls out and attempt to add some things to fix it.  
* Work on Fruit Jam OS Launcher  
* Continue work on implement bitmaptools for Blinka Displayio, all functions except dither() are implemented and working, some still need default argument handling to match core behavior.  
* Easter egg painting with TilePaletteMapper for fun.

23:50 @danh

* Added uniform wifi power management API for both Espressif and Pico W. This is an improved version of something a user submitted but had a buggy PR.  
* Fixed a bug re NORETURN functions introduced in a recent PR.  
* Helping @eightycc with ESP-IDF v5.4.1 update. Root certs mechanism has changed.

25:30 @tannewt

* PR is pending for adding working directory to set\_next\_code file and os path improvements. Blocked on SAMD sizes.  
* PR is pending for optimizing GC collect. Doesn’t have a review and is blocked by SAMD size.  
* PR is pending for optimizing SAMD size. Thanks to Dan for a pointer. I also added the ability to disable support for doubles in arrays. The version of libgcc for SAMD is also updated (and smaller).  
* Debugging audio glitches on Fruit Jam now. Turns out if audio buffer filling is stalled, then it plays past the buffer into random memory. (\!) So, making it at least replay the last buffer contents. Should it hold the last value instead? That might be trickier. Going to look at why it isn’t being filled. I suspect we need to fill buffers when updating the display.  
* Will do more USB host debugging afterward.  
* Will be going part time next Thursday and will be out on leave for 8 weeks too. Deep dive this Friday is the last one I’m doing for a while. (Likely until I’m back full time when my youngest kid goes to daycare around November.)

## 31:20 In The Weeds

## 31:35 Wrap-Up

Normal day/time next week.

[image1]: <data:image/png;base64,[encoded data, 113340 characters]>