# CircuitPython Weekly Meeting for April 29, 2024


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/xdl84Wpq7q0).


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:46 Community News
### 04:02 Espressif Acquires Majority Stake in M5Stack
Espressif Systems has announced its acquisition of a majority stake in M5Stack. M5Stack is renowned for its innovative approach to hardware development and offers a modular, open-source platform that simplifies the creation of IoT and embedded system solutions - Espressif.
### 04:42 Raspberry Pi Debuts the Compute Module 4S 2GB, 4GB, and 8GB Options
The new Compute Module 4S 2GB, 4GB, and 8GB options are based on the Raspberry Pi 4 architecture. They are designed for industrial customers who are migrating from Compute Module 3 or Compute Module 3+ - Raspberry Pi and hackster.io.
### 05:15 Project of the Week: A Pimoroni Inky Impression eInk Weather Station
  

The weather station runs on a Raspberry Pi Zero and displays weather forecast and sensor data. It retrieves the weather data from openweathermap.org and stores and retrieves data from io.adafruit.com - GitHub.
### 05:57 Fake job interviews target developers with new Python backdoor
 Article from - BleepingComputer.


### 06:54 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),.
## 07:47 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.**
### 08:15 Overall
* 26 pull requests merged
  * 13 authors - tannewt, dhalbert, bradanlane, justmobilize, us3r64, jepler, SeanTheITGuy, kbsriram, RetiredWizard, bill88t, pinkavaj, n3o59hf, DJDevon3
  * 7 reviewers - tannewt, dhalbert, FoamyGuy, jepler, RetiredWizard, anecdata, bill88t
* 19 closed issues by 6 people, 15 opened by 13 people


### 09:38 Core
* 10 pull requests merged
  * 8 authors - tannewt, dhalbert, bradanlane, jepler, SeanTheITGuy, RetiredWizard, bill88t, n3o59hf
  * 4 reviewers - tannewt, jepler, dhalbert, bill88t
* 22 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 664 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 474 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 434 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 422 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 396 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 339 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 312 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 274 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 242 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 209 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 159 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 139 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 105 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 59 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 54 days)
  * https://github.com/adafruit/circuitpython/pull/9023 (Open 51 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 33 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 30 days)
  * https://github.com/adafruit/circuitpython/pull/9178 (Open 15 days)
  * https://github.com/adafruit/circuitpython/pull/9197 (Open 6 days)
  * https://github.com/adafruit/circuitpython/pull/9199 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/9210 (Open 2 days)
* 7 closed issues by 2 people, 4 opened by 4 people
* 682 open issues
  * https://github.com/adafruit/circuitpython/issues
* 9 active milestones
 * 10.0.0: 2 open issues
 * 8.2.x: 0 open issues
 * 9.0.x: 0 open issues
 * 9.1.0: 0 open issues
 * 9.x.x: 31 open issues
 * Libraries: 22 open issues
 * Long term: 605 open issues
 * Support: 9 open issues
 * Third-party: 14 open issues
 * 1 issues not assigned a milestone


### 11:31 Libraries
* 16 pull requests merged
  * 6 authors - pinkavaj, kbsriram, justmobilize, us3r64, jepler, DJDevon3
  * 6 reviewers - tannewt, RetiredWizard, dhalbert, anecdata, FoamyGuy, jepler
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_IterTools/pull/24 (Days open: 61)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/150 (Days open: 55)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/151 (Days open: 50)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/149 (Days open: 50)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/178 (Days open: 34)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/153 (Days open: 33)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/182 (Days open: 25)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/188 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/157 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/8 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/9 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/13 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_PIOASM/pull/63 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/160 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/15 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/12 (Days open: 1)
  * 63 open pull requests (Oldest: 620, Newest: 1)
* 11 closed issues by 6 people, 10 opened by 8 people
  * 743 open issues
  * 4 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 132793 PyPI downloads over 326 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 11009
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 10377
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 9733
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2753
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 2627
  * Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 1500
  * Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1246
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1209
  * Adafruit CircuitPython SharpMemoryDisplay (adafruit-circuitpython-sharpmemorydisplay): 1111
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1062


#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_ConnectionManager](https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager)
  * [adafruit/Adafruit_CircuitPython_Requests](https://github.com/adafruit/Adafruit_CircuitPython_Requests)
  * [adafruit/Adafruit_CircuitPython_BusDevice](https://github.com/adafruit/Adafruit_CircuitPython_BusDevice)


### 14:56 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 6 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 934 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 145 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 122 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 122 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/348 (Open 11 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/817 (Open 6 days)
* 1 closed issues by 1 people, 1 opened by 1 people
* 92 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 13431
* Piwheels Downloads in the last month: 10428
Number of supported boards: 133




## 15:54 Hug reports
16:12 @foamyguy (Hosting)
* @jepler for looking into changes proposed for Wiznet5k library last week. And another for a fix to circuitpython-org build actions
* @DJDevon3 for new requests example that fetches wait times for disney rides
* @Justin for improving the files argument functionality in my requests PR
* @JP for featuring the new circup example in a Circuitpython Parsec


17:04 @anecdata (text only)
* @Justin for all of the ConnectionManager work. Two lines of user code now tames multiple sources and multiple uses of sockets (including SSL)


17:23 @danh
* @justin, @anecdata, @RetiredWizard, @DJDevon3, @foamyguy for continued work on requests, connection_manager, etc.


17:52 @deshipu
* group hug


18:03 DJDevon3 
* Hug to @SnakeyMakerCat for helping others in the #help-with-circuitpython discord channel this week.  Besides the trove of names I’m used to seeing, they stuck out this week as being more active than usual fielding a wide variety of questions.
* Hug to @Justin and @Anecdata for double checking some logic for a PR review.
* Hug to @Noe for a 7-year old “Layer by Layer” video that teaches how to design with adaptive parametric features in AutoDesk Fusion.
* Hug to @FoamyGuy for restructuring the examples bundle.  It really helped save some time when jumping into a new project.
* Hug to @MakerMelissa for her work on the RA8875 library.  The custom graphics library for 1 specific display driver using registers could not have been an easy project. 


19:45 @jepler
* Group hug
* Hug to Justin for doing some work I suggested in an issue
* Hug to Anecdata, Justin & others for testing the “ssl anything” PR


20:15 @Jerryn
* Group Hug


20:28 @Justin
* Hug to @danh who took time on a Saturday to actually talk to me to help me wrap up some updates to ConnectionManager
* Hug to @anecdata for constantly testing my updates to ConnectionManager
* Hug to @retiredwizard for bringing up ways to make ConnectionManager better
* Hug to @foamyguy for working with me on some awesome tests in the request library


21:00  @makermelissa
* @jepler for updating the circuitpython.org dependencies
* Group Hug


21:22 @tannewt
* Thanks to @todbot for testing MAX3421 support on ESP and discovering I hadn’t actually turned it on.
## 21:40 Status Updates
22:09 @foamyguy
* Reviews and testing many PRs in Wiznet5k and Requests libraries
* Updating tic-tac-toe conference badge app to store stats about how many times each team has won
* Tracing through circuitpython-org actions log to try to narrow down the cause of builds failing for a few days
* Built a TUI app with Textual that provides a more visual way to load library examples, it’s built on top of the new circup example command. This week I’ll look into caching the data that feeds the example loading code so that we could have different front-end applications utilizing the same cached data file.
* Started writing up a message for a “Good first issue” post about making displayio based sensor examples and submitted 1 example to be able to point to as a reference within that issue post.
* Started a Playground page that shows how to use PostgreSQL database along with PostgREST add-on to build a backend server that can store data sent from microcontrollers with HTTP requests. I’ve also built some very basic front-end web pages that draw graphs with data fetched out of the database.


25:00 @danh
* PR: Make Socket connect timeout settable on Espressif. Was already possible on Pico W.
* Upgraded home development system to Ubuntu 24.04 and am working out the issues. In particular you either need a venv to install with pip. You can override this or make it easy. Will add hints to Building CIrcuitPython guide.


26:39 @deshipu
* got a workshop accepted for EuroPython, using PewPews with CircuitPython to teach Python
* going to PyCon.US, anybody else coming?


27:29 DJDevon3 
* Designed and ordered another ST7796S display adapter PCB that will allow me to interchange a Feather, QT Py, or Pi Pico on one board instead of separate boards.
* Started designing a circuit python irrigation controller based on the Adafruit Power Relay Featherwing. It uses 24VAC to turn on irrigation solenoids with a 3.3V DC trigger. 
* Reviewed a PR related to the ATECC crypto chip. During the review I discovered there’s an issue with how the library is checking the minimum length of certificate issuer fields. It’s not a script breaking error but it could potentially allow someone to fill in all fields with blank entries and then lock the chip with almost no CSR issuer data.  Because once the chip is locked and cannot ever be edited; it's a good idea to require most fields to have some kind of issuer data in them.
* Started on a project with the RA8875 7” Touch TFT (from Adafruit) and driver board. Submitted a PR that speeds up the BMPsimpletest loading time from 17 seconds to 4 seconds.  All BMP’s with the library will load 4 times faster now. Unfortunately there’s no displayio support for the 7” display so I’m working on improving the very basic built-in graphics library for it.


29:53 @jepler
* ssl  anything branch is merged, yay.
* Back to working on audio glitchyness on esp32s3, trying to do “profiling” by turning on & off GPIOs at various spots in the C code to understand things


30:50 @jerryn
* Received some of the OV5640 Pico Bell cameras. Now to see if I can get them to work with AutoFocus. I don’t think AF has been added to the 0V5640 library yet…since these do not use espcamera. Unless someone has already done this? 


31:52 @Justin
* Worked through a bunch of updates to Requests and ConnectionManager
* Opened up the pull-requests for moving the ESP32SPI and WIZNET5K from using a singleton socket(pool) to more of an actual SocketPool. If you haven’t seen @anecdata’s 7x radio monster. Check it out: https://discordapp.com/channels/327254708534116352/537365702651150357/1233957859625144340


32:53 @makermelissa (text only)
* Last week was short because I was out sick for a couple days
* Finishing up updating last few learn guides


33:16 @tannewt
* Out next week on a road trip with my dad. Thanks to Foamyguy for doing deep dive.
* Enabled MAX3421 support on pretty much all ESPs. Thought I had but had only actually done it on one board. Needed to update TinyUSB to get it to compile on Cx chips and needed to tweak CP to handle TinyUSB host-only builds.
* ESP BLE GATTS code is sketched out, compiles but is untested. Will do that this week.
* Renode PR is close. The MAX changes conflicted with it so it needs some simple updates.


## 35:02 In The Weeds


35:23 @Justin
* Deprecating libraries?
   * As I’ve been working through the ConnectionManager work, I keep coming upon libraries that should be deprecated (ESP_ATcontrol, FONA, WSGI). Is this something we want to do? If so my thoughts would be:
      * Add a deprecated section in the [Adafruit CircuitPython Bundle](https://docs.circuitpython.org/projects/bundle/en/latest/drivers.html) docs
      * Add the “no-maintenance-intended” badge
      * Update the READMEs to flag that they are deprecated, what you can use now and why
      * Remove them from the bundle




## 41:50 Wrap-Up