# CircuitPython Weekly Meeting for December 11, 2023


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!


Tim is hosting.


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


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.
## 03:10 Community News


# 03:14 CircuitPython 8.2.9 Released
CircuitPython 8.2.9 is the latest bugfix revision of CircuitPython and is a new stable release - Adafruit Blog and GitHub.
Notable changes to 8.2.9 since 8.2.8
* PIO DMA fix for RP2040.
* New and removed boards.
* Individual board fixes.


# 03:49 Raspberry Pi Releases the HAT+ Standard and More on PCIe
Two months after the announcement of the Raspberry Pi 5, additional details have been released on the hardware. Specifications on the PCIe connector and required cabling will help hardware developers adhere to hardware specifications. In addition, the new HAT+ specification updates the 2014 HAT standard for signaling between peripherals and computer - Raspberry Pi News.


# 04:33 The First Raspberry Pi OS Update Since Pi 5 Adds Features
Raspberry Pi OS has now been updated to fix bugs since the launch of the initial Bookworm version. The update includes improved support for encrypted connections in WayVNC; the latest version of Thonny; Mathematica and Scratch 3 working on Raspberry Pi 5; and a bunch of other small bug fixes and tweaks. And finally, an often requested feature: Dark Mode - Raspberry Pi News and The Register.


# 05:17 Project of the Week: A CircuitPython-Powered Typewriter
Max Lupo writes about a CircuitPython powered typewriter project. The project uses an Adafruit KB2040 board to send parallel data to the vintage electronic typewriter via its Centronics (parallel) port - Mastodon.
### 06:03 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),.
## 06:52 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.**
### 07:20 Overall
* 43 pull requests merged
  * 14 authors - FoamyGuy, jepler, hexthat, weblate, bablokb, BlitzCityDIY, dhalbert, deepserket, bill88t, how2flow, makermelissa, maewolfsky, KingPharoo, noqman
  * 7 reviewers - FoamyGuy, jepler, BlitzCityDIY, dhalbert, makermelissa, tannewt, TheKitty
* 9 closed issues by 8 people, 18 opened by 13 people


### 08:33 Core
* 10 pull requests merged
  * 8 authors - hexthat, jepler, weblate, dhalbert, deepserket, bill88t, maewolfsky, noqman
  * 4 reviewers - dhalbert, jepler, makermelissa, tannewt
* 15 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 524 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 334 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 294 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 282 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 256 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 206 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 206 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 199 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 172 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 134 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 102 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 69 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8518 (Open 46 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 19 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8699 (Open 5 days) (draft)
* 4 closed issues by 3 people, 6 opened by 4 people
* 666 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 10.0.0: 2 open issues
 * 8.2.x: 1 open issues
 * 9.0.0: 42 open issues
 * 9.x.x: 7 open issues
 * Libraries: 23 open issues
 * Long term: 565 open issues
 * Support: 14 open issues
 * Third-party: 10 open issues
 * 4 issues not assigned a milestone


### 09:58 Libraries (Jepler will read)
* 30 pull requests merged
  * 5 authors - FoamyGuy, jepler, bablokb, BlitzCityDIY, makermelissa
  * 7 reviewers - tannewt, FoamyGuy, jepler, BlitzCityDIY, dhalbert, TheKitty, makermelissa
  * Merged pull requests:
        * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/446 (Days open: 5)
        * https://github.com/adafruit/Adafruit_CircuitPython_FXOS8700/pull/32 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_AS7341/pull/39 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_DHT/pull/95 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_FONA/pull/31 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_INA260/pull/28 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/158 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_PCF8591/pull/13 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/29 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_BLE_Eddystone/pull/22 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_VL53L4CD/pull/14 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_BusDevice/pull/96 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_framebuf/pull/58 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_LIFX/pull/23 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/111 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_FXAS21002C/pull/32 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_BitmapSaver/pull/32 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_PCF8523/pull/32 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/78 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_OV5640/pull/25 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_Ducky/pull/16 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_GPS/pull/106 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/4 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_RFM69/pull/49 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_Qualia/pull/2 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_FT5336/pull/1 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/66 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/448 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/447 (Days open: 1)
        * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/201 (Days open: 1)
  * 63 open pull requests (Oldest: 480, Newest: 1)
* 2 closed issues by 2 people, 11 opened by 8 people
  * 698 open issues
  * 19 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 174923 PyPI downloads over 323 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 14583
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 14153
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 4758
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1536
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1480
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1375
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1370
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1364
  * Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 1343
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1260


#### Library updates in the last seven days:
* **New Libraries**
  * [adafruit/Adafruit_CircuitPython_PyCamera](https://github.com/adafruit/Adafruit_CircuitPython_PyCamera)
  * [bablokb/circuitpython-segment-display](https://github.com/bablokb/circuitpython-segment-display)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_FT5336](https://github.com/adafruit/Adafruit_CircuitPython_FT5336)
  * [adafruit/Adafruit_CircuitPython_WSGI](https://github.com/adafruit/Adafruit_CircuitPython_WSGI)
  * [adafruit/Adafruit_CircuitPython_RGB_Display](https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display)
  * [adafruit/Adafruit_CircuitPython_Qualia](https://github.com/adafruit/Adafruit_CircuitPython_Qualia)
  * [rgrizzell/CircuitPython_LILYGO_T-Deck](https://github.com/rgrizzell/CircuitPython_LILYGO_T-Deck)


### 13:41 Blinka
* 3 pull requests merged
  * 2 authors - how2flow, KingPharoo
  * 1 reviewers - makermelissa
* 7 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 1034 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 794 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/299 (Open 197 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/65 (Open 12 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 5 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/751 (Open 3 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/333 (Open 3 days)
* 3 closed issues by 3 people, 1 opened by 1 people
* 80 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 19629
* Piwheels Downloads in the last month: 8690
Number of supported boards: 126


## 14:34 Hug reports


14:58 @foamyguy (hosting)
* @tannewt for reviewing the PRs that came as manual followups to the patch
* @jepler for making a repo settings fix and documenting it in an FAQ on the relevant learn guide page
* @danh and @jepler for discussion and advice on a handful of infrastructure issues today in discord


15:29 @danh
* @jepler for JPEG support.
* @tannewt for WiFi workflow improvements, including (in process) access to SD cards.


16:06 @david.glaude (text only)
* To Ann for cleaning the root of https://github.com/adafruit/Adafruit_Learning_System_Guides.
* To Scott for the deep dive and working on wireless SD card access that will help the release of the "My Little Hacker" board.
* To FoamyGuy as I frequently see library activity during the week-end, reminding me that a streaming took place.


17:01 @DJDevon3 
* Deshipu for advice on displayio.fourwire syntax changes in 9.0 to busdisplay.  If 9.0 is going to have breaking changes then might as well break everything all at once. It’s a good decision.
* @Justin, @Elepkenin, and @Anecdata for being helpful in the help-with-circuitpython discord channel. On many occasions they’ve all provided advice to point me in the right direction.
* @Tannewt for a nice deep dive on Friday. Best wishes to you and your family.
* @Todbot for an excellent Tips & Tricks repo that I’m constantly referring to or an internet search inevitably leads me to in order to solve a problem. The more it grows the more helpful of an excellent resource it becomes.
* @lcmcninch on Github for fixing an adafruit_spritebutton example that was slowing down my GUI menu system


18:05 @jepler
* @anne_engineer you have leveled up in your git and are now ready to do command line tasks to help others out. So awesome!
* @danh thanks for releasing our steady improvements to 8.2.x
* Authors of uvtools & prusaslicer
* Group hug


18:44 @kmatch (text only)
* @ladyada and likely @jepler for the Memento camera board, bringing a new way to remember without the need for so many tattoos (a reference to movie of the same name)
* Hugs to all!


19:05 @Liz
* @Melissa for reviewing the FT5336 library
* @jepler for hosting this meeting for me last week when i was under the weather
* Group hug


19:20 @makermelissa
* @jepler for fixing an issue with the 3.7” bar display in CircuitPython
* Group Hug


@Mark[gamblor21] (text only / lurking)
* @JohnPark for the lego lighting tutorial. I’d been looking for a good solution to doing that for a year.
* Group hug to everyone. Miss being around as much.


20:01 @tannewt
* @foamyguy for sharing deep dive with me.
## 20:20 Status Updates
20:49 @foamyguy (hosting)
* Ran Library patch with adabot for RTD build fix and followed up on all libraries in which it didn’t “take” automatically for one reason or another
* Ran the release sweep with adabot to make a new release with the patched fix. Followed up on the smaller list of ones that didn’t go automatically. Fixed a few issues unrelated to the original patch in some of the ones that the failed release uncovered
* Trying to wrap up circup web workflow refactoring
* Try out SDCard support in web workflow
* Outside CircuitPython: Still keeping up with Advent of Code and THM Advent of Cyber. Having fun and learning lots while completing the daily challenges.


22:23 @danh
* Getting ready for a 9.0.0-alpha.6 release.
* Blogged the macOS Sonoma delayed-write problems on the Adafruit blog, and reposted on Mastodon. Got some traction: a dozen or so boosts, etc.
* Wrote a summary of which USB-serial converter chips are supported starting in which macOS releases, after rolling back the OS on two different old Macs: https://adafruit-playground.com/u/danhalbert/pages/macos-built-in-support-for-usb-serial-chips
* Working on 9.0.0 issues.


24:09 @david.glaude (text only)
* CP weeks ago: I tested the BTHome protocol with code using _bleio with code from Koen Vervloesem. => See "in the weeds"
* CP this week: Investigating why my doorbell music started at least twice (in a week) without anybody pressing the button (only the CP board triggered) and investigating the debouncing option to see if it could reduce false positive triggers.
* Non CP (Arduino):
   * Spending 6 hours helping a student prepare for an exam and find a project to build.
   * The project is a school traffic light that stops car traffic at the press of a button. Include beeps for additional accessibility.
   * Reviewed one more time Pull-Up, Pull-Down and internal Pull-Up in order to explain the various way to do button.
   * Tested the code and made nice schematic in the simulator at https://wokwi.com/


25:41 @DJDevon3 
* A GUI Touch version of Feather Weather is coming along nicely.  At one point it was at 1700 lines using if/else statements. After a week of frustration I got every page working. Refactored it down with functions to just under 1000 lines. Circuit Python Touch GUI’s are more complex than I imagined.
* Ran into a problem not being able to display wifi.radio RSSI on the TFT easily.  There are plenty of examples for printing it to REPL but I could not find a single example of how to display it on a TFT. With the help of OpenAI and an hour of teaching it syntax it finally led me to something that worked.  It has displayio group appending issues I’m still sorting out but it functions ok.
* This morning I was able to increase GUI menu responsiveness to be very fast thanks to Github user lcmcninch who spotted a way to improve the Adafruit_Button example code.
* Found a new bug last minute by Lindahl Engineering where the ESP32-S3 Rev TFT will not display due to an attribute error.  Neither display.show or root_group work.  Will file a bug report shortly.


27:15 @jepler
* Ran into a weird problem with just ONE OV5640 camera module. Artifacts appeared in JPEG output only and would not have been seen with the in-house testing process. So I helped write a test for this kind of defect that may end up being part of the adafruit in-factory testing procedure for ov5640 cameras.
* Jpegio is merged to main, so next pre-release will have it available on as many boards as it fit
* Espressif dot clock framebuffer had a hidden requirement that the framebuffer be a multiple of 16 pixels across (32 bytes), but we had a display that needed 360 pixels. So internally the size is rounded up now and a non-display part is added at the right side. That makes this display internally 368 pixels wide, which works fine.
* Next up:
   * Making a learn guide with qualia & jpegio – it’ll be a retread of an existing image guide but not going via adafruit IO to decode the image
   * Checking up tomorrow to see if the bundle correctly releases with binary files. I had merged the needed change into circuitpython-build-tools but not done a release, so the bundle didn’t use the new facility
* Daydreaming:
   * Now that we can release binary files in bundles, it’d be cool to have a “fonts bundle”. Neradoc has shown how to generate a bunch of libraries and release them as a bundle (keyboard layouts); let’s generate bitmap fonts from open source ttf fonts in a range of sizes and put them in a bundle. So you can `circup install adafruit-font-mono-bold-24` and then `from font_mono_bold24 import FontMonoBold24`, a ready to use Font object…
* Other:
   * Resin printing makes cool results but when everyone tells you the chemicals are nasty and smelly and consider not doing it? They’re right. My ability to actually use the resin printer on days I can’t just open the doors & windows of my house is very limited because it really does create a lingering odor, and slowly doing respiratory damage to yourself and your household is a terrible idea.
   * It’s possible, but cumbersome, to slice files for Elegoo Mars 3 Pro with Prusaslicer & UVtools, avoiding the proprietary chitubox software.
   * I released a terminal-based 2-factor authentication app, [textual-totp](https://github.com/jepler/textual-totp). It does the same function as the google authenticator app. Textual has made it fun to develop terminal-based applications again.


33:49 @makermelissa
* Finished my qualia library guide
* Did a huge refactor on circuitpython.org that required editing every board files that multiple URLs could be associated
* Added missing boards to circuitpython.org
* Fixed the boards api so that valid JSON is now produced
* Added Bar Displays to Qualia Library
* Tested some bug fixes in CircuitPython
* Reviewed/Merged some more Blinka PRs
* Added 2.8” Round Display to Qualia Guide
* Need to add some of the new displays to the Arduino Section of the Qualia guide
* Need to work on updating some of the Raspberry Pi Installer Scripts


35:05 @tannewt
* Folks are at my house and likely will be until my mom goes into hospice.
* Draft PR for SD card support in web workflow. Refactoring to have per-filesystem locking and BLE SD card support. USB will lock when used.
* Catching up on email.
* My last stream of the year was last week. This week Tim is deep diving and then no deep dive for two weeks.
## 37:47 In The Weeds


38:15 @foamyguy
https://gist.github.com/jepler/64b302125bce317ad93e108aa796984f


This a list compiled of all remaining issues and the repos with different branch protection settings that came out of the patch and subsequent release sweep. As far as I can tell all of these will need to be addressed by someone with settings access to the repos. 


41:59 @david.glaude (text only) [ To Tim, you can just read the TL;DR: the long version was a message to Dan in Discord ]
* TL;DR:
A Belgian book author about Bluetooth on microcontrollers used _bleio in CP because he had trouble with the BLE documentation.
Maybe someone can check if it is possible to do it without _bleio or contact the author to see what can be improved in doc.
* Long version:
I found CP code (https://github.com/koenvervloesem/BTHome-Inertial-Sensor-in-CircuitPython) to implement BTHome protocol (v2 unencrypted) and communicate in Bluetooth with Home Assistant.
The example is on a XIAO, but should be easy to adapt for Adafruit nRF boards with build in sensor such as CLUE or Feather Bluefruit Sense.
However the author, Koen Vervloesem, explain the following way that he is using _bleio:
Note that this code uses CircuitPython's low-level BLE module _bleio, which is meant for internal use according to its documentation. The code has been tested with CircuitPython 8.0.2, but _bleio's API can change at any time. I decided to use _bleio instead of adafruit_ble because the latter's documentation was unclear.
I was wondering if you could have a look if it can be implemented with adafruit_ble or if the API is missing something that force the use of _bleio?
And maybe it is important to receive this message about the documentation of adafruit_ble, Koen is also the author of books on BLE, so I find it strange he could not find his way with the documentation...
The code was written for 8.0.2 but I tested both on 8.2.8 and 9.0.0-alpha.5 and it seems to work fine (I still need to setup a Home Assistant, but with a BLE scanner = “my smart doorbell” I get the advertisement).


43:42 @danh - anything PR’s left before 9.0.0-alpha.6?
## 45:56 Wrap-Up
Next week’s meeting is Monday December 18, 2023. It’s the last meeting of the year. The subsequent meeting will be *tuesday* January 2, 2024.