# CircuitPython Weekly Meeting for February 12, 2024


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


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:32 Community News
### 3:17 macOS Sonoma Problem May Be Fixed


[Not in newsletter yet] The macOS Sonoma problem delay-write problem appears to be fixed in macOS 14.4 beta 2. See [the updated blog post](https://blog.adafruit.com/2023/12/05/macos-sonoma-problems-writing-to-circuitpy/).
### 4:44 A Submarine Hunting Game With CircuitPython
For Global Game Jam, Piotr Gaczkowski and his team built a 3D game using a mix of 2D and 3D assets found in their Hackerspace, garages, local trash bins, etc., the perfect embodiment of "one man's trash is another man's treasure." The protagonist is the captain of a nuclear submarine. The vessel is controlled using a discarded washing machine front panel. An oscilloscope acts as a sonar and shows incoming enemies. A 128x64 LED matrix panel acts as a periscope. And there's lots of cardboard for the hull. [X](https://twitter.com/DoomHammerNG/status/1751913265263689752).
### 5:37 How to Fail with CircuitPython
Code can fail as can hardware. Learning how it might fail and what to do can be important, especially if a device running ones code is remote. Adafruit Playground author fede2 looks at how CircuitPython detects failures and how to devise a programmatic method for recovery - [Adafruit Playground](https://adafruit-playground.com/u/fede2/pages/failing-with-circuitpython).
### 6:05 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),.
## 7:05 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:26 Overall
* 25 pull requests merged
  * 17 authors - makermelissa, pythonmcpi, andibing, justmobilize, dhalbert, vladak, kattni, Linkeor, jerryneedell, michalpokusa, janvolck, FoamyGuy, logandgsmith, jepler, tannewt, ladyada, wtuemura
  * 6 reviewers - makermelissa, FoamyGuy, jepler, tannewt, dhalbert, caternuson
* 16 closed issues by 11 people, 17 opened by 12 people


### 8:03 Core
* 12 pull requests merged
  * 8 authors - andibing, justmobilize, kattni, jerryneedell, FoamyGuy, jepler, tannewt, wtuemura
  * 3 reviewers - dhalbert, FoamyGuy, tannewt
* 24 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 587 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 397 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 357 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 345 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 319 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 269 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 262 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 235 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 197 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 165 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 132 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 82 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 62 days)
  * https://github.com/adafruit/circuitpython/pull/8783 (Open 39 days)
  * https://github.com/adafruit/circuitpython/pull/8796 (Open 29 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 28 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8808 (Open 25 days)
  * https://github.com/adafruit/circuitpython/pull/8816 (Open 22 days)
  * https://github.com/adafruit/circuitpython/pull/8820 (Open 20 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8834 (Open 18 days)
  * https://github.com/adafruit/circuitpython/pull/8855 (Open 14 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8898 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8905 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8900 (Open 0 days)
* 10 closed issues by 7 people, 9 opened by 6 people
* 683 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 10.0.0: 2 open issues
 * 8.2.x: 0 open issues
 * 9.0.0: 36 open issues
 * 9.x.x: 12 open issues
 * Libraries: 24 open issues
 * Long term: 582 open issues
 * Support: 13 open issues
 * Third-party: 11 open issues
 * 4 issues not assigned a milestone


### 9:58 Libraries
* 10 pull requests merged
  * 9 authors - pythonmcpi, justmobilize, dhalbert, vladak, Linkeor, michalpokusa, logandgsmith, jepler, ladyada
  * 5 reviewers - FoamyGuy, jepler, tannewt, dhalbert, caternuson
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_seesaw/pull/126 (Days open: 73)
    * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/30 (Days open: 62)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/79 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/26 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/25 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_HID/pull/124 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/80 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_US100/pull/19 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_US100/pull/20 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Typing/pull/35 (Days open: 1)
  * 47 open pull requests (Oldest: 543, Newest: 1)
* 6 closed issues by 6 people, 7 opened by 6 people
  * 737 open issues
  * 19 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 207619 PyPI downloads over 324 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9237
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8657
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2456
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1929
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1914
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1766
  * Adafruit CircuitPython HTTPServer (adafruit-circuitpython-httpserver): 1761
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1703
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1568
  * Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1564


#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_US100](https://github.com/adafruit/Adafruit_CircuitPython_US100)
  * [adafruit/Adafruit_CircuitPython_HTTPServer](https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer)
  * [adafruit/Adafruit_CircuitPython_BitbangIO](https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO)
  * [adafruit/Adafruit_CircuitPython_Requests](https://github.com/adafruit/Adafruit_CircuitPython_Requests)
  * [furbrain/CircuitPython_mag_cal](https://github.com/furbrain/CircuitPython_mag_cal)


### 15:19 Blinka
* 3 pull requests merged
  * 2 authors - makermelissa, janvolck
  * 2 reviewers - dhalbert, makermelissa
* 6 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 857 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/65 (Open 75 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 68 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 45 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 45 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/773 (Open 35 days)
* 0 closed issues by 0 people, 1 opened by 1 people
* 82 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 15022
* Piwheels Downloads in the last month: 11107
Number of supported boards: 129




## 16:17 Hug reports


16:38 @danh (hosting)
* @romkey and @eightycc for re-testing the latest macOS Sonoma beta and finding out it’s fixed the delayed-write problem.
* @jerryn for diagnosing why Espressif ESP32-S3 Eye camera board stopped working and PR’ing a fix.
* @kattni for redoing the Pimoroni Inky Frame 7.3in PR.
* @Justin for doing a cascading set of PR’s that clean up typing and prepare for Justin’s ConnectionManager.
* @tannewt for another catch-up meeting.


18:04 @ CGrover (text only)
* @JohnPark for the Faderwave project. The design was perfect for creating a physical testbed to create synthio wave tables and envelopes using Fourier series overtones.


18:20 @DJDevon3
* @FoamyGuy, @Jepler, & @kmatch98 who 3 years ago added a wrap_text_to_pixels function in adafruit_display_text. I had a need to use word wrapped text in a displayio project. I went back in adafruit_display_text GIT history to find out who made that function to thank them. It made my display project much easier.  As you can see from the function, word wrapping text from scratch is not a trivial issue.
* @Jepler for an example in a github issue related to SPI bus sharing with sdcardio. I was able to use 6 less GPIO pins on a new PCB design. Thank you for the lesson on SPI bus sharing. 
* @Justin for the work you’re putting into ConnectionManager. Having a consistent method for socket use is highly desirable and you’ve made some neat infrastructure improvements along the way. It’s been enjoyable seeing your progress updates and engaging with the community.
* @DanH and for updating a lot of display drivers that use FourWire to be both 8.x & 9.x compatible using try/except on the import. The examples help with transitioning to 9.x nicely.
* @CGrover for his touch calibration code. It helped make writing a touch driver easier.


20:10 @eightycc
* Hugs to @danh and @tannewt for always being there with exactly the incisive responses I’ve needed to make progress on BLE for RP2.
* Hugs to @danh, @romkey, @czei, @todbot, and all the other wonderful folks that have contributed to solving the MacOS Sonoma bug (#8449). It was Apple’s bug to fix, but I think our analysis and reports gave them the prod to fix it.


21:11 @foamyguy
* @tannewt for working on SD card visibility via webworkflow. It’s very convenient compared to unplugging the SD card and using an adapter to view and copy files from it.
* @jepler for working on jpegio, it’s really nice to have support for a new image format with displayio
* @Justin and @DJDevon3 for helping folks on discord


22:00 @jepler (missing meeting)
* Todbot & JP, thanks for lunch and chat while I was visiting LA


22:12 @jerryn
* Group hug – thanks for letting me play.


22:25 @Justin
* @tannewt for helping move ConnectionManager along
* @tannewt for pointing me to an issue I could possibly help with
* @danh and @jepler for helping me work through said issue


23:10 @makermelissa
* All the folks watching the MacOS CircuitPython compatibility. I’ve been waiting to upgrade because of the issue.
* Group Hug


23:28 @tannewt
* @Justin for helping folks on Discord, looking into Python typing stuff and working on ConnectionManager
* @romkey for testing the latest Mac OS.
* ESP_Sprite for getting back to me on the ESP32 forum.
* @jerryn for 9.0 testing
* @fede2 for the “failing with circuitpython” adafruit playground post.
## 24:27 Status Updates


24:55 @danh((hosting)
* * As mentioned, macOS Sonoma 14.4 Beta 2 seems to fix the delayed-write issue which was plaguing any use of CIRCUITPY drives on macOS. We hope this fix sticks and will continue to test. 14.4 final will probably come out in March.
* Shepherded various PR’s and bug investigations.
* I would like to do a 9.0.0-beta.1 but would want to have the post beta.0 socket problem fixed first.


26:18 @DJDevon3
* Received my ST7796S (SPI TFT) Feather Adapter prototype PCB’s this week.
   * The adapter basically turns an ST7796S display into a TFT Featherwing. Only made 1 mistake during trace routing and have already fixed it in the 1.1 revision. Adafruit doesn’t use this specific display so had to write a Circuit Python display driver for it. As a display demonstration I’m updating a word-wrapped label to display the introduction of Hitchhiker's Guide to the Galaxy. 
   * Have successfully tested the built-in SD Card reader with sdcardio. 
   * Successfully adapted and updated a Circuit Python XPT2046 touch controller driver written by Github user @Derrick McMillen (based on a driver by user rDagger for MicroPython).
   * Added CGrovers min/max calibrator to the touch driver. 
   * This morning I got the touch driver working and drew on the resistive display with a stylus. Still working on improving the touch detection with display rotation. I’m over the moon happy today. Success!


28:02 @eightycc
* Confirmed by tracing that Apple has fixed the Sonoma bug (#8449) that has been plaguing us for the last several months.
* Continuing work on _bleio for RP2. Scanning and advertising now work and overall stability is improving by the build. This week I’m digging into timer problems that seem to stem from assumptions in the Pico SDK about how BTstack is plumbed in and used. I’ve already bypassed most of the BTstack init in the SDK and will likely have to bypass the rest. 


28:46 @foamyguy
* Finished up USB Host Keyboard Text Editor guide and published. Have a few features in mind to pick it back up after a while and attempt.
* Starting to write some prototype code for next project which will be photo frame overlays with the MOMENTO. Similar to photo booth type devices. It’s been a fun challenge diving deeper into image processing and different Colorspaces and the ColorConverter class. 
   * Modifications to adafruit_bitmapsaver to allow it to work with ColorConverter instead of only Palette
   * Trying to get all 3 of: jpegs decoding, bitmaptools operations, and bitmapsaver exporting to play nicely together and output everything in the correct colors. Getting close, but not correct yet. Might look into adding functionality to change the output_colorspace for ColorConverter?


31:04 @jepler (missing meeting)
* Did  some “posix port" work during downtime on vacation
* Getting back Tuesday, will figure out what to work on then


31:25 @jerryn
* Experimenting with various camera support (Memento, esp32s3_eye, metro_esp32s3)
   * Mixed results but making progress… much to learn.
* Stumbling upon some 9.0 issues - trying to open coherent issues.
* Proud of myself for actually being able to remember how to submit a PR to the core! It was a one line rather trivial change, but it was nice to see all the pieces work!


32:39 @Justin
* Learned a lot about the existing typing libraries and cut almost 1 kb from ConnectionManager (could also be pulled from Requests if we want it freed sooner)
* Forward progress on ConnectionManager. Got the repo moved from my account to Adafruit’s along with an initial review. Started adding tests and found some reconnect logic that's subpar. Working through cleaning that up which is really digging deep into both Requests and MiniMQTT
* Opened a PR to MiniMQTT to simplify socket connect, so some retry logic can be simplified in ConnectionManager


34:29 @makermelissa
* Working on getting the Snake Eyes Bonnet working with newer Raspberry Pis.
* I updated the Python code to use Blinka, which runs now as HDMI only.
* Currently working on updating the FrameBuffer c code. I have it compiling with 64-bit and outputting to the TFT Displays.


34:57 @tannewt
* Still working on RMT, PCNT and TIMER API updates. Testing them now. ProtoMatter updates were merged in already.
* Will spend a day this week testing ESP + NeoPixels.
* Moving to busio testing on iMX RT and updating implementer’s guide to match.
* Folks are having some troubles with ESP-S2 and https connections so I may look at that too.
## 37:19 In The Weeds
@danh
* We have space issues on ESP32-S3 boards with 4MB flash. For instance, gifio is not enabled on Feather TFT boards. The firmware and OTA partitions are each 1.4MB. We plan to turn off BLE on 4MB boards because of this, and because BLE is not working all that well.
   * Anecdata: re: ESP32-S3 boards with 4MB flash ...this will become more acute over time ...how many people use OTA? ...consider for CP 10 to remove OTA by default, and expand both firmware and user filesystem?


47:07 @Jerryn
* Have you considered adding a “CircuitPython py” folder to the project bundles in the learn guides?  Now it creates an 8.x and 9.x with .mpy files, but does anyone else like to have the .py files? Not worth a lot of effort, but if it is just adding a line to a script, it would be nice to have.
   * Also may want to consider if adafruit_busdevice needs to be in all the generated zip folders.


## Wrap-Up
Next week’s meeting will be on **Tuesday**, February 20, due to a US holiday on Monday.
