# CircuitPython Weekly Meeting for April 8, 2024

Video is available [on YouTube](https://www.youtube.com/watch?v=5DAnahlqCLo).


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:27 Community News
### CircuitPython 9.0.3 Released
CircuitPython 9.0.3 is the latest bugfix release of CircuitPython, and is a new stable release. The only changes to 9.0.3 from 9.0.2 are a fix for `AnalogIn` on Nordic nRF boards, and the addition of the Waveshare RP2040-GEEK board - [Adafruit Blog](https://blog.adafruit.com/2024/04/04/circuitpython-9-0-3-released/) and [release notes](https://github.com/adafruit/circuitpython/releases/tag/9.0.3).
### 3:57 Espressif Chip News
Back in our [January 10, 2023 issue](https://www.adafruitdaily.com/2023/01/10/python-on-microcontrollers-newsletter-micropython-on-lego-controllers-circuitpython-in-2023-survey-and-much-more-circuitpython-python-thepsf-micropython-raspberry_pi/), we discussed the new ESP32-C6 and ESP32-P4. Now the C6 is on the market and Espressif has more P4 news.
Adafruit has announced the Adafruit ESP32-C6 Feather, a C6 development board in the ubiquitous Feather form factor. It integrates 2.4 GHz WiFi 6, Bluetooth 5 (LE) and the 802.15.4 protocol. It brings the goodness you know from the low-cost C3 series and improves it with Zigbee/802.15.4 at 2.4Ghz. It could make for great Matter development hardware! There is also a BME280 temperature and humidity sensor to make an integrated sensor node - [Adafruit](https://www.adafruit.com/product/5933).
A new video just released by Espressif: "Unveiling ESP32-P4: High-performing SoC with extensive IO connectivity, HMI, and security features" - [YouTube](https://www.youtube.com/watch?v=GTHHDZeIzcA) and [Product Page](https://www.espressif.com/en/products/socs/esp32-p4).
### 5:20 Python Software Foundation News in Brief
PSF joins the new Open Initiative for Cybersecurity Standards - [PSF](https://pyfound.blogspot.com/2024/04/new-open-initiative-for-cybersecurity.html).


April 2024 Newsletter including PyCon 2024 information and more - [PSF News](https://mailchi.mp/python/python-software-foundation-december-2023-newsletter-15957293).


Reporting PyPI Malware - [PyPI Blog](https://blog.pypi.org/posts/2024-03-06-malware-reporting-evolved/).


### 5:50 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:35 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:59 Overall
* 28 pull requests merged
  * 15 authors - mariopesch, weblate, bablokb, dhalbert, elpekenin, tyeth, brushmate, SeanTheITGuy, wtuemura, makermelissa, FoamyGuy, DJDevon3, jepler, brentru, Fabien-Chouteau
  * 7 reviewers - TheKitty, dhalbert, tekktrik, makermelissa, FoamyGuy, tannewt, jepler
* 18 closed issues by 7 people, 19 opened by 19 people


### 7:44 Core
* 16 pull requests merged
  * 10 authors - mariopesch, weblate, bablokb, dhalbert, elpekenin, brushmate, SeanTheITGuy, wtuemura, jepler, Fabien-Chouteau
  * 2 reviewers - tannewt, dhalbert
* 21 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 643 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 453 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 413 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 401 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 375 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 318 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 291 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 253 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 221 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 188 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 138 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 118 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 84 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8954 (Open 47 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 38 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 33 days)
  * https://github.com/adafruit/circuitpython/pull/9023 (Open 30 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 12 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/9145 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/9153 (Open 0 days)
* 12 closed issues by 4 people, 9 opened by 9 people
* 673 open issues
  * https://github.com/adafruit/circuitpython/issues
* 9 active milestones
 * 10.0.0: 2 open issues
 * 8.2.x: 1 open issues
 * 9.0.x: 0 open issues
 * 9.1.0: 0 open issues
 * 9.x.x: 25 open issues
 * Libraries: 22 open issues
 * Long term: 601 open issues
 * Support: 7 open issues
 * Third-party: 14 open issues
 * 3 issues not assigned a milestone


### 9:08 Libraries
* 10 pull requests merged
  * 5 authors - makermelissa, FoamyGuy, DJDevon3, jepler, tyeth
  * 7 reviewers - makermelissa, FoamyGuy, tannewt, TheKitty, dhalbert, tekktrik, jepler
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_HX8357/pull/22 (Days open: 15)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/174 (Days open: 8)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/175 (Days open: 7)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306/pull/41 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1107/pull/21 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_IL91874/pull/19 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/91 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_SharpMemoryDisplay/pull/24 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/179 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_floppy/pull/11 (Days open: 1)
  * 71 open pull requests (Oldest: 599, Newest: 1)
* 5 closed issues by 4 people, 9 opened by 9 people
  * 737 open issues
  * 5 good first issues
* https://circuitpython.org/contributing


#### 11:22 Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 136852 PyPI downloads over 325 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8193
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7664
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 6272
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2347
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1288
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1223
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1146
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1106
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1042
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1027


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


### 12:38 Blinka
* 2 pull requests merged
  * 2 authors - makermelissa, brentru
  * 2 reviewers - makermelissa, dhalbert
* 4 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 913 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 124 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 101 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 101 days) (draft)
* 1 closed issues by 1 people, 1 opened by 1 people
* 85 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 14264
* Piwheels Downloads in the last month: 11356
Number of supported boards: 133
## 13:25 Hug reports
14:20 @tannewt (host)
* PyCascades organizers for a well run conference full of Pythonistas


14:32 @danh
* @brushmate for adding the ability to change the various USB MIDI names: interfaces and jacks.
* @kevinjwalters for finding an issue when an nRF analog pin is reused as digital.
* @tannewt for 9.x.x triage meeting.




15:39 David Glaude (not present)
* @p3lim (Adrian L Lange) (and Dan) for hinting the use of microcontroller.nvm for hiding CIRCUITPY (see https://github.com/adafruit/circuitpython/issues/9136#)
* Dan for taking care of all the CP releases.
* Scott for working on USB Host Feather Wing.


16:05 DJDevon3
* @FoamyGuy for going through my commits with a fine toothed comb, especially the typing PR where Pylint almost caused me to throw my keyboard across the room. Another hug for his Saturday morning stream on refactoring and improving circup.
* @Elpekenin for advice on catching line endings using ordinal values. It didn’t work out but I learned a lot from the process.
* @Todbot for helping to troubleshoot an sdcard issue which turned out to be a bad soldering job.  Nice catch!
* @Tannewt for a nice PyCascades preview.  Hope you get better soon. 🐸


16:55 @foamyguy (missing meeting)
* Scott for reviews and offering improvements to circup refactoring work
* @elpekenin (he/him) and @danh for helping me work through a bewildering issue with pytest in discord
* @elpekenin (he/him) for sharing ideas and improvements to an on-device testing utility that I’ve started to build
* Group hug




17:21 Jepler (missing meeting)
* Group hug


17:28 @makermelissa
* Everybody who has been submitting their new boards to circuitpython.org
* @richterf for opening an issue for a Blinka bug in pwmio that I accidentally introduced
* Group Hug


17:52 @michalpokusa (not present)
* @AndreasTheCat for posting the issue about using adafruit_httpserver with AP
* @anecdata for testing PR with AP and ConnectionManager examples in HTTPServer
## 18:10 Status Updates
18:36 @tannewt (host)
* PyCascades talk went as well as it could with a cold.
* Wrapping up USB host featherwing today and tomorrow. Did a good refactor during my stream on Friday.
* May spend a little time to finish adding `clang` support to our makefiles. Got `bear` to generate a `compile_commands.json` to use with the clangd language server and it looks helpful!
* Out most of next week for Zephyr conference and then friday for a family long weekend.
* Also out week of May 6-10 for a road trip with my Dad.


20:04 @danh
* Released CircuitPython 9.0.3: nRF52840 AnalogIn fix and one new board.
* Scott and I triaged the 9.x.x issue list: reduced from about 33 to about 25 issues.
* Made a pass through ReadTheDocs webhooks from CIrcuitPython libraries. Had to add ReadTheDocs secret on around 10% of them to allow the RTD builds to run. Other minor cleanup.
* Testing various 9.x.x reported issues, and looking at fixes as needed.


22:29 David Glaude (not present)
* Improved my mouse jiggler by making it stealth but switchable by the boot button on the QT Py 2040 using `microcontroller.nvm[0]` to store a behaviour flag: https://github.com/dglaude/QTPY2040_Stealth_Mouse_Jiggler
* Soldering (first time with my prescription glass, and this is a game changer)
   * USB Host FeatherWing to be ready to test Scott work.
   * DVI RP2040 Feather to be ready to replicate CP/M emulation by Jepler: https://learn.adafruit.com/rp2040-runcpm-emulator-with-usb-keyboard-hdmi-screen 


23:00 DJDevon3
* Submitted a new API example for Queue-Times.com to adafruit_requests. The API interacts with many different theme parks, the example pulls data from Disneyland.  It shows the name of the ride, queue time, and if the ride is open or closed. Handed it off to the Ruiz brothers who might turn it into a project somehow.
* Finally figured out a way to address the Github Desktop issue where it automatically converts all line endings to CRLF during checkout. I wrote a Playground Note on using Windows powershell to automatically convert CRLF to LF line endings, run black, reuse, and pre-commit all in 1 shot with 2 mouse clicks. This issue has plagued Github Desktop users since its debut. Pretty sure every Windows Github Desktop user on the planet will want to know about this one.
* Made some more progress on the ATECC crypto chip bug. I fooled it into thinking it is receiving a correct CRC match and it started working as intended.  Upon more investigation I found that CRC1 and CRC2 randomly do not match. Early indications are pointing at some kind of analog voltage oscillation counter rollover not working properly. The CRC Mismatch error seems to occur when CRC1 reaches 65535 and I don’t think that’s a coincidence.
* Finally got a working belt sander and can sand and stain some new shelves.


24:45 @foamyguy (missing meeting)
* Missing the live meeting to catch the eclipse. 😎
* Refactoring circup to break it up into smaller chunks to hopefully make it easier to understand, maintain, and develop new features for. Resolving a few of the existing issues while I’m there, and trying to work towards a new feature that would allow circup to be used for loading library examples onto the connected device.
* In order to make my wish of circup loading examples easier to achieve I’ll try to resolve a longstanding issue / idea in circuitpython-build-tools to break up the examples directory into 1 dir per library rather than the existing way which puts all examples from all libraries into 1 folder together.
* Received all hardware and started wiring buttons for simon-like game, but I was too rough with the thin grove cable wiring and my buttons are flaky if the wire isn’t held absolutely perfectly. I’m planning to drop the Grove wing all together and just wire the buttons to a perma proto breadboard instead




25:50 Jepler
* Out watching the eclipse today, hopefully!
* Working a bit on the posix port, I found an interesting crash when trying to enter safe mode. I should make up a PR to fix it. The problem can occur if a safe-mode reset message is printed before the qstr pool is fully initialized. This happened to me in the posix port, but may or may not happen “in real life”.


26:22 @makermelissa
* Worked on going through Raspberry Pi related guide feedback and updating guides as needed
## 26:49 In The Weeds
27:00 DJDevon3
* Currently all requests API examples I’ve contributed use an explicit response.close to disconnect a socket.  Anecdata brought up a point that using “with requests.get(DATA_SOURCE) as response:” doesn’t require an explicit .close().  Any preference on the syntax/method used?  Anecdata says, “to me, with is simpler than close, but it's another concept to grasp”. It might be better for beginners to see the .close() to grasp what the script is doing but on the other hand using “with” is more efficient syntax.  I can submit a new API example that specifically uses both methods with code comments pointing out that’s the purpose of the example?
   * Yup, `with` is better because it closes when exceptions are thrown.


danh - There is no standalone “intro to networking” Guide that walks you through connecting and making network requests. Such a guide would be useful, and could point to a number of the networking fetching examples in the requests library, for instance. Right now those examples are not very visible to the casual user. They could be written up in Adafruit Playground, for example.


FoamyGuy noted earlier in discord that the examples directory in the bundles could be restructured to have folder per library, which would make it easier to browse and to use elsewhere.


Scott - The Aduino IDE “Examples” drop-down menu makes examples very accessible. Can we do something that’s similarly effective? PyLeap might be one way. danh suggests maybe making an “Examples” section on circuitpython.org. code.circuitpython.org might also make the examples more accessible. Maybe Mu could have an examples drop-down? Could web workflow do something along these lines? All worth thinking about.
## 35:48 Wrap-Up
