# CircuitPython Weekly Meeting for November 27, 2023


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


Join here for the chat all week: http://adafru.it/discord.


The CircuitPython Weekly happens normally at 2pm 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 one 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.
## 2:23 Community News
### Raspberry Pi Compute Module 4s Coming Back Into the Retail Channel
Raspberry Pi Compute Module 4 boards have been rather scarce since 2021. Jeff Geerling notes that supplies are easing in line with what Eben Upton predicted ([rpilocator](https://rpilocator.com/?cat=CM4)). Jeff also discusses alternate CM4 form factor boards and the state of the ecosphere - [Jeff Geerling](https://www.jeffgeerling.com/blog/2023/so-you-want-make-raspberry-pi-killer#comments).
### 3:16 A Raspberry Pi 5 Review
A comprehensive review of the Raspberry Pi 5 - [bret.dk](https://bret.dk/raspberry-pi-5-review/).


### 3:30 Limor Fried’s code is often a de facto standard, and now ChatGPT is using it


IEEE Spectrum writes this past week about [Limor Fried](https://spectrum.ieee.org/profile-limor-fried), the founder of Adafruit. The open-source microcontroller driver libraries she writes to interface with devices such as sensors and displays often become de facto standards and are found in many code repositories. Recently, Fried began experimenting with ChatGPT to generate drivers and discovered that the AI was writing in her own particular style - [IEEE Spectrum](https://spectrum.ieee.org/chatgpt-code) and [Adafruit Blog](https://blog.adafruit.com/2023/11/22/limor-frieds-code-is-often-a-de-facto-standard-and-now-chatgpt-is-using-it-adafruit-chatgpt-ai-ieeespectrum-limorfried/).


### 4:59 Newsletter Details
The CircuitPython 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 tag a tweet with #CircuitPython on X (formerly known as Twitter), or email cpnews@adafruit.com.
## 6:02 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:24 Overall
* 16 pull requests merged
  * 12 authors - elpekenin, bill88t, vladak, jessyjones, dhalbert, millercommamatt, dcooperdalrymple, RetiredWizard, jepler, bablokb, leon-anavi, dertobias
  * 5 reviewers - tannewt, jepler, BlitzCityDIY, FoamyGuy, dhalbert
* 11 closed issues by 10 people, 14 opened by 13 people
### 6:40 Core
* 10 pull requests merged
  * 6 authors - bill88t, RetiredWizard, jepler, dcooperdalrymple, jessyjones, dhalbert
  * 3 reviewers - tannewt, dhalbert, jepler
* 21 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 510 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 320 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 280 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 268 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 242 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 192 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 192 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 185 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 158 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 120 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 88 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 55 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8518 (Open 32 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8556 (Open 23 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8628 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/8636 (Open 7 days)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/8649 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/8655 (Open 3 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8656 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8659 (Open 0 days)
* 7 closed issues by 6 people, 4 opened by 4 people
* 658 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 10.0.0: 1 open issues
 * 8.2.x: 2 open issues
 * 9.0.0: 60 open issues
 * 9.x.x: 2 open issues
 * Libraries: 24 open issues
 * Long term: 548 open issues
 * Support: 11 open issues
 * Third-party: 10 open issues
 * 2 issues not assigned a milestone
### 8:32 Libraries
* 6 pull requests merged
  * 6 authors - elpekenin, millercommamatt, bablokb, vladak, leon-anavi, dertobias
  * 2 reviewers - FoamyGuy, BlitzCityDIY
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/174 (Days open: 87)
    * https://github.com/adafruit/Adafruit_CircuitPython_APDS9960/pull/45 (Days open: 15)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/196 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes/pull/67 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_HUSB238/pull/3 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk/pull/35 (Days open: 1)
  * 60 open pull requests (Oldest: 466, Newest: 1)
* 3 closed issues by 3 people, 8 opened by 7 people
  * 692 open issues
  * 19 good first issues
* https://circuitpython.org/contributing
#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 79179 PyPI downloads over 321 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9077
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8330
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2809
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1254
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 819
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 807
  * Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 803
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 799
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 777
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 765
#### Library updates in the last seven days:
* **New Libraries**
  * [elpekenin/circuitpython_toml](https://github.com/elpekenin/circuitpython_toml)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
  * [adafruit/Adafruit_CircuitPython_Display_Shapes](https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes)
  * [cedargrovestudios/circuitpython_chime](https://github.com/cedargrovestudios/circuitpython_chime)
### 12:36 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 5 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 1020 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 780 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/299 (Open 183 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/742 (Open 0 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/327 (Open 0 days)
* 1 closed issues by 1 people, 2 opened by 2 people
* 79 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 16970
* Piwheels Downloads in the last month: 6908
Number of supported boards: 126




## 13:30 Hug reports
13:53 @danh (hosting)
* @jepler for fixing recalcitrant build problems.


14:09 @DJDevon3
* @RimWolf & @Anecdata for helping with an adafruit_requests socket error.
* @Anecdata for more help on the same issue & introducing me to the traceback module.


14:27 @eightycc (text only)
* I’m seeing a huge improvement in fetch-port-submodules on main. It no longer does a bunch of redundant checkouts when I run it on a second port. A big hug to whomever is responsible.


14:54 @foamyguy
* @dexter for testing my circup changes on windows
* @makermelissa for making the Qualia helper library with built-in initialization helpers for the Adafruit stocked displays
* @Jeff for working on Dot Clock Display support in the core
* @Liz for publishing findings and instructions about the current state of CircuitPython development on Android mobile devices.
* @bear on Discord for sharing a stackoverflow link that turned out to contain the exact algorithm I needed at the time, and several other helpful tips and ideas during stream this weekend.
* @bablokb for adding support for Arc’s to the Display Shapes library
* Group hug


16:19 @jepler
* Group hug
* Dan for reviewing some PRs on the week-end


16:48 @kattni
* My folks for everything that went into an amazing dinner last Thursday
* My housemate for helping me with cooking up my two contributions to the meal
* @krayola for fighting the good fight with responsive image processing on the web
* To everyone being super patient with me as I deal with getting everything going
* Group hug


17:39 @Liz
* Group hug


17:47 @makermelissa
* @jepler for addressing an issue with a project while I was out that I had worked on
* Group Hug


18:04 @dexter (listening)
* @danh for the ‘Building CircuitPython’ guide.
* Group hug


18:15 @tannewt
* @imnotjames for asyncio work.
* My partner for doing a ton of work to make for a delicious thanksgiving weekend.
## 18:45 Status Updates
19:22 @danh (hosting)
* Continuing to fix CircuitPython 8.2.x and 9.0.0 milestone issues of various flavors.
* Got ESP32-S3 BLE acting as a central, connecting and talking to a peripheral on 9.0.0. Previously only advertising and scanning as a central were working.
* Improved filenames for non-versioned CircuitPython builds uploaded to S3. In addition to date and commit, they now also include branch (e.g. 8.2.x, main) and PR number (PR1234). This should make it easier to recommend certain interim builds and identify where a build comes from and what it’s for.


21:10 @DJDevon3
* Woke up to temp bans from OpenWeatherMap and AdafruitIO due to a socket error. Used the opportunity to improve temp ban error handling. Spent some time using Mu’s emoji support to make a serial hierarchy visualizer to see where it’s failing in the loop. I’m catching the exception then doing a supervisor.reload which fixes the issue temporarily but it’s not an ideal solution. Haven’t been able to track down what the cause is. Trying to communicate this one in an issue report is difficult because it’s intermittent.
* Submitted PR to update adafruit_requests Twitch API example as there have been some breaking changes with their API. The current example no longer works, the PR should fix that. Also now uses settings.toml with web workflow variables by default.




22:10 @eightycc (text only)
* Will be taking a look at whether or not the Sonoma problem (issue #8449) affects iOS too. Later this week when my lightning to USB adapter arrives. I’m also planning to do some more in-depth tracing to see if >8MB is really a workaround. If it is, I’ve got a method of faking a >8MB filesystem working that I’ll drop as draft pull.
* Continuing work on RP2 _bleio. I’m well into Adapter now.


23:05 @foamyguy
* Short week last week, enjoyed yummy food and time with family and loved ones over Thanksgiving.
* Initial setup and trying out Qualia S3 device with round TFT display. It makes a perfect display to test out and showcase the new Arc functionality in Display Shapes library
* Worked on a fix for Blinka_DisplayIO_PyGameDisplay to make it compatible with the newest versions of Blinka_DisplayIO. I had success getting it to draw the display properly but there are a few remaining issues to solve before it’s ready for publishing. Some issues seem to be related to a race condition between things happening in different threads leading to different behaviors when the same code is run multiple times. I was also able to cut out the dependency on PIL which isn’t used in the same capacity inside of Blinka_DisplayIO, but in my initial attempt at getting this working I retained the usage of thinking it’d make things easier. Ended up finding a way take the raw bytes that come from Blinka_DisplayIO and load them directly into a Surface to display with PyGame.
* Finished up refactoring the Web Workflow support in circup to use Backend classes that manage the interaction with hardware via USB or Web respectively. Fixed an issue that broke circup functionality on Windows and tested fix with Win11.
* Library testing and reviews. Got through a few of the MiniMQTT ones but still have some others lined up to look into and I’ll look out into other libraries when ready for a break from MQTT.


26:09 @jepler
* Belated hug report for everyone who put fixes in circuitpython between 9.0.0-alpha-2 and now; it is much more stable for the code I’ve been working on (camera & httpserver)
* Last week:
   * Finished up some very simple demos for the pycamera including a web interface for changing settings
   * Had a marvelous thanksgiving dinner. my food experiment (pastry wrapped vegetarian “roast”) was a success. Met new people.
   * Made a pair of flash-size-saving PRs to circuitpython & micropython – need to double back and update the circuitpython one based on jimmo’s review comments
* Making the Adafruit_CircuitPython_PyCamera repo public, added to pypi, readthedocs, bundle, etc
* Getting the “web-based camera” demo committed
* The HW this is for is still unreleased, don’t ask when it’ll be out
   * But you can find plenty of teases on adafruit youtube (AaE & random 1-minute videos)
* Getting the scope of adding a jpeg decoder to circuitpython (espressif microcontrollers only probably)
   * And then doing some kind of demo with qualia that this enables
* Really need to tidy my space, I ordered some xmas gifts for myself  over the week-end and they need space


28:17 @kattni
* It took over a week, but I have essentially all of my parts and project kit organised and labeled. I went through something like 140 feet of label tape (there’s waste involved, but there are also a _lot_ of labels). Everything is in compartment bins, regular bins, tool chests, or drawers. Through organising, I also reclaimed a ton of space - all of the regular bins and drawers were full, and now there are 10 empty drawers (out of 36). The final piece is moving frequently used tools to the closer tool chest, and less frequently used ones to the further away one. That is in process, and will probably evolve over time anyway.
* I’ll do a post or series of posts on how I opted to organise everything in case anyone is interested and/or it helps someone.
* Image handling is finally sorted for my blog, and it’s incredibly straightforward to do now. I can do exactly what I wanted, and I’m super excited about it. 
* My first project post on applying acoustic panels to my office door will go out this week. There was enough to it that it turned into a series of posts. The series will go out following the primary post.


30:09 @Liz
* I was out most of last week due to the Thanksgiving holiday. I did however finish assembling the patch bay for the Keystep Pro and I’m happy to say that it is working well. I have the patch bay mounted above my Eurorack modules which makes patching very ergonomical. I did run into a slight issue where I was actually short two PCB’s but luckily my partner has an OtherMill and was able to mill two additional PCB’s for me.
* This week I am documenting the Qualia space clock project. I’m excited to get this guide published finally. Noe has done an excellent job with the enclosure design.


30:57 @makermelissa
* Took some time off for the past week and a half
* Added a bunch of missing board to circuitpython.org beforehand
* Just about caught up on emails and GitHub items
* Will be updating the main Qualia guide with more info
* Will update a bug that Erin and Jeff ran into with the code from my messageboard guide
* Possibly writing up a guide to document the Qualia helper library


31:58 @dexter (listening)
* Missing TonyD. He wrote some great guides.
* Got the unix ‘port’ of CircuitPython working with ChatGPT Code Interpreter.
* Now I can write a function and ask ChatGPT to test it using the CircuitPython interpreter.
* (limited but useful)


32:29 @tannewt
* Here most of the week except Wednesday for a family visit.
* Got a new Framework laptop and it’s working pretty well.
* Getting caught up on chats and emails.
* Looking into web workflow fixes and improvements.
* Hopefully streaming on Friday.
## 34:17 In The Weeds




## 34:20 Wrap-Up
