# CircuitPython Weekly Meeting for March 11, 2024

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


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:19 Community News
### CircuitPython 9.0.0 Release Candidate 0 Now Out
CircuitPython 9.0.0-rc.0, a release candidate for 9.0.0 final, is out. This release is believed to be stable and is meant for testing before the final release of 9.0.0. See the post for all the additions and changes - [Adafruit Blog](https://blog.adafruit.com/2024/03/07/circuitpython-9-0-0-release-candidate-0-released/) and [GitHub](https://github.com/adafruit/circuitpython/releases/tag/9.0.0-rc.0).
### 3:35 Back to the Future Time Circuits Built with a Raspberry Pi Pico and CircuitPython
Reddit user traveling_fred presents a lovely Back to the Future time circuit build with dial in time setting. The displays come from [Circuit Setup](https://circuitsetup.us/product/complete-time-circuits-display-kit/) and the project uses a Raspberry Pi Pico running CircuitPython - [Reddit](https://www.reddit.com/r/raspberry_pi/comments/1b3yp29/back_to_the_future_time_circuits_built_with/) and [Tom's Hardware](https://www.tomshardware.com/raspberry-pi/raspberry-pi-pico-used-in-back-to-the-future-time-circuits-replica).
### 4:09 New Book - Build Your Own Robot: Using Python, CRICKIT, and Raspberry Pi
A new book comes out on March 12th - Build Your Own Robot: Using Python, CRICKIT, and Raspberry Pi by Marwan Alsabbagh - [Publisher](https://www.manning.com/books/build-your-own-robot), [I Programmer](https://www.i-programmer.info/book-watch-archive/17028-build-your-own-robot-using-python-crickit-and-raspberry-pi-manning.html) and [Amazon US](https://www.amazon.com/dp/B0CTJ6QQ56).
### 5:00 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


* 29 pull requests merged
  * 21 authors - eightycc, dhalbert, jamesjnadeau, guutz, weblate, ladyada, justmobilize, LelandSindt, tannewt, hathach, kbsriram, DJDevon3, jins-tkomoda, BlitzCityDIY, jepler, bablokb, michalpokusa, bill88t, anonymouscowhead, andibing, shawnchainw
  * 6 reviewers - makermelissa, tannewt, dhalbert, tekktrik, BlitzCityDIY, FoamyGuy
* 37 closed issues by 9 people, 12 opened by 10 people
### 7:07 Core
* 18 pull requests merged
  * 12 authors - eightycc, tannewt, hathach, jins-tkomoda, jamesjnadeau, dhalbert, guutz, bill88t, jepler, andibing, weblate, ladyada
  * 3 reviewers - makermelissa, tannewt, dhalbert
* 24 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 615 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 425 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 385 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 373 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 347 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 297 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 290 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 263 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 225 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 193 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 160 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 110 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 90 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 56 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8855 (Open 42 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8954 (Open 19 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 10 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/9018 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/9025 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9023 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9020 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9032 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/9030 (Open 0 days)
* 29 closed issues by 5 people, 6 opened by 5 people
* 656 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.0: 2 open issues
 * 9.0.x: 3 open issues
 * 9.x.x: 21 open issues
 * Libraries: 22 open issues
 * Long term: 589 open issues
 * Support: 6 open issues
 * Third-party: 13 open issues
 * 1 issues not assigned a milestone
### 9:00 Libraries
* 8 pull requests merged
  * 8 authors - kbsriram, DJDevon3, BlitzCityDIY, dhalbert, bablokb, michalpokusa, justmobilize, LelandSindt
  * 5 reviewers - tannewt, dhalbert, tekktrik, BlitzCityDIY, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/205 (Days open: 15)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/156 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/193 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/31 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/208 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_FT5336/pull/3 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_TemplateEngine/pull/3 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_HT16K33/pull/117 (Days open: 1)
  * 55 open pull requests (Oldest: 571, Newest: 1)
* 6 closed issues by 5 people, 6 opened by 5 people
  * 740 open issues
  * 19 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 117506 PyPI downloads over 325 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8805
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8701
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 7704
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2353
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1731
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1184
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1136
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1120
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1091
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1075
#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_OAuth2](https://github.com/adafruit/Adafruit_CircuitPython_OAuth2)
  * [adafruit/Adafruit_CircuitPython_TemplateEngine](https://github.com/adafruit/Adafruit_CircuitPython_TemplateEngine)
### 13:25 Blinka
* 3 pull requests merged
  * 2 authors - anonymouscowhead, shawnchainw
  * 1 reviewers - makermelissa
* 6 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 885 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/65 (Open 103 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 96 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 73 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 73 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/790 (Open 12 days)
* 2 closed issues by 1 people, 0 opened by 0 people
* 83 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 12496
* Piwheels Downloads in the last month: 11775
Number of supported boards: 129


## 14:15 Hug reports


14:45 @danh (hosting)
* @SalamCytron and @RetiredWizard for finding issues with 9.0.0-rc.0.
* @justmobilize and @bablokb for working on adafruit_requests


15:16 @CGrover (text only)
* @RobCranfill (github) for catching a documentation error in the WaveBuilder and WaveStorage repos.
* Group hug.


15:28 @DJDevon3
* @Anecdata for helping troubleshoot an adafruit_requests OutOfRetries error handling issue I failed to account for. Catching the error and reloading provides a new pool of retries until an inevitable successful connection can be made. Thank you for looking into the issue.
* @jerryn, @argonblue, @bear, @elpekenin in #help-with-circuitpython discord for their help with parts of the adafruit_atecc crypto module and general python syntax help.  I learned a lot from their collective help.
* @FoamyGuy for a series of streams on the M5Stack Cardputer this weekend.  Highly informative episodes on how to port a new device that has a built-in keyboard.


16:43 @foamyguy
* @RetiredWizard for running with the start that I made on the M5 Cardputer key scanning library and making improvements + sharing a project that successfully hooked it up to REPL
* @CDarius on github for submitting a PR to add support in the core for the demuxed row pin wiring on the Cardputer
* @MichalPokusa for entertaining my top of the head “It would be cool if…” style ideas for Template Engine and HTTPServer. Most recently with some very fancy error messaging for TemplateEngine that makes it much easier to figure out where any errors in the template are at.
* @Tyeth for working on the circup web workflow support branch
* @argonblue for reporting an issue on discord for moderation




17:55 @jepler
* Group hug
* Hug to the hundreds(!) of people who have authored commits on the road from 8.2.x to 9.0.0-rc.0, including MicroPython contributors. There are some duplicates due to spelling differences (and a few bots) but with a raw list of 344 author names that must mean there are 200+ different people involved.


18:43 @jerryn
* Group hug!


18:52 @Justin
* Group hug




19:03 @MakerMelissa
* Everybody who has added boards to circuitpython.org
* Everybody involved in getting the Release Candidate of CircuitPython out
* @jepler for the quick fix for Web Workflow and SD Cards
* Group Hug


19:22 @retiredwizard (text only)
* @foamyguy for the Cardputer key scanning library he wrote on Saturday’s live stream
* Group hug


19:40 @tannewt
* Aappleby on github/tanjent on discord for the Hancho build system.
* @danh for making the release
* @kbsriram for bitbangio fixes and tests!
* @liz for continued CP testing
* Everyone else who has tested 9.0
## 20:45 Status Updates
21:20 @danh (hosting)
* Released CircuitPython 9.0.0-rc.0 last Thursday. Some bugs have turned up. I fixed one and there will be an rc.1 when all showstoppers are fixed. The frozen libraries will also be updated.
* Fixed a race condition in BLE ScanEntry processing, which definitely affected nrf and maybe other ports.
* Lots of reviewing and bug triage. Closed a bunch of issues.


22:27 @CGrover (text only)
* Electronics and coding projects were placed temporarily on-hold when the home remodeling project commenced. Getting to solve some hands-on problems such as “Is that eyebrow window outline a fractional tip of an ellipse or a radius arch?” and “How is the radius of a circle’s arc determined if you only know the width and height of the eyebrow?” Thank goodness it wasn’t elliptical.
* Expecting to return to the WaveStore library and CG-35 calculator projects next weekend.


23:05 @DJDevon3
* Finished the ST7796 display project. It included custom featherwing adapter PCB’s and a 3D printed enclosure. It took about 2 months to complete.
* Submitted a minor quirky PR for a code comment error in an adafruit_ht16k33 repo simpletest. The 7 segment library a long time ago used integers (0-15) for segment brightness and a code comment reflected that. It was changed to float values but the code comment never reflected that change. It went uncorrected for 4 years. I’m tackling the tough issues in Circuit Python. That is of course sarcasm but it just shows that anyone can contribute if you spot an issue & submit a fix.
* Discord user BairO2 found an issue with the adafruit_atecc crypto module. The simpletest fails in 8.2.10. I’ve been helping them work through the issue and got the simpletest to work again.  Had to lower the I2C frequency from 100_000 to 75_000 and it magically started working. I have no idea what prompted the required change in frequency. The wake frequency is like a ping, without the correct frequency ping the I2C module will never wake up to function. Then attempted to run the CSR simpletest and that’s when the module became completely unresponsive. The datasheet mentions a release function to deinit but there isn’t one in the library, so the module stays locked permanently after the first time you attempt a CSR.  Will submit an issue on this soon. 


25:30 @foamyguy
* Finished up the remaining changes based on feedback on the circup webworkflow support PR along with a few additional fixes based on changes to the webworkflow API in the core since it was started. Looking into support for 8.x devices, but may give up on it due to a separate issue. Also looking into some more general refactoring in circup to cut down its monolithic giant code file a bit into some more manageable sized chunks that make logical sense.
* Mocked out potential behavior for keypad module MultiplexerMatrix that can read from a matrix that has row pins mapped with a 3 -> 8 shift register
* Built out a helper library on top of that mocked keypad matrix to read key presses on the Cardputer and put them into a label on the display
* Started working on a messenger web server that runs on the Cardputer and allows sending messages between the person holding the cardputer device, and another person who loads the web app in a browser from a device on the same network.
* Filling in for Deep Dive this week on Friday


28:33 @jepler
* Mostly working on Floppy controller in Arduino
* But it’s very cool.
* Once the current Adafruit_Floppy PR is done and merged, I’ll work on updating the floppyio module in circuitpython & make a “read MFM floppy to IMG file on SD card” demo!
* In personal news, I’ve been singing in a local community choir since last fall. We had a concert a week ago and another one next Friday. What a lot of fun to be singing again in a group!


30:13 @Jerryn
* Continued working on combined RFM69/9x library.
   * FSK/OOK now working so RFM9x and RFM69 can communicate
   * Still thinking about the best structure for this and how much to be concerned with breaking the current API. So far, other than the names of the library module, no breaking changes have been made but it may be better overall to abandon that to allow for simpler/more consistent usage.
   * Trying to make sure existing issues are all addressed. The main one outstanding is for RFM9x involving non-default setting for configuration of the spreading factor/bandwidwidth. This may be the only item worth fixing in the existing library as well.
   * The main new feature I want to add is to try using asyncio…time to start on that…updates as the situation warrants.


32:28 @Justin
* Working through some old request issues
* Looking to see how different socketpool.socket and esp32spi.socket are to see if they can be closer to the same (first goal is that adafuit_ntp works on both, and yes I know esp32spi handles this natively)
* Looking to see if I can incorporate my personal OAuth library into the Adafruit one




33:35 @MakerMelissa
* Worked on Pi_Eyes:
   * Added code to resize the desktop contents on the fly and output to display
   * Tested issue with slow SPI, which occurs only on the Raspberry Pi 5 with Pi_Eyes in c
   * Found a bug where it only grabs the Wayland Desktop when it first starts and not after that
   * Also need to optimize some of the code so that we can get more frames per second
* Working on finishing up Web Workflow guide for MEMENTO


34:38 @tannewt
* Out Friday because Ari has no daycare and we’re going out of town for a long weekend.
* Bug fixing
   * Fixed ESP watchdog incorrect time
   * Fixed RGBMatrix reliability and updated IDF to 5.1.3
   * Fixed TLSF issue where we couldn’t allocate the same size after a free. Bug in upstream TLSF. Found due to broken DVI example.
   * Investigate ESP32 boot loop issue.
* Meet up with jeff keyzer to get help testing/fixing my commodore 64.
* Explore using hancho build system because it is all asyncio python.


36:10 @todbot (missing meeting / text only)
* Tried making a “palette generator” / “color summarizer” for JPEGs to return a ranked list of dominant colors. And it works-ish. It implements a simple color similarity detector to bin related colors. Takes about 5 secs per image on S3: https://gist.github.com/todbot/0bf32a6bf8dd21983a32bafc173b3223
* Before that, a “median / mean image color” too, which could be made much faster using some tricks from above: https://gist.github.com/todbot/c47e7f1c92caee1c9c1569bc4d08ca52 


## In The Weeds






## 37:11 Wrap-Up
