# CircuitPython Weekly Meeting for June 10, 2024


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. 


Thanks! We hope to see you in the meeting!


Jeff is hosting.


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


Join here for the chat all week: 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 which you may be able to enter directly into compatible podcast apps.
## 2:42 Community News
Reprogramming 80s BASIC Retro Games in MicroPython
 Reprogramming 80s BASIC Retro Games in MicroPython 

Kevin McAleer reprograms some 80s Retro games into MicroPython and runs them on a microcontroller - YouTube.
POG: A KMK GUI, Layout Editor, Keymap Editor, and Flashing Utility
 POG 

POG guides you through the setup of your KMK CircuitPython firmware on compatible keyboards. A fully working custom firmware takes only minutes - GitHub, Documentation and YouTube.


 Raspberry Pi Pico Dice Programmed with CircuitPython 

Raspberry Pi Pico dice programmed with CircuitPython - Adafruit Playground.


### 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, or tag a post with #CircuitPython on Mastodon, Bluesky, or X (formerly known as Twitter),.
## 5:03 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.**
### Overall
* 30 pull requests merged
  * 19 authors - CDarius, UnexpectedMaker, Sola85, tyeth, squix78, dargus, FoamyGuy, bill88t, dhalbert, burberius, brentru, andypiper, sc-bin, skerr92, jepler, tannewt, hajimef, nopnop2002, weblate
  * 8 reviewers - tekktrik, jepler, ladyada, tannewt, bill88t, FoamyGuy, dhalbert, makermelissa
* 12 closed issues by 7 people, 21 opened by 19 people


### 6:09 Core
* 16 pull requests merged
  * 10 authors - skerr92, jepler, UnexpectedMaker, Sola85, tyeth, squix78, tannewt, bill88t, dhalbert, weblate
  * 5 reviewers - jepler, tannewt, ladyada, bill88t, dhalbert
* 24 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 706 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 516 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 476 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 464 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 438 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 381 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 354 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 316 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 284 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 251 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 201 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 181 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 147 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 101 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 96 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 75 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 72 days)
  * https://github.com/adafruit/circuitpython/pull/9238 (Open 29 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9245 (Open 26 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9274 (Open 16 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9309 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/9315 (Open 3 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9318 (Open 2 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9316 (Open 2 days)
* 5 closed issues by 2 people, 10 opened by 9 people
* 682 open issues
  * https://github.com/adafruit/circuitpython/issues
* 9 active milestones
 * 10.0.0: 2 open issues
 * 8.2.x: 0 open issues
 * 9.0.x: 0 open issues
 * 9.1.0: 3 open issues
 * 9.x.x: 23 open issues
 * Libraries: 22 open issues
 * Long term: 606 open issues
 * Support: 10 open issues
 * Third-party: 14 open issues
 * 4 issues not assigned a milestone


### 7:52 Libraries
* 5 pull requests merged
  * 5 authors - CDarius, dargus, FoamyGuy, andypiper, dhalbert
  * 3 reviewers - tekktrik, FoamyGuy, dhalbert
  * Merged pull requests:
        * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/71 (Days open: 54)
        * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/213 (Days open: 17)
        * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1106/pull/18 (Days open: 13)
        * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/67 (Days open: 12)
        * https://github.com/adafruit/Adafruit_CircuitPython_AirLift/pull/11 (Days open: 10)
  * 56 open pull requests (Oldest: 662, Newest: 3)
* 6 closed issues by 4 people, 8 opened by 8 people
  * 852 open issues
  * 102 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 76237 PyPI downloads over 326 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9178
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8713
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 8095
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2723
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 841
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 831
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 791
  * Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 783
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 728
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 727


#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_DisplayIO_SH1106](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1106)
  * [adafruit/Adafruit_CircuitPython_PIOASM](https://github.com/adafruit/Adafruit_CircuitPython_PIOASM)
  * [elpekenin/circuitpython_toml](https://github.com/elpekenin/circuitpython_toml)


### 11:29 Blinka
* 9 pull requests merged
  * 5 authors - hajimef, nopnop2002, burberius, brentru, sc-bin
  * 1 reviewers - makermelissa
* 4 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 976 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 164 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 164 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/842 (Open 1 days)
* 1 closed issues by 1 people, 3 opened by 3 people
* 99 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 16238
* Piwheels Downloads in the last month: 15055
Number of supported boards: 133
## 12:29 Hug reports


@jepler (hosting)
* Group hug
* Hug for Scott who was willing to swap a meeting date in August


13:05 @danh
* @Timeline8 for finding and @bill88t for debugging an AnalogIn in problem on ESP32-S3 when wifi is running.
* @Justin for working on a network test suite for CIrcuitPython.


13:51 @foamyguy
* Github user @puterboy for reporting an issue with the bme680 driver and confirming the fix worked
* Twitch user @NegVorsa for sharing an idea for a different and less complex way to code an aspect of the game I am working on
* Github user @SamantazFox for submitting a fix for an alignment issue with display_text and some reproducer code and before / after photos of the issue.
* @Gallaugher for making a great tutorial video for Circup


14:57 @makermelissa
* @jepler for the tip about checking if the filesystem is mounted read-only
* @tannewt and @danh for assistance with working on the Code Editor
* Group Hug


15:28 @tannewt
* @dcd for taking timecodes for most of my deep dives.
* @foamyguy for filling in for me.


15:42 Tyeth (Text Only):
* Big hug to Dan, for gracefully perusing my git trace (who knew such a thing existed), to see why the submodules were doing funny things. No-one should ever have to, but looking at the internals of git was at least curious... Also for discussing PCs.
## 16:03 Status Updates


16:34 @jepler (hosting)
* Last week: Finished MP3 streaming support. Now, on esp32s3, you can fetch an MP3 stream via requests & decode it in real time. This requires a very reliable network connection, or there will be glitches & dropouts. Https does not work yet
* This week: make https streaming work
* Stretch goal for the week: work on crashing bugs from malicious MP3 data I found with a “fuzzing tool”. During the development of mp3 streaming I had bugs that could send corrupt data into the MP3 decoder, which crashed sometimes. I went looking for more problems, and found them. Adafruit’s mp3 decoder will probably never be 100% robust in the face of a deliberately corrupted stream, but it could be better.
* Extra stretchy goal: Will try to find time to look at an ssl bug that justin found. It’s probably a problem with object finalizers: either  missing ones, or ones that cause crashes if they are run in the “incorrect order”, which can happen especially at interpreter shutdown.
* For fun: using z88dk (C cross-compiler) to develop a die rolling program for my Xerox CP/M computer. 


18:26 @danh
* Fixed directory path problems when using remote workflows.
* Turned off DVI and USB host on Pico W to make more room for wifi use.
* Lots of reviewing.
* Only three issues left on the 9.1.0 milestone.


19:47 @foamyguy
* Merged the PR to change circup to use pyproject.toml, but shortly after it was noticed that the installation was not working if you didn’t already have the requirements installed. Looked into that and found that the dynamic values were not configured properly. After adding the requirements fields to the dynamic configuration it started to work. Now I know to be more diligent about starting my testing from a true empty environment.
* Continued work on circup / wwshell support for the bluetooth workflow
* Blinka Says cardboard game similar to Simon:
   * Designed box art, stuck it on, and made appropriate cuts
   * Assembled the components into the box and wired everything up
   * Coded the basic functionality of the game using asyncio
* Deep Dive stream on Friday


21:52 @Justin
* Started to build out a network test library. Supports: Native, ESP32SPI and WIZNET5K. During the process verified a UDP server bug on ESP32SPI and a new bug with the new feature allowing Core SSL to be used with the WIZNET5K. Check it out here: https://github.com/boxpet/circuitpython_network_tests


23:06 @makermelissa
* Continued working on CircuitPython Code Editor
* Going a slightly different direction than previously by only using the repl for file work on boards that have no USB drive or are mounted with it disabled
* Fixed issues with the Raw Paste mode giving doubled output and refactored REPL JavaScript library for more reliability


23:40 @tannewt
* Wrapping up BLE follow up and ESP32-CX deep sleep support this week.
* Gonna test PSRAM with the imx rt 1011. Poking at imx rt 1060 hardware design.
* Out Friday for camping.
## 25:41 In The Weeds
@jerryn  – there was an issue a week or so ago with circup not being able to update a library that have been converted from a single .py file to a package. Is thai a known issue? Is it worth fixing for such a special case?  This happened with the ov5640 library. See https://forums.adafruit.com/viewtopic.php?t=211168


        @foamyguy - it is known at least: https://github.com/adafruit/circup/issues/100 I do think it’s worth fixing albeit not necessarily urgent or critical.


## Wrap-Up
Next meeting Monday June 17, 2024!
