# CircuitPython Weekly Meeting for July 24, 2023

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


Join here for the chat all week: http://adafru.it/discord.


The CircuitPython Weekly happens normally at 2pm 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 one 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.
## 02:46 Community News
### Silicon Labs introduces support for CircuitPython
Silicon Labs announced CircuitPython support for their xG24 boards.
Silabs, a leading provider of silicon, software, and solutions for a smarter, more connected world, is proud to introduce CircuitPython support for our xG24 boards.
This exciting development expands the capabilities of the xG24 explorer kit, xG24 dev kit, and the Sparkfun Thingplus Matter – MGM240P, allowing users to leverage the power of CircuitPython’s simplicity and flexibility while harnessing the advanced features of Silabs’ boards.
### 03:28 CircuitPython Hack Chat with Adafruit
Hackaday is hosting a CircuitPython Happenings Hack Chat with Scott, PT, and Ladyada from Adafruit on Wednesday, July 26th at 3 p.m. EDT / 12 p.m. PDT. – Hackaday


### 03:42 Project of the Week: CircuitPython powered Typewriter
Project Max Lupo created a custom PCB that connects to a KB2040 running CircuitPython to control a Swintec 1146 typewriter.
The CircuitPython code on the KB2040 blips out a sequence of binary data into the typewriter’s parallel port, one character at a time. When the typewriter receives a newline, it tells the code it’s busy and taps out its text buffer. – Mastodon and GitHub.
### 04:17 Newsletter Details
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Tuesday. 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 tag a tweet with #CircuitPython on Twitter, or email cpnews@adafruit.com.
## 05:01 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.**
### 05:02 Overall
* 20 pull requests merged
  * 18 authors - andibing, tannewt, anecdata, FoamyGuy, kattni, jepler, kbsriram, hexthat, BiffoBear, fasteddy516, kolkmvd, michalpokusa, DJDevon3, Saentis, evaherrada, Qyriad, UnexpectedMaker, weblate
  * 6 reviewers - anecdata, tannewt, jepler, dhalbert, FoamyGuy, brentru
* 15 closed issues by 7 people, 4 opened by 3 people
### 05:58 Core
* 12 pull requests merged
  * 12 authors - andibing, tannewt, anecdata, kolkmvd, FoamyGuy, Saentis, jepler, Qyriad, kbsriram, hexthat, UnexpectedMaker, weblate
  * 3 reviewers - tannewt, jepler, dhalbert
* 45 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 384 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 310 days)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 265 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 248 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 234 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 194 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7591 (Open 158 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 154 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 142 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7711 (Open 135 days)
  * https://github.com/adafruit/circuitpython/pull/7718 (Open 133 days)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 116 days)
  * https://github.com/adafruit/circuitpython/pull/7886 (Open 93 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7984 (Open 69 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 66 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 66 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 59 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8095 (Open 34 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8091 (Open 34 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 32 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8101 (Open 31 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8126 (Open 26 days)
  * https://github.com/adafruit/circuitpython/pull/8133 (Open 23 days)
  * https://github.com/adafruit/circuitpython/pull/8164 (Open 11 days)
  * https://github.com/adafruit/circuitpython/pull/8187 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/8190 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8189 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8188 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8192 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/8191 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/8208 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8207 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8206 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8205 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8204 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8203 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8202 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8201 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8200 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8199 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8198 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8197 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8196 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8195 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8194 (Open 0 days)
* 5 closed issues by 3 people, 0 opened by 0 people
* 675 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
 * 8.2.x: 17 open issues
 * 9.0.0: 45 open issues
 * Libraries: 21 open issues
 * Long term: 590 open issues
 * Support: 15 open issues
 * Third-party: 8 open issues
 * 1 issues not assigned a milestone
### 07:32 Libraries
* 8 pull requests merged
  * 7 authors - evaherrada, michalpokusa, FoamyGuy, kattni, BiffoBear, DJDevon3, fasteddy516
  * 4 reviewers - FoamyGuy, anecdata, brentru, dhalbert
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk/pull/31 (Days open: 240)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/58 (Days open: 38)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/123 (Days open: 30)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/122 (Days open: 30)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/136 (Days open: 28)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/130 (Days open: 22)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/59 (Days open: 21)
    * https://github.com/adafruit/Adafruit_CircuitPython_Dash_Display/pull/13 (Days open: 1)
  * 55 open pull requests (Oldest: 1028, Newest: 1)
* 9 closed issues by 5 people, 4 opened by 3 people
  * 631 open issues
  * 46 good first issues
* https://circuitpython.org/contributing
#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 114193 PyPI downloads over 311 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7530
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6918
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 1965
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1336
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1217
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1171
  * Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 1107
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1084
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1061
  * Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 949
#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_PortalBase](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase)
  * [adafruit/Adafruit_CircuitPython_Requests](https://github.com/adafruit/Adafruit_CircuitPython_Requests)
  * [jposada202020/CircuitPython_uplot](https://github.com/jposada202020/CircuitPython_uplot)
### 09:32 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 6 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 894 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 654 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/299 (Open 57 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/304 (Open 4 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/305 (Open 3 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/691 (Open 1 days)
* 1 closed issues by 1 people, 0 opened by 0 people
* 99 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 12148
* Piwheels Downloads in the last month: 8657
Number of supported boards: 119
## 10:32 Hug reports
10:48 @Liz (hosting)
* Group hug


11:00 @danh
* Group hug to discord helpers, both official and unofficial


11:19 @deshipu
* @gaweng for coming to sprints on Europython and working on CircuitPython issues
* group hug


11:38 @DJDevon3
* @jposada & @StefanKruger for their work on the displayio page layout and cartesian plotting library examples. 
* @FoamyGuy for a great episode on the new S3 matrix portal


12:32 @foamyguy
* @kattni and @Paul Cutler for managing the newsletter the last few weeks
* Github user @gaweng for completing an older issue for a ‘nice to have’ in displayio, a way to check the bit depth of a Bitmap object.
* Group hug


13:06 @kattni
* @danh for a quick guide review, and for the final proof of my final newsletter for this run
* @Paul Cutler for all his work on the newsletter the last three weeks - his help has been invaluable and I am deeply appreciative.
* @todbot for a lengthy discussion about synth basics
* @anneb Welcome back!
* Group hug


13:59 @MakerMelissa
* @kattni for handling the newsletter
* @tekktrik for responding to Blinka-related issues and PRs
* @PaintYourDragon for looking over the MatrixPortal S3 Guide
* Group Hug


14:31 @tannewt
* @mubes, @zyp and @dragonmux for help getting going with Orb Trace Mini as my debugger.
* @hathach for the help bug hunting for usb host.
* JLCPCB folks for helping fix a couple footprints on my metro m7 trace remix board.
* @danh for backporting stuff to 8.2.x for the 8.2.1 release. 


15:26 @todbot (text-only)
* All CircuitPython folk for such a fun tool (I had lots of fun this weekend in CirPy)
* @jepler for synthio envelope info updates
## 15:46 Status Updates
16:10 @Liz (hosting)
* This past week I was working on a 4x4 rotary encoder midi controller using asyncio. It was my first time using asyncio and it felt at times like my brain was being turned inside out. With some trial and error and Dan’s learn guide I was able to finally get it and I looked forward to using it on more complicated control interface projects going forward


16:49 @danh
* Progressing through a second pass of MicroPython v1.19.1 merge comparisons. This is turning out to be worth it; I’ve revised a number of files based on knowledge gained from the first pass.
* Filed 15 PR’s to backport changes on main to 8.2.x, in preparation for an 8.2.1 release in the next day or two.


18:10 @deshipu
* Had a CircuitPython-related talk on Europython
* Helped with some pull requests during Europython sprints


19:03 @DJDevon3
* Continued working on a personal project using Fitbit’s API and cartesian plotting the last 15 minutes of heart rate data on a 3.5” TFT Featherwing display. The y-axis automatically scales with the lowest & highest values.Axes color changes with highest BPM values. Blue is generally for sleeping, yellow for active, and orange for cardio. Added the graphing example to my personal repo along with a walkthrough of their oauth tutorial process.
* .    
* A much simpler version will be submitted to the adafruit_requests library without the graphing.It’s not a fully automated script. A fitbit watch, developer app & api token are required.
* Still working on a better way to automate the refresh token process


20:29 @foamyguy
   * Learning what data goes into and how to format it for submitting OSHW certification requests
   * Testing PRs for requests and wiznet5k libraries.
   * Set up Matrix Portal S3 and started working on some displayio helper functions for scrolling Groups that contain multiple things 
   * Submitting a few updates related to recent change with bitmaptools blit function in the core
   * Work on cleaning up and submitting OutlinedLabel class now that the underlying functionality is in place




22:35 @kattni
   * Previously:
   * Final newsletter (for this run, anyway) shipped this morning!
   * Guide feedback
   * Overhauled the Contribute to CircuitPython using Git and GitHub guide; it is now up to date and no longer mentions Travis.
   * This week:
   * Misc first
   * Guide feedback


25:45 @MakerMelissa
   * Last 2 weeks:
   * Updated the MatrixPortal S3 pin definitions
   * Figured out the TSC2046 config settings for Raspberry Pi to use the kernel drivers
   * Wrote the MatrixPortal S3 Guide
   * Worked on adding my first CircuitPython board from scratch, the Arduino Nano ESP32
   * This Week:
   * Finish adding the Arduino Nano ESP32
   * Start working on another new board definition
   * Possibly start a new learn guide
   * Other:
   * Attended Open Sauce last week
   * Tried out some welding for the first time


26:58 @tannewt
   * Working on Python USB host mass storage driver and bugs I find along the way.
   * Switching to orb trace mini + blackmagic as my debugger. Mostly open source and supports trace too.
   * “Remixed” the metro m7 to include a trace (2x10) connector instead of only SWD.
   * Update tinyusb and “sharing” branch so that detach/attach works from cp level.
   * Vet on Tuesday, HackChat on Wednesday, car mechanic on Thursday. So off and on a bit more than usual then.


28:47 @todbot (text-only)
   * Playing with wavetable synthesis in synthio. It works!


## 29:08 In The Weeds
   * 29:27 (deshipu) The "good first issue" issues in the bug tracker are very bad first issues. It seems that most of them were created during the hacktoberfest by people who wanted to immediately work on them, and then were abandoned when it became clear that they are not as simple as those people thought. So now when a new person looks through the issues to find something to work on, all they see are super-hairy and badly described issues. What can we do about this?


   * 38:42 @foamyguy - (sounds like this will be handled soon with 8.2.1) Matrix Portal S3 Downloads page on circuitpython.org. https://circuitpython.org/board/adafruit_matrixportal_s3/ the top right of the page has the download link for 8.2.0, but this version seems to have problems displaying on some of the matrices. The latest release on S3 links page does display correctly. Is it possible to hide the top right panel until a new release is made? 


   * 40:01 @todbot - ESP32 synthio voices from 2 -> 12
I opened a PR to increase ESP32 synthio voices from default 2 to 12. Is this an issue? It’s not critical if it is, but ESP32-S2/S3 has a bit more CPU headroom than RP2040 and would be great for synth stuff.


   * 41:19 @DJDevon3 NINA not updating to 1.75 on a Metro M4 with Airlift
## 43:14 Wrap-Up
