# CircuitPython Weekly for April 13th, 2020

Video is available here [on YouTube](https://youtu.be/X0B2LHQXGlE) and [diode.zone](https://diode.zone/videos/watch/6fcc2dc6-908b-4ca7-83de-773a4c9ac011).

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 using the following link: https://raw.githubusercontent.com/adafruit/adafruit-circuitpython-weekly-meeting/master/meeting.ical

CircuitPython development is sponsored by Adafruit. Please support them by purchasing hardware from https://adafruit.com or https://www.digikey.com. 

Reminders: Podcast available on most services. Let us know if we’re missing some.

## 4:37 Community News

4:40 Adafruit Update

Adafruit was deemed an essential service to distribute/make some PPE (Personal Protection Equipment) such as face shields, and manufacturer electronics for essential life-saving/preserving equipment and development which is needed in New York and beyond. -Blog

Adafruit received a literal ton of plastic for face shields from the food packaging company Novolex. The material was put to use making face shields on an Adafruit assembly line. You can see all the pictures day by day from Adafruit with Twitter hashtag #adafruitchronicles.

5:45 The NFC Copy Cat Cybersecurity Tool

Electronic Cats announced Monday their latest CircuitPython-based electronics board: the NFC Copy Cat. It works by reading or emulating a NFC card; depending on the necessities of the researcher. Using the board, the user will have a device capable of storing magnetic stripe data or NFC payment data to be replayed later — known in the cybersecurity world as a replay attack. This is the first cybersecurity tool that support CircuitPython - Electronic Cats.


6:30 The Python Software Foundation Fellows Announced
Congratulations to the newest announced Python Software Foundation (PSF) Fellow Members for the first quarter of 2020 - PSF Blog
* Al Sweigart
* Alexandre Savio
* Darya Chyzhyk
* Kenneth Love
* Kevin O'Brien
* Serhiy Storchaka
* Thea Flowers
* Tom Christie

The Fellow Work Group is looking for more members from all around the world! If you are a PSF Fellow and would like to help review nominations, please email us at psf-fellow at python.org. More information is available at: https://www.python.org/psf/fellows/.

7:36 The Winterbloom online store has opened to sell the CircuitPython based Winterbloom Sol and Big Honking Button eurorack synth modules - Twitter and Winterbloom.

8:07 CircuitPython on the OrangeCrab board - 8MB of 16MB onboard flash allocated to CircuitPython - Twitter.

8:39 The PyCon US 2020 team announces planned talks, tutorials, posters, and much more online.

To participate, Go to the PyCon US 2020 Remote page to subscribe to receive 5-8 email notifications over the next 6 weeks for published online content. Also you may subscribe to the PyCon 2020 YouTube Channel. Expected content:
* Recorded talks and tutorials
* Online Summit and Hatchery programs
* Poster presenters sharing their creations
* Startup Row company presentations
* Sponsor workshop videos and job postings


9:23 Email Anne, anne@adafruit.com or Twitter @anne_enginner : https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2020-04-14-draft.md

## 10:50 State of CircuitPython, Libraries and Blinka
### 11:02 Overall
* 230 pull requests merged
  * 13 authors - yeyeto2788, jepler, xon235, arturo182, makermelissa, larsks, tannewt, sabas1080, jimbobbennett, kattni, sommersoft, rxdtxd, jgillick
  * 11 reviewers - jepler, makermelissa, hierophect, sommersoft, tannewt, ladyada, brentru, kattni, dhalbert, caternuson, siddacious
* 8 closed issues by 6 people, 15 opened by 12 people


Overall: 5.2.0 is just released, which had important fixes and the first fPGA supported board. What we can expect with 5.3.0 is big exciting changes, F7H7, Protomatter, and lower power. Bit unstable, but a cool big minor release. Libs have been going awesome, Kattni’s been going through checks and Sommersoft continues to adapt the checks. Blinka becoming more popular in RPi world.
### 13:26 Core
* 9 pull requests merged
  * 7 authors - sommersoft, jepler, arturo182, larsks, tannewt, sabas1080, jgillick
  * 4 reviewers - hierophect, tannewt, siddacious, dhalbert
* 9 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2366 (Open 125 days)
  * https://github.com/adafruit/circuitpython/pull/2598 (Open 66 days)
  * https://github.com/adafruit/circuitpython/pull/2675 (Open 41 days)
  * https://github.com/adafruit/circuitpython/pull/2685 (Open 37 days)
  * https://github.com/adafruit/circuitpython/pull/2706 (Open 29 days)
  * https://github.com/adafruit/circuitpython/pull/2735 (Open 17 days)
  * https://github.com/adafruit/circuitpython/pull/2754 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/2756 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/2765 (Open 1 days)
* 4 closed issues by 3 people, 4 opened by 3 people
* 272 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 5.x.0 - Features: 7 open issues
  * 5.x.x - Bug Fixes: 24 open issues
  * 6.0.0: 25 open issues
  * Libraries: 11 open issues
  * Long term: 200 open issues
  * Support: 4 open issues
  * 1 issues not assigned a milestone


* Core download stats available at https://circuitpython.org/stats
### 14:25 Libraries
* 216 pull requests merged
  * 5 authors - jimbobbennett, kattni, xon235, rxdtxd, sommersoft
  * 7 reviewers - dhalbert, brentru, jepler, sommersoft, kattni, caternuson, tannewt
  * 216 Merged pull requests


* 3 closed issues by 3 people, 10 opened by 9 people
* https://circuitpython.org/contributing
  * 172 open issues
  * 28 open pull requests (Oldest: 462, Newest: 1)
Library updates in the last seven days:
* 185 Updated Libraries
### 16:47 Blinka
* 5 pull requests merged
  * 2 authors - yeyeto2788, makermelissa
  * 3 reviewers - ladyada, makermelissa, jepler
* 0 open pull requests
* 1 closed issues by 1 people, 1 opened by 1 people
* 37 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 3898
Number of supported boards: 43
## 17:53 Hug reports
18:37 @tannewt
* @kattni for epic work with Blackening everything
* @ladyada and @pt for the desk of ladyada
* @unexpectedmaker and everyone who watched my stream and helped me through it. https://www.youtube.com/watch?v=5zq8RHXVdSI
* @hathach, @cr1901, @igrr, @spritetm, @pigrew for ESP32-S2 support in TinyUSB. https://github.com/hathach/tinyusb/pull/319


20:22 @v923z
* @jepler for keeping weeding out bugs in ulab, reviewing code, and being a great sounding board
* Group hug


21:18 @AndrewTribble 
* Group hug to all


@anneb (lurking)


21:30 @brentru, notes-only
* @danh for BLEIO work, just started using it and it was simple to pick up.
* @tannewt for cont’d work on low-power modes!
* @paintyourdragon for LvGL_Glue
* HologramIO for their educational resources, been using them as a jumping off point for cellular work


@cater (lurking)


22:04 @CGrover (lurking)
* Group hug!


22:09 @charlesburnaford
* Hug to @tannewt for the deep dive on tinyusb for ESP32-S2
* Group hug for everyone who is trying to help with COVID-19


22:45 @danh
* @foamyguy for patience while I worked out the best way to re-load a bootloader, with a number of false starts (due to J-Link software peculiarities).
* @larsks for fixing an HID keycodes issue.
* @jepler for revisiting GitHub Actions `checkout@v2` issue.


@davep (lurking)


@david.g (lurking)


24:16 @foamyguy
* @danh for helping me revive the Feather that I broke
* @jerryn for the excellent work on Radio Head packet sending and receiving
* @siddacious for making and @DrewFustini for sharing on github the Open Source Hardware Summit watch/badge app launcher script.
* @kattni and all others who worked on the Black enabling PR 


25:11 @geekguy (text only, on hiatus due to health)
* Adafruit for starting down the path to create Circuitpython.
* @jerryn for his awesome work on the RFM69 and RFM9x RadioHead compatibility. updates.
* @tannewt for his deep dive into the esp32-s2. I learned a lot from that.


25:38 @hierophect
* @danh and @tannewt for their PR reviews
* @adafruit for being awesome in the fight against the rona


@jasonp (lurking)


26:05 @jepler
* Group hug
* @tannewt for three rounds of review on Protomatter PR
* @PaintYourDragon for merging the CircuitPython support into the Protomatter library just now
* @stargirl for being PSF Fellow’ified (fellowshipped?)


26:53 @jerryn
* @foamyguy and @tannewt reviewing my RFM69 PR
* @foamyguy again for extraordinary effort acquiring and configuring  rfm69 hardware to test the PR
* Group hug.


27:25 @kattni
* @sommersoft for help with an odd Sphinx issue and for finding a workaround
* @sommersoft for thoroughly reviewing my setup.py.disabled PRs, catching that the README on a few required updating, and then pushing the fix to those PRs for me
* @tannewt, and @jepler for merging the first set of my Black PRs
* @DanH for plowing through a HUGE number of my Black PRs, for thorough reviews catching little issues, and for pushing fixes to some of the PRs to resolve some of those little issues.
* Everyone who has been showing and sharing their projects on Show and Tell and on Discord.
* Group hug to the community for continuing to remain positive and supportive as we continue to bring in more people due to the current situation.
* Thank you to our Community Helpers, CircuitPython Helpers, and Community Moderators for keeping up with the new influx of people and participation on Discord.


@kingernorth (lurking)


28:43 @MakerMelissa
* @yeyeto2788 for submitting an issue to OpenWRT to include the python3-libgpiod package a couple of months back and also for putting together the start of a bit bang SPI library.
* Group Hug


@Mr.Certainly (lurking)


@nnja (lurking)


@slawek (lurking)


29:28 @sommersoft
* @tannewt for the PR review.
* @jepler for the actions/checkout persistence.
* @kattni for tirelessly working on some of the longstanding library infrastructure issues.
* Group Hug!


30:24 @stargirl (lurking, probably)
* The whole community. I couldn’t have done any of my projects without y’all.


## 31:10 Status Updates
31:36 @tannewt
* Last week:
   * Finished testing lower power code.
   * Started learning and poking the ESP32-S2 https://www.youtube.com/watch?v=5zq8RHXVdSI
   * A few big reviews ongoing
   * Released 5.2.0
* This week:
   * Later today, email and reviews including testing F7/H7 and protomatter on hardware.
   * Any more lower_power follow up
   * PyCon - online. Python language summit online.
   * Main thing this week is ESP32-S2 work. Don’t think I’ll go cmake and just bodge it into our makefiles.
   * Experimented with using Ninja via a custom Python layer. Check it out here: https://github.com/adafruit/circuitpython/compare/master...tannewt:ninja


34:11 @v923z
* Last week:
   * Beyond squashing bugs in ulab, I have been working on a number of electronics projects (mostly hardware)
* This week:
   * Play with adafruits feather and bluetooth
   * Learn how to use quasar/vuejs
   * Take some photos at long last


35:44 @AndrewTribble
* Last Week:
   * Great testing of the AS3935 library adaptation with the recent thunderstorms over the last 2 days
* This week:
   * Continued development of a little ws2811 based breakout board for a lighting project I am working on as a bit of a PCB Experience builder
* Belated group hug to the citizens of Mississippi - recovering from a tornado.


@anneb (lurking)


37:04 @brentru, notes-only 
* Cellular Work!
   * Been interspersing projects with work on FONA / CircuitPython
      * Starting with FONA808, I will likely look at FONA3G after.
         * Driver is bare-bones - no texting/calling, just GPRS data. Plenty of room to grow
      * Status
         * Network commands (network registration, gps, gprs, configurable apn registration)
         * TCP/IP Stack
            * Future: UDP
            * Future: socket-like class, just like _Wiznet5k, _ESP32SPI
         * FONA HTTP 
            * Fona has a specific subset of “Fast” HTTP GET/POST requests, may be useful for people setting up less code or beginners. Socket interface
      * What’s next: socket, requests, and minimqtt 


38:08 @cater (lurking) 
* but working on a PR to add fill to bitmap


@CGrover (lurking)


@charlesburnaford (lurking for status update only)


38:22 @danh
* Fixed SAMD UF2 bootloader again: regression in v3.8.0. Released v3.9.0.
* Added UF2 bootloader download section to most individual board pages on circuitpython.org.
* Working on Adafruit BLE services library.
* To do (not in priority order):
   * Finish BLE services library and accompanying demo program for use with Bluefruit Playground app.
   * Finish BLE pulse oximeter library. Basic code is working
   * Finish first version of “simple BLE” library.
   * Sync up UF2 bootloader repo with upstream.


@davep (lurking)


@david.g (lurking)


40:09 @foamyguy
* Successfully re-flashed the Feather M0 RFM69 that was boot looping. With lots of help from @danh. And got the 2nd one updated with the UF2 bootloader. (First time using JLink!)
* Converted the Open Source Hardware Summit app launcher to work with PyPortal and created a repo for it on Github
* Started working on testing adafruit_register PR that adds SPI Bit and Bits classes. First test will be with with the fault property in the MAX31856 library




@geekguy (text only, on hiatus due to health)


41:15 @hierophect
* Last week:
   * Worked on the H7 and F7 port, PR submitted - mostly a lot of cleanup and testing (working through Busio, etc)
   * Wrapped up the last of the comments this morning
   * Finally found a good program for extracting tables out of datasheets, Tabula
   * Worked a lot on ExpressionEngine, my fork of UncannyEyes
* This week:
   * Continuing my little break in between PR revisions
   * Working on ExpressionEngine
   * Working on Dynamixel support
   * May get started on some i.MX stuff
   * Want to document the STM32 stuff a little better before I leave it though, new readme, etc. 


44:07 @jepler
* Last week: Protomatter, ulab warnings fixes, checkout@v2
* This week: Protomatter PR merge and guide is the focus
   * Sub task: Get acquainted with Fritzing
* Fun stuff: My local maker group is doing a virtual meeting monday nights, I’ll join them for the second week running


@jasonp (lurking)


45:16 @jerryn
* Last week
   * Getting close with rfm69 PR - implemented review comments 
   * Finally submitted PR for similar updates to rfm9x
   * Migrated active boards to 5.2.0  - “no anomalies to report”
* Next week
   * Lots of catch-up after being “distracted” by temporary return to “day job”
* Non CP
   * Nearing completion of task for former employer. 
      * It was  a good experience - lots of JLink and C code…
      * I’d forgotten how much fun it is to exchange “finger-pointing” with the digital design engineer ;-)


47:08 @kattni
* Last week:
   * Continued working through library infrastructure issues
   * Remembered that we forgot to add the Black check into the Actions workflows on the libraries when we implemented black. 
   * Had Sommersoft patch the build.yml file to include the Black check.
   * Watched every library fail to build.
   * Put some research into figuring out that if you don’t specify a Python `target-version` when you run Black, it will look at a file and try to determine what version of Python was meant to be used, and format based on that. The `conf.py` file still contained some Python 2-style strings, and so Black decided to format based on that. The version we intended to target was 3.5. So when we patched in the check which has a specified `target-version`, all the libraries failed on that file (and sometimes others). 
   * Ran Black on every library.
   * Created 200+ PRs.
   * Found a bug in Sphinx. Banged my head against that for a bit until Sommersoft dug up a GitHub thread with the exact issue and evidence that a fix was under way. Fix was deployed, and resolved the library issue.
   * Updated libraries not intended for PyPI to have a setup.py.disabled file with info on why it’s not on PyPI. This will allow us to update PyPI Adabot checks to exclude libraries that are not meant to be deployed to PyPI.
* This week:
   * Go through the libs not intended for PyPI and verify all have had setup.py.disabled added/updated (Already aware of one I missed).
   * Continue through any other Library Infrastructure Issues
   * Start on open GitHub issues on the libraries also PRs
   * Meeting with Microsoft Garage interns tomorrow regarding their new CircuitPython VS Code extension
   * Meeting with Nina this evening about a possible virtual workshop for PyBadge in place of the workshop I was going to be giving for Microsoft at PyCon


@kingernorth (lurking)


51:20 @MakerMelissa
* Last Week
   * Worked on testing the new PureIO Spi module with an oscilloscope to verify everything was working
   * Worked on getting Blinka running on the Onion Omega2+
      * I got I2C and UART working successfully
      * Having some issues with SPI
   * Started working on a BitBang Library so we could have an alternative way to do SPI on the Onion and other Blinka modules
* This Week
   * Continue working on BB SPI
   * Work on adding Github Actions to PureIO and Circup Repos
   * Wrap up Blinka for the Onion Omega2


@Mr.Certainly (lurking)


@slawek (lurking)


52:47 @sommersoft
* Last Week:
   * Adabot:
      * Finished "needs release" validator changes to exclude CI-related changes. Now ignores changes to dotfiles (`.github/`, `.pylintrc`, etc.), `setup.py.disabled`, `CoC`, and `License`. Also, pushed the updates to circuitpython-org repo.
   * Libraries:
      * Patched all of the `build.yml`s to add the black-formatting check.
   * Cookiecutter-adafruit-circuitpython:
      * Updated the templates to minimize black reformatting. With the variable nature of library names/etc, it will never be 100% formatted out of the box.
   * Core:
      * Updated docs to build with Sphinx 3.x
   * RosiePi:
      * Successfully running tests on the RPi again! Thanks to the power of venvs…
      * Now that tests are running and reporting back to physaCI, I was back to debugging the data flow functions on the physaCI-side.
* This Week:
   * adabot: 
      * Incorporate the new `setup.py.disabled` standard into some of the other validators (e.g. 'missing setup.py').
   * RosiePi:
      * Finish debugging test-result data flow to and through physaCI.
   * Try and carve out some time to look into FrequencyIn returning only zeroes, as pointed out by @tannewt.


55:37 @stargirl (lurking, probably)
* Launched winterbloom.com - my CircuitPython-powered Eurorack modules can now be pre-ordered. :)
* Now I’m working on sourcing a bunch of components. :3
## 56:10 In The Weeds
@kattni - Can we update all the libs to checkout@v2?
* @sommersoft: when I looked before, we should be able to. None of the “currently broken” things in v2 should affect the libraries (submodule checkout, if it’s still borked in v2)
1:03:10 - @jerryn discussion of black
* Just to drop this in for posterity:
   * Its best to specify a target version: black --target-version=py35
   * Black can be configured as a pre-commit hook: https://black.readthedocs.io/en/stable/version_control_integration.html#


## 1:04:53 Wrap-Up
