# CircuitPython Weekly Meeting for March 3, 2025

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

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.

## 2:20 Community News

### 3:15 Resources for Learning Embedded Systems

When getting started working with embedded systems, there is a lack of information available to beginners. Embedded Artistry has gathered useful reference materials to get you started with programming and performing embedded systems development – [Embedded Artistry](https://embeddedartistry.com/beginners/).

### 3:40 Claude 3.7 Sonnet and Claude Code

Claude 3.7 Sonnet is out and it shows strong improvements in coding and front-end web development. Along with the model, Anthropic also introduced a command line tool for agentic coding, Claude Code. Claude Code is available as a limited research preview, and enables developers to delegate substantial engineering tasks to Claude directly from their terminal – [Anthropic](https://www.anthropic.com/news/claude-3-7-sonnet).  
Examples:

* A [Reddit post](https://www.reddit.com/r/ClaudeAI/comments/1iyumpf/i_uploaded_a_27yearold_exe_file_to_claude_37_and/) detailing how someone took a 27-year-old visual basic EXE file, fed it to Claude 3.7, and watched as it reverse-engineered the program and rewrote it in Python.  
* [Adafruit posts](https://x.com/adafruit/status/1895336439853822014) “We’re vibin’ with Claude 3.7 and writing uBlox drivers”, implementing a complex protocol driver using Claude 3.7.

### 5:12 The MagPi is now the Raspberry Pi Official Magazine

The MagPi magazine, including HackSpace, has been reborn as the Raspberry Pi Official Magazine. They have a special offer currently, get three issues for ten UK Pounds. Issue 151 is now out – [Raspberry Pi News](https://www.raspberrypi.com/news/introducing-raspberry-pi-official-magazine/). Via [X](https://x.com/Raspberry_Pi/status/1895096799985127684).

### 5:42 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:37 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.**

### 7:00 Overall

* 64 pull requests merged  
  * 11 authors \- Neradoc, RetiredWizard, dhalbert, tannewt, **flummer**, hexthat, justmobilize, jepler, SeanTheITGuy, FoamyGuy, **SamantazFox**  
  * 6 reviewers \- brentru, tannewt, FoamyGuy, dhalbert, justmobilize, jepler  
* 5 closed issues by 4 people, 8 opened by 8 people

### 7:33 Core

* 14 pull requests merged  
  * 8 authors \- Neradoc, RetiredWizard, dhalbert, tannewt, flummer, hexthat, SeanTheITGuy, SamantazFox  
  * 3 reviewers \- jepler, dhalbert, tannewt  
* 22 open pull requests  
  * [https://github.com/adafruit/circuitpython/pull/7811](https://github.com/adafruit/circuitpython/pull/7811) (Open 704 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/8647](https://github.com/adafruit/circuitpython/pull/8647) (Open 467 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9009](https://github.com/adafruit/circuitpython/pull/9009) (Open 362 days)  
  * [https://github.com/adafruit/circuitpython/pull/9094](https://github.com/adafruit/circuitpython/pull/9094) (Open 341 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9349](https://github.com/adafruit/circuitpython/pull/9349) (Open 257 days)  
  * [https://github.com/adafruit/circuitpython/pull/9559](https://github.com/adafruit/circuitpython/pull/9559) (Open 191 days)  
  * [https://github.com/adafruit/circuitpython/pull/9844](https://github.com/adafruit/circuitpython/pull/9844) (Open 94 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9876](https://github.com/adafruit/circuitpython/pull/9876) (Open 86 days)  
  * [https://github.com/adafruit/circuitpython/pull/9878](https://github.com/adafruit/circuitpython/pull/9878) (Open 85 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9883](https://github.com/adafruit/circuitpython/pull/9883) (Open 83 days)  
  * [https://github.com/adafruit/circuitpython/pull/9909](https://github.com/adafruit/circuitpython/pull/9909) (Open 69 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9955](https://github.com/adafruit/circuitpython/pull/9955) (Open 49 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9974](https://github.com/adafruit/circuitpython/pull/9974) (Open 44 days)  
  * [https://github.com/adafruit/circuitpython/pull/9994](https://github.com/adafruit/circuitpython/pull/9994) (Open 37 days)  
  * [https://github.com/adafruit/circuitpython/pull/10023](https://github.com/adafruit/circuitpython/pull/10023) (Open 28 days)  
  * [https://github.com/adafruit/circuitpython/pull/10044](https://github.com/adafruit/circuitpython/pull/10044) (Open 22 days)  
  * [https://github.com/adafruit/circuitpython/pull/10052](https://github.com/adafruit/circuitpython/pull/10052) (Open 19 days)  
  * [https://github.com/adafruit/circuitpython/pull/10056](https://github.com/adafruit/circuitpython/pull/10056) (Open 17 days)  
  * [https://github.com/adafruit/circuitpython/pull/10073](https://github.com/adafruit/circuitpython/pull/10073) (Open 14 days)  
  * [https://github.com/adafruit/circuitpython/pull/10080](https://github.com/adafruit/circuitpython/pull/10080) (Open 11 days)  
  * [https://github.com/adafruit/circuitpython/pull/10108](https://github.com/adafruit/circuitpython/pull/10108) (Open 1 days)  
  * [https://github.com/adafruit/circuitpython/pull/10109](https://github.com/adafruit/circuitpython/pull/10109) (Open 0 days)  
* 3 closed issues by 2 people, 2 opened by 2 people  
* 768 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: 12 open issues  
* 9.x.x: 59 open issues  
* Libraries: 17 open issues  
* Long term: 626 open issues  
* Support: 22 open issues  
* Third-party: 15 open issues  
* 0 issues not assigned a milestone

### 9:15 Libraries

* Adafruit Libraries: 354 Community Libraries: 154 (Total: 508\)  
* 49 pull requests merged  
  * 3 authors \- FoamyGuy, justmobilize, dhalbert  
  * 5 reviewers \- brentru, tannewt, FoamyGuy, dhalbert, justmobilize  
  * Merged pull requests:  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_SH1106/pull/22](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1106/pull/22) (Days open: 3\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ACeP7In/pull/7](https://github.com/adafruit/Adafruit_CircuitPython_ACeP7In/pull/7) (Days open: 3\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_SH1107/pull/26](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1107/pull/26) (Days open: 3\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_SSD1306/pull/50](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306/pull/50) (Days open: 3\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_IL91874/pull/20](https://github.com/adafruit/Adafruit_CircuitPython_IL91874/pull/20) (Days open: 2\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_IL0373/pull/33](https://github.com/adafruit/Adafruit_CircuitPython_IL0373/pull/33) (Days open: 2\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_HX8357/pull/25](https://github.com/adafruit/Adafruit_CircuitPython_HX8357/pull/25) (Days open: 2\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_EK79686/pull/2](https://github.com/adafruit/Adafruit_CircuitPython_EK79686/pull/2) (Days open: 2\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_AdafruitIO/pull/129](https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/129) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_SSD1675/pull/19](https://github.com/adafruit/Adafruit_CircuitPython_SSD1675/pull/19) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_SSD1331/pull/19](https://github.com/adafruit/Adafruit_CircuitPython_SSD1331/pull/19) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_SSD1325/pull/20](https://github.com/adafruit/Adafruit_CircuitPython_SSD1325/pull/20) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ILI9341/pull/41](https://github.com/adafruit/Adafruit_CircuitPython_ILI9341/pull/41) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ST7789/pull/39](https://github.com/adafruit/Adafruit_CircuitPython_ST7789/pull/39) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_SH1107/pull/27](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1107/pull/27) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_SSD1306/pull/51](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306/pull/51) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_SSD1305/pull/19](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1305/pull/19) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Wii\_Classic/pull/6](https://github.com/adafruit/Adafruit_CircuitPython_Wii_Classic/pull/6) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_IL0398/pull/17](https://github.com/adafruit/Adafruit_CircuitPython_IL0398/pull/17) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_GC\_IOT\_Core/pull/30](https://github.com/adafruit/Adafruit_CircuitPython_GC_IOT_Core/pull/30) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Dash\_Display/pull/20](https://github.com/adafruit/Adafruit_CircuitPython_Dash_Display/pull/20) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_WSGI/pull/23](https://github.com/adafruit/Adafruit_CircuitPython_WSGI/pull/23) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_AWS\_IOT/pull/28](https://github.com/adafruit/Adafruit_CircuitPython_AWS_IOT/pull/28) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_AzureIoT/pull/66](https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT/pull/66) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ESP32S2TFT/pull/12](https://github.com/adafruit/Adafruit_CircuitPython_ESP32S2TFT/pull/12) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Qualia/pull/8](https://github.com/adafruit/Adafruit_CircuitPython_Qualia/pull/8) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_UC8151D/pull/14](https://github.com/adafruit/Adafruit_CircuitPython_UC8151D/pull/14) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ST7735R/pull/38](https://github.com/adafruit/Adafruit_CircuitPython_ST7735R/pull/38) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_SSD1681/pull/15](https://github.com/adafruit/Adafruit_CircuitPython_SSD1681/pull/15) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_SSD1680/pull/29](https://github.com/adafruit/Adafruit_CircuitPython_SSD1680/pull/29) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_OAuth2/pull/13](https://github.com/adafruit/Adafruit_CircuitPython_OAuth2/pull/13) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Pastebin/pull/4](https://github.com/adafruit/Adafruit_CircuitPython_Pastebin/pull/4) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Wiznet5k/pull/176](https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/176) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_LIFX/pull/26](https://github.com/adafruit/Adafruit_CircuitPython_LIFX/pull/26) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Requests/pull/208](https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/208) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_JWT/pull/17](https://github.com/adafruit/Adafruit_CircuitPython_JWT/pull/17) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_FONA/pull/33](https://github.com/adafruit/Adafruit_CircuitPython_FONA/pull/33) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_OV2640/pull/29](https://github.com/adafruit/Adafruit_CircuitPython_OV2640/pull/29) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Hue/pull/25](https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/25) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_turtle/pull/49](https://github.com/adafruit/Adafruit_CircuitPython_turtle/pull/49) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_RSA/pull/44](https://github.com/adafruit/Adafruit_CircuitPython_RSA/pull/44) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_PortalBase/pull/106](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/106) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MagTag/pull/93](https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/93) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ImageLoad/pull/99](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/99) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_HTTPServer/pull/101](https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/101) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_Layout/pull/98](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/98) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_Layout/pull/97](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/97) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DisplayIO\_FlipClock/pull/13](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_FlipClock/pull/13) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MatrixPortal/pull/101](https://github.com/adafruit/Adafruit_CircuitPython_MatrixPortal/pull/101) (Days open: 1\)  
  * 51 open pull requests (Oldest: 928, Newest: 3\)  
* 2 closed issues by 2 people, 4 opened by 4 people  
  * 694 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\_Qualia](https://github.com/adafruit/Adafruit_CircuitPython_Qualia)  
  * [adafruit/Adafruit\_CircuitPython\_AdafruitIO](https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO)  
  * [adafruit/Adafruit\_CircuitPython\_WSGI](https://github.com/adafruit/Adafruit_CircuitPython_WSGI)  
  * [adafruit/Adafruit\_CircuitPython\_turtle](https://github.com/adafruit/Adafruit_CircuitPython_turtle)

### 14:00 Blinka

* 1 pull requests merged  
  * 1 authors \- jepler  
  * 1 reviewers \- FoamyGuy  
* 21 open pull requests  
  * [https://github.com/adafruit/Adafruit\_Blinka\_bleio/pull/40](https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40) (Open 1242 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/335](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335) (Open 430 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/884](https://github.com/adafruit/Adafruit_Blinka/pull/884) (Open 201 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/140](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140) (Open 197 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/888](https://github.com/adafruit/Adafruit_Blinka/pull/888) (Open 184 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/908](https://github.com/adafruit/Adafruit_Blinka/pull/908) (Open 114 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/911](https://github.com/adafruit/Adafruit_Blinka/pull/911) (Open 106 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/914](https://github.com/adafruit/Adafruit_Blinka/pull/914) (Open 91 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/915](https://github.com/adafruit/Adafruit_Blinka/pull/915) (Open 86 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/372](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/372) (Open 81 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/921](https://github.com/adafruit/Adafruit_Blinka/pull/921) (Open 70 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/925](https://github.com/adafruit/Adafruit_Blinka/pull/925) (Open 53 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/375](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/375) (Open 53 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/928](https://github.com/adafruit/Adafruit_Blinka/pull/928) (Open 50 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/143](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/143) (Open 46 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/378](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/378) (Open 44 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/931](https://github.com/adafruit/Adafruit_Blinka/pull/931) (Open 41 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/379](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/379) (Open 22 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/945](https://github.com/adafruit/Adafruit_Blinka/pull/945) (Open 8 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/380](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/380) (Open 8 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/156](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/156) (Open 7 days)  
* 0 closed issues by 0 people, 2 opened by 2 people  
* 150 open issues  
  * [https://github.com/adafruit/Adafruit\_Blinka/issues](https://github.com/adafruit/Adafruit_Blinka/issues)  
* Number of supported boards: 146

## 15:00 Hug reports

15:20 @danh

* @eightycc for a lot of bug sleuthing about DMA, flash writes, etc.  
* @RetiredWizard for improving the CircuitPython terminal experience.

15:50 @CGrover (text only)

* To @PaulCutler for the invitation and to @todbot for joining me on an upcoming The CircuitPython Show podcast where we talk about creating libraries for the Community Bundle.

16:09 @foamyguy

* @jepler for the new xvfb example for PioMatter which allows mirroring of X based graphical programs to RGB matrices on pi5  
* @Tyeth for watching along with my stream and offering up good ideas on ways to implement things I was working on  
* @RetiredWizard for implementing VT100 terminal color esc sequences & other improvements to terminal console  
* @tannewt for feedback on my first attempt at terminal inverted color support and talking through a different approach to it

17:00 @jepler

* Hug report to Scott for continued work on Pico-PIO-USB. I hope you can get that PR merged soon, it works really well for me now.  
* And one for @foamyguy for turning a quick example into some documented and useful example\! 

17:45 @Justin

* Hug to danh, foamyguy and Tyeth for reviewing 33 and merging 30 PRs for removing secrets\!

18:03 @tannewt

* Thach for more TinyUSB improvements for Fruit Jam.  
* Tim and RetiredWizard for terminal improvements.  
* CupNooble for Sprout Lands assets packs. https://cupnooble.itch.io/

18:45 @tyeth \[Text Only\]

* Hug to Justin for tackling lots of networking/secrets things, but mostly for working on Adafruit\_CircuitPython\_JSON\_Stream to help save that RAM.  
* Hug to Tim (foamyguy) for always putting out those weekend streams, it’s nice to be able to see live game dev and how semi-recent / bleeding-edge changes in circuitpython can be utilised

## 19:15 Status Updates

19:40 @danh (hosting)

* Continuing to work on updating the NINA-FW firmware for AirLift co-processors. I was able to discard a lot of bespoke code in the original version, replacing it instead with the standard WiFi library in the arduino-esp32 board support package.  
* Reviewed a bunch of @Justin’s secrets.py elimination PR’s.

21:26 @anne  (offline)

* Making a CircuitPython Breakout game for Metro RP2350 with USB Host keyboard input and DVI video via HSTX output. Learn Guide coming this week.

21:56 @eightycc

* Deep into an interesting issue involving RP2350 flash and HSTX/TDMS. The challenge is to keep DVI video running while not corrupting concurrent flash writes or crashing.

22:25 @foamyguy

* Round display compass project learn guide and intro video completed and published  
* Update the screenshot utility to show PNG and JPG files, and to always show settings.toml file  
* Wrote code for a flight radar that pulls data from open sky network and plots planes onto a round display styled like an green sweeping radar with circles  
* First attempt at inverted color support for terminal  
* Pi5 \+ RGB Matrix  
  * Tested the new xvfb example with chocolate-doom and a few other programs  
  * Research how to inject key events into app running inside of xvfb and found a thing called xdotool that can.  
  * Wrote code to read raw keyboard input, convert it to xdotool compatible key names and send it into the app running in the virtual window. Will never again take for granted how much gets magically taken care of when I press arrow keys, ctrl modified keys, or the esc key on a keyboard.

24:54 @jepler

* Continued helping out with pico-pio-usb PR by testing. Also fixed one bug regarding switching to LS bit rate that affected overclocked RP2350s. Now it’s all working for me  
* Added shorthand for “any kind of display”, “framebuffer”, and “display bus” to the docs and so that we can refer to them in type hints  
* Most of my work has been on the MCUME emulator for rp2350 (fruit jam and probably later the matrix rp2350) as mentioned on the channel  
* I’m taking a big trip from April through mid July. Our city list is settled. If you want to share travel tips about any of the cities we’ve got planned, DMs are open.  
  * Rome  
  * Naples / day trip Pompeii  
  * Florence  
  * Genoa  
  * nice  
  * marseille  
  * Kaulsdorf, Thuringen  
  * dresden  
  * bokensdorf  
  * hamburg  
  * bilund \- legoland  
  * copenhagen  
  * kalmar  
  * stockholm  
  * Kristinehamn  
  * oslo  
  * bergen  
  * edinburgh  
  * ft william  
  * crianlarich  
  * oban  
  * glasgow  
  * London

26:37 @Justin

* Over the last two weeks, I’ve been working hard to remove all the secret usage from the examples (below is where I stand). After this is done, I’ll start tackling the learn guides (to the ability I can)  
  * On February 21st, the bundle had:  
    * secrets.py: 232 results in 115 files  
    * secrets (word): 1067 results in 134 files  
  * As of February 28th, the bundle had:  
    * secrets.py: 30 results in 16 files  
    * secrets (word): 179 results in 28 files  
  * The remaining cases are either valid or in 3 open PRs (see in the weeds for resolving them)  
    

27:43 @tannewt

* Out Friday and next Tuesday 11th until the 24th. (Going to Tokyo\!)  
* Working to get USB host fixes checked in. Testing more changes from Thach.  
* Also adding a “saves” partition to Fruit Jam for saving files even when CIRCUITPY is available too. Experimenting with onboard code editing.

## 29:20 In The Weeds

30:04 @foamyguy \- Raising minimum supported version of CPython for Blinka? Currently blinka lists \>=3.7 [https://github.com/adafruit/Adafruit\_Blinka/blob/main/setup.py\#L63](https://github.com/adafruit/Adafruit_Blinka/blob/main/setup.py#L63) but some libraries use circuitpython\_typing which lists \>=3.8 [https://github.com/adafruit/Adafruit\_CircuitPython\_Typing/blob/7ef83aa6a8bfa376d2fa9fceb912de0543ea3cf5/pyproject.toml\#L16](https://github.com/adafruit/Adafruit_CircuitPython_Typing/blob/7ef83aa6a8bfa376d2fa9fceb912de0543ea3cf5/pyproject.toml#L16) Some of the types in circuitpython\_typing use syntax for type annotations that is unsupported in 3.7 so I think cases where those types are used the actual minimum version that will work is 3.8 however 3.8 is EoL now as well so maybe it would be good for us to increase both Blinka and circuitpython\_typing to something newer. 

* @jepler: curious how this came to your attention. Did a user with an old python version run into it?  
  * @Justin because I wanted to add toml support for reading settings.toml  
  * @foamyguy A user in \#help-with-circuitpython was having trouble using Blinka with a sensor and they were on py3.7 getting the error about invalid syntax from circuitpython\_typing.  
* @jepler again in my opinion no reason to support such old versions. “Debian Bullseye (now oldstable)” was released in 2021 with Python 3.9, and Python 3.9 is the current oldest version supported by python.org. Raspberry Pi OS releases since 2021-12-03 have been based on Debian 11 with Python 3.9. So, either 3.9 (to support oldstable / installs from December 2021\) or 3.11 (to support installs from October 2023). https://endoflife.date/python

37:01 @Justin

* getenv  
  * In the examples, we have two types, is there a strong preference for what they should be?  
    * import os; thing \= os.getenv(“thing”)  
    * from os import getenv; thing \= getenv(“thing”)  
* Blinka/CPython  
  * The examples that used to point to secrets, I see two options, is there a strong preference for what they should be?  
    * A comment like: “Get Adafruit IO keys, ensure these are setup in your environment”  
    * Code to use tomllib/toml for loading the settings.toml file and grab the values from that dict (this would keep learn guides pretty similar, and need to add “toml; python\_version \< '3.11'” to the Blinka requirements

## 46:10 Wrap-Up

Next meeting Monday, March 10, 2025\.
