# CircuitPython Weekly Meeting for April 1, 2024


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


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.
## 3:17 Community News
### 3:24 ecoEDA: Recycling E-Waste During Electronics Design in KiCad
 ecoEDA: Recycling E-Waste during Electronics Design 

ecoEDA is a Python-based tool that integrates with KiCad. It is designed to provide suggestions of recycled components whenever you add a new symbol to your schematic - GitHub.
### Python tops yet another rankings list
https://www.abc.net.au/news/2024-03-19/python-snake-meat-efficient-source-of-protein-study-finds/103603328


Python snake meat could be a super protein on dinner plates in years to come, research suggests.
A study published in the Nature journal has found the meat to be highly efficient, environmentally friendly source of nutrition that can be raised on waste proteins.
### Adafruit IO in 2024 Survey Last Chance
 Adafruit IO in 2024 Survey 

Inspired by Scott’s blog post, CircuitPython 2024, the Adafruit IO developers and designers are requesting feedback (from you!) to help guide development of Adafruit IO in 2024. Wrapping soon, please respond - Adafruit Blog.
“If you’re a current Adafruit Free IO user, an Adafruit IO Plus (paid) user, or have previously used Adafruit IO in the last year, we want to hear from you!”


### 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:28 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.**
### 5:47 Overall


* 33 pull requests merged
  * 18 authors - RetiredWizard, ure, kylefmohr, vin1953, SeanTheITGuy, anonymouscowhead, bablokb, DJDevon3, CDarius, tannewt, caternuson, FoamyGuy, Fabien-Chouteau, dhalbert, jepler, makermelissa, SAK917, xs5871
  * 8 reviewers - tekktrik, anecdata, tannewt, RetiredWizard, dhalbert, jepler, makermelissa, BlitzCityDIY
* 29 closed issues by 13 people, 16 opened by 12 people


### 6:38  Core
* 20 pull requests merged
  * 12 authors - CDarius, tannewt, RetiredWizard, Fabien-Chouteau, dhalbert, ure, jepler, SAK917, kylefmohr, SeanTheITGuy, xs5871, bablokb
  * 6 reviewers - jepler, anecdata, BlitzCityDIY, tannewt, RetiredWizard, dhalbert
* 24 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 636 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 446 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 406 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 394 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 368 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 318 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 311 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 284 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 246 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 214 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 181 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 131 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 111 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 77 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8954 (Open 40 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 31 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 26 days)
  * https://github.com/adafruit/circuitpython/pull/9023 (Open 23 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 5 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9102 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/9114 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/9106 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9126 (Open 0 days)
* 14 closed issues by 8 people, 14 opened by 11 people
* 672 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: 4 open issues
 * 9.1.0: 1 open issues
 * 9.x.x: 29 open issues
 * Libraries: 22 open issues
 * Long term: 593 open issues
 * Support: 8 open issues
 * Third-party: 13 open issues
 * 2 issues not assigned a milestone


### 8:42 Libraries
* 8 pull requests merged
  * 6 authors - makermelissa, bablokb, vin1953, DJDevon3, caternuson, FoamyGuy
  * 4 reviewers - makermelissa, tannewt, tekktrik, dhalbert
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_HX8357/pull/23 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_EK79686/pull/1 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyBadger/pull/69 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_TCA8418/pull/14 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/92 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BluefruitConnect/pull/39 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MLX90393/pull/38 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/210 (Days open: 1)
  * 72 open pull requests (Oldest: 592, Newest: 2)
* 13 closed issues by 6 people, 2 opened by 2 people
  * 730 open issues
  * 5 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 151767 PyPI downloads over 325 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9556
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9166
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 8116
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2191
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1463
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1395
  * Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 1223
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1138
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1133
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1097


#### Library updates in the last seven days:
* **New Libraries**
  * [bablokb/circuitpython-ehttpserver](https://github.com/bablokb/circuitpython-ehttpserver)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_RSA](https://github.com/adafruit/Adafruit_CircuitPython_RSA)


### 12:24 Blinka
* 5 pull requests merged
  * 2 authors - makermelissa, anonymouscowhead
  * 2 reviewers - makermelissa, dhalbert
* 4 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 906 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 117 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 94 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 94 days) (draft)
* 2 closed issues by 1 people, 0 opened by 0 people
* 84 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 15121
* Piwheels Downloads in the last month: 12031
Number of supported boards: 132




## 13:31 Hug reports


@jeper
* Group hug
* Melissa for patience as I worked on a PR about absolute image links on circuitpython.org.
* @todbot for a cool demo that just dropped on mastodon: https://mastodon.social/@todbot/112197138537048342


@anecdata (text only)
* @ jepler for ongoing work on SSL, and server-side stuff like SO_REUSEADDR


@danh
* @bill88t for noticing a version skew problem with ESP-IDF update.
* @anecdata, @michalpokusa, DJDevon, RetiredWizard et al for doing a lot of testing on network issues.


15:40 DJDevon3 (text only)
* @StudioStephe, @Anecdata, @Danh, @Jepler for working together to fix a bug that prevented the RP2040 from starting http server. The fix by Jepler was rolled into 9.1.0 
* @Justin for his continued work on Connection Manager and ruff linting. Also thank you for the quick tip on a PR involving connection manager with http server.
* @SnakeyMakerCat for starting a port for the Electrosmith Daisy Seed. After looking into it more they figured out it has 8MB of flash so it could be a pretty nice Circuit Python port.
* @KMatch for the excellent learn guide on memory saving tips. It was a nice quick reference for using memfree to track resource usage.
* @Todbot, @Anecdata, @Deshipu, @Elpekenin, @FoamyGuy, @Tyeth, and many others for answering questions in the help-with-circuitpython discord channel.
* @Sean who is a relative newcomer to our discord. They’re doing a custom esp32 board port, parallel display project, and helping others with display related questions from the experience they’ve gained.  
* @MichalePokusa for starting to port http server examples with connection manager.
* @FoamyGuy for recommending Windows task scheduler to keep circuitpython-stubs updated.
* @FoamyGuy for the new OutlinedLabel for display_text. It works very well.




17:07 @foamyguy
* DJDevon3 for diving into Typing as well as submitting new feature for the “IS31FL” Matrix library
* DanH for sharing a PDF copy and the idea to check archive.org for a Learn Guide page that got deleted when I tried to use the ‘rollback to earlier state’.
* @Jepler and @MakerMelissa for improvements to the way images were included with the RSS feed of circuitpython.org
* Group Hug


18:03 @kattni
* @tyeth for talking grow light setups with me, and answering an Adafruit IO question
* @foamyguy for working on interactive software for my conference badge
* A group hug to my PyOhio organisers team for being an amazing group of folks


18:37 @makermelissa
* @jepler and @danh for quick responsiveness with circuitpython.org updates
* Group Hug


18:52 Snakey Maker Cat (text only)
* Hug to DjDevon3 for being patient while I dig through the Daisy Seed guts, I know he is dying to test CircuitPython on the new board
* Group hug


19:07 @tannewt
* @danh for figuring out @bill88t’s issue that I hadn’t pushed tags to adafruit/esp-idf
* Thanks to @hathach for working on deinit() for me.


19:39 @todbot (text only, can’t be in meeting)
* Group hug, thanks for all the CircuitPython work! It’s so fun to hack on
* @jepler for `bitmapfilter`. I’m starting to play with it now for non-photo uses
* @kreier, @tannewt, @danh, et al for getting `parallelbus` working & enabled for ESP32. These fast displays on fast processors are super nice
## 20:05 Status Updates
@jepler (host)
* Wrote a vintage computer to HDMI converter with CircuitPython, guide is live on learn.adafruit.com & was the 3000th guide published!
* Working on updates to the floppyio module & adafruit_floppy circuitpython package
   * Mostly done, just one problem with PIO capture of flux to smash


21:23 @danh
* Released CircuitPython 9.0.1, 9.0.2 (just fixes Trinkey SHT41 pin), and 9.1.0-beta.0 last week.
* Fixed AnalogIn on nrf. WIll need a 9.0.3 release.
* Add latest upstream tags to our fork of esp-idf (caused wrong version for v5.2.1 update).
* Guiding some wifi testing.
* Debugging and fixing further 9.0.x and 9.x.x issues.
* Made a number of small edits to a bunch of Learn Guides to correct typos, make clarifications, and the like.


23:09 DJDevon3 (text only)
* Submitted a PR for httpserver that uses connection manager for the socketpool. The idea was well received and it was decided all examples with a socketpool will use connection manager going forward. So that’s a thing now, we’re full steam ahead with connection manager.
* Ported my Multiplexed 7-segment display project to 9.0.  Didn’t run into any HT16K33 library issues.  It pulls 6 different API’s sequentially so it’s a pretty good torture test for socket reuse. It works great on an S3 but on the S2 it throws an ESP-IDF memory error. I tracked the memory error to as far back as 8.0 beta then handed my findings over to the devs.
* The Mastodon API example I submitted 2 weeks ago is already broken as Mastodon revamped their API this week and deprecated a lot of endpoints. Only required minor changes in the url and endpoints to get it working again. Seems like they’re moving towards oauth 2.0 so it’s probably just a matter of time before they completely deprecate their publicly open v1 API.
* Wrote a playground note on automating PIP & CircuitPython-Stubs updates for Windows by creating a task scheduler batch script.




24:27 @foamyguy
* Updated Learn Guide code and Pages with displayio 9.x changes, but it was decided to change the warnings and deprecation rollout timing so those changes will stay draft for now and I went back through the guide pages again to change them back and this time kept a list of URLs to pages that changed / will need changed when we deprecate the old APIs fully.
* Soldered up Grove Featherwing and Feather S3 TFT Reverse for use together in a “Simon” type cardboard box game. My devices TFT seems to be dead so I’ll need to get a new one.
* Updated the Display Text Learn Guide to include sections for 2 newer types of Labels: OutlinedLabel and ScrollingLabel which were both added to the library after that guide was written
* Updated the PyCharm page of welcome to circuitpython ‘advanced’ to include information about using the new device specific board stubs
* Wrote most of a Tic Tac Toe game that runs on EInk display Badger 2040W, most recently added functionality that checks for a winner and draws a line thru the winning pieces if a winner is found. It draws correctly, but still needs some fixing to stop it from refreshing the display as many times, and to remove the line when the next game starts.


27:08 @kattni
* Finished up the software for my grow light setups. There are currently three different versions, as I ended up needing to mount the controller in an opposite orientation on one terrarium. 
* When I eventually figured out where to mount the other three, it required rewiring the level shifter so the connector was coming out of the opposite side.
* The difference in code between the other three is that one is currently running a temp/humidity sensor inside the terrarium. I’m only running one at the moment to compare to one outside the terrarium so I can figure out if there is any point in adding one to the other setups, or whether the climate inside is identical to ambient. So far, it seems the LEDs increase the temperature in the terrarium during the day, but it is basically identical at night. That said, watching the humidity spike after watering, and seeing how long it remains high is at least interesting, so that may be enough reason to add a sensor to the others.
* The one with the sensor displays the date, sensor data, and what the “manual LED status” is - that last one is whether I turned it off using a button on the controller.
* The ones without a sensor display the date and LED status.
* My wife designed a 3D printed case for the controllers that mounts to the terrarium using magnets. It’s a really slick design and works incredibly well for my needs.
* We’re finishing up a case for the sensor to allow airflow but avoid directly misting the sensor board when watering the plants. It looks pretty neat so far, but needs testing to make sure the airflow is enough.
* After that, we’re designing a case for the Badger2040W, which, for me, will be running the code that foamyguy is working on. I added NeoPixels to mine by soldering 3 wires of a STEMMA QT cable to it, and using the Qwiic port on the Badger to connect them. The NeoPixels are about the same height as the Badger, so I’m going to add them into the case on the left side.
* I’m not sure I shared this here, but I agreed to be conference chair for PyOhio 2024. 


29:52 @makermelissa
* Added new boards to circuitpython.org
* Fixed compiler warnings in some arduino libraries
* Fixed some small issues in a couple of CP libraries
* Updated Magic Storybook with ChatGPT guide for bookworm and latest OpenAI API
* Will probably update the ChatGPT Bear project to Bookworm next
 
30:36 Snakey Maker Cat (text only)
* I started working a few weeks ago on the CircuitPython port to the Daisy Seed, a really cool STM32 board, but I ran into the 128kB internal flash issue early on. Luckily, there is that 8MB chip external flash… and 65MB(!) of RAM that makes this project totally worth the effort. 
Unfortunately, the documentation from ElectroSmith is not great (especially since they went closed source recently), and the only available config file for the flash chip contains plenty of mistakes. 
So at the moment I'm working on a STMCubeIDE project, and digging through data sheets, to figure out the right configurations for the MCU, and how to use the QSPI flash in XiP mode. It’s easier to test all that in the ST work environment. 
I’m sure I will get to the actual CircuitPython part soon 😂


31:31 @tannewt
* PyCascades talk is mostly done. Thanks to deep divers for working through them with me. Have bugs to file for the mobile apps.
* Back to USB host featherwing work. nRF issue was due to a floating RX UART pin. 🤦
## In The Weeds
33:14 @danh
* https://github.com/adafruit/circuitpython/issues/9112
Settings.toml settings for auto-connect and web workflow. CIRCUITPY_WIFI_SSID and CIRCUITPY_WIFI_PASSWORD initiate auto-connect (always?) If CIRCUITPY_WEB_API_PASSWORD is set, web workflow is started.
   * The fact that autoconnect occurs is not clear from the names. If we want to offer preventing auto-connect behavior, should we use different names (WIFI_SSID and WIFI_PASSWORD), or should we have a boolean flag: CIRCUITPY_WIFI_AUTOCONNECT?


## 45:45 Wrap-Up
Next meeting is April 8 2024 at the usual time
