# CircuitPython Weekly Meeting for January 21, 2025

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

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

### 3:16 CircuitPython 2025 Wraps-Up

Scott Shawcroft thanks the 16 folks who wrote in about \#CircuitPython2025. He states "It was a great mix of detailed suggestions and big news around who will be working on CircuitPython. It’ll be an exciting year and we’re happy to have you all participating." \- [Adafruit Blog](https://blog.adafruit.com/2025/01/15/thank-you-for-circuitpython2025/).

### 3:49 LVGL Ported to MicroPython

Keith Mukai notes on X that Kevin Schlosser has "lvgl working on the latest MicroPython and it runs just fine on an ESP32-S3." \- [X](https://x.com/KeithMukai/status/1878560602936787350). See the software \- [GitHub](https://github.com/lvgl-micropython/lvgl_micropython).

### 4:33 CircuitPython 9.2.3 Released

CircuitPython 9.2.3 is the latest bugfix revision of CircuitPython and is a new stable release – [Adafruit Blog](https://blog.adafruit.com/2025/01/17/circuitpython-9-2-3-released/) and release notes – [GitHub](https://github.com/adafruit/circuitpython/releases/tag/9.2.3).
Highlights of this release

* Fix ESP32-S3 regression: did not connect properly to USB without an interposed hub.
* New boards: Adafruit Sparkle Motion and Mini Sparkle Motion, M5Stack StampS3.

### 5:14 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:04 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:28 Overall

\* 38 pull requests merged
  \* 15 authors \- FoamyGuy, BlitzCityDIY, eightycc, **applecuckoo**, **ncguk**, **snkYmkrct**, **StellasFun**, Neradoc, dhalbert, makermelissa, andibing, **yacobucci**, vladak, ch4nsuk3, weblate
  \* 9 reviewers \- FoamyGuy, jepler, anecdata, dhalbert, makermelissa, ladyada, Neradoc, tekktrik, tannewt
\* 24 closed issues by 10 people, 17 opened by 14 people

### 7:13 Core

* 10 pull requests merged
  * 9 authors \- FoamyGuy, BlitzCityDIY, eightycc, snkYmkrct, StellasFun, dhalbert, andibing, Neradoc, weblate
  * 3 reviewers \- dhalbert, jepler, tannewt
* 22 open pull requests
  * [https://github.com/adafruit/circuitpython/pull/7811](https://github.com/adafruit/circuitpython/pull/7811) (Open 663 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/8457](https://github.com/adafruit/circuitpython/pull/8457) (Open 476 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/8647](https://github.com/adafruit/circuitpython/pull/8647) (Open 426 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9009](https://github.com/adafruit/circuitpython/pull/9009) (Open 321 days)
  * [https://github.com/adafruit/circuitpython/pull/9094](https://github.com/adafruit/circuitpython/pull/9094) (Open 300 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9349](https://github.com/adafruit/circuitpython/pull/9349) (Open 216 days)
  * [https://github.com/adafruit/circuitpython/pull/9385](https://github.com/adafruit/circuitpython/pull/9385) (Open 204 days)
  * [https://github.com/adafruit/circuitpython/pull/9559](https://github.com/adafruit/circuitpython/pull/9559) (Open 150 days)
  * [https://github.com/adafruit/circuitpython/pull/9776](https://github.com/adafruit/circuitpython/pull/9776) (Open 81 days)
  * [https://github.com/adafruit/circuitpython/pull/9804](https://github.com/adafruit/circuitpython/pull/9804) (Open 70 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9844](https://github.com/adafruit/circuitpython/pull/9844) (Open 53 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9876](https://github.com/adafruit/circuitpython/pull/9876) (Open 45 days)
  * [https://github.com/adafruit/circuitpython/pull/9878](https://github.com/adafruit/circuitpython/pull/9878) (Open 44 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9883](https://github.com/adafruit/circuitpython/pull/9883) (Open 42 days)
  * [https://github.com/adafruit/circuitpython/pull/9909](https://github.com/adafruit/circuitpython/pull/9909) (Open 28 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9955](https://github.com/adafruit/circuitpython/pull/9955) (Open 8 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9965](https://github.com/adafruit/circuitpython/pull/9965) (Open 4 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9974](https://github.com/adafruit/circuitpython/pull/9974) (Open 3 days)
  * [https://github.com/adafruit/circuitpython/pull/9980](https://github.com/adafruit/circuitpython/pull/9980) (Open 1 days) (draft)
  * [https://github.com/adafruit/circuitpython/pull/9985](https://github.com/adafruit/circuitpython/pull/9985) (Open 0 days)
  * [https://github.com/adafruit/circuitpython/pull/9984](https://github.com/adafruit/circuitpython/pull/9984) (Open 0 days)
  * [https://github.com/adafruit/circuitpython/pull/9982](https://github.com/adafruit/circuitpython/pull/9982) (Open 0 days)
* 12 closed issues by 6 people, 5 opened by 4 people
* 781 open issues
  * [https://github.com/adafruit/circuitpython/issues](https://github.com/adafruit/circuitpython/issues)
* 7 active milestones
* 10.0.0: 15 open issues
* 9.2.x: 8 open issues
* 9.x.x: 51 open issues
* Libraries: 22 open issues
* Long term: 649 open issues
* Support: 21 open issues
* Third-party: 15 open issues
* 1 issues not assigned a milestone

### 8:40 Libraries

* Adafruit Libraries: 348 Community Libraries: 149 (Total: 497\)
* 24 pull requests merged
  * 6 authors \- FoamyGuy, **applecuckoo**, **yacobucci**, vladak, ch4nsuk3, **ncguk**
  * 7 reviewers \- dhalbert, FoamyGuy, ladyada, tekktrik, Neradoc, anecdata, tannewt
  * Merged pull requests:
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_PyCamera/pull/32](https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/32) (Days open: 326\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MiniMQTT/pull/225](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/225) (Days open: 101\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_TSL2591/pull/30](https://github.com/adafruit/Adafruit_CircuitPython_TSL2591/pull/30) (Days open: 7\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_VCNL4200/pull/5](https://github.com/adafruit/Adafruit_CircuitPython_VCNL4200/pull/5) (Days open: 4\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_TM1814/pull/5](https://github.com/adafruit/Adafruit_CircuitPython_TM1814/pull/5) (Days open: 4\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_INA3221/pull/4](https://github.com/adafruit/Adafruit_CircuitPython_INA3221/pull/4) (Days open: 4\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Anchored\_TileGrid/pull/1](https://github.com/adafruit/Adafruit_CircuitPython_Anchored_TileGrid/pull/1) (Days open: 4\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_PyCamera/pull/43](https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/43) (Days open: 2\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_HTTPServer/pull/100](https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/100) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_BLE\_Beacon/pull/4](https://github.com/adafruit/Adafruit_CircuitPython_BLE_Beacon/pull/4) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Wiz/pull/5](https://github.com/adafruit/Adafruit_CircuitPython_Wiz/pull/5) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_NeoPxl8/pull/15](https://github.com/adafruit/Adafruit_CircuitPython_NeoPxl8/pull/15) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_S35710/pull/3](https://github.com/adafruit/Adafruit_CircuitPython_S35710/pull/3) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_datetime/pull/31](https://github.com/adafruit/Adafruit_CircuitPython_datetime/pull/31) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_datetime/pull/30](https://github.com/adafruit/Adafruit_CircuitPython_datetime/pull/30) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DS3231/pull/50](https://github.com/adafruit/Adafruit_CircuitPython_DS3231/pull/50) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ImageLoad/pull/94](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/94) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_ImageLoad/pull/92](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/92) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_RFM/pull/7](https://github.com/adafruit/Adafruit_CircuitPython_RFM/pull/7) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MiniMQTT/pull/237](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/237) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MiniMQTT/pull/236](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/236) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_PyCamera/pull/42](https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/42) (Days open: 1\)
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Bundle/pull/489](https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/489) (Days open: 1\)
    * [https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/246](https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/246) (Days open: 1\)
  * 60 open pull requests (Oldest: 887, Newest: 1\)
* 9 closed issues by 6 people, 7 opened by 7 people
  * 683 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\_PyCamera](https://github.com/adafruit/Adafruit_CircuitPython_PyCamera)
  * [adafruit/Adafruit\_CircuitPython\_ImageLoad](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad)
  * [adafruit/Adafruit\_CircuitPython\_Wiz](https://github.com/adafruit/Adafruit_CircuitPython_Wiz)
  * [adafruit/Adafruit\_CircuitPython\_BLE\_Beacon](https://github.com/adafruit/Adafruit_CircuitPython_BLE_Beacon)
  * [adafruit/Adafruit\_CircuitPython\_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
  * [adafruit/Adafruit\_CircuitPython\_WSGI](https://github.com/adafruit/Adafruit_CircuitPython_WSGI)
  * [Neradoc/CircuitPython\_Multi\_Ke](https://github.com/Neradoc/CircuitPython_Multi_Ke)

### 14:00 Blinka

* 4 pull requests merged
  * 3 authors \- Neradoc, FoamyGuy, makermelissa
  * 4 reviewers \- FoamyGuy, makermelissa, dhalbert, tannewt
* 18 open pull requests
  * [https://github.com/adafruit/Adafruit\_Blinka\_bleio/pull/40](https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40) (Open 1201 days)
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/335](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335) (Open 389 days) (draft)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/884](https://github.com/adafruit/Adafruit_Blinka/pull/884) (Open 160 days) (draft)
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/140](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140) (Open 156 days)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/888](https://github.com/adafruit/Adafruit_Blinka/pull/888) (Open 143 days)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/908](https://github.com/adafruit/Adafruit_Blinka/pull/908) (Open 73 days) (draft)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/911](https://github.com/adafruit/Adafruit_Blinka/pull/911) (Open 65 days)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/914](https://github.com/adafruit/Adafruit_Blinka/pull/914) (Open 50 days)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/915](https://github.com/adafruit/Adafruit_Blinka/pull/915) (Open 45 days)
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/372](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/372) (Open 40 days)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/921](https://github.com/adafruit/Adafruit_Blinka/pull/921) (Open 29 days)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/925](https://github.com/adafruit/Adafruit_Blinka/pull/925) (Open 12 days)
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/375](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/375) (Open 12 days)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/928](https://github.com/adafruit/Adafruit_Blinka/pull/928) (Open 9 days)
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/143](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/143) (Open 5 days) (draft)
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/378](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/378) (Open 3 days)
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/931](https://github.com/adafruit/Adafruit_Blinka/pull/931) (Open 0 days)
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/149](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/149) (Open 0 days)
* 3 closed issues by 2 people, 5 opened by 4 people
* 123 open issues
  * [https://github.com/adafruit/Adafruit\_Blinka/issues](https://github.com/adafruit/Adafruit_Blinka/issues)
* Piwheels Downloads in the last month: 19014 Number of supported boards: 146

## 15:00 Hug reports

@danh (hosting)

* @hathach for diagnosing and fixing two USB-related bugs that were regressions for CIrcuitPython.

15:49 @CGrover (text only)

* @DJDevon3 for the continuing investigation of openweathermap.org alternatives, including providing useful guidance and excellent examples ([Feather Weather project](https://github.com/DJDevon3/My_Circuit_Python_Projects/tree/main/Boards/espressif/Unexpected%20Maker%20Feather%20S3/3.5%20TFT%20Featherwing/Feather%20Weather%20MQTT%20Touch%20Open-Meteo)).

16:06 @DJDevon3 (text only)

* In only a few months of absence I forgot how to put a feather into the bootloader mode that esptool will recognize. Hug to @Neradoc & @Danh for helping me get back into the swing of things.
* @Elpekenin for helping to improve some f-string formatting in a timestamp function.
* @CGrover for providing multiple choices to port away from OpenWeatherMaps for weather data. His latest playground note on [weather architecture 2.0 for AIO+ HTTP requests](https://adafruit-playground.com/u/CGrover/pages/cedar-grove-weather-architecture-v2-0) is an excellent read.
* @DanH for fixing a bug in 9.2.2 and releasing a fix in 9.2.3

16:50 @foamyguy

* @Liz for help learning how to use Pretty Pins and making pinouts page photos for learn guides
* @jepler for suggestions on improvements for adafruit\_datetime, and tests for ImageLoad
* @Neradoc for reporting issues on Blinka Displayio with reproducers, and looking into getting HTTPServer to work with ESP32SPI
* @Slaftos for adding the –list and –rename args for circup example command

18:11 @tannewt

* @andyross from Zephyr for helping me understand my heap options.
* @bablokb for RP2350 sleep PR.
* @[SamantazFox](https://github.com/SamantazFox) for iMX RT canio PR.

## 18:40 Status Updates

19:08 @danh (hosting)

* Released CIrcuitPython 9.2.3 to add a workaround by @hathach to fix the USB problem on ESP32-S3. Thach has diagnosed the underlying problem in ESP-IDF, and has made initial fixes in TinyUSB and TinyUF2. Espressif developers are aware and will fix it.
* Submitted a PR, awaiting testing, to fix picodvi crashing due to DMA IRQ problems.
* Getting stalled NINA-FW update going again, to fix ECDSA certificate chain issues for ESP32SPI

20:56 @DJDevon3 (text only)

* Now that OpenWeatherMaps put their free API behind a credit card wall; I followed CGrover’s playground note to update my FeatherWeather project to Weather.gov. It works well but you’re limited to updates every 60 minutes. Then I found Open-Meteo’s free weather API. Polling is limited to every 15 minutes, can be used with latitude & longitude for anyone across the world, and is completely free with no login required. I recommend everyone check out open-meteo’s [API request constructor](https://open-meteo.com/en/docs). It is the most efficient & pleasant API request builder I’ve ever come across so far. I wish every online API had something like that. If you’ve been wondering what to do for online weather data since OpenWeatherMaps pulled the rug out, Open-Meteo is an excellent replacement.
* Created a new repo for the [GoodTimes BDF font](https://github.com/DJDevon3/GoodTimes_BDF_Font) that I use in my feather weather project.  Used Font Forge to create sizes from 5px to 121px.
* Updated my [Feather Weather project](https://github.com/DJDevon3/My_Circuit_Python_Projects/tree/main/Boards/espressif/Unexpected%20Maker%20Feather%20S3/3.5%20TFT%20Featherwing/Feather%20Weather%20MQTT%20Touch%20Open-Meteo) and took bitmapsaver screenshots of every page. Transition from 9.0.1 to 9.2.1 was seamless.
* Helped someone with a Matrix Portal S3 clock question and ended up writing an NTP example and [playground note](https://adafruit-playground.com/u/DJDevon3/pages/circuit-python-matrix-portal-s3-ntp-clock) for it.


22:30 @foamyguy

* Patched and release all libraries for RTD Sphinx config deprecation.
* Fix a few libraries that had incorrect docs badge URL in their readme which causes other issues for some adabot reports
* Looking into Blinka Displayio issues, submitted fixes for a few and still have a couple more to look into.
* Learned how to POST to a discord channel webhook from CircuitPython and made a quick PoC that uses an accelerometer to know when the dryer finishes and sends a message to a discord my wife and I use to coordinate.

24:32 @jepler (missing meeting)

* Put some polish on the “piomatter” library for running RGB matrices on Pi 5 using pio. This is released on github & pypi: [https://pypi.org/project/Adafruit-Blinka-Raspberry-Pi5-Piomatter/](https://pypi.org/project/Adafruit-Blinka-Raspberry-Pi5-Piomatter/)
* Out today having a mini-hackfest with some friends, we have been working on a variety of projects. No circuitpython though.

24:57 @tannewt

* Fixed up Zephyr work so creating blink over CIRCUITPY actually works\!
* Continuing work on Zephyr WiFi.
* Improving build code to detect header file changes (and not rebuild every time because we generate headers.)
* Recording stream with Robert Feranec.

## In The Weeds

We’re changing the way we use Markdown formatting in this notes document a bit. Google Docs now can convert to Markdown when exporting a document. So 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.

## 27:22 Wrap-Up

Next meeting is Monday, January 27, 2025, at the regular time of 2pm US Eastern Time / 11am US Pacific Time.
