# CircuitPython Weekly Meeting for April 14, 2025

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

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:52 Community News

### 3:16 MicroPython’s Super Interesting Alif Ensemble Microcontroller Port

A few days ago, Adafruit’s Ladyada [had an interview](https://youtu.be/qlndua9yMVs) with [OpenMV](https://openmv.io/). OpenMV is releasing two new programmable AI camera modules on [Kickstarter](https://www.kickstarter.com/projects/openmv/openmv-n6-and-ae3-low-power-python-programmable-ai-cameras).

The MicroPython team has announced the [merging of support](https://github.com/micropython/micropython/pull/17050) for the [Alif](https://alifsemi.com/) Ensemble MCUs, used in OpenMV’s modules, on GitHub. The code allows MicroPython to run on Alif Express chips and the OpenMV AE3 camera board \- [MicroPython GitHub](https://github.com/micropython/micropython/pull/17050). Via [Mastodon](https://fosstodon.org/@matt_trentini/114306593860376087) and the [Adafruit Blog](https://blog.adafruit.com/2025/04/09/micropythons-new-port-for-the-super-interesting-alif-ensemble-microcontroller/).

### 3:54 The Python Lifecycle

Have you ever wondered where the Python version you're using is in its [development lifecycle](https://en.wikipedia.org/wiki/Systems_development_life_cycle)? The Python Developer's Guide keeps track for you to help decide when to upgrade your codebase \- [Python Developer's Guide](https://devguide.python.org/versions/). Via [LinkedIn](https://www.linkedin.com/posts/hugovk_python-cpython-release-activity-7315482854111555585-CbwC/).

### 4:30 Adafruit Debuts "Tariff Talk" to Provide the Latest on Industry Tariffs

Adafruit has started a segment on their Ask an Engineer weekly broadcast to discuss the tariffs unfolding worldwide and their effect on engineering/BOM and DIY project costs in the electronics industry \- [Adafruit Blog](https://blog.adafruit.com/2025/04/10/tariff-talk-with-ladyada-april-10-2025-edition/) and [YouTube](https://www.youtube.com/watch?v=PQeJrAXsD0Y).

### 5:00 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:10 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:34 Overall

* 13 pull requests merged  
  * 11 authors \- weblate, relic-se, carlossless, snkYmkrct, todbot, tannewt, eightycc, dhalbert, Neradoc, Myoldmopar, FoamyGuy  
  * 3 reviewers \- FoamyGuy, tannewt, dhalbert  
* 8 closed issues by 4 people, 16 opened by 16 people

### 7:28 Core

* 9 pull requests merged  
  * 8 authors \- weblate, relic-se, snkYmkrct, todbot, tannewt, eightycc, dhalbert, Neradoc  
  * 3 reviewers \- tannewt, dhalbert, FoamyGuy  
* 18 open pull requests  
  * [https://github.com/adafruit/circuitpython/pull/8647](https://github.com/adafruit/circuitpython/pull/8647) (Open 509 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9009](https://github.com/adafruit/circuitpython/pull/9009) (Open 404 days)  
  * [https://github.com/adafruit/circuitpython/pull/9094](https://github.com/adafruit/circuitpython/pull/9094) (Open 383 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9349](https://github.com/adafruit/circuitpython/pull/9349) (Open 299 days)  
  * [https://github.com/adafruit/circuitpython/pull/9559](https://github.com/adafruit/circuitpython/pull/9559) (Open 233 days)  
  * [https://github.com/adafruit/circuitpython/pull/9844](https://github.com/adafruit/circuitpython/pull/9844) (Open 136 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9876](https://github.com/adafruit/circuitpython/pull/9876) (Open 128 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9883](https://github.com/adafruit/circuitpython/pull/9883) (Open 125 days)  
  * [https://github.com/adafruit/circuitpython/pull/9909](https://github.com/adafruit/circuitpython/pull/9909) (Open 111 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9955](https://github.com/adafruit/circuitpython/pull/9955) (Open 91 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10023](https://github.com/adafruit/circuitpython/pull/10023) (Open 70 days)  
  * [https://github.com/adafruit/circuitpython/pull/10056](https://github.com/adafruit/circuitpython/pull/10056) (Open 59 days)  
  * [https://github.com/adafruit/circuitpython/pull/10080](https://github.com/adafruit/circuitpython/pull/10080) (Open 53 days)  
  * [https://github.com/adafruit/circuitpython/pull/10196](https://github.com/adafruit/circuitpython/pull/10196) (Open 16 days)  
  * [https://github.com/adafruit/circuitpython/pull/10231](https://github.com/adafruit/circuitpython/pull/10231) (Open 6 days)  
  * [https://github.com/adafruit/circuitpython/pull/10238](https://github.com/adafruit/circuitpython/pull/10238) (Open 5 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10245](https://github.com/adafruit/circuitpython/pull/10245) (Open 3 days)  
  * [https://github.com/adafruit/circuitpython/pull/10244](https://github.com/adafruit/circuitpython/pull/10244) (Open 3 days) (draft)  
* 4 closed issues by 2 people, 10 opened by 10 people  
* 774 open issues  
  * [https://github.com/adafruit/circuitpython/issues](https://github.com/adafruit/circuitpython/issues)  
* 9 active milestones  
* 10.0.0: 39 open issues  
* 10.0.x: 0 open issues  
* 10.x.x: 33 open issues  
* 11.0.0: 7 open issues  
* 9.2.x: 0 open issues  
* Libraries: 16 open issues  
* Long term: 635 open issues  
* Support: 26 open issues  
* Third-party: 16 open issues  
* 0 issues not assigned a milestone (3 triaged today)

### 9:29 Libraries

* Adafruit Libraries: 356 Community Libraries: 159 (Total: 515\)  
* 4 pull requests merged  
  * 3 authors \- Myoldmopar, FoamyGuy, carlossless  
  * 3 reviewers \- tannewt, dhalbert, FoamyGuy  
  * Merged pull requests:  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ImageLoad/pull/100](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/100) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DS18X20/pull/34](https://github.com/adafruit/Adafruit_CircuitPython_DS18X20/pull/34) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_USB\_Host\_Descriptors/pull/6](https://github.com/adafruit/Adafruit_CircuitPython_USB_Host_Descriptors/pull/6) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Bundle/pull/501](https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/501) (Days open: 1\)  
  * 55 open pull requests (Oldest: 970, Newest: 1\)  
* 3 closed issues by 3 people, 4 opened by 4 people  
  * 718 open issues  
  * 3 good first issues  
* [https://circuitpython.org/contributing](https://circuitpython.org/contributing)

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

* **New Libraries**  
  * [adafruit/Adafruit\_CircuitPython\_Anchored\_Group](https://github.com/adafruit/Adafruit_CircuitPython_Anchored_Group)  
* **Updated Libraries**  
  * [adafruit/Adafruit\_CircuitPython\_WM8960](https://github.com/adafruit/Adafruit_CircuitPython_WM8960)  
  * [adafruit/Adafruit\_CircuitPython\_DS18X20](https://github.com/adafruit/Adafruit_CircuitPython_DS18X20)  
  * [2bndy5/CircuitPython\_Cirque\_Pinnacle](https://github.com/2bndy5/CircuitPython_Cirque_Pinnacle)

### 14:32 Blinka

* 0 pull requests merged  
  * 0 authors \-  
  * 0 reviewers \-  
* 30 open pull requests  
  * [https://github.com/adafruit/Adafruit\_Blinka\_bleio/pull/40](https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40) (Open 1284 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/335](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335) (Open 472 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/884](https://github.com/adafruit/Adafruit_Blinka/pull/884) (Open 243 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/140](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140) (Open 239 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/888](https://github.com/adafruit/Adafruit_Blinka/pull/888) (Open 226 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/908](https://github.com/adafruit/Adafruit_Blinka/pull/908) (Open 156 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/914](https://github.com/adafruit/Adafruit_Blinka/pull/914) (Open 133 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/915](https://github.com/adafruit/Adafruit_Blinka/pull/915) (Open 128 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/372](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/372) (Open 123 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/925](https://github.com/adafruit/Adafruit_Blinka/pull/925) (Open 95 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/375](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/375) (Open 95 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/928](https://github.com/adafruit/Adafruit_Blinka/pull/928) (Open 92 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/143](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/143) (Open 88 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/378](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/378) (Open 86 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/931](https://github.com/adafruit/Adafruit_Blinka/pull/931) (Open 83 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/379](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/379) (Open 64 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/945](https://github.com/adafruit/Adafruit_Blinka/pull/945) (Open 50 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/380](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/380) (Open 50 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/156](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/156) (Open 49 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/950](https://github.com/adafruit/Adafruit_Blinka/pull/950) (Open 40 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/955](https://github.com/adafruit/Adafruit_Blinka/pull/955) (Open 33 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/381](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/381) (Open 33 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_Piomatter/pull/38](https://github.com/adafruit/Adafruit_Blinka_Raspberry_Pi5_Piomatter/pull/38) (Open 26 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 19 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_Neopixel/pull/8](https://github.com/adafruit/Adafruit_Blinka_Raspberry_Pi5_Neopixel/pull/8) (Open 19 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Raspberry\_Pi5\_rp1pio/pull/21](https://github.com/adafruit/Adafruit_Blinka_Raspberry_Pi5_rp1pio/pull/21) (Open 19 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/959](https://github.com/adafruit/Adafruit_Blinka/pull/959) (Open 16 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/382](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/382) (Open 16 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/960](https://github.com/adafruit/Adafruit_Blinka/pull/960) (Open 8 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/383](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/383) (Open 8 days)  
* 1 closed issues by 1 people, 2 opened by 2 people  
* 153 open issues  
  * [https://github.com/adafruit/Adafruit\_Blinka/issues](https://github.com/adafruit/Adafruit_Blinka/issues)  
* Number of supported boards: 146

## 15:24 Hug reports

16:00 @tannewt (hosting)

* @ladyada and @pt for following all of the tariff changes.  
* @RetiredWizard for working on adding multi-display support and being open to large changes.

16:43 @danh

* @eightycc for figuring out Microchip flash chip idiosyncrasies.  
* @Allen Wright from Microchip for helping with the flash chips and @Ross from Microchip for getting Allen involved.  
* @anecdata for pointing out `cyw43` support for power management.

17:44 @eightycc

* @danh for all the help getting a sam e54 xplained board flashed, and for teaching me that the j-link tools are really better in many cases.  
* @tannewt for going deep into gc. Fascinating stuff\!

18:14 @foamyguy

* @tannewt for digging deep into garbage collection in search of improvements for displayio animations and audio playback  
* @Justin for continuing to work on secrets.py \-\> settings.toml changes in the learn repo

18:51 @RetiredWizard (text only)

* @tannewt for providing direction on my attempt to implement multiple display support, and what I’m sure is going to turn out to be many future corrections on my efforts down wrong paths.

## 19:10 Status Updates

19:41 @tannewt (hosting)

* Improved I2S out by making sure it allocates DMAd buffers into internal SRAM.  
* PR to add working dir to set\_next\_code\_file and adding pathlib has two samd builds that are too large. Then it’ll be set.  
* Tested Larsio paint.  
  * DMA memory allocation change helps a bunch.  
  * Mouse from the shop is acting weird for me. It disconnects from the hub briefly. So brief that TinyUSB only sees a new connect and no disconnect. It re-enums the new device but doesn’t “disconnect” the old one so it leaks. Filed issue for Thach here: [https://github.com/hathach/tinyusb/issues/3073](https://github.com/hathach/tinyusb/issues/3073)  
  * Experimented with allocating Bitmap buffers outside of the MP heap and GC collect times dropped from 200ms to \~40ms. Helps the audio squawks a bunch.  
  * Printing slows down due to changing the CP console terminalio even when it isn’t showing. May tweak that.  
* Adding a “collect” bit to MP heap management so that memory has to be opted into being collected. This should make collect times much shorter when large buffers are allocated. This is especially true with external PSRAM. Collects will blow the cache away by scanning a bunch of memory. The cache is shared with flash. So, it impacts flash accesses as well.


24:09 @danh

* Filed issue on ChromeOS re SAMD UF2 bootloader not showing up, with logs. [https://issuetracker.google.com/issues/409576876](https://issuetracker.google.com/issues/409576876).  
* RP2xxxx I2S audio: left/right channels are flipped in 3 out of 4 cases. Investigating.  
* Adding WiFi power management settings on Espressif and making them uniform across Espressif and CYW43.  
* After these, will work on no-OTA-partition change for 10.0.0 on 4MB Espressif boards.


26:53 @eightycc

* Fixed a couple of stubborn bugs preventing Microchip SST26VFxxxB flash parts from working with CircuitPython.  
* Implemented BOOTSEL entry to safe mode for RP2 boards with RP235x parts.  
* Continue update of ESP-IDF to version 5.4.1.

27:40 @foamyguy

* Updating learn guide pages for secrets.py \-\> settings.toml changes  
* Submitted Match3 game guide for moderation and a few changes from feedback  
* USB SNES like controller guide pages and CircuitPython example code. Found compatibility issues with certain devices and versions of CircuitPython and filed an issue, also tested a newer version of pico-pio-usb. Will work on an arduino example next.  
* Released adafruit\_anchored\_group library and added it to the bundle.  
* Two infrastructure fixes: CST8XX library was always failing its gh\_release action and is fixed now, circuitpython-build-tools was getting a warning from pypi for a name that doesn’t comply with PEP 625, fixed by updating the version of python used to build it.  
* Did a bit of work and made a new release for Blinka\_DisplayIO\_PyGame\_Display library to get it working with the latest Blinka DisplayIO. Removed support for auto\_refresh due to issues with threading between pygame and displayio.  
* Started implementing bitmaptools in Blinka\_DisplayIO.

31:03 @RetiredWizard (text only)

* Attempting to wrap my head around Micropython/Circuitpython finalizers so they can be used for displayio object releases. I hope to have a draft PR for multiple display support posted this week.

## 31:34 In The Weeds

31:54 @danh: Consolidate [https://github.com/circuitpython/CircuitPython\_Org\_Bundle](https://github.com/circuitpython/CircuitPython_Org_Bundle) into [https://github.com/adafruit/CircuitPython\_Community\_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle) ? The CircuitPython\_Org bundle has only three libraries, all `displayio`\-related, and has not been updated for two years. The bundle is not listed in [https://circuitpython.org/libraries](https://circuitpython.org/libraries).

* Move those libraries to the community bundle and archive the org bundle.  
* Remove mechanisms for that bundle, including in circup  
* If the idea is that the community bundle is community supported, could move the community bundle to the `circuitpython` org.

44:30 @tannewt

* I’m on paternity leave in three weeks for eight weeks. Our meeting host rotation will only be three people. Anyone interested in hosting this meeting so that the rotation has more folks?

## 47:20 Wrap-Up

* Next week is normal time.
