# CircuitPython Weekly Meeting for May 13, 2024

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


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:50 Community News
### 3:04 Raspberry Pi Connect Now Available
Raspberry Pi announced the beta release of Raspberry Pi Connect: a secure and easy-to-use way to access your Raspberry Pi remotely, from anywhere on the planet, using just a web browser - [Raspberry Pi News](https://www.raspberrypi.com/news/raspberry-pi-connect/).


> "It’s often extremely useful to be able to access your Raspberry Pi’s desktop remotely. There are a number of technologies which can be used to do this, including VNC, and of course the X protocol itself. But they can be hard to configure, particularly when you are attempting to access a machine on a different local network; and of course with the transition to Wayland in Raspberry Pi OS Bookworm, classic X remote desktop support is no longer available.<br>&nbsp; <br>We wanted to be able to provide you with this functionality with our usual “it just works” approach. Enter Raspberry Pi Connect."


### 3:55 The Updated Matter 1.3 Internet of Things Standard Brings Energy Monitoring, Electric Vehicle Charging Support, and More
The new Matter 1.3 standard provides energy monitoring, electric vehicle charging support, and more - [hackster.io](https://www.hackster.io/news/updated-matter-1-3-standard-brings-energy-monitoring-electric-vehicle-charging-support-and-more-88af871283d8).


> "The addition of these new device types and functionalities in Matter 1.3 enables product manufacturers and controllers to begin implementing and certifying these features into new and existing products."


### 4:27 Coming up at PyCon US: Jeff Epler's talk on "Connecting Old to New with CircuitPython: Retrocomputer input devices on modern PCs"
CircuitPython developer Jeff Epler will be giving the talk "Connecting Old to New with CircuitPython: Retrocomputer input devices on modern PCs" on Sunday May 19th, 2024 1:45 p.m.-2:15 p.m. in Hall C at PyCon US 2024 - [PyCon US](https://us.pycon.org/2024/schedule/presentation/15/) via [Mastodon](https://octodon.social/@stylus/112411930220861884).


> "No keyboards were harmed in the preparation of this talk. Preservation is important, and I only discuss "non-invasive", alteration-free techniques here, using original wiring & connectors only. Sunday afternoon in Hall C has been arranged as a lovely hardware mini-track, with a presentation on robots before me and one on machine learning with FPGAs to follow. You can also find me in the hallway track & 2 days of sprints. Please don't hesitate to introduce yourself!"
### 5:36 Python 3.13.0 Beta 1 is Out Now
Python 3.13.0 beta 1 has been released. The 3.13 branch has been created and features for 3.13 are now frozen. The main branch is now 3.14.0a0. Beta release previews are intended to give the wider community the opportunity to test new features and bug fixes and to prepare their projects to support the new feature release. The Python developers strongly encourage maintainers of third-party Python projects to test with 3.13 during the beta phase and report issues found to the Python bug tracker as soon as possible - [Python Discussion Forums](https://discuss.python.org/t/python-3-13-0b1-now-available/52891) and [Python Insider Blog](https://pythoninsider.blogspot.com/).
### 6:22 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),.
## 7:36 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.**
### 8:12 Overall
* 17 pull requests merged
  * 12 authors - RetiredWizard, VPTechOps, justmobilize, FoamyGuy, BlitzCityDIY, dhalbert, lugamodder, ContosChaos, burberius, RossK1, jepler, vladak
  * 6 reviewers - BlitzCityDIY, anecdata, makermelissa, dhalbert, jepler, FoamyGuy
* 11 closed issues by 4 people, 11 opened by 11 people


### 8:51 Core
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 27 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 678 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 488 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 448 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 436 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 410 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 353 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 326 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 288 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 256 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 223 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 173 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 153 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 119 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 73 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 68 days)
  * https://github.com/adafruit/circuitpython/pull/9023 (Open 65 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 47 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 44 days)
  * https://github.com/adafruit/circuitpython/pull/9222 (Open 9 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9221 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/9224 (Open 8 days)
  * https://github.com/adafruit/circuitpython/pull/9229 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/9233 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/9231 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/9236 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9238 (Open 1 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9240 (Open 0 days) (draft)
* 6 closed issues by 3 people, 4 opened by 4 people
* 687 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: 2 open issues
 * 9.x.x: 30 open issues
 * Libraries: 22 open issues
 * Long term: 604 open issues
 * Support: 10 open issues
 * Third-party: 14 open issues
 * 5 issues not assigned a milestone


### 10:48 Libraries
* 15 pull requests merged
  * 10 authors - RetiredWizard, VPTechOps, justmobilize, FoamyGuy, BlitzCityDIY, dhalbert, ContosChaos, RossK1, jepler, vladak
  * 5 reviewers - BlitzCityDIY, anecdata, dhalbert, jepler, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_AVRprog/pull/34 (Days open: 377)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/36 (Days open: 54)
    * https://github.com/adafruit/Adafruit_CircuitPython_LIS3MDL/pull/26 (Days open: 43)
    * https://github.com/adafruit/Adafruit_CircuitPython_ILI9341/pull/38 (Days open: 29)
    * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/72 (Days open: 7)
    * https://github.com/adafruit/Adafruit_CircuitPython_NTP/pull/32 (Days open: 7)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes/pull/72 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/201 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_RFM69/pull/54 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_S-35710/pull/2 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_S-35710/pull/1 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/16 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/212 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/192 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/461 (Days open: 1)
  * 57 open pull requests (Oldest: 634, Newest: 9)
* 5 closed issues by 3 people, 7 opened by 7 people
  * 847 open issues
  * 102 good first issues
* https://circuitpython.org/contributing


#### 14:38 Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 105399 PyPI downloads over 326 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 7817
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7586
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 6729
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2283
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1027
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1002
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 939
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 875
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 864
  * Adafruit CircuitPython SSD1306 (adafruit-circuitpython-ssd1306): 863


#### 14:59 Library updates in the last seven days:
* **New Libraries**
  * [adafruit/Adafruit_CircuitPython_S-35710](https://github.com/adafruit/Adafruit_CircuitPython_S-35710)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_Requests](https://github.com/adafruit/Adafruit_CircuitPython_Requests)
  * [adafruit/Adafruit_CircuitPython_AVRprog](https://github.com/adafruit/Adafruit_CircuitPython_AVRprog)
  * [adafruit/Adafruit_CircuitPython_PyCamera](https://github.com/adafruit/Adafruit_CircuitPython_PyCamera)


### 15:14 Blinka
* 2 pull requests merged
  * 2 authors - lugamodder, burberius
  * 1 reviewers - makermelissa
* 5 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 948 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 159 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 136 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 136 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/817 (Open 20 days)
* 0 closed issues by 0 people, 0 opened by 0 people
* 93 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 12781
* Piwheels Downloads in the last month: 10434
Number of supported boards: 133
## 16:18 Hug reports
16:47 @tannewt (host)
* Everyone for keeping CP going while I was out.
* @gaogaotiantian, creator and maintainer of viztracer, for fixing a bug I ran into when trying to use viztracer on asyncio build scripts.


17:35 @danh
* @Justin for many quick changes and back-and-forths on PR’s.
* @jepler for MP3 work on new kinds of boards


18:08 DJDevon3
* @Todbot for a great demo of his capacitive touch wheel on JP’s workshop this week.  It looks like it works amazingly well. Congratulations on a great PCB design!
* @FoamyGuy for back-to-back deep dives on Friday & Saturday.  Lots of circup, time, web workflow, and postgrest integration. Picked up a few new circuit python coding tricks as always.
* @LizClark for a bunch of new guides recently.  The USB host guide is a great guide that I’m sure will be referenced for a long time to come.
* @Justin and @Anecdata for your continued work on Connection Manager and integrating ESP32 SPI (Airlift) with contributions and beta testing from many others to help make the API more consistent across multiple wifi and ethernet libraries.
* @RetiredWizard for a PR fixing the display_shapes sparkline function this week. Had multiple people in discord asking about sparkline related projects that will now work because of your and FoamyGuy’s efforts.
* @Danh, @Jepler, @Tannewt, @Melissa for your never ending work of squashing bugs and feature improvements.


20:00 @foamyguy
* @DJDevon3 for lots of work on a PR for typing and rotation functionality to IS31FL31 LED matrix driver
* @Danh for reviewing and offering improvements to circup PR for local file installs
* @retiredwizard for offering improvements to code I was working on during stream. Also another for fixes to the Sparkline class in Display_Shapes library


20:59 @jepler
* Group hug


21:11 @makermelissa
* @jepler for reading my notes last week
* Group Hug


21:27 @tyeth [TEXT ONLY]
* @tannewt for all the USB host stuff, Bluetooth ESP stuff, and generally bringing the features that I’ve secretly been wanting for ages 😀 Tested usb mass storage on rp2040 usb host feather + 3.5” touchscreen, also esp32+usb host featherwing
## 21:54 Status Updates
22:07 @tannewt (host)
* Getting caught up after a week out.
* Circling back to ESP BLE work and debugging.
* Worked a bit on Python asyncio build scripts for CircuitPython.


22:58 @danh
* Redid retry logic in ConnectionManager. It was not trying to release sockets when SSL wrap_socket failed. Now ESP32-S2 works well again. I originally worked on some refactoring in the C code for SSL sockets for a couple of days, but it made no difference. I may PR that code eventually anyway.
* Did many reviews.
* I have draft release notes for 9.1.0-beta.2 and can do a release quickly when it makes sense.


24:43 DJDevon3
* Went on Show & Tell last week with an ST7796 Triple Adapter PCB that allows you to use any combination of Feather + Pi Pico + QT Py or add-on boards.
* Still prototyping some irrigation controller electronics and PCB designs. Ordered a PCB that should step down voltage from 27VAC to 24VAC to address a relay latching issue (hopefully).
* Added a 16-bit register read function to the RA8875 driver for the sake of streamlining the 16-bit color conversion process. Most of my efforts recently have been centered around the RA8875 driver and will remain there for the foreseeable future. Playing with an 800x480 display with hardware acceleration is checking all of my fun boxes.
* Started designing a RA8875 TFT featherwing PCB. I find the prospect of an 800x480 TFT featherwing very appealing and will make designing a 3D printed enclosure much easier. I’m using Adafruit’s RA8875 module schematics as a basis but with 100 pinouts on that chip alone it’s going to take a while to design. I might design a version that has the ESP32-S3 on-board as I got my hands on some N32R8 bare modules.


26:48 @foamyguy
* Library PR reviews, sparkline fix, and Rotating FIle Handler for Logging library.
* Implemented requested changes and other fixes for actions from reviews on the AVRProg library to get it ready to merge
* Added functionality to circup for installing modules from local file paths instead of from bundles.
* Submitted another PR for circup that allows you to use an optional environment variable instead of passing your password as a CLI argument to every command for web workflow.
* Started working on a wireless workflow file management CLI utility. It uses some of the same internal code as circup but is meant for more arbitrary file management of a circuitpython device. Listing, uploading, downloading, deleting, creating new files and directories. Very early stages so far. If you have any thoughts or ideas about name or functionality of this tool head over to issue https://github.com/adafruit/circuitpython/issues/9121
* Installed micropython on a modern MCU for the first time (ESP32-S3) and used it to successfully connect to and pull data out of PostgreSQL with https://github.com/nakagami/micropg. Related to this: I’m interested in trying to make a build of circuitpython with sha256 enabled in the core hashlib module.


30:06 @jepler
* Worked on MP3 playback
   * Adafruit metro esp32-s3 can play *two* 128kbit/s stereo streams from SD card  and mix them with audiomixer
   * Wrote some code to play mp3s from a socket. It sort of works :-/ that is, you can hear the stream but frequently it’ll “glitch”, apparently because reading from the socket is taking a long time
   * Real mp3 streaming solutions are able to buffer up mp3 data asynchronously but we don’t have machinery to do this in circuitpython
   * There’s also a problem with EOF (the content-length of the http response isn’t obeyed so it blocks until socket timeout because the requests socket is just hanging out waiting for the next request to be sent)
   * It also didn’t like a soma.fm steam, not sure why. Wouldn’t play at all.
   * This is not workable in its current form so I’ll push this branch to github but not PR it
* Got my pycon presentation to 95% complete, which is the most complete that any presentation can be
* Flying thursday to pycon. My presentation is sunday afternoon and I’ll be there for 2 days of sprints as well. I’d love to meet anyone in the community, so please introduce yourself!
* Back after memorial day


32:22 @Justin
* Went through my board collection and updated everything to 9.0.4. Broke Windows with too many stored serial connections… Had issues with the “Feather STM32F405 Express” following the guide and posted some comments about it.
* Tested a ConnectionManager PR for Dan whose working on making error handling better
* Seeing a few MiniMQTT issues with possible poor exceptions, and seeing if I can reproduce and fix


33:26 @makermelissa
* Fixed my internet so that it’s no longer unreliable
* Fixed a number of bugs in the CircuitPython Code Editor and have a PR open
* Started working on changes in the code editor in order to improve the file management and code execution experience for USB connected devices.
## 34:01 In The Weeds


@danh
* 34:31 Replacing `This file is part of the MicroPython project, http://micropython.org/` in files that were created by us. Should we just use `This file is part of the CircuitPython project, http://circuitpython.org/` or something else?
Most or all of these files include a `SPDX-FileCopyrightText:` line, and also contain the full MIT license text. I plan to replace the license text with an `SPDX-License-Identifier: MIT`. Seem ok to you?
* 39:46 A number of libraries use `AttributeError` when they should be using `ValueError`. The former means an attribute wasn’t found, etc. The latter means a supplied argument or property value is wrong somehow. I’ll see if there’s a place (e.g. a guide) to add guidelines about this. Current libraries could be cleaned up (not urgent).
   * https://docs.python.org/3/library/exceptions.html#ValueError
## 42:42 Wrap-Up
