# CircuitPython Weekly for Aug 23, 2021
Video is available here [on YouTube](https://www.youtube.com/watch?v=JiM0uYKCQkc).


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.herokuapp.com/calendar.html?url=https://raw.githubusercontent.com/adafruit/adafruit-circuitpython-weekly-meeting/master/meeting.ical)


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.
## 3:25 Community News
### JP's Workshop Reaches 200 Episodes
 
John Park's Workshop, a live video broadcast for Adafruit, has reached the 200 episode mark. Many projects have been highlighted, including those using CircuitPython - Adafruit Blog.
### Wippersnapper Beta Continues

Wippersnapper, the Adafruit IoT solution to program using no code is still in a invitational public beta. Here is a post from one user - Twitter.
Finally had a chance to try the Adafruit Wippersnapper beta. Took all of 20 minutes to hook my Funhouse LED to an existing feed from an air quality sensor. The LED now lights up when the air quality is poor. No code required!
### Recreating Classic Screensavers in CircuitPython

Tod Kurt recreates two classic screensavers on microcontrollers with color displays using CircuitPython: DVD and Flying Toasters - Twitter.
### Testing with CircuitPython 

Whipped up a quick little 3D printed test jig for Fibonacci64 Nano, using an Adafruit QT Py, pogo pins, perf board, M2 standoffs, and CircuitPython code - Twitter.
### bad USBs are SCARY!! 

bad USBs are SCARY! Build one with inexpensively with a Raspberry Pi Pico and CircuitPython - YouTube and Adafruit Blog.
### LinuxCNC Control Pendant 

Using Adafruit Macropad as LinuxCNC Control Pendant - unpythonic.net.




### 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.
## 6:26 State of CircuitPython, Libraries and Blinka
### 6:46 Overall


* 37 pull requests merged
  * 17 authors - paelzer, rpavlik, lesamouraipourpre, gamblor21, tannewt, jepler, kattni, bergdahl, wtuemura, jerryneedell, weblate, ZodiusInfuser, skerr92, FoamyGuy, dhalbert, cwalther, DavePutz
  * 11 reviewers - makermelissa, lesamouraipourpre, gamblor21, ladyada, tannewt, microDev1, jepler, kattni, FoamyGuy, dhalbert, rsbohn
* 35 closed issues by 18 people, 22 opened by 16 people


### 7:45 Core
* 24 pull requests merged
  * 15 authors - wtuemura, paelzer, rpavlik, weblate, gamblor21, ZodiusInfuser, skerr92, tannewt, jepler, lesamouraipourpre, cwalther, dhalbert, bergdahl, DavePutz, kattni
  * 6 reviewers - microDev1, tannewt, jepler, kattni, dhalbert, gamblor21
* 8 open pull requests
  * https://github.com/adafruit/circuitpython/pull/5048 (Open 30 days)
  * https://github.com/adafruit/circuitpython/pull/5077 (Open 24 days)
  * https://github.com/adafruit/circuitpython/pull/5106 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/5120 (Open 13 days)
  * https://github.com/adafruit/circuitpython/pull/5145 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/5199 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/5196 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/5202 (Open 0 days)
* 24 closed issues by 10 people, 15 opened by 10 people
* 423 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 7.0.0: 18 open issues
  * 7.x.x: 5 open issues
  * 8.0.0: 3 open issues
  * Libraries: 15 open issues
  * Long term: 373 open issues
  * Support: 5 open issues
  * 4 issues not assigned a milestone


* Core download stats available at https://circuitpython.org/stats
Overall: Thanks to Jeff and Dan grabbing bugs we’re seeing the issue count go down. Beta.0 is imminent so please keep testing. Hopefully it’ll be quick to go from beta to release candidate. 
### 10:37 Libraries
* 11 pull requests merged
  * 4 authors - FoamyGuy, lesamouraipourpre, jerryneedell, kattni
  * 8 reviewers - lesamouraipourpre, ladyada, tannewt, jepler, kattni, FoamyGuy, dhalbert, rsbohn
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/46 (Days open: 15)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/156 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/26 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/25 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Gizmo/pull/21 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_IL91874/pull/12 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1681/pull/7 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1608/pull/13 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1680/pull/4 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_HID/pull/76 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_OV2640/pull/12 (Days open: 1)
* 8 closed issues by 8 people, 5 opened by 5 people
* https://circuitpython.org/contributing
  * 340 open issues
  * 3 good first issues
  * 48 open pull requests (Oldest: 612, Newest: 1)
Library updates in the last seven days:


**Updated Libraries**
 * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
 * [Adafruit_CircuitPython_MONSTERM4SK](https://github.com/adafruit/Adafruit_CircuitPython_MONSTERM4SK)
 * [Adafruit_CircuitPython_SSD1322](https://github.com/adafruit/Adafruit_CircuitPython_SSD1322)
 * [Adafruit_CircuitPython_Slideshow](https://github.com/adafruit/Adafruit_CircuitPython_Slideshow)
 * [Adafruit_CircuitPython_SSD1327](https://github.com/adafruit/Adafruit_CircuitPython_SSD1327)
 * [Adafruit_CircuitPython_DisplayIO_SSD1306](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306)
 * [Adafruit_CircuitPython_PCA9685](https://github.com/adafruit/Adafruit_CircuitPython_PCA9685)
 * [Adafruit_CircuitPython_NeoPixel](https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel)
 * [Adafruit_CircuitPython_MacroPad](https://github.com/adafruit/Adafruit_CircuitPython_MacroPad)
 * [Adafruit_CircuitPython_Gizmo](https://github.com/adafruit/Adafruit_CircuitPython_Gizmo)
 * [Adafruit_CircuitPython_IL91874](https://github.com/adafruit/Adafruit_CircuitPython_IL91874)
 * [Adafruit_CircuitPython_SSD1681](https://github.com/adafruit/Adafruit_CircuitPython_SSD1681)
 * [Adafruit_CircuitPython_SSD1608](https://github.com/adafruit/Adafruit_CircuitPython_SSD1608)
 * [Adafruit_CircuitPython_SSD1680](https://github.com/adafruit/Adafruit_CircuitPython_SSD1680)
 * [Adafruit_CircuitPython_Display_Text](https://github.com/adafruit/Adafruit_CircuitPython_Display_Text)
 * [Adafruit_CircuitPython_DisplayIO_Layout](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout)
 * [CircuitPython_Community_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)




Overall: We’ve taken care of updating all guides and examples to work with the breaking changes we’ve made recently - thanks to @foamyguy and @lesamouraipourpre for all the amazing work done on this. Continuing to see updates to both the Adafruit CircuitPython and Community bundles, which is great. Everyone involved, please keep it up!
### 12:35 Blinka
* 2 pull requests merged
  * 1 authors - lesamouraipourpre
  * 1 reviewers - makermelissa
* 3 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 194 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/496 (Open 28 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/501 (Open 7 days)
* 3 closed issues by 2 people, 2 opened by 2 people
* 60 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 8575
Number of supported boards: 75


## 13:18 Hug reports
13:48 @jepler
* @danh for continuing to do release management & write release notes
* Group hug


14:01 @jerryn
* @danh for the quick fix to an issue with nRF52840 builds


14:08 @kattni
* @askpatrickw and @foamyguy for staying on top of cookiecutter
* @jepler and @tannewt again for taking over running the meetings for a bit while the outside of my building is ground off and replaced.
* @lesamouraipourpre for finding more libraries that can/should be deployed to PyPI
* @foamyguy for taking care of all the updates needed to deal with all the breaking changes we made recently
* @community moderators on Discord, and specifically Andon, for suggesting the idea of the help-with-community channel on Discord, and Mr. Certainly/Andon for writing up the descriptive message to pin in the channel.
* Everyone providing support on the Adafruit Discord server - it’s amazing to see all the help being provided


15:10 @MakerMelissa
* @tannewt for helping me get set up with the Code Editor
* @lesamouraipourpre for working on the Blinka Displayio
* Group Hug


15:38 @Mark(Gamblor) [lurking]
* @jepler and @danh for their comments and reviews of my PR on pin duplication checks


15:47 @tannewt
* @andon, @kattni and the other mods for making a #help-with-community channel.
* @lesamouraipourpre for the wide variety of PRs and issues. Thank you!
* @Trevor for getting pyleap into testflight. Will share more broadly soon hopefully.
* @dan for the great work on audio
16:39 @danh
* @jerryn for testing an nRF build and finding a significant issue
* discord moderators for trying out and dealing with threads, revising things, and adding #help-with-community


17:20 @Dave Briccetti (bri 'chet ti) (lurking)
* Group hug. Good to see you all.


@DaveP (lurking)


17:28 @foamyguy
* Jeff for adding --auto to circup. I’ve used it several times this week and absolutely love the convenience that it provides
* Github user @dgriswo for updating circup to be able to run the relevant commands when there is no device connected
* @MarkGamblor for reviewing my boundary_fill PR again and providing more great feedback


## 18:17 Status Updates
18:39 @jepler
* Last week:
   * Mostly bug squishing
   * Very minor incompatible change I made 2 weeks ago: changed default of `refresh()` method so that it will not throw an exception if the time between refreshes was long. You can still get the old behavior, but you have to pass in `minimum_frames_per_second=1`
   * Remember all those times we tried setting a lower i2c frequency and it never helped? Turns out, 100kHz is the practical lower limit on samd microcontrollers (with our clock settings). Asking for lower than 96kHz now gets you an exception instead of an undefined SCL speed
* This week:
   * More bug squishing
* Near future:
   * Taking 2 weeks off, August 30 - September 10 (approximately)


19:59 @jerryn
* Created example for using saola (esp32s2) board with ov2640 camera and AIO
   * Just a minor mod to @jepler example
   * Ran into some some very quirky issues - still not fully resolved
   * Saola keeps rebooting if I try to use a display (st7789) very intermittent.
   * Sometimes get odd captures that will not display on AIO - the base64 encoding is much different -- having a hard time coming up with good test case. Usually corrects with a reboot. More “in the weeds”.  


21:56 @kattni
* Last week:
   * Tested, found bugs with, and updated the MCP9600 library to work with the MCP9601
   * Tested the Arduino MCP9600 library and found issues there that Limor resolved
   * Became intimately acquainted with the MCP9601 addressing, address jumpering, and pinouts
   * Published MCP9601 guide
   * Added MP3 playback to MacroPad library following core audio fix
   * Started a new guide on MP3 Playback on RP2040 which will include a MacroPad example and a Pico example.
      * MacroPad page is done.
      * Pico page will be the MP3 Essentials template - was on hold due to needing to order hardware
   * Tested some PRs
   * Created the #help-with-community channel on the Adafruit Discord Server
   * Rearranged a couple of other channels into the Help With category on Discord
   * Started the guide for the SCD-4x CO2 sensors
* Today so far:
   * Fixed the MacroPad PrettyPins diagram and Fritzing object - the STEMMA QT connector was reversed.
   * Updated the basic BLE CircuitPython guide to more clearly explain that you must have Bluetooth advertising code running on your board for it to show up in the Bluefruit LE Connect app, it does not simply show up with generic code running
   * Began testing the SCD-30 on Raspberry Pi - forum poster reported that it fails after “several hours”, likely due to clock-stretching not working properly on RPi. Tangentially related - the SCD-41 seems to run quite fine (I left it running for 3 days straight), so if you’re wanting to do long-term CO2 sensing on RPi, consider the SCD-4x instead.
* This week:
   * Finish SCD4-x guide
   * Finish MP3 guide
   * Update the INA219 guide for the STEMMA QT revision
   * Look into what it would take to create an OBS timestamp shortcut key using NeoKey Trinkey or the like, for Windows/MacOS/Linux (Linux is already done, it’s the adapting it to the rest I need to look into)
* CircuitPython-tangential:
   * From testing sensors for the guide, either multiple CO2 sensors need to be calibrated, or the levels in here are _terrible_. (Two separate sensors are reporting about the same, so……..) Sure, open a window, except we’re in the middle of a neverending heat warning - the AC barely keeps up with the windows closed. Also construction outside my window.
   * Anyone any good with Photoshop or similar? I have a black and white png of a taco that I need to make higher quality than I have the skills to do.


26:19 @MakerMelissa
* Last Week:
   * Finished updating FeatherWingTest for the Arduino EPD Library
   * Worked on the New CircuitPython Code Editor interface
* This Week:
   * Finish up the new interface
   * Work on new 1.69” Display Guide
   * Work on updating EPD Guides
   * Possibly look at some of the Raspberry Pi Issues


27:20 @tannewt
* Babysitting any PRs that are hanging on.
   * Fixed USB on iMX
   * Fixed I2C matching on RP2040
   * Enabled unicode filenames on all boards
* Need to test pyleap
* Switching back to BLE work to add a few other commands and tweaks
   * Folder move
   * Delete of folder with contents
   * Tweak auto-reload
29:43 @danh
* Improved DMA audio on SAMD.
* Continuing to fix the remaining 7.0.0 issues, along with the rest of the core team.
* Preparing 7.0.0-beta.0, which should be out soon.


30:29 @Dave Briccetti (lurking)
* I was trained this summer to teach The Beauty and Joy of Computing (https://bjc.berkeley.edu/) to middle school students. One unit is about hardware, and I may adapt the curriculum to explore CircuitPython. 


30:54 @foamyguy
* Working on new iterations of the boundary_fill() function to address feedback received so far on the PR. Learned about how to make one of the arguments optional. I believe everything mentioned so far has been taken care of. I think it may be good to go, but happy to have another set of eyes if anyone else is interested in checking it out.
* Finished up with the remaining breaking changes from cp7
* Looked into an issue that popped up from a new version of PyLint that was released on Friday afternoon. Luckily the maintainers released a fix within a day.
* Updated the Dial widget to use the new vectorio API and moved it to it’s own repo in the CircuitPython org
        This week:
* Look into the possibility of re-using the display_shapes library to implement the vectorio APIs for Blinka_Displayio so that any widgets using them will be cross-compatible. Also will need to try to implement some of the newer bitmaptools functions in Blinka_DisplayIO to do this.
* Moving more of the widgets from DisplayIO_Layout library into their new repos under the circuitpython org and add them to that bundle.


## 33:30 In The Weeds
33:08 @tannewt: How are we feeling about Discord threads?
* TODO: file a request to discord to opt into all threads on the left.


40:48 @jerryn - puzzling behavior with ov2640 captures on saola - let me see if I can describe it…


51:18 @foamyguy - Is there a repo somewhere that contains the code that drives the project bundling feature from Learn guides? I’m interested in understanding how it works to try to ensure that it will be able to grab libraries from the circuitpython org bundle (and community bundle + any others that come in the future) to ensure existing guides will still work after moving the remaining widgets out of DisplayIO_Layout library.
* @kattni - No, it’s not public. I can at least get some info about it for you, and perhaps put you in touch with our Learn dev who worked on it if they’re ok with it.
## 57:41 Wrap-Up
August 30
    
