# CircuitPython Weekly Meeting for May 6, 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!


Jeff is hosting.


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


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:49 Community News
### MicroPython is Now 11 Years Old
 MicroPython is Now 11 Years Old 

MicroPython has turned eleven, having started in 2013 - X.
“MicroPython started life in early 2013 as an experiment, to see if it was possible to shrink a high-level language like Python down enough to run on very small devices. Now MicroPython is a mature open-source project that is relied upon by a wide variety of users."
### 3:17 Project of the Week: The 2024 eChallengeCoin
 The 2024 eChallengeCoin 

Bradán Lane's 2024 eChallengeCoin runs CircuitPython and is packed with hardware to inspire the next generation of hackers. It's 350% bigger than previous years (now at 84mm in diameter) and includes a maze game as well as a full text adventure game - X Thread.
###  CircuitPython vs. Arduino’s C++ Language for ESP32: A Comparative Analysis
CircuitPython (offered by Adafruit) and Arduino’s C++ language (offered by Arduino with Arduino IDE) stand out as popular choices for DIY projects, prototyping, and educational purposes. Both platforms offer powerful capabilities for developing interactive hardware projects, but they differ significantly in terms of programming language, ease of use, and ecosystem support - [The Customize Windows](https://thecustomizewindows.com/2024/04/circuitpython-vs-arduinos-c-language-for-esp32-a-comparative-analysis/).
###  4:23 The Adafruit Learning System Exceeds 3,000 Guides
Recently, the Adafruit Learning System surpassed 3,000 guides! Thank you to the entire team at Adafruit who builds and makes learn.adafruit.com, one of the best resources online for learning CircuitPython & Python and more - [Adafruit Learning System](https://learn.adafruit.com/) and read about reaching 3k in the [Adafruit Blog](https://blog.adafruit.com/2024/04/03/the-adafruit-learning-system-has-over-3000-guides-thank-you-adafruit-adafruit/).
### 4:51 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),.
## 5:42 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.**
### 6:03 Overall
* 14 pull requests merged
  * 8 authors - brentru, DJDevon3, dhalbert, tannewt, justmobilize, kbsriram, jepler, anecdata
  * 4 reviewers - brentru, dhalbert, tannewt, FoamyGuy
* 20 closed issues by 9 people, 118 opened by 18 people


###  6:38 Core
* 4 pull requests merged
  * 3 authors - dhalbert, jepler, tannewt
  * 2 reviewers - dhalbert, tannewt
* 21 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 670 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 480 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 440 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 428 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 402 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 345 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 318 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 280 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 248 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 215 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 165 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 145 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 111 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 65 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 60 days)
  * https://github.com/adafruit/circuitpython/pull/9023 (Open 57 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 39 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 36 days)
  * https://github.com/adafruit/circuitpython/pull/9222 (Open 1 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9221 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/9224 (Open 0 days)
* 7 closed issues by 3 people, 9 opened by 9 people
* 686 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: 1 open issues
 * 9.1.0: 2 open issues
 * 9.x.x: 30 open issues
 * Libraries: 22 open issues
 * Long term: 603 open issues
 * Support: 11 open issues
 * Third-party: 14 open issues
 * 3 issues not assigned a milestone


### 8:35 Libraries
* 10 pull requests merged
  * 5 authors - brentru, DJDevon3, justmobilize, kbsriram, anecdata
  * 3 reviewers - brentru, dhalbert, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/178 (Days open: 34)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/182 (Days open: 25)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/11 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/159 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/198 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/199 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_IterTools/pull/25 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Fake_BME280/pull/2 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/15 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT/pull/65 (Days open: 1)
  * 64 open pull requests (Oldest: 626, Newest: 1)
* 9 closed issues by 6 people, 107 opened by 9 people
  * 843 open issues
  * 102 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 128179 PyPI downloads over 326 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 11508
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 10645
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9969
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2792
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1676
  * Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 1417
  * Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1202
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1078
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1066
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1028


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


### 13:08 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 6 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 940 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 151 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 128 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 128 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/348 (Open 17 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/817 (Open 12 days)
* 4 closed issues by 2 people, 2 opened by 2 people
* 93 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 13515
* Piwheels Downloads in the last month: 10653
Number of supported boards: 133




## 14:01 Hug reports


14:24 @jepler (hosting)
* @justin for extreme patience with my reviews of an NTP PR
* @danh for spotting something to improve in the ssl module & starting work on it
* Group hug


14:52 @anecdata (text only)
* @jepler (belated) for all the SSL work… among other things, opens up a world wide web of new possibilities for ethernet projects
* @danh @Justin for the helpful review and discussions on an ESP32SPI PR


15:13 @danh
* @jepler for MP3 now working on ESP32-S3.


15:30 DJDevon3
* @ArgonBlue to trying to help with a colorspace issue
* @Todbot for joining the helpers role on discord.
* @Group Hug


15:47 @foamyguy
* @Justin and @Jepler for many improvements in different networking libraries and @anecdata for helping to review and test them
* @SnakeyMakerCat in discord for helping many people in #help-with-circuitpython
* @elpekenin for adding list functionality to the circuitpython_setboard command for device specific stubs


16:29 @jerryn
* @bablokb for help with the picow memory usage and for the recommendation of the WaveShare esp32s3 pico board


17:00 @Justin
* Hug to @anecdata and @danh for getting the common connect methods for the ESP32SPI to match the wifi.radio methods
* Hug to @brent for reviewing updates to allow the ESP32SPI to be used again in the AzureIoT library
* Hug to @jepler for pushing me to make the NTP library better


17:39 @makermelissa
* @foamyguy and @jepler reading my notes while my internet has been spotty
## 18:01 Status Updates


18:16 @jepler
* Finally had a breakthrough & got mp3 working on esp32s3. That’s in the latest builds now.
* This week: finishing up my PyCon US presentation. Conference is weekend after next!
   * https://us.pycon.org/2024/schedule/presentation/15/ “Connecting Old to New with CircuitPython: Retrocomputer input devices on modern PCs”
* It goes without saying but I’d love to meet anybody at PyCon who’s interested in python on hardware!


19:04 @danh
* Looking at how mbedtls storage is managed in the ssl module, due to running into MemoryErrors in Pico W.
* I have some housekeeping PR’s I can do this week in addition to bug fixes.
* secrets.py is being phased out, but ESP32SPI, which uses it, is frozen in a number of boards. So we need to stage changes to ESP32SPI, either at a 9.x or 10.0 CircuitPython version boundary. The library now will take a dict argument for SSID and password or separate string arguments.


21:21 DJDevon3
* I spent my entire week writing a new function for the RA8875 library that retrieves a single pixel sampled from the display screen.  It involved debugging down to the binary level to figure out how colors are stored in the register. I wrote a playground note on Reading Pixels on the RA8875 Driver Board with the hope that others can build on this functionality in the future. I have yet to submit a PR as cleaning up my messy version of the library after debugging for a week will take a day or two.


22:28 @foamyguy
* Testing the updated Files argument feature for requests and a handful of other networking related PR
* Update AVRProg Typing PR with changes from review feedback and figured out how to test it with hardware
* Playground note about PostgREST server
   * Have written all of the setup and backend details.
   * Still to come is front end pulling data out and graphing it. Got this working over the weekend but need to write it up still.
   * Playground page is quite long already. Should also go back and make more deliberate use of linkable headers and then make a table of contents section with links to the other sections.
* A few tweaks and adjustments to tic tac toe conference badge script.
* Finished up the scripts and ran them to create new “Good First Issues” on several driver library repos asking for new displayio based examples to be contributed. 


25:47 @jerryn
* Got auto-focus working in the ov5640 library for the picowbell camera boards. https://github.com/adafruit/Adafruit_CircuitPython_OV5640/issues/31 
   * Mostly just copied  from the pycamera library to the ov5640 library, minor tweaks.
      * Results with the picoW are very disappointing. With wifi, there is not enough memory for anything but very small  JPEG images. The largest I can get is 160x120
   * I’m not encouraged that the PicoW is viable for use with the ov5640 camera module.
* Waiting for some WaveShare esp32s3 pico form factor boards to arrive. These may work much better with the ov5640 camera.
* I’ll be away for a few weeks and will resume looking into this when I get back. If anyone is interested they are welcome to take the autofocus code from my fork. It works the same as on the memento.


27:45 @Justin
* Mostly been working/helping on getting the ESP32SPI closer to wifi.radio and adding in support in AzureIoT and NTP that were missing it
* Finally got my MatrixPortal S3, so working on updating a few personal projects that broke with the MatrixPortal M4
* Thinking about looking into the RMF libraries and seeing if there’s a way to not lose packets (probably by finding a way to use a simple MCU as a buffer) for some personal projects


29:09 @makermelissa
* Finished up going through Raspberry Pi related guides and updating to work on latest OS
* Currently going through CircuitPython Code Editor and fixing bugs and refamiliarizing myself with the code.
* After that, I will start working on improved communication with the boards.
## 29:29  In The Weeds


@michalpokusa (text only)


I would like to ask about the situation with SSL support for HTTPS serving. Currently it seems like only ESP32-S3 boards support this all the way, as other boards (ESP-32S2, PicoW) had problems with SSL socket binding or raised `MemoryError` when trying to `.accept()`.


At the same time thanks to anecdata, tannewt, dhalbert, jepler and everyone else involved with changes that were already merged that enabled ESP32-S3 to work with HTTPS serving.


Some time ago I created a PR for adafruit_httpserver that adds easy to use API for serving HTTPS servers, but as I said above, this functionality works only on a subset of boards. Is this feature, meaning fixing the MemoryError and aligning other boards’ behavior with ESP32-S3 ones, currently in progress, not planned or maybe in a different state?


* @danh: I am looking at at a refactoring that -might- reduce the SSL memory consumption. I hope this will help Pico W. Right now it is consuming RAM on every socket wrap. I think some of that RAM can be shared in the SSLContext.




## 33:10 Wrap-Up
Next meeting as usual: May 13, 2024 @ 2PM US Eastern, 10AM US Pacific!
