# CircuitPython Weekly Meeting for July 31, 2023

Video is available [on YouTube](https://youtu.be/V0qPO9-eVMw).


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.
## 2:45 Community News
### 2:56 CircuitPython 8.2.1 Released
CircuitPython 8.2.1 is now the latest bugfix revision of CircuitPython, and is the new stable release - [Adsafruit Blog](https://blog.adafruit.com/2023/07/25/circuitpython-8-2-1-released/) and [Release Notes](https://github.com/adafruit/circuitpython/releases/tag/8.2.1).
**Notable changes to 8.2.1 since 8.1.0**
- Continued enhancement of `synthio`.
- RP2040 `alarm.sleep_memory`.
Note for nRF52 boards only: If your board has an nRF52 UF2 bootloader whose version is before 0.6.1, you will not be able to load CircuitPython 8.2.0 and later. The 8.2.0 firmware is larger than what the bootloader can handle. See [these instructions](https://learn.adafruit.com/introducing-the-adafruit-nrf52840-feather/update-bootloader) for updating your bootloader.
### 4:01 CircuitPython Hack Chat
Hackaday.io and Adafruit cosponsored a Hack Chat with key Adafruit folks about CircuitPython. If you missed the live broadcast last week, you can see it now - [YouTube](https://www.youtube.com/watch?v=8VhdFH7UEEQ).
### 4:24 Adafruit IO WipperSnapper Now Supports 20 Boards
Wippersnapper is the no code firmware for building internet-connected electronics projects. It now supports twenty (20) development boards with more to come - [Adafruit Blog](https://blog.adafruit.com/2023/07/20/adafruit-io-wippersnapper-now-supports-20-boards/).
### 4:49 CircuitPython Day: August 18, 2023
The annual CircuitPython Day celebrations have been scheduled for August 18, 2023. Keep an eye on the [Adafruit Blog](https://blog.adafruit.com/) for announcements as well as next week's newsletter.
### 5:20 Newsletter Details
The CircuitPython 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 tag a tweet with #CircuitPython on Twitter, or email cpnews@adafruit.com.
## 6:31 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:45 Overall
* 43 pull requests merged
  * 21 authors - sdomoszlai13, weblate, Xenokrates, spovlot, andibing, tannewt, kbsriram, gaweng, wtuemura, ErikApption, KeithTheEE, atomicmaster, vladak, dhalbert, bergdahl, elpekenin, madcitygeek, lynt-smitka, FoamyGuy, todbot, jepler
  * 6 reviewers - dhalbert, makermelissa, tekktrik, tannewt, FoamyGuy, jepler
* 12 closed issues by 7 people, 11 opened by 11 people


### 8:08 Core
* 33 pull requests merged
  * 14 authors - weblate, dhalbert, bergdahl, andibing, kbsriram, tannewt, todbot, gaweng, madcitygeek, lynt-smitka, FoamyGuy, elpekenin, jepler, wtuemura
  * 5 reviewers - tannewt, dhalbert, makermelissa, FoamyGuy, jepler
* 31 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 391 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 317 days)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 272 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 255 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 241 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 201 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7591 (Open 165 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 161 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 149 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7711 (Open 142 days)
  * https://github.com/adafruit/circuitpython/pull/7718 (Open 140 days)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 123 days)
  * https://github.com/adafruit/circuitpython/pull/7984 (Open 76 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 73 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 73 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 66 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8095 (Open 41 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8091 (Open 41 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 39 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8133 (Open 30 days)
  * https://github.com/adafruit/circuitpython/pull/8190 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/8188 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/8215 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/8220 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/8218 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/8223 (Open 3 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8227 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8235 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/8234 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/8240 (Open 0 days)
* 7 closed issues by 4 people, 8 opened by 8 people
* 677 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
 * 8.2.x: 0 open issues
 * 9.0.0: 48 open issues
 * Libraries: 21 open issues
 * Long term: 587 open issues
 * Support: 15 open issues
 * Third-party: 8 open issues
 * 4 issues not assigned a milestone


### 9:48 Libraries
* 7 pull requests merged
  * 7 authors - sdomoszlai13, tannewt, KeithTheEE, vladak, FoamyGuy, jepler, spovlot
  * 3 reviewers - tannewt, tekktrik, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_SCD4X/pull/7 (Days open: 701)
    * https://github.com/adafruit/Adafruit_CircuitPython_turtle/pull/34 (Days open: 100)
    * https://github.com/adafruit/Adafruit_CircuitPython_ServoKit/pull/49 (Days open: 69)
    * https://github.com/adafruit/Adafruit_CircuitPython_MS8607/pull/13 (Days open: 69)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/191 (Days open: 20)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/172 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_PIOASM/pull/58 (Days open: 1)
  * 55 open pull requests (Oldest: 1035, Newest: 1)
* 4 closed issues by 4 people, 2 opened by 2 people
  * 630 open issues
  * 46 good first issues
* https://circuitpython.org/contributing


#### 11:45 Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 103359 PyPI downloads over 311 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6675
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6361
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 1677
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1500
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1227
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1148
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1103
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1041
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 973
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 785


#### 11:58 Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_ServoKit](https://github.com/adafruit/Adafruit_CircuitPython_ServoKit)
  * [adafruit/Adafruit_CircuitPython_Dash_Dis](https://github.com/adafruit/Adafruit_CircuitPython_Dash_Dis)
  * [adafruit/Adafruit_CircuitPython_turtle](https://github.com/adafruit/Adafruit_CircuitPython_turtle)
  * [adafruit/Adafruit_CircuitPython_PIOASM](https://github.com/adafruit/Adafruit_CircuitPython_PIOASM)
  * [jposada202020/CircuitPython_uplot](https://github.com/jposada202020/CircuitPython_uplot)


### 12:15 Blinka
* 3 pull requests merged
  * 3 authors - ErikApption, Xenokrates, atomicmaster
  * 1 reviewers - makermelissa
* 4 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 901 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 661 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/299 (Open 64 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/306 (Open 1 days)
* 1 closed issues by 1 people, 1 opened by 1 people
* 100 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 13060
* Piwheels Downloads in the last month: 9723
Number of supported boards: 119
## 13:26 Hug reports
13:57 @tannewt (host)
* @foamyguy for hosting Deep Dive while I was out and getting going again, allowing me to resume in the normal spot and offering to cover when I’m out.
* @hathach for the continued USB host collaboration.


14:40 @2231puppy
* Group hug, y’all are awesome!


14:49 @danh
* @brnt for collaborative debugging about why the NINA-FW update would not upload on boards that use a passthrough.
* @kattni for deep revisions on git guides (belated hug report)


15:28 @David.Glaude
* @tannewt for restarting the Deep Dive (and working on USB-Host)
* (John Furcean) @jfurcean for merging my Wii Drums into the WiiChuck library
* @Neradoc for #help-with-circuitpython on updating github action for community bundle library
* Mark Gamblor (and every pointing at him) for synthio drums sound generation


16:16 @DJDevon3 (text only)
* @superhac for finding and reporting 2 ESP32-S2 hard fault bugs in their first week of being an Adafruit discord member.
* @Cater for spotting an issue within some code I posted. Re-calibrated the BME280 altitude sensor by moving sea level pressure compensation inside the while true loop. A mistake I never caught in more than a year running my feather weather station. Thank you Cater.
* @CoreDevelopers for the 8.2.1 release, S3 Matrix Portal guide, pin fixes, backporting, and bug fixes this week.
* @ScottyP, @Humanithink, & @Tyeth for spotting the SSL cert disparity in the Airlift ports and beta testing NINA 1.75. They provided valuable feedback to help narrow down the AdafruitIO issues.
* @BrentR & @Danh for sorting out the AdafruitIO SSL cert issue that affected ALL WipperSnapper boards and Circuit Python boards with an ESP32 Airlift co-processor running NINA 1.75 or earlier. 


17:26 @foamyguy
* @Danh for keeping the release train moving
* @tannewt for Deep Dive stream on Friday.
* @MichaelPokusa for additional improvements in the HTTPServer library: websockets and SSE + more, and reviewing a PR that I submitted, providing some helpful feedback.
* @Makermelissa for adding settings.toml support in PortalBase library


18:20 @jepler
* @danh and @brentru for behind the scenes sleuthing about trouble updating nina fw with the usb passthrough sketch. I think Dan cracked it over the weekend!
* @kattni and @prcutler for testing the new day for newsletter & Anne for adopting it – this is nice for the person running the meeting because there is not an urgent need to edit the newsletter with details of the meeting anymore.
* @danh for continuing to work away at the micropython 1.19 merge along with all the other things you do


19:47 @kattni
* Group hug


19:52 @michalpokusa (text only)
* @foamyguy for reviewing and testing PR for adafruit_httpserver
* Adafruit Support for help with order


## 20:08 Status Updates
20:26 @tannewt (host)
* Streamed on Friday: https://www.youtube.com/watch?v=lNmwbJ5EH7o
* Working in the weeds of USB host. Debugging why rp2040 host doesn’t work with CP on a RP2040 device.
* Not sure if I’m streaming Friday. (Camping this weekend.)
* “metro m7 trace” board remix: boards are incoming


21:34 @2231puppy
* Continuing to design the PCB for my CircuitPython-powered desktop game controller
* Anxiously awaiting the arrival of the next E-Fidget (version 5, if you’re keeping track)
* Hoping to *finally* finish up a kit that DJDevon3 sent to me for testing, sorry it’s taking so long!


21:59 @danh
* CircuitPython 8.2.1 release last Tuesday. Draft release notes for first 9.0.0-alpha: we decided we’ll defer that until the .mpy version stabilizes.
* Two more files to update and then I can start compiling the MicroPython merge. 
* Diagnosed problem with Arduino sketch passthrough for updating ESP32. Brent was able to get it partially working with esptool.py only with a different .BIN, but still didn’t work with Web ESPTool. It is some issue with the USB stack for SAMD in our fork of the Arduino SAMD board package. Using TinyUSB stack in the Arduino build instead solves the problem. Passthrough UF2’s re-compiled and old ones replaced in the guide mirror page for this.
   * CircuitPython 8.2.2  will fix the same issue for pico w & espressif-family MCUs


24:49 @David.Glaude
* Past - Ultimate M0 mouse jiggler
   * Gave a Trinked M0 to a friend and introduced him to soldering and CP to build a “Mouse jiggle”
   * Made sure the code was using every feature available to demonstrate CP:
      * Read hid report to detect CAPS LOCK LED state
      * Blink LED
      * Make rainbow color
      * Hide the CIRCUITPY drive and Serial/Joystick/Midi (conditional to a jumper)
   * Started to share to code https://github.com/dglaude/Mouse_Jiggler_Trinket_M0 (works for me, feature complete, but I wanted to support the QTPy and some Xiao or other M0 board) 
* Present - Wii Drums
   * I found a Wii Drums (and 2 Wii Guitar) for 17€
   * (merged) Made a PR to add support in CircuitPython_WiiChuck from jfurcean but the GitHub action in that library were 2 years old and failing
   * (merged) Made a PR to update the github action from a copy from latest CookieCutter
   * (pending) Made a PR to add drums to WiiGamepads: https://github.com/jfurcean/CircuitPython_WiiGamepads/pull/1
   * TODO:
      * Create a repo for all my CP drums experiments
      * Publish the code of my color demo: https://twitter.com/DavidGlaude/status/1684331130202337281 
      * Generate midi from CP for the drums (there is also a din midi port)
      * Produce sound from wav file
      * Produce sound from synthio using Mark (Gamblor) code: https://gist.github.com/gamblor21/15a430929abf0e10eeaba8a45b01f5a8
* Future - Micro Dot
   * Check if the IS31FL3731 library can be reused to drive a IS31FL3730. It’s the matrix driver used by Pimoroni to drive “Micro Dot” 5x7 LED display (aka Lite-On LTP-305 LED matrices).
   * Enhance the *31 library or create an ad-hoc library for Micro Dot


28:06 @DJDevon3 (text only)
* Helped beta test and replicate a hard fault bug. Issue #8146 setting `wifi.radio.enabled = False` hard faults on the ESP32-S2. Requires a dev to investigate more.
* Still working on semi-automating the Fitbit API example without requiring a local server/browser callback. Their documentation says their SHA-256 API token expires every 8 hours. It is undocumented the API token will stay alive indefinitely if provided refresh tokens. After the SHA-256 token & initial refresh token are copy/pasted into settings.toml my API example runs forever. Refresh tokens act as “keep alive” tokens. The only caveat is you must make a request at least once every 8 hours otherwise you must start over and generate a new SHA-256 token from their developer tutorial. Fitbit designed their API in such a way to require your microcontroller to always be online.
* Got an S3 Matrix Portal and some matrix panels to play with this week.


29:12 @foamyguy
* Library PR reviews in Turtle, PortalBase and HTTPServer libraries and a few other typing related ones. Also still working through the oldest PRs, got a few more of those wrapped up this week.
* Starting a pass through library ‘good first issues’ to find and remove labels on any that have too broad of a scope, or have already begun and are awaiting modifications.
* Outside of CircuitPython I’ve been studying to brush up on web application security. Recently completed lessons on XSS and was able to use my new knowledge to find and submit fixes for the most basic forms that were possible against the HTTPServer library.


30:45 @jepler
* A couple of PRs that need to be reviewed and merged:
   * Update protomatter in circuitpython
   * Update nina-fw in circuitpython
   * Camera s3 board definition
      * Review in progress. I made some changes to the doc & build system as a part of this and dan has comments for me to address now
   * Speed up camera probe (in esp32-camera adafruit fork, will merge with the board definition PR
* I think all functionality in PyCamera app is working again
   * Two special effect modes disappeared
   * No way to access test pattern right now
   * Forgot my sd card reader so haven’t checked that *captures* with image effect modes are right, just LCD
   * Short term this is in a private github repo so there’s nothing to see yet but it’ll become public by the time the product exists
* Qrio module works when recognizing from a static image file on hardware, but I didn’t adapt a full qr code demo to the new module yet
* Improved teddy ruxpin updating guide page based on what we learned when Erin did the process
* Added aarch64 (64-bit raspberry pi ps) build of g722-1-mod encoder & released it again
   * The system I used for building “wheels” can’t do 32-bit raspberry pi os but pip “should” be able to build locally as long as the C compiler is installed
* Based on a discord discussion took notes about Micropython’s ability to use the i2s “RX BCLK” when *transmitting* I2S audio data. This is apparently needed for the sparkfun “micromod teensy” and maybe for teensy 4.x itself? It looks “easy”, however, I haven’t implemented anything as this was not needed for metro 1011. Good to know for potential future nxp designs though.
* Ahead:
   * Actually test qrio with live camera image, not just canned bitmap image
   * Add display to camera board definition, including turning on backlight at boot if that is desirable (vs changing the board design so it’s default-on)
   * Any quests ladyada sends me on
      * A number of other ideas for demos on the camera board
* Other:
   * Helped a friend move this weekend. She’s all set in her new apartment, but it was exhausting for the 3 of us who were doing it. Weather could have been worse though.


36:23 @kattni
* Added CircuitPython Essentials pages to the Feather ESP32-S2 Reverse TFT guide
* Updated the Adafruit IO Send and Receive Data template to use settings.toml
* Tidied up the Create Your settings.toml File page so it can be used in any guide that requires a settings.toml file
* Working on the ADXL343/ADT7410 FeatherWing guide
* Next up: Metro RP2040 guide
## 37:47 In The Weeds




## 38:00 Wrap-Up
