# CircuitPython Weekly Meeting for February 24, 2025

***Jeff** is hosting.*

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

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.

## 3:28 Community News

A new CircuitPython `Displayio` class is available for displaying text that contains emoji \- [GitHub](https://github.com/adafruit/Adafruit_CircuitPython_Display_Emoji_Text).

#### Project of the Week: Raspberry Pi Map of Manhattan Shows Subway Train Status

A project from Reddit user Bicapitate allows you to track NYC subway trains in real-time on a 3D-printed map of the island. The map shows the actual location of the subway trains using a Raspberry Pi connected to RGB LED matrices which in turn connect to the map via fiber optics run using Python \- [Reddit](https://www.reddit.com/r/nycrail/comments/1ir8hfh/i_made_this_map_of_manhattan_that_displays_the/), [Tom's Hardware](https://www.tomshardware.com/raspberry-pi/this-raspberry-pi-map-of-manhattan-shows-real-time-subway-train-status) and [Adafruit Blog](https://blog.adafruit.com/2025/02/19/a-raspberry-pi-map-of-manhattan-which-shows-subway-train-status/).

#### New Notes from Adafruit Playground

supervisor.runtime.display in CircuitPython 9.2.5+ simplifies display specifying \- [Adafruit Playground](https://adafruit-playground.com/u/jepler/pages/supervisor-runtime-display-in-circuitpython-9-2-5).

### 4:45 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),.

## 6:23 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.**

### 6:36 Overall

* 21 pull requests merged  
  * 16 authors \- eightycc, bill88t, Neradoc, qutefox, deisterhold, dhalbert, jerryneedell, makermelissa, weblate, SeanTheITGuy, FK-sauve, Glodigit, justmobilize, FoamyGuy, andibing, BlitzCityDIY  
  * 6 reviewers \- ladyada, dhalbert, FoamyGuy, jepler, BlitzCityDIY, tannewt  
* 13 closed issues by 6 people, 18 opened by 16 people

### 8:10 Core

* 8 pull requests merged  
  * 9 authors \- bill88t, qutefox, deisterhold, weblate, SeanTheITGuy, FK-sauve, Glodigit, eightycc, andibing  
  * 2 reviewers \- dhalbert, tannewt  
* 27 open pull requests  
  * [https://github.com/adafruit/circuitpython/pull/7811](https://github.com/adafruit/circuitpython/pull/7811) (Open 697 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/8457](https://github.com/adafruit/circuitpython/pull/8457) (Open 510 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/8647](https://github.com/adafruit/circuitpython/pull/8647) (Open 460 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9009](https://github.com/adafruit/circuitpython/pull/9009) (Open 355 days)  
  * [https://github.com/adafruit/circuitpython/pull/9094](https://github.com/adafruit/circuitpython/pull/9094) (Open 334 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9349](https://github.com/adafruit/circuitpython/pull/9349) (Open 250 days)  
  * [https://github.com/adafruit/circuitpython/pull/9559](https://github.com/adafruit/circuitpython/pull/9559) (Open 184 days)  
  * [https://github.com/adafruit/circuitpython/pull/9844](https://github.com/adafruit/circuitpython/pull/9844) (Open 87 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9876](https://github.com/adafruit/circuitpython/pull/9876) (Open 79 days)  
  * [https://github.com/adafruit/circuitpython/pull/9878](https://github.com/adafruit/circuitpython/pull/9878) (Open 78 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9883](https://github.com/adafruit/circuitpython/pull/9883) (Open 76 days)  
  * [https://github.com/adafruit/circuitpython/pull/9909](https://github.com/adafruit/circuitpython/pull/9909) (Open 62 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9955](https://github.com/adafruit/circuitpython/pull/9955) (Open 42 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9974](https://github.com/adafruit/circuitpython/pull/9974) (Open 37 days)  
  * [https://github.com/adafruit/circuitpython/pull/9994](https://github.com/adafruit/circuitpython/pull/9994) (Open 30 days)  
  * [https://github.com/adafruit/circuitpython/pull/10023](https://github.com/adafruit/circuitpython/pull/10023) (Open 21 days)  
  * [https://github.com/adafruit/circuitpython/pull/10044](https://github.com/adafruit/circuitpython/pull/10044) (Open 15 days)  
  * [https://github.com/adafruit/circuitpython/pull/10052](https://github.com/adafruit/circuitpython/pull/10052) (Open 12 days)  
  * [https://github.com/adafruit/circuitpython/pull/10056](https://github.com/adafruit/circuitpython/pull/10056) (Open 10 days)  
  * [https://github.com/adafruit/circuitpython/pull/10073](https://github.com/adafruit/circuitpython/pull/10073) (Open 7 days)  
  * [https://github.com/adafruit/circuitpython/pull/10081](https://github.com/adafruit/circuitpython/pull/10081) (Open 4 days)  
  * [https://github.com/adafruit/circuitpython/pull/10080](https://github.com/adafruit/circuitpython/pull/10080) (Open 4 days)  
  * [https://github.com/adafruit/circuitpython/pull/10089](https://github.com/adafruit/circuitpython/pull/10089) (Open 2 days)  
  * [https://github.com/adafruit/circuitpython/pull/10092](https://github.com/adafruit/circuitpython/pull/10092) (Open 1 days)  
  * [https://github.com/adafruit/circuitpython/pull/10090](https://github.com/adafruit/circuitpython/pull/10090) (Open 1 days)  
  * [https://github.com/adafruit/circuitpython/pull/10095](https://github.com/adafruit/circuitpython/pull/10095) (Open 0 days)  
  * [https://github.com/adafruit/circuitpython/pull/10094](https://github.com/adafruit/circuitpython/pull/10094) (Open 0 days)  
* 5 closed issues by 4 people, 5 opened by 5 people  
* 766 open issues  
  * [https://github.com/adafruit/circuitpython/issues](https://github.com/adafruit/circuitpython/issues)  
* 7 active milestones  
* 10.0.0: 18 open issues  
* 9.2.x: 10 open issues  
* 9.x.x: 59 open issues  
* Libraries: 17 open issues  
* Long term: 625 open issues  
* Support: 21 open issues  
* Third-party: 15 open issues  
* 0 issues not assigned a milestone (was 2 \- triaged on Monday)

### 11:05 Libraries

* Adafruit Libraries: 354 Community Libraries: 154 (Total: 508\)  
* 12 pull requests merged  
  * 6 authors \- jerryneedell, Neradoc, justmobilize, FoamyGuy, BlitzCityDIY, dhalbert  
  * 6 reviewers \- ladyada, dhalbert, FoamyGuy, jepler, BlitzCityDIY, tannewt  
  * Merged pull requests:  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_RFM/pull/10](https://github.com/adafruit/Adafruit_CircuitPython_RFM/pull/10) (Days open: 22\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ESP32SPI/pull/216](https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/216) (Days open: 2\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DACx578/pull/1](https://github.com/adafruit/Adafruit_CircuitPython_DACx578/pull/1) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ImageLoad/pull/98](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/98) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ImageLoad/pull/96](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/96) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_PyPortal/pull/137](https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/137) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_PortalBase/pull/105](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/105) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ESP32SPI/pull/217](https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/217) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Hue/pull/24](https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/24) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_LIFX/pull/25](https://github.com/adafruit/Adafruit_CircuitPython_LIFX/pull/25) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Bundle/pull/498](https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/498) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Bundle/pull/497](https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/497) (Days open: 1\)  
  * 57 open pull requests (Oldest: 921, Newest: 1\)  
* 8 closed issues by 2 people, 8 opened by 6 people  
  * 690 open issues  
  * 3 good first issues  
* [https://circuitpython.org/contributing](https://circuitpython.org/contributing)

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

* New Libraries  
  * [adafruit/Adafruit\_CircuitPython\_Display\_Emoji\_Text](https://github.com/adafruit/Adafruit_CircuitPython_Display_Emoji_Text)  
  * [adafruit/Adafruit\_CircuitPython\_DACx578](https://github.com/adafruit/Adafruit_CircuitPython_DACx578)  
* Updated Libraries  
  * [adafruit/Adafruit\_CircuitPython\_ImageLoad](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad)  
  * [adafruit/Adafruit\_CircuitPython\_RFM](https://github.com/adafruit/Adafruit_CircuitPython_RFM)  
  * [adafruit/Adafruit\_CircuitPython\_PyPortal](https://github.com/adafruit/Adafruit_CircuitPython_PyPortal)  
  * [adafruit/Adafruit\_CircuitPython\_PortalBase](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase)  
  * [jposada202020/CircuitPython\_DISPLAY\_HT16K33](https://github.com/jposada202020/CircuitPython_DISPLAY_HT16K33)  
  * [FoamyGuy/CircuitPython\_GameControls](https://github.com/FoamyGuy/CircuitPython_GameControls)

### 15:27 Blinka

* 1 pull requests merged  
  * 1 authors \- makermelissa  
  * 1 reviewers \- jepler  
* 21 open pull requests  
  * [https://github.com/adafruit/Adafruit\_Blinka\_bleio/pull/40](https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40) (Open 1235 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/335](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335) (Open 423 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/884](https://github.com/adafruit/Adafruit_Blinka/pull/884) (Open 194 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/140](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140) (Open 190 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/888](https://github.com/adafruit/Adafruit_Blinka/pull/888) (Open 177 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/908](https://github.com/adafruit/Adafruit_Blinka/pull/908) (Open 107 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/911](https://github.com/adafruit/Adafruit_Blinka/pull/911) (Open 99 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/914](https://github.com/adafruit/Adafruit_Blinka/pull/914) (Open 84 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/915](https://github.com/adafruit/Adafruit_Blinka/pull/915) (Open 79 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/372](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/372) (Open 74 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/921](https://github.com/adafruit/Adafruit_Blinka/pull/921) (Open 63 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/925](https://github.com/adafruit/Adafruit_Blinka/pull/925) (Open 46 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/375](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/375) (Open 46 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/928](https://github.com/adafruit/Adafruit_Blinka/pull/928) (Open 43 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/143](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/143) (Open 39 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/378](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/378) (Open 37 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/931](https://github.com/adafruit/Adafruit_Blinka/pull/931) (Open 34 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/379](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/379) (Open 15 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/945](https://github.com/adafruit/Adafruit_Blinka/pull/945) (Open 1 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/380](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/380) (Open 1 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/156](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/156) (Open 0 days)  
* 0 closed issues by 0 people, 5 opened by 5 people  
* 148 open issues  
  * [https://github.com/adafruit/Adafruit\_Blinka/issues](https://github.com/adafruit/Adafruit_Blinka/issues)  
* Number of supported boards: 146

## 16:39 Hug reports

17:01 @jepler (host)

* Justin for taking on another round of network API improvements  
* Cooper and gamblor for working on their plans for audio  
* Group hug

17:16 @danh

* @Justin for all the work getting rid of secrets.py in CircuitPython libraries.

17:29 @foamyguy

* @Neradoc for diving into the guts of our PNG decoding in ImageLoad to fix issues with indexed images that use filters other than 0 for scanline data.  
* @jepler for the changes to supervisor.runtime.display  
* @justin for working on secrets.py cleanup

18:18 @jerryn

* @foamyguy for reviewing, commenting on and merging the RFM library.  
* Hug to all the Learning System Guide authors. I am being reminded how much work goes into them\!\!  
* Group Hug

18:45 @Justin \[Text only\]

* @danh for reviewing my PRs for removing the reference of secrets \- everywhere….

18:57 @tannewt

* @CGrover for the chime library.  
* @Cooper, @jepler and @gamblor21 for working on audio stuff.  
* @jepler for hosting community meetings\!


20:15 @tyeth \[Text only\]

* Hug report for Justin and Dan for the esp secrets work.

## 20:22 Status Updates

@jepler (host)

* All my activity last week was in Arduino land  
  * Better HSTX video support on RP2350, including a very snazzy text mode  
  * Ported a CP/M emulator to Metro RP2350  
  * Found a workaround for a problem with pico-pio-usb on RP2350 overclocked to 264MHz (OC is requirement of HSTX video modes)  
* All my activity this week will probably be in Arduino land  
  * Porting MCUME emulator to Metro RP2350  
* I’m 5 weeks away from the conclusion of my defined Adafruit work, and this is the last meeting I’ll be hosting. Another big group hug for everyone\! In the fall I hope to come back for some little projects & just to be part of the community. Y’all are the best.

23:21 @danh

* Getting the NINA-FW for AirLift co-processors to build on ESP-IDF 5.x. Currently it’s on 3.3.1. Reworked from make to CMake, added esp-idf and arduino-esp32 as submodules. Getting the compiler errors out now.  
* Reviewed @Justin’s updates to remove remaining secrets.py usage in libraries. After that the Learn Guides will need some work by Tyeth and/or me. I have some other Learn Guide updates for ESP32SPI as well.

25:59 @foamyguy

* Removing 8.x compatible displayio code from bundle libraries  
* Troubleshooting issue with rendering certain emoji png files. Test fix submitted to Imageload with the fix for this issue. Root cause was indexed pngs with scanlines that use non-zero filters  
* Improvements to emoji text library: color support, ability to update text without creating a new object. Caching bitmaps / tilegrids from previous text and re-using them in new text for any matching characters.   
* Wrote display code for a round display compass project

27:51 @jerryn

* Working on a long overdue guide to the RFM library. Fortunately, adapting existing code is simple – just a change in the import line of user code should be needed to migrate from RFM69/9x to RFM.  The guide will focus on the new features.

28:26 @Justin \[Text only\]

* Created a new ESP32SPI WiFiManager to not take in secrets and added a warning for when you use the old one.  
* Updated a few libraries that referenced the old ESPSPI\_WiFiManager  that didn’t need to  
* Cleaned up PortalBase to warn when using secrets, and updated it to handle the different names of AIO keys that have existed  
* Cleaned up all the AdafruitIO example to not use secrets


29:01 @tannewt

* Two weeks until Japan trip. Out 3/7. In 3/10. Out 3/10-3/21. Back 3/24.  
* Debugging USB timeout tracking in PIO USB Host. It doesn’t adjust for CPU speed or low vs full speed.

## 31:42 In The Weeds

@jerryn  – answered – no need to discuss.

* I noticed that the ReadTheDocs  documentation for the Adafruit\_CircuitPython\_RFM library is not being generated. Can someone take a look at the repo and let me know what is missing or misconfigured.  
  * I’ll likely be updating the examples as part of preparing the guide to its use but it would be nice to be able to refer to the Docs.   
* @danh \- I will fix this. It needs a webhook added, and the project needs to be added as a subproject.

## Wrap-Up

Next meeting Monday, March 3 at the regular time, 2PM ET / 11AM PT
