# CircuitPython Weekly Meeting for December 4, 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!


jepler is hosting.


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


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.
## 3:14 Community News
### Eben Upton Hints at an RP2040 Successor, Promises a Raspberry Pi Compute Module 5 in 2024


  

Eben Upton hints at an RP2040 successor, promises a Raspberry Pi Compute Module 5 in 2024 - [hackster.io](https://www.hackster.io/news/eben-upton-hints-at-an-rp2040-successor-promises-a-raspberry-pi-compute-module-5-in-2024-ec331994aca3).


> "We know what people don't like [and] what people do like," Upton says, "and we have a chip team."
## NanoPy - A New Python for Programming Microcontrollers


  



Oxon AG in Switzerland has renamed OxoPy to NanoPy and are touting it to program microcontrollers - [NanoPy](https://nanopy.io/en/).
> NanoPy is a simple and clear scripting language that both beginners and experienced users can quickly get to grips with. It is used in microcontroller projects, for example for smarthomes, educational and gaming computers or automation and robotics projects. NanoPy masters the well-known Python style or can be programmed even more simply, in a more compact form without colons and with fewer brackets.
### 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),.
## 6:00 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


* 35 pull requests merged
  * 20 authors - mrangen, TristanWarder, Uberi, AdamCummick, jepler, tannewt, wisdpi, vladak, dhalbert, henriclinden, KingPharoo, rgrizzell, makermelissa, DJDevon3, noqman, weblate, Barbarian-5215, wtuemura, bill88t, jerryneedell
  * 7 reviewers - tannewt, dhalbert, makermelissa, brentru, jepler, FoamyGuy, bill88t
* 28 closed issues by 10 people, 22 opened by 19 people


### 7:36 Core
* 18 pull requests merged
  * 11 authors - tannewt, mrangen, wisdpi, henriclinden, dhalbert, AdamCummick, noqman, weblate, jepler, wtuemura, bill88t
  * 5 reviewers - tannewt, jepler, dhalbert, bill88t, makermelissa
* 18 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 517 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 327 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 287 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 275 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 249 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 199 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 199 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 192 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 165 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 127 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 95 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 62 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8518 (Open 39 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8556 (Open 30 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8628 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 12 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8673 (Open 4 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8687 (Open 0 days)
* 12 closed issues by 5 people, 13 opened by 10 people
* 662 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: 41 open issues
 * 9.x.x: 7 open issues
 * Libraries: 23 open issues
 * Long term: 563 open issues
 * Support: 14 open issues
 * Third-party: 10 open issues
 * 3 issues not assigned a milestone


### 9:56 Libraries
* 14 pull requests merged
  * 9 authors - TristanWarder, vladak, dhalbert, Uberi, rgrizzell, makermelissa, DJDevon3, jepler, jerryneedell
  * 6 reviewers - tannewt, makermelissa, jepler, dhalbert, FoamyGuy, brentru
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/140 (Days open: 122)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/182 (Days open: 27)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/183 (Days open: 20)
    * https://github.com/adafruit/Adafruit_CircuitPython_RFM69/pull/48 (Days open: 10)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/186 (Days open: 9)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/3 (Days open: 7)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/188 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing/pull/81 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/pull/118 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_HID/pull/122 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Colorsys/pull/29 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/200 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/199 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/198 (Days open: 1)
  * 57 open pull requests (Oldest: 473, Newest: 1)
* 12 closed issues by 7 people, 7 opened by 7 people
  * 688 open issues
  * 19 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 114613 PyPI downloads over 321 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9359
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8514
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2809
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1464
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1367
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1160
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1130
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 995
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 982
  * Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 939


#### Library updates in the last seven days:
* **New Libraries**
  * [rgrizzell/CircuitPython_LILYGO_T-Deck](https://github.com/rgrizzell/CircuitPython_LILYGO_T-Deck)
  * [facts-engineering/CircuitPython_p1am_200_helpers](https://github.com/facts-engineering/CircuitPython_p1am_200_helpers)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
  * [adafruit/Adafruit_CircuitPython_FeatherWing](https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing)
  * [adafruit/Adafruit_CircuitPython_HID](https://github.com/adafruit/Adafruit_CircuitPython_HID)
  * [cedargrovestudios/circuitpython_temperaturetools](https://github.com/cedargrovestudios/circuitpython_temperaturetools)
  * [elpekenin/circuitpython_toml](https://github.com/elpekenin/circuitpython_toml)
  * [CedarGroveStudios/CircuitPython_NAU7802](https://github.com/CedarGroveStudios/CircuitPython_NAU7802)


### 14:20 Blinka
* 3 pull requests merged
  * 2 authors - Barbarian-5215, KingPharoo
  * 1 reviewers - makermelissa
* 7 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 1027 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 787 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/299 (Open 190 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/743 (Open 6 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/65 (Open 5 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/746 (Open 3 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/330 (Open 3 days)
* 4 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: 13921
* Piwheels Downloads in the last month: 7679
Number of supported boards: 126




## 15:05 Hug reports
@jepler (host)
* Group hug
* Thanks Dan & Scott for organizing the 9.0.0 bug list
* Kattni, thanks for chatting last week, appreciate you staying in touch!


15:58 @danh
* @tannewt for noticing that ESP-IDF 5.1.2 has dynamic services for BLE.
* @kattni for catchup conversation.
* @eightycc for further instrumentation showing details of what macOS Sonoma is doing when it delays writes.
* @tannewt and @jepler for 8.2.x and 9.0.0 issue triage meeting.


17:03 @DJDevon3
* @Anecdata & @Justin for helping to troubleshoot an adafruit_requests issue.
* @FoamyGuy for reviewing some PR’s
* @Vladek for reviewing a PR with some good feedback on changes.


17:27 @David.Glaude (not present)
* Group Hug


17:34 @foamyguy
* @DJDevon3 for helping many people in Discord
* @Dexter for testing and reviewing circup PR
* Group Hug


17:57 @makermelissa
* @jepler for a nice chat to catch up
* Group Hug


18:14 @tannewt
* @jepler for filling in for me and Liz recently for meetings.
* @jepler and @danh for 9.0 issue prioritization. 
* @foamyguy for web workflow support in circup and library wrangling.
* @makermelissa for all of the Pi 5 work and support


18:52 @todbot (text only, not here)
* Group Hug, thanks everyone for making CirPy such a nice platform, it’s so much more rational that others I use
* @tannewt for `usb_host` on RP2040 and `adafruit_usb_host_midi`. It’s a great start to what will be huge for reusing all these cheap USB MIDI controllers as UI devices for projects
## 19:27 Status Updates


@jepler (host)
* Circuitpython-build-tools: added support for bundling arbitrary files with packages (libraries with a directory structure). This relies on metadata in pyproject.toml that was never checked before. I have made a list of all libs that don’t work right–it’s mostly in community bundle. Have a blacklist fix so that this does not hold back incorporating the PR.
* Need to make one last check that the bundle contents match from before & after my changes
* Pycam circuitpython library: 
   * Re-organize so that we can ship the firmware bin file with the lib, not with the example
   * Added “GBOY” mode which displays and saves dithered screen-resolution GIF files
   * Still TODO: add to bundle. Add to pypi. Add to readthedocs
* Jpegio: started skeleton implementation of JpegDecoder. It will take a jpeg from a memory buffer and output into an RGB565 Bitmap in memory
* Personal: I got a resin 3d printer (Elegoo Mars 3 Pro, which is actually quite entry level).
   * Some initial success printing keycaps
   * But a series of disappointments since then
   * Dealing with uncured resin, which is basically hazardous waste, is a chore.


23:49 @danh
* Working on 8.2.x and 9.0.0 bugs. We had a triage meeting and we all have more direction about what to work on and hints of what might be wrong.
* Will make new releases sometime fairly soon. 


24:49 @DJDevon3
* Spent an entire week troubleshooting an issue with adafruit_requests running out of sockets. Ultimately ended up being a self-inflicted wound using .Session() inside the main loop which will absolutely lead to Out of Sockets errors.
* Started adding some touchscreen GUI features to my feather weather project using the  adafruit_button library and displayio. Instead of sleeping for 15 minutes it’s doing something productive during that time by scanning for touchscreen presses. I hope to build a menu system capable of changing the SSID and Password using only the touchscreen.  
* Submitted a couple PR’s that were approved and merged.  The updated Twitch API example for adafruit_requests has already helped 1 person in Discord after Twitch’s recent API breaking changes. If you attempt to use their old API you’ll be greeted with a JSON message that simply says “Gone”. The change breaks at least 2 Adafruit learn guides for “Live on Air” projects using the Twitch API.


26:38 @David.Glaude (not present)
* Weeks of Doorbell related activity (Non CP part):
   * Modified a wireless doorbell by soldering “bodge wire” to the button PCB in order to “press” the button from a relay.
   * Acquired a “made for ESPHome” Smart doorbell: https://github.com/zuidwijk/esphome-doorbell
      * Installed Home Assistant and ESPHome add-on
      * With ESPHome in a few click you go from a YAML file describing the hardware, logic, wifi, … to flashing the firmware. => a bit like CI/CD, IoT infrastructure as code.
      * Changed the YAML file to make a doorbell with 10 seconds of delay between button press and activation.
      * Notice ESPHome device can work standalone (my case), with Home Assistant protocol or MQTT (Adafruit IO?).
* CP part of the doorbell project:
   * Doorbell song: Turn a “Feather RP2040 Prop-Maker” into a Xmas song doorbell (GPIO activated by an external relay, but it could be your doorbell button) https://gist.github.com/dglaude/0ad2d2bb37798f4c83ba471b3aac7ea4
   * Could I run CircuitPython on the Smart Doorbell v3??? It is using a ESP32 WROOM:  https://www.zuidwijk.com/product/smart-doorbell/


Final result:
   * A visitor press the doorbell button and activate a relay that close 3 circuits:
      * The Xmas wav file start playing on the Prop-Maker (CP code reading the external button GPIO)
      * Button from the wireless doorbell is pressed (bodge wire) triggering one (or multiple) remote ringer.
      * 10 seconds later our traditional loud ringer is activated by the “Smart Doorbell v3”


28:00 @eightycc(Bob Abeles)
* More tracing on the Sonoma problem (issue #8449) producing what I hope to be the definitive trace of the problem. Also determined that >8MB filesystems do not resolve the underlying problem (delayed writing of directory and FAT table entries) and added a trace of a 15MB filesystem to the issue.
* Early tracing results for iOS indicate it is not affected. Testing iOS is problematic, but I think I’ll be able to add a clear iOS trace to 8449 later this week.


29:12 @foamyguy
* Continue working on circup web workflow refactor
* Tested the absolute newest builds with web workflow improvements. Spent some time “spinning my tires” before realizing I had managed to fill up the storage space available on the device I was testing with.
* Tested / Reviewed PRs for MiniMQTT and Requests
* Enjoying the challenges from Advent of Code 2023 and TryHackMe’s Advent of Cybersecurity. Having fun solving them, It’s got me thinking about potentially trying to make a CircuitPython based advent for next year. I’m curious to gauge interest in that from the community.
* Ran Adabot patch for fixing an issue with sphinx builds inside of RTD and un-pinning sphinx. Working through the ones that failed to apply patch automatically and making PRs for a batch of them that have different permissions on their repos.


31:18 @makermelissa
* Last Week:
   * Updated Qualia Guide with Backlight info, arduino library installation, and another example
   * Worked on Qualia Helper Library Guide
   * Worked on some GitHub issues and PRs
* This Week:
   * Found a bug in CircuitPython that seems to have been introduced sometime between alpha 2 and alpha 5 which causes an intermittent delay in reading capacitive touches that I need to narrow down some more.
   * Finish up Qualia Library Guide
   * Add Bar Displays to Qualia Guide and Qualia Library
   * Take another look as Raspberry Pi issues


32:15 @Paul Cutler (missing meeting)
* New episode of The CircuitPython show is out today featuring Max Lupo.  Max shares how he uses CircuitPython in his art pieces and installations.


32:30 @tannewt
* ESP IDF 5.1.2 merged in. Brings dynamic BLE services that we need but aren’t using.
* Circling back to SD cards over web workflow.
* Then a number of ESP bugs for 9.0
* Mostly out Wednesday and some of Thursday when my mom is over.


33:51 @todbot (text only, missing meeting) 
* Fun hobby this month is doing AdventOfCode.com in Python (mostly CircuitPython-compatible Python, since it’s what I know)
## 34:06 In The Weeds


@Justin
* While helping @DJDevon3 with the socket issue, and thinking through how I’ve broken up some of my personal libraries, I had a thought to create a global socket handler. In theory it would work similar to how `adafruit_requests.Session` does in tracking sockets, keeping them open, tagging them so the same requests can be quicker for things like TLS. But written so existing libraries like `adafruit_requests` and `adafruit_minimqtt` can utilize it. Also made to either be used as a context manager or possibly global, so there are no re-initializing issues.
   * @anecdata (text-only) it’s been a recurring support issue when multiple socket-using network libraries are used in a project… each reserves one or a set of sockets independently, depleting limited supply.
   * fyi… espressif has 8 sockets (built-time configurable, at the expense of RAM), raspberry pi has fewer (may be fixed in driver?) https://github.com/adafruit/circuitpython/issues/7543 (2 sockets per HTTPS)
   * @justin some wrap-up
      * Have high level acceptance of working through this
      * Some thoughts with better 9.0 memory management more sockets might be available
      * Does socketpool correctly clean up closed sockets on gc.collect?
      * Can we have better exception handling
      * Need to make sure we follow CPython requests
      * Are there options for better documentation about moving initialization to the top of code.py
## 46:26 Wrap-Up
Our next meeting will be at the normal time Monday December 11, 1023.
