# CircuitPython Weekly Meeting for November 20, 2023


Hosted by Jepler.


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


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.
## 1:19 Community News
[View the whole newsletter in your browser](https://www.adafruitdaily.com/2023/11/20/python-on-microcontrollers-newsletter-new-circuitpython-versions-ai-and-python-and-much-more-circuitpython-python-micropython-thepsf-raspberry_pi/)

### CircuitPython 9.0.0 Alpha 5 + CircuitPython 8.2.8 released

### GitHub Awards Adafruit’s Limor Fried the Hardware Hacker Award

### Projects & More
#### CircuitPython Animated GIFs on a Matrix Portal 

#### The CircuitPython TouchWheel library – X and GitLab. (bradanlane)


### PyOhio 

PyOhio will be streaming online Saturday December 16th. There will be one CircuitPython talk and 3 PyScript talks in addition to all the other activities – PyOhio.


### 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.
## 4:20 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.**
### 4:42 Overall
* 36 pull requests merged
  * 30 authors - bill88t, how2flow, timonsku, begeistert, RetiredWizard, danybd, rezaalmanda, imnotjames, jposada202020, ocaro, jepler, dhalbert, UnexpectedMaker, fabaff, BlitzCityDIY, evaherrada, eightycc, tannewt, silabs-ChatNguyen, Saentis, luisan00, weblate, oonid, elpekenin, Atalanttore, MisterD66, ckocyigit, v923z, supcik, alextremblay
  * 9 reviewers - bill88t, FoamyGuy, tannewt, makermelissa, jepler, dhalbert, anecdata, BlitzCityDIY, ladyada
* 30 closed issues by 12 people, 14 opened by 13 people


### 5:54 Core
* 30 pull requests merged
  * 28 authors - bill88t, eightycc, tannewt, timonsku, begeistert, silabs-ChatNguyen, RetiredWizard, danybd, rezaalmanda, Saentis, imnotjames, luisan00, weblate, oonid, jposada202020, ocaro, elpekenin, Atalanttore, jepler, dhalbert, UnexpectedMaker, MisterD66, ckocyigit, v923z, fabaff, supcik, alextremblay, evaherrada
  * 5 reviewers - dhalbert, bill88t, anecdata, tannewt, jepler
* 18 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 503 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 313 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 273 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 261 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 235 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 185 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 185 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 178 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 151 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 113 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 81 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 48 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8518 (Open 25 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8556 (Open 16 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8623 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/8629 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8628 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8636 (Open 0 days)
* 25 closed issues by 8 people, 6 opened by 5 people
* 659 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 10.0.0: 1 open issues
 * 8.2.x: 3 open issues
 * 9.0.0: 56 open issues
 * 9.x.x: 2 open issues
 * Libraries: 24 open issues
 * Long term: 552 open issues
 * Support: 11 open issues
 * Third-party: 10 open issues
 * 2 issues not assigned a milestone


### 7:21 Libraries
* 4 pull requests merged
  * 4 authors - RetiredWizard, imnotjames, jepler, BlitzCityDIY
  * 4 reviewers - dhalbert, BlitzCityDIY, ladyada, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/182 (Days open: 11)
    * https://github.com/adafruit/Adafruit_CircuitPython_asyncio/pull/55 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_AD569x/pull/2 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/2 (Days open: 1)
  * 57 open pull requests (Oldest: 459, Newest: 1)
* 4 closed issues by 4 people, 8 opened by 8 people
  * 686 open issues
  * 19 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 115056 PyPI downloads over 321 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9853
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9340
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 3740
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 2076
  * Adafruit CircuitPython LIS3DH (adafruit-circuitpython-lis3dh): 1379
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1099
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1065
  * Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 943
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 909
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 906


#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_asyncio](https://github.com/adafruit/Adafruit_CircuitPython_asyncio)
  * [adafruit/Adafruit_CircuitPython_Wii_Classic](https://github.com/adafruit/Adafruit_CircuitPython_Wii_Classic)
  * [adafruit/Adafruit_CircuitPython_AD569x](https://github.com/adafruit/Adafruit_CircuitPython_AD569x)


### 10:41 Blinka
* 2 pull requests merged
  * 1 authors - how2flow
  * 1 reviewers - makermelissa
* 3 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 1013 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 773 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/299 (Open 176 days)
* 1 closed issues by 1 people, 0 opened by 0 people
* 77 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 14492
* Piwheels Downloads in the last month: 7539
Number of supported boards: 126




## 11:38 Hug reports
@jepler (hosting)
* Group hug
* Hug for @anne – so much stuff in this newsletter
* Cooper Dalrymple (github) for a PR to enhance synthio.
* @bil88t for diving into creating libraries for CircuitPython.
* I’m grateful for some friendships I’ve deepened over the last year, both online and in person


@anecdata (text only)
* @danh for helping me over a conceptual speedbump with asyncio


@carter (text only)
* @danh for quickly helping resolve issue resulting from SPI flash part swap


@CGrover (text only)
* @PaulCutler and @todbot for the latest The CircuitPython Show podcast.
* To the team and community for all the work on v9.0.0.
* As a lifelong learner, I’m thankful for the openness of the maker community that enthusiastically shares and teaches.


13:51 @danh
* @jepler for fixing several translation and build issues that were technical debt.
* Grateful for the community and for a job where I can work directly with the people who use what I do, and where part o the job is to be able to help people.


14:36 @DJDevon3 (text only)
* @Deshipu for helping with an error handler workaround for an intermittent -2 gaierror: “Name or service not found” issue during get requests.
* @Anecdata for a make_a_label function that dramatically cut down on the amount of lines needed for a label heavy TFT project.  Reduced by 94 lines to be exact. Thank you!
* @Elpekenin for refining a time_calc function reducing it by 6 lines.
* @PaulCutler for help with picking out a PSU for the Raspberry Pi 5 though eventually I was able to find an official Pi 5 power supply on Digikey.
* @EdGJr for turning a complicated issue into a simple one by recommending a ribbon cable.
* @FoamyGuy for deep dives on Friday & Saturday. I’m starting to understand the use of self in classes. Always learn something new about Circuit Python library coding watching his streams.


15:38 @eightycc (text only)
* I’m grateful for the shelter from the storm this project and its community offers.


15:46 @foamyguy
* @tannewt for feedback on circup changes and prompting for a refactor
* PaulCutler for new CircuitPython show podcasts
* @vladak for many improvements submitted to MiniMQTT library
* Group hug - Thankful for this community,  the friendships and other social connections that have arisen from it + the endless amounts of creative inspiration and opportunities for learning and problem solving.


16:48 @Liz
* @FoamyGuy for assistance with Android app suggestions for working with CIRCUITPY drives
* Group hug


17:22 @RetiredWizard (Text Only)
* @Makermelissa for keeping circuitpython-org updated with all the cool new boards added to CircuitPython as well as the new Blinka SBCs


17:38 @imnotjames
* @danh (and everyone else that’s helped) for being patient with me learning circuitpython asyncio internals, answering questions (and pointing me towards the original PR for uasyncio in micropython)
* @makermellisa for adding the heltec board pictures to circuitpython-org (and all the other neat new boards!)


18:15 @tannewt
* @jepler for running the meeting for me.
* @danh for all of the releasing.
* I’m thankful that I’ve been able to spend lots of time with my family, especially my mom. Also thankful for Adafruit’s support and the whole CircuitPython community.
## 18:58 Status Updates
19:39 @jepler (hosting)
* Lots of very minor-seeming stuff that ends up taking more time than expected. For instance, some changes I made for how messages are translated continues to have ripples into this week (doh)
* Investigating how to have a web page that serves up images from an OV5640 camera and lets camera settings be adjusted via the same web page.
* We usually have thanksgiving as a potluck, and I find making food for others very rewarding. I’m excited about the dish I’m making this year, a vegan “roast” with gravy. Making good seitan (wheat gluten) protein dishes is something I recently learned/found a good recipe for.


21:19 @CGrover (text only)
* Continued to develop a set of synthio graphic symbols for creating project documentation. The collection builds on Patch Symbols from PATCH & TWEAK, adding synthio objects. Of course, creating the documentation revealed more about synthio than I previously understood, opening new creative design possibilities. Details in the published-but-work-in-progress Playground note.
* Converted the IoT Windchimes code to work on a miniature QT Py ESP32-S2 stack that includes an I2S amplifier and LiPo charger. The smaller package can be more easily hidden inside a garden gnome in my office. Will update the code repo and Playground note in a few days.
* Updated the PCB design for the PCM510xA I2S Stereo DAC to hopefully reduce some of the 1.2MHz boost converter bleedthrough – completely inconsequential in practical use but is a nagging design detail. Looking forward to pasting, assembly, and testing later this week.
* Holiday tradition: Today’s the day the Dutch cakes and chocolate letters arrive for sending to family spread across the continent.


22:29 @danh
* Released CircuitPython 9.0.0-alpha.5 and 8.2.8. 9.0.0-alpha.5 includes Scott’s fixes to split heap storage allocation. 8.2.8 includes alternate 2MB flash chips for a number of boards, including Metro M4 AirLift Lite.
* Fixed and continuing to fix various issues in 8.2.x and main branches.
* Really tested ESP32-S3 BLE as a BLE central. It fails trying to discover services after a connection. It doesn’t appear this ever worked: I tested several 7.x, 8.x, and 9.0.0 builds. Not surprising given that Scott was stalled on this due to nimble issues. May add more caveats to Learn Guides. Not sure if this is worth working on right now.
* Saw some errors copying a lot of files to an S3 board on 9.0.0. Need to reproduce for an issue.
* Lots of reviewing.
* Making cranberry cake as usual. Old recipe from Chattanooga Times: “Batter is Poured over Cranberries”.


25:18 @DJDevon3 (text only)
* I spent an hour trying to intentionally make my Feather Weather script to fail by taking down wifi at different sleep points. After 9 hours it randomly triggered a gaierror and thanks to Deshipu’s error handler he shared it no longer crashes on that specific get request. 4 days later it triggered another gairerror I missed adding an exception for. Added the exception handler and it’s been perfect since. Now I’m confident Feather Weather is almost bulletproof.
* Got a Raspberry Pi 5 4GB. I’m using an external 1TB NVME SSD to USB3 adapter as the boot drive which should get about 60MB/s speed in theory. Then I found out about an M.2 hat using the PCIE bus directly which should achieve much higher speeds vs USB3. Looking forward to diving into Blinka when the USB PD power supply arrives.


26:17 @eightycc (text only)
* Continuing RP2 _bleio work. Got BLE sniffing working with an nRF52840 dongle. Working through CYW43 driver issues. Rationalizing CYW43 configuration including driver, SDK, and BTStack. Hoping to have something at least partly functional late Dec or early Jan.


26:42 @foamyguy
* Wrapped up the learn guide page updates for displayio API 9.x
* Refactoring the proposed web workflow support in circup to split up the interaction with the device via web or USB workflows away from the CLI functions into Backend classes so that they can be used with either type easily. Ultimately it will give us a nice way to add in the BLE workflow to the mix
* Made a scrolling esports fan sign over the weekend with team logos and player names that continually scroll on a Matrix Portal S3
* Test out proposed changes in MiniMQTT library


28:09 @Liz
* I worked on writing up a quick playground note on using a CIRCUITPY drive with an Android device. I also did a quick video to post up on the Adafruit socials about it. Otherwise I’ve been working on a few miscellaneous things before taking a few days off for the Thanksgiving holiday this week.


28:43 @imnotjames
* Added the heltec esp32s3 lora v3 board definition
* Continuing work on tasks in asyncio. Moved the PR to micropython. Found a way to make it work without moving all the error definitions around, too.  Once PR gets a preliminary review from upython will get the PR in circuitpython back open.
* Adding support for other asyncio helpers like `wait`, `queue`, and `timeout`


29:48 @tannewt
* Last week, fixed two major issues introduced in the split PR. Thanks to Dan for releasing new CP with the fixes.
* Getting caught up on email and Discord.
* Mostly out this week.
* Fixing desktop boot today hopefully.

## 31:32 Wrap-Up
