# CircuitPython Weekly for January 19th, 2021

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


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 for use with standard calendar applications or 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:43 Community News
## Tracking COVID Vaccination Progress with CircuitPython


John Furcean builds two COVID-19 vaccination displays, coded using [CircuitPython](https://circuitpython.org/):


> I built a scrolling COVID-19 Vaccination display for both the [Adafruit MatrixPortal M4](https://learn.adafruit.com/adafruit-matrixportal-m4) and the [Adafruit MagTag](https://learn.adafruit.com/adafruit-magtag) using CircuitPython, and data from [Our World](https://covidtracking.com/) [in Data](https://ourworldindata.org/covid-vaccinations).


Our World in Data has aggregated massive data sets related to COVID-19. The vaccination data subset is available in a [GitHub repository](https://github.com/owid/covid-19-data/tree/master/public/data/vaccinations) in csv format. They post:


> Our complete COVID-19 dataset is a collection of the COVID-19 data maintained by [Our World in Data](https://ourworldindata.org/coronavirus). It is updated daily and includes data on confirmed cases, deaths, hospitalizations, and testing, as well as other variables of potential interest.


More - [furcean.com](https://furcean.com/2021/01/15/covid-19-vaccination-displays-using-circuitpython/)


## The PyCorder




Joey Castillo comes up with another beautiful large format project running CircuitPython. It features a unique capacitive touch matrix at the bottom:


> Folks: meet the PyCorder! My take on a touchpad-based Sharp Memory Display gadget, in gorgeous Oshpark After Dark. More in the coming days, but I'm feeling super stoked tonight because I finally got it up and running (and made a simple input task for circuitpyui).


More - [Twitter](https://twitter.com/josecastillo/status/1349909509376917505?s=21)


## 2021 Open Hardware Summit Call for Proposals




The Open Hardware Summit (OHS) invites talk proposals for the eleventh annual summit! This year’s summit is virtual and will be held online on Friday 2021-04-09, 9:00 AM – 5:30 PM EDT.


> The Open Hardware Summit is for presenting, discussing, and learning about open hardware of all kinds. The summit examines open hardware applications, practices, and theory, ranging from environmental sensors to 3D printable medical devices to open hardware processors and beyond. We are interested in open hardware on its own as well as in relation to topics such as software, design, business, law, and education. Past talks have featured topics such as advances in space propulsion, humanitarian projects, right to repair legislation, open hardware in education, and open hardware marketing. For our eleventh edition we are especially looking for speakers who can offer insights around the role of open hardware in the COVID-19 pandemic, open hardware medical devices, and related topics.


Submissions are due by Thursday 2021-02-11 at 11 PM EDT - [oshwa.org](https://2021.oshwa.org/submit-proposal/)


## CircuitPython 6.1.0-rc.1 released



CircuitPython 6.1.0-rc.1 is the second release candidate of CircuitPython 6.1.0. If no significant issues are found within a few days, we’ll release this version as stable. See more - [Adafruit Blog](https://blog.adafruit.com/2021/01/14/circuitpython-6-1-0-rc-1-released-adafruit-circuitpython/).


FIXES AND ENHANCEMENTS
* Update ulab to version 1.6.1.
* Use double-quotes in initial code.py program. 
* Add len(alarm.sleep_memory) and bool(alarm.sleep_memory).
* Add native support for msgpack.


## What if the Python REPL was like BASIC?




Scott experiments editing Python code like BASIC was edited. The idea is imagining this as the default mode on a Raspberry Pi 400. It's a mix of modern and retro - [GitHub](https://github.com/tannewt/basicpython).


This is in contrast to [QuickPYTHON](https://timothycrosley.com/project-9-qpython) which runs on old PCs.




A modular CircuitPython number pad - [Reddit CircuitPython Subreddit](https://www.reddit.com/r/circuitpython/comments/kxz4i4/i_made_a_modular_circuitpython_number_pad/).


> I made this macropad/numpad that can have any Feather-compatible board or Arduino Pro Micro as a controller. This means that you can choose if this is a wired or wireless board if you want to (there's another, slimmer battery connector on the bottom of the board). This is compatible with the 32u4 bluetooth feather if you want QMK, or you can use any Feather that runs CircuitPython.




Two new versions of ulab, a numpy-like number crunching library, have been released. These versions implements a numpy-compatible interface, and adds a couple of new functions, as well as a number of fixes for bugs while writing the manual. The change in the interface was a recurring request from the community and is meant to simplify porting of numpy code from a PC. Since CircuitPython is still using the old interface, the fixes have been backported and released as v.1.7.1. The CircuitPython-compatible version is going to stay alive on the [legacy branch](https://github.com/v923z/micropython-ulab/tree/legacy), and will receive regular updates and bug fixes until CircuitPython decides to adopt the numpy-compatible interface - [GitHub](https://github.com/v923z/micropython-ulab/tree/legacy).




A simple tulle skirt with added Adafruit NeoPixels, controlled by a [Circuit Playground Express](https://www.adafruit.com/product/3333) and CircuitPython - [Twitter](https://twitter.com/sophywong/status/1350563317249503232).




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 @anne_engineer on Twitter, or email anneb@adafruit.com.
## 8:13 State of CircuitPython, Libraries and Blinka
###  8:40 Overall
Stats are from _Monday_ so activity in the last 24 to 36 hours is not reflected! Issue numbers are going down and participation from a wide variety of people.


* 226 pull requests merged
  * 21 authors - anecdata, zunkworks, benetherington, twa127, brentru, alexwhittemore, makermelissa, hugodahl, flyleaf91, HoSStiA, kmatch98, CedarGroveStudios, peterhinch, dherrada, ladyada, jepler, caternuson, yeyeto2788, jerryneedell, FoamyGuy, jfurcean
  * 11 reviewers - dherrada, ladyada, jepler, dhalbert, brentru, caternuson, makermelissa, tannewt, FoamyGuy, kattni, gamblor21
* 25 closed issues by 11 people, 16 opened by 15 people


### 10:36 Core
* 4 pull requests merged
  * 4 authors - jepler, hugodahl, jerryneedell, anecdata
  * 2 reviewers - dhalbert, tannewt
* 17 open pull requests
  * https://github.com/adafruit/circuitpython/pull/3349 (Open 142 days)
  * https://github.com/adafruit/circuitpython/pull/3454 (Open 117 days)
  * https://github.com/adafruit/circuitpython/pull/3493 (Open 109 days)
  * https://github.com/adafruit/circuitpython/pull/3696 (Open 63 days)
  * https://github.com/adafruit/circuitpython/pull/3730 (Open 59 days)
  * https://github.com/adafruit/circuitpython/pull/3768 (Open 50 days)
  * https://github.com/adafruit/circuitpython/pull/3854 (Open 28 days)
  * https://github.com/adafruit/circuitpython/pull/3911 (Open 18 days)
  * https://github.com/adafruit/circuitpython/pull/3936 (Open 12 days)
  * https://github.com/adafruit/circuitpython/pull/3941 (Open 11 days)
  * https://github.com/adafruit/circuitpython/pull/3967 (Open 7 days)
  * https://github.com/adafruit/circuitpython/pull/3980 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/4008 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/4011 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/4019 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/4018 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/4017 (Open 0 days)
* 6 closed issues by 3 people, 7 opened by 6 people
* 370 open issues
  * https://github.com/adafruit/circuitpython/issues
* 9 active milestones
  * 6.0.x: 1 open issues
  * 6.1.0: 4 open issues
  * 6.2.0: 1 open issues
  * 6.x.0 - Features: 3 open issues
  * 6.x.x - Bug Fixes: 32 open issues
  * 7.0.0: 3 open issues
  * Libraries: 13 open issues
  * Long term: 306 open issues
  * Support: 4 open issues
  * 3 issues not assigned a milestone


* Core download stats available at https://circuitpython.org/stats


### 12:09 Libraries
* 212 pull requests merged
  * 12 authors - dherrada, ladyada, zunkworks, benetherington, kmatch98, brentru, caternuson, makermelissa, FoamyGuy, CedarGroveStudios, peterhinch, jfurcean
  * 10 reviewers - dherrada, ladyada, jepler, brentru, caternuson, makermelissa, tannewt, FoamyGuy, kattni, gamblor21
 * Merged pull requests: [deleted due to length]
* 16 closed issues by 11 people, 8 opened by 8 people
* https://circuitpython.org/contributing
* 266 open issues
* 8 good first issues
* 60 open pull requests (Oldest: 742, Newest: 1)
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_TMP117](https://github.com/adafruit/Adafruit_CircuitPython_TMP117)
 * [Adafruit_CircuitPython_RockBlock](https://github.com/adafruit/Adafruit_CircuitPython_RockBlock)
 * [Adafruit_CircuitPython_OAuth2](https://github.com/adafruit/Adafruit_CircuitPython_OAuth2)
 * [Adafruit_CircuitPython_Display_Shapes](https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes)
 * [Adafruit_CircuitPython_BusDevice](https://github.com/adafruit/Adafruit_CircuitPython_BusDevice)
 * [Adafruit_CircuitPython_ATECC](https://github.com/adafruit/Adafruit_CircuitPython_ATECC)
 * [Adafruit_CircuitPython_PortalBase](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase)
 * [Adafruit_CircuitPython_PyPortal](https://github.com/adafruit/Adafruit_CircuitPython_PyPortal)
 * [Adafruit_CircuitPython_Display_Text](https://github.com/adafruit/Adafruit_CircuitPython_Display_Text)
 * [Adafruit_CircuitPython_Bitmap_Font](https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font)
 * [Adafruit_Blinka](https://github.com/adafruit/Adafruit_Blinka)
 * [Adafruit_Blinka_bleio](https://github.com/adafruit/Adafruit_Blinka_bleio)
 * [Adafruit_Python_PlatformDetect](https://github.com/adafruit/Adafruit_Python_PlatformDetect)
 * [Adafruit_Blinka_PyPortal](https://github.com/adafruit/Adafruit_Blinka_PyPortal)


### 18:23 Blinka
* 10 pull requests merged
* 7 authors - flyleaf91, yeyeto2788, HoSStiA, caternuson, twa127, alexwhittemore, makermelissa
  * 5 reviewers - FoamyGuy, ladyada, dhalbert, caternuson, makermelissa
* 2 open pull requests
  * https://github.com/adafruit/Adafruit_Python_PureIO/pull/1 (Open 1689 days)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/41 (Open 92 days)
* 3 closed issues by 3 people, 1 opened by 1 people
* 50 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 2697
Number of supported boards: 60


## 19:50 Hug reports
20:12 @jepler
* Group Hug


20:28 @kattni
* @foamyguy for taking a HUGE number of PR reviews off my plate
* @jepler for agreeing to run the meeting this week when it turned out I had potential conflicts
* @dylan for updating Black and licensing formatting on all the libraries
* @cgrover for persisting through a PR and writing up a guide to document the changes


 21:12 @KevinThomas (lurking, text-only)
* Group Hugs


 21:21 @kmatch98
* Thanks to @danh for CP building help
* @tannewt for spending time on last week’s deep dive to point in the right direction for ParallelBus for the ESP32-S2
* @foamyguy for locating a bug in bitmap_label and helping with merging the pull request


22:06 @MakerMelissa 
* @jepler for creating the script to set the kernel at a specific version
* @foamyguy for helping make sure Blinka PyPortal worked with his Displayio PyGame library
* @jfurcean for helping out with getting the PyPortal refactor changes finished
* @TG-Techie for pointing out one of the items I wanted in CircuitPython was already there
* Group Hugs


@Mr. Certainly [lurking]




22:52 @microDev (text-only)
* Group hug and @danh for looking into touch bugs


22:56 @tannewt
* @danh for being the first guest on my stream


23:15 @v923z
* @anneb for taking care of the newsletter
* @jepler for implementing a fix, and the complete mac workflow for ulab


23:59 @anecdata (lurking)
* @jepler @tannewt for help with make translate


@cater (Lurking)


24:08 @CGrover (just listening today)
* @kattni for git encouragement and helping to facilitate a MotorKit change.
* Group hug ‘cause we need at least one.


@charlesburnaford (lurking)


24:20 @danh
* @kattni, @dherrada, @foamyguy for the (now more common) systematic huge pass through the libraries
* @microDev for co-debugging an ESP32-S2 issue
* @tannewt for several helpful technical conversations, and for inviting me on his regular Friday stream


@DaveP (lurking)


25:20 @David.Glaude: (lurking)
* @Brent.Rubell for great Google Calendar learn guide
* @Carter.Nelson for great learn guide with wake on flip on the MagTag
* @jfurcean and @Carter.Nelson for the enhancement of the Nunchuck library
* @hugo.dahl for explaining and looking at pre-commit
* @deshipu for sharing the jumper-wire displayio game (it’s the second time I thank him for that, but he really deserve it)


 26:01 @foamyguy
* @DavidG, @Hugo, @John.F, @AnonEngineering, anyone else I’m missing who tuned in and hung out while I streamed some library PR review work.
* @dherrada and @kattni for working on pre-commit and licence and other “infrastructure” type issues
* @Neradoc and @skerr for offering great help to folks on discord and GitHub.
* @kmatch98 for a quick fix of a small issue I noticed in BitmapLabel
* Group Hug


27:15 @hierophect
* Everyone who contributed a Circuitpython 2021, they were fun to read
* @tannewt for discussions and reviews


@jasonp (Lurking)


@jayguitar (lurking)


28:04 @jerryn 
* Group Hug


## 28:21 Status Updates 
28:43 @jepler
* Last week:
   * Started on AnalogOut for ESP32-S2
      * There is HW support but no esp-idf API
* This week:
   * Continuing on with AnalogOut
* Fun stuff: Got out the stemma qt thermal camera & pybadge to make the project from the Learn system & hunt for drafts in my 1940s-era house


 31:01 @jerryn 
* Reverted PR that implemented RGB status on umfeathers2
   * Apparently caused some issues with LDO2 control. Sorry about that.
* Have been testing deep sleep on esp32s2 all week - working great!
   * One system using time alarm to send periodic data to AIO
   * Another using PinAlarm to send message via RFM9x
   * Very happy to see extended battery life.
* Next week -- not sure -- whatever looks like fun.


33:23 @kattni
* Last week:
   * Guide work.
   * Some minor misc.
   * A lot of PR reviews.
* This week:
   * More guide work.
   * More minor misc.


@KevinThomas (lurking, text-only)


34:56 @kmatch98
* Relearning to build CircuitPython
* Learning to add ParallelBus to ESP32-S2 to support high speed drawing on larger displays connected to the S2




35:48 @MakerMelissa
* Last Week:
   * Finished PyPortal refactor after much testing
   * Move all of the the Web-based projects from glitch to github and updated any associated guides
   * Got a fix in place that @jepler wrote up and wrote a guide page on using it
   * Wrote up my #circuitpython2021 post (here)[https://blog.adafruit.com/2021/01/13/melissas-ideas-for-circuitpython2021-makermelissa/].
   * Finished the Blinka PyPortal Refactor
   * Started working on adding the BeagleBone AI to Blinka
      * Had to use libgpiod due to the BBIO library not supporting the BBAI
* This Week:
   * Finish up adding BeagleBone AI.
   * Get the NanoPi NEO Air added in, which should be fairly straightforward
   * Take a look at the Blinka displayio scaling issue
   * Add another round of updated Blinka boards to circuitpython.org


@Mr. Certainly [lurking]


37:19 @microDev (text-only)
* Looking into USB Type-C power delivery for future hardware projects. USB-PD adds the ability to draw a max of 100 watts over a compatible usb-c cable and power supply. 
* Tinkering with MESH networking stuff… Mostly ESP-MESH which implements a wifi-mesh network.  


37:48 @tannewt
* Not a whole lot. Short weeks, lots of email and #circuitpython2021. Should be getting back to consistent work soon.
* Did my #circuitpython2021 post here: https://blog.adafruit.com/2021/01/15/tannewts-focus-for-circuitpython2021/
* Let’s wrap up by next Monday’s meeting.
* Last week’s stream went really well thanks to Dan being a guest.
* Discord is being finicky for reading back so if there is a question I can help answer please mention me when you ask again.


40:33 @v923z
* Last week:
   * Managed to release version 2.1 of ulab
   * Also released the circuitpython-compatible version 1.7 with bug fixes
* This week:
   * Will try to implement a more flexible array initialisation function
   * Will definitely work on hardware and photography projects


@anecdata (lurking)


@cater (Lurking)


41:58 @CGrover (just listening today)
* Last week
   * Replaced the motor tester appliance’s RPM sensor with an on-shaft quadrature version. Picked up a few ultra-sensitive Hall-effect latching sensors for other projects as a result.
* Next week
   * Write a learning guide about characterizing and improving the low-speed torque and spin threshold RPM for brushed DC motors. It’s a software approach to reduce robot start-up wheelies and unwanted string car demolition events.


@charlesburnaford (lurking)


42:40 @danh
* Released 6.1.0-rc.1.
* Debugged and fixed `TouchIn` and `TouchAlarm` problems on ESP32-S2, with @microDev.
* Fixed a BLE issue: unnecessary check on remote Characteristic length.
* Fixed some build issues.
* Reviews.
* Working on slow CIRCUITPY writes on SAMD21 (and maybe other boards) when there is no serial connection.


45:07 @David.Glaude: (lurking)
* Nunchuck library:
   * Working with @jfurcean that added “Classic Controller”
   * Adding “Super NES Classic Edition Controller” simpletest example (SNES Mini)
   * Adding uDraw GameTablet support
   * Mouse emulation with the uDraw tablet just using a QT-Py
* Testing BluePad32 v2.0.0-beta2 on WiiMote, Nunchuck, “Super NES Classic Edition Controller” and “Classic Controller Pro”.
* Turn PyPortal into a portable gaming console with wireless Joystick (Bluepad32) https://twitter.com/DavidGlaude/status/1351312288020635648?s=20


45:52 @foamyguy
* Last week
   * Helped review the wave of pre-commit / license PRs
   * Test fix for bitmap_label anchor positioning
   * swap out the sample font in display_text bitmap_font libraries with ones that have a published open license
   * Streamed while working on PRs for a bit over the weekend. Reviewing Blinka_PyPortal and PortalBase refactor PRs.
* This week
   * Back to work on layout library and trivia game.


47:29 @hierophect
* Last week:
   * Wrapped up a bunch of change requests on the TCP Server PR
   * Started on extracting the TLS stuff into the SSL module, which is mostly done as of today
   * Researched SSL module behavior to make things line up
   * Write my Circuitpython 2021, read the ones from everyone else
* This week:
   * Finish up the SSL/Socket separation PR
   * Set back up for STM32 work, to finally solve the I2C repeated start issue, and other bugs that have come up recently
   * Get a control working for the low power code and solve bugs/get started on STM32 version


@jasonp (Lurking)


@jayguitar (lurking)




## 49:41 In The Weeds
49:51 @foamyguy - Should we update this guide section to point people toward pid.codes instead of opening a PR on the circuitpython repo? https://learn.adafruit.com/how-to-add-a-new-board-to-circuitpython/customizing-the-board-files#mpconfigboard-dot-mk-3033646-25




55:57 @danh
* Encourage use of pre-commit locally:
```
pip3 install pre-commit
cd a_repo
# Install pre-commit hook; do this in each repo that has pre-commit set up
pre-commit install
  … # do some work
pre-commit run    # run the pre-commit hooks; or just try to commit.
```


1:00:24 @cater (will try to decloak)
   * Related to Nunchuk PR mentioned above by @David.Glaude. Looking for suggestions for dealing with a sensor that returns numerous values with a single, but slow, I2C xfer. "Numerous" varies, but is > O(10) values. So tuple return starts to get clunky. Named tuple? Dictionary? Just stay with tuple?


1:15:09 @microDev - (text-only)


How a MESH module would be implemented…?
There are several different ways to set up a mesh network ble-mesh, wifi-mesh, zigbee-mesh…
All of these have similar functionality but defer when it comes to setup parameters…


“similar functionality” here means same functions for handling the network
The difference of setup parameters is that wifi-mesh takes in ssid, password and ble-mesh takes cid, vid. 

## 1:21:06 Wrap-Up
