

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


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:50 Community News
Project of the Week: Reviving the Assistive Technology Quinkey and Microwriter Keypads

Quirkey is CircuitPython code for the Pi Pico version of the Quinkey keyboard, based heavily on the work done by Microwriter. The device emulates a USB HID US keyboard and requires no specific driver. It does however need the Adafruit HID CircuitPython libraries which can be downloaded from Adafruit's HID example web page or from Github. It now includes a simple "typing tutor" application - GitHub via Mastodon.
The Microwriter and Quinkey were 6-key chord keyboards created in the 80's for use by people with various physical limitations such as brittle bones. They developed a following among all types of users being simple, reliable, easy to use, and effectively allowed instant touch typing at speed.



A DIY circular sequencer made with Raspberry Pi Pico and CircuitPython - Reddit and GitHub.


Review of MicroPython v1.20
 Review of MicroPython v1.20 

LWN.net, a Linux site, provides a thorough review of the latest MicroPython release - v1.20. - LWN.net.
For those looking for an easy way to program microcontrollers, MicroPython has much to offer. Together with alternatives like Adafruit's MicroPython fork CircuitPython and the education-focused Snek, it shows that Python has a place in the embedded world. The closest competitor for microcontroller development, Arduino, requires at least some knowledge of C++, but Python is generally easier to pick up. Moreover, as the WebAssembly port and its use as a smaller and faster PyScript runtime shows, MicroPython seems to be well suited for other constrained environments as well.


### 5:04 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.
## 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
* 22 pull requests merged
  * 18 authors - caternuson, anecdata, jposada202020, Neradoc, luisan00, weblate, jepler, erongd, bergdahl, tannewt, awordforthat, dhalbert, xgqfrms, wtuemura, tekktrik, rcarteraz, furbrain, bill88t
  * 10 reviewers - caternuson, kattni, FoamyGuy, tannewt, dhalbert, microdev1, Neradoc, tekktrik, bill88t, jepler
* 15 closed issues by 9 people, 24 opened by 20 people
### 6:26 Core
* 13 pull requests merged
  * 13 authors - erongd, bergdahl, anecdata, tannewt, jposada202020, furbrain, dhalbert, wtuemura, Neradoc, rcarteraz, weblate, bill88t, luisan00
  * 6 reviewers - microdev1, jepler, Neradoc, bill88t, tannewt, dhalbert
* 25 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 321 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 247 days)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 202 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7221 (Open 185 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 185 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7282 (Open 172 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 171 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 131 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7591 (Open 95 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 91 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 79 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7711 (Open 72 days)
  * https://github.com/adafruit/circuitpython/pull/7718 (Open 70 days)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 53 days)
  * https://github.com/adafruit/circuitpython/pull/7886 (Open 30 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7985 (Open 6 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7984 (Open 6 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/8003 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8010 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/8009 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/8016 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8015 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8014 (Open 0 days)
* 13 closed issues by 8 people, 13 opened by 12 people
* 644 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 8.0.x: 0 open issues
 * 8.1.0: 0 open issues
 * 8.x.x: 33 open issues
 * 9.0.0: 29 open issues
 * Libraries: 20 open issues
 * Long term: 545 open issues
 * Support: 9 open issues
 * Third-party: 7 open issues
 * 6 issues not assigned a milestone


### 8:36 Libraries
* 9 pull requests merged
  * 7 authors - xgqfrms, caternuson, tekktrik, jepler, tannewt, awordforthat, jposada202020
  * 7 reviewers - caternuson, tekktrik, kattni, jepler, tannewt, dhalbert, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_MIDI/pull/53 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_JSON_Stream/pull/1 (Days open: 3)
    * https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/228 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/427 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_DHT/pull/91 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_GPS/pull/98 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_GPS/pull/97 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/429 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/171 (Days open: 1)
  * 71 open pull requests (Oldest: 965, Newest: 1)
* 2 closed issues by 2 people, 10 opened by 7 people
  * 622 open issues
  * 52 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 168523 PyPI downloads over 310 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8024
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 7371
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2533
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1766
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1549
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1340
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1323
  * Adafruit CircuitPython SSD1306 (adafruit-circuitpython-ssd1306): 1316
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1304
  * Adafruit CircuitPython BLE (adafruit-circuitpython-ble): 1255


#### Library updates in the last seven days:
* **New Libraries**
  * [jposada202020/CircuitPython_BMA220](https://github.com/jposada202020/CircuitPython_BMA220)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_turtle](https://github.com/adafruit/Adafruit_CircuitPython_turtle)
  * [adafruit/Adafruit_CircuitPython_GPS](https://github.com/adafruit/Adafruit_CircuitPython_GPS)
  * [adafruit/Adafruit_CircuitPython_Ticks](https://github.com/adafruit/Adafruit_CircuitPython_Ticks)
  * [jposada202020/CircuitPython_gauge](https://github.com/jposada202020/CircuitPython_gauge)
  * [jposada202020/CircuitPython_uplot](https://github.com/jposada202020/CircuitPython_uplot)


### 10:56 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 3 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 831 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 591 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/295 (Open 0 days)
* 0 closed issues by 0 people, 1 opened by 1 people
* 97 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 14169
* Piwheels Downloads in the last month: 8569
Number of supported boards: 119






## 11:58 Hug reports
@Paul Cutler (hosting)
* Group hug!


12:25 @danh
* @Paul Cutler for professional interview for CircuitPython show
* @jepler for inspired synthio capabilities. It is really on a roll!
* @charlieh0tel, @rcarteraz, @bablokb, and more for third-party board PR’s. This is true every week.


13:30 @DJDevon3
* @FoamyGuy for helping me format a round() function with f-strings and for the educational stream on SDCard core code stuff that I’ll never understand.
* @JP for a synthtacular episode this week. It was circuit bending perfection with the Metro M7 and a neat IDC punchdown connector.
* @Anecdata for the advice to use storage.umount() instead of trying to race a sleep timer Mission Impossible style removing & returning the SD card between file writes.
* @Tyeth & @Spovlot for help with MQTT and AdafruitIO. Are you really learning anything until you fail in every way possible first? Learned a lot about MQTT this week, thank you both.
* @PaulCutler for a great interview with @Danh on the Circuit Python Show this morning.


14:27 @foamyguy
* @Neradoc for circuitpython websockets library
* Jeff, Dan, MarkGamblor, bill88t and Deshipu for pointing me in the right direction on various things inside the core


15:03 @jepler
* Mark, jp, & todbot for continued synthio feedback
* Paul for hosting today.


@Jose David(missing)
* @CGrover for the Elegant and Useful ColorFader Library


15:30 @kattni
* SUPER HUG to @tekktrik for updating the CI setup on our Learning System Guides repository to only run SPDX/Pylint when only Python code is submitted (it was previously building literally every Arduino project every PR). Python PRs are now down to 3 minutes from over an hour, sometimes up to two. This is going to save so much time and makes so much more sense!
* @Noe for his thoughts on my code, which led me to change some things up to make it much better
* @danh for a ton of help with my code including making all the right things user-customisable, and helping simplify bits that I didn’t know could be simplified.
* @jepler for almost always being available to help with arbitrary code questions when I have them
* @Neradoc, @anecdata, @bill88t, @Mark (Gamblor) for a great discussion about the MANY ways you can reset/reload a board from code. (I wasn’t thinking about it broad enough, and was thinking there were really only two.)
* @PT for a quick exchange about loading the Canary Guide with maybe-not-so-oblique references to the lyrics from They Might Be Giants’ Birdhouse in your Soul, and verifying that my plan for that and including attribution were completely fine.
* @blitzcitydiy for offering to do up Fritzing objects until I figured out getting it working on my new laptop, and for creating the Fritzing object I need for a guide on my list.
* Other folks that I almost certainly missed!
* Group hug!


17:16 @makermelissa
* @tekktrik for updating the Learn Guide CI to be much faster.
* Everyone who contributed to the discussion about changing over from Jekyll to an alternative site generator including @tannewt, @danh, and @jwcooper.
* Group Hug


@mark[gamblor21] (lurking)
* @jepler for more synthio work that has led me down a path of learning about synths
* @todbot and @johnpark for answering and confirming random synth things I find along the way


18:02 @tannewt
* Hathach for working on imx usb host.
* Tkroo for lolin board defs
* Charlieh0tel for imx 1060 evkB board def.


@todbot (lurking)
* @jepler for all the cool synthio work (LFOs! Maths! Filters!)
* @gamblor (Mark) for deeper synthio testing than I currently have brain for
## 19:00 Status Updates
@Paul Cutler (hosting)
* Last week I edited both episodes for June with guests Martin Tan and Erin St. Blaine.
* New episode of the podcast is out with danh today.


19:42 @danh
* Released 8.1.0-rc.0 last week. Will it into 8.1.0 final without adding anything else, so as not to delay an 8.1 release. There are some PR’s that could be added but they could also be skipped and done in 8.1.1, which would be soon.
* IWill include in an 8.1.1 or 8.2.0:
   * I added alarm.sleep_memory for RP2040. Not approved/merged yet.
   * I fixed ESP TouchAlarm. Not approved/merged yet.
   * Various board updates
   * synthio?


21:49 @DJDevon3
* Went on Show & Tell this week with my custom 19” neopixel ring PCB. Still working on the motor and code for the neopixel lazy susan. The PCB’s and animations work well.
* Continued calibrating the BME280 sensor bias adjustment script. It’s now 99.5% accurate compared against a NIST traceable mercury thermometer and NOAA data. 
*   * Connected my Feather Weather station to AdafruitIO using Mini-MQTT. It’s now automatically plotting the bias adjustment data points. Still hoping to improve it to 99.9% accuracy this summer. The real test of the algorithm will be when we get over 100F. 
*   * Modified a bitmap_saver script to unmount the SD card after taking a screenshot of the display without worrying about file corruption. Submitted PR’s to update the library examples using umount. If file corruption happens the only way to fix it is to reformat the SD card. I have experienced file corruption in the past not using umount, hopefully this will save someone from that mistake in the future. 


23:03 @foamyguy
   * Attempted to initialize SDCard and mount it inside of the core board_init. Unsuccessful so far, but have received some tips for ways to get output for troubleshooting. Am also re-thinking whether it’s as helpful to my use-case as I thought initially though.
   * Worked on implementing the encryption logic from the Enigma machine in python. There are some existing implementations that were helpful to see, but I built it up from scratch instead of re-using them in an attempt to better understand the mechanisms used in the machine. Mine is functional, but not fully accurate yet. Messages over a certain length do not come out with the same values that the real machine would produce because my rotor advancement logic is not correct. I’m thinking about making this into a Macropad project that would allow it to act in a similar capacity as the original machine, allowing the user to encrypt or decrypt a message by inputting it into the device albeit, not with a full mechanical keyboard like the original
   * Outside of CircuitPython (sort of): Spending some time at my other job working on using the Pimoroni InkyFrame device as a digital signage player for displaying pricing or other information. In the process I’ve submitted tweaks to the requests library and the community websockets library that are needed to interact with the server that this project is utilizing. It’s only happened a few times so far, but always great when my professional world intersects with circuitpython some!
   * PR Reviews for EPD and HTTPServer libraries. Prep changes to learn guide for the HTTPServer PR that is in process


26:29 @jepler
   * Really trying to wrap up synthio. Added a bunch of tests today, and they all ‘look good’. Also pretty positive feedback from todbot. Marked PR as ready for technical review.
   * Still need to test more ports and get an idea what does/doesn’t work
   * Samd51, nrf52840, esp32-s3
   * Heads up: this will not be in 8.1.0 final. There will be incompatible changes to synthio in 8.1.1 or 8.2.0. The module is considered “experimental”.
   * Closed two of my old draft PRs as out of date (in one case, Liz did a separate PR to add the same board, thanks @blitzcitydiy, in the other case the specific HW won’t be manufactured so it is moot)
   * This week
   * Esp32-s3 matrixportal board definition (& making matrixportal cp lib work transparently with it or else file issue about it)
   * Synthio guide
   * Possibly doing a CP/M related guide in the future
   * Out friday
   * Lots of fun with CP/M, I have a workflow for transferring files and disk images both ways! 


28:56 @kattni
   * Last week:
   * My new laptop’s first day at work was last Monday!
   * Fought with one work-related tool for four days, but in the end managed to überkludge it and got it working.
   * Focused on Canary Nightlight project
   * Code is in a great place, a lot to customise if desired and very readable.
   * After switching to ESP32-S3, it's running without issues for days.
   * Guide is probably 3/4 done.
   * Added a short section on RGB colors to the NeoPixel Überguide so I can link to it from project guides. Also it’s really good info!
   * This week:
   * Canary guide - need to finish the Code Walkthrough and complete the Overview.
   * Then pick something else from my list, not sure what yet, as I have been focused on the canary.


30:50 @makermelissa
   * Last Week:
   * Updated circuitpython.org and fixed a board that was showing up with an incorrect photo and name.
   * Added a section to the board check file to make sure that Blinka boards have the blinka flag set so circuitpython boards aren’t accidentally copied over.
   * I worked on adding some more requested features to a Storybook Collaboration project with Erin.
   * Worked on finding a way to reduce the ALSA error messages that SpeechRecognition was displaying.
   * I also rewrote the listener library for the project which works much better than the original version
   * I worked on writing up the project guide and added the setup instructions for the project
   * This Week:
   * Finish up the guide
   * Possibly do some research for changing the circuitpython.org website to a new site generator that is easier to work with
   * Possibly work on the CircuitPython Code Editor to fix some bugs


32:19 @tannewt
   * Worked all last week on SWD flasher inspired by pyocd and adafruit_dap. Two new libraries: https://github.com/adafruit/Adafruit_CircuitPython_MCU_Flasher and https://github.com/adafruit/Adafruit_CircuitPython_Debug_Probe
   * Can flash SAMD21, SAMD51 and nRF52.
   * Need to test mcu flasher with pyocd probe to see how it handles reset for SAMD51
   * Want to reorg a little and have examples for each.
   * Found issue on my StemmaG0 design. SWCLK and SWDIO were swapped. Ordered v2 from JLCPCB.
   * Circle back to usb host since Thach said it’s ready for a retest.


@todbot 
   * New “PicoStepKnobs” board coming from fab soon for increased synthio madness
   * Did you know simultaneous stereo I2S outputs work? Quadraphonic!
   * Working on a couple of synthio examples for MacroPad RP2040 & MacroPadSynthPlug




35:49 ## In The Weeds




## Wrap-Up