# CircuitPython Weekly for 14 December 2020


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


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.
## 5:06 Community News

### 5:13 Sony Publishes a Guide to CircuitPython on their Spresense Board

Sony has just released a brand new getting started guide to help developers program their Spresense microcontroller board with CircuitPython.

> Python developers will feel familiar with the way to program Spresense. After the initial set-up for Spresense, there is no need for any extra desktop development environment tools. Use your favorite text editor to start developing. The brand new getting started guide helps set up Spresense for CircuitPython in a matter of minutes in a step-by-step fashion. All CircuitPython libraries have example code to help you kick-start your programming.

Sony plans to continue expanding the guide with tutorials featuring unique Spresense features and capabilities when using CircuitPython. You can get Spresense updates via Sony’s Developer World on Twitter - Sony Blog, Guide, and Developer Site.

### 6:27 Announcing the PSF Diversity and Inclusion Work Group
Expansion in the Python community has brought new challenges and opportunities to improve the global community. In order to further the PSF’s mission to ‘support and facilitate the growth of a diverse and international community of Python programmers’, the Python Software Foundation announced the launch of the Diversity and Inclusion Workgroup (hereby referred to as the D&I workgroup) - Python Blog

### 7:01 Piunora: Designing a Raspberry Pi Compute Module 4 Carrier and CircuitPython
Timon on Twitter posts a very different concept: Piunora. A carrier for the Raspberry Pi CM4 in an Adafruit Metro/ Arduino form-factor. It features full-size HDMI, USB-C (data+power), USB-A, M.2 (PCI-E), RGB LEDs, 6xADC, Button, camera connector and a Qwiic/Stemma QT - Twitter Thread.

> I got the idea from tannewt (Scott Shawcroft) and at first thought it was a bit silly but in reality this offers some major benefits compared to the standard RPI4 when we are looking at this from an electronics dev board perspective. This enables something really cool and what I intend for this to be the primary application and that is CircuitPython by mounting the Pi as a USB gadget instead of a host device. So you can develop on the Pi like you would with a normal MCU dev board directly on your PC!

### 8:32 Designing a modern retro console: Adding chiptune music to an Adafruit MatrixPortal M4 with CircuitPython - retro.moe.

9:00 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.

## 10:07 State of CircuitPython, Libraries and Blinka
### 10:30 Overall
* 40 pull requests merged
  * 18 authors - theacodes, mcauser, slootsky, 2bndy5, dhalbert, jepler, krittick, makermelissa, Cybot101, theodox, JackBurdick, FoamyGuy, ladyada, kattni, scottamain, PTS93, microDev1, siddacious
  * 12 reviewers - tannewt, hierophect, dhalbert, jepler, gamblor21, makermelissa, arturo182, ladyada, FoamyGuy, dherrada, kattni, BennyE
* 14 closed issues by 8 people, 15 opened by 14 people
### 11:33 Core
* 9 pull requests merged
  * 5 authors - theacodes, mcauser, dhalbert, theodox, microDev1
  * 6 reviewers - ladyada, tannewt, hierophect, BennyE, dhalbert, arturo182
* 21 open pull requests
  * https://github.com/adafruit/circuitpython/pull/3291 (Open 118 days)
  * https://github.com/adafruit/circuitpython/pull/3349 (Open 107 days)
  * https://github.com/adafruit/circuitpython/pull/3454 (Open 82 days)
  * https://github.com/adafruit/circuitpython/pull/3493 (Open 74 days)
  * https://github.com/adafruit/circuitpython/pull/3619 (Open 45 days)
  * https://github.com/adafruit/circuitpython/pull/3643 (Open 40 days)
  * https://github.com/adafruit/circuitpython/pull/3659 (Open 35 days)
  * https://github.com/adafruit/circuitpython/pull/3662 (Open 34 days)
  * https://github.com/adafruit/circuitpython/pull/3677 (Open 32 days)
  * https://github.com/adafruit/circuitpython/pull/3696 (Open 28 days)
  * https://github.com/adafruit/circuitpython/pull/3730 (Open 24 days)
  * https://github.com/adafruit/circuitpython/pull/3733 (Open 23 days)
  * https://github.com/adafruit/circuitpython/pull/3752 (Open 19 days)
  * https://github.com/adafruit/circuitpython/pull/3771 (Open 15 days)
  * https://github.com/adafruit/circuitpython/pull/3768 (Open 15 days)
  * https://github.com/adafruit/circuitpython/pull/3792 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/3810 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/3812 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/3819 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/3817 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/3816 (Open 2 days)
* 2 closed issues by 1 people, 5 opened by 5 people
* 351 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
  * 6.0.x: 5 open issues
  * 6.1.0: 8 open issues
  * 6.x.0 - Features: 4 open issues
  * 6.x.x - Bug Fixes: 23 open issues
  * 7.0.0: 3 open issues
  * Libraries: 12 open issues
  * Long term: 290 open issues
  * Support: 5 open issues
  * 1 issues not assigned a milestone


I think we’re rapidly approaching the point where we can stabilize 6.1.  I don’t think we’ll do 6.0.1, but will do 6.1.  Thanks for all the testing!  I hope 6.1 will keep us happy for a while, and let us do more in depth stuff.
### 13:38 Libraries
* 17 pull requests merged
  * 11 authors - mcauser, slootsky, 2bndy5, jepler, krittick, makermelissa, Cybot101, JackBurdick, FoamyGuy, kattni, siddacious
  * 8 reviewers - tannewt, jepler, gamblor21, makermelissa, ladyada, FoamyGuy, dherrada, kattni
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_SHTC3/pull/3 (Days open: 7)
    * https://github.com/adafruit/Adafruit_CircuitPython_AS7341/pull/2 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/1 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/29 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/35 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/282 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_MS8607/pull/5 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/2 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/32 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/73 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BMP3XX/pull/14 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_NTP/pull/14 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/283 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/33 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/32 (Days open: 1)
    * https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/93 (Days open: 1)
    * https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/94 (Days open: 1)
* 12 closed issues by 8 people, 9 opened by 9 people
* https://circuitpython.org/contributing
  * 245 open issues
  * 9 good first issues
  * 34 open pull requests (Oldest: 707, Newest: 1)
Library updates in the last seven days:
**New Libraries**
 * [Adafruit_CircuitPython_PortalBase](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase)
 * [Adafruit_CircuitPython_SCD30](https://github.com/adafruit/Adafruit_CircuitPython_SCD30)


I notice we also had updates to cookie-cutter which is excellent because it’s what we use to create libraries and it makes it easier when we improve that.  Melissa has been working on refactoring all the “portal” libraries into separate libraries, starting with PortalBase.


**Updated Libraries**
 * [Adafruit_CircuitPython_BNO08x](https://github.com/adafruit/Adafruit_CircuitPython_BNO08x)
 * [Adafruit_CircuitPython_APDS9960](https://github.com/adafruit/Adafruit_CircuitPython_APDS9960)
 * [Adafruit_CircuitPython_MS8607](https://github.com/adafruit/Adafruit_CircuitPython_MS8607)
 * [Adafruit_CircuitPython_MagTag](https://github.com/adafruit/Adafruit_CircuitPython_MagTag)
 * [Adafruit_CircuitPython_LED_Animation](https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation)
 * [Adafruit_CircuitPython_BMP3XX](https://github.com/adafruit/Adafruit_CircuitPython_BMP3XX)
 * [Adafruit_CircuitPython_NTP](https://github.com/adafruit/Adafruit_CircuitPython_NTP)
 * [Adafruit_CircuitPython_ADS1x15](https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15)
 * [Adafruit_CircuitPython_Bitmap_Font](https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font)
 * [Adafruit_Blinka](https://github.com/adafruit/Adafruit_Blinka)
 * [Adafruit_Blinka_Displayio](https://github.com/adafruit/Adafruit_Blinka_Displayio)
 * [Adafruit_Python_PlatformDetect](https://github.com/adafruit/Adafruit_Python_PlatformDetect)
 * [Adafruit_Python_PureIO](https://github.com/adafruit/Adafruit_Python_PureIO)
 * [Adafruit_Blinka_PyPortal](https://github.com/adafruit/Adafruit_Blinka_PyPortal)
 * [Adafruit_Python_Extended_Bus](https://github.com/adafruit/Adafruit_Python_Extended_Bus)
 * [CircuitPython_Community_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)


### 16:55 Blinka
* 14 pull requests merged
  * 4 authors - ladyada, scottamain, PTS93, mcauser
  * 3 reviewers - ladyada, dhalbert, makermelissa
* 6 open pull requests
  * https://github.com/adafruit/Adafruit_Python_PureIO/pull/1 (Open 1654 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/20 (Open 81 days)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/41 (Open 57 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/363 (Open 38 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/380 (Open 1 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/379 (Open 1 days)
* 0 closed issues by 0 people, 1 opened by 1 people
* 48 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 1908
Number of supported boards: 60
## 18:04 Hug reports
@anecdata (lurking)


@cater (lurking)


19:20 @CGrover (text only)
* Group hug to the team and community for tons of inspiration and encouragement.


19:36 @charlesburnaford (lurking)
* Group Hug for all




19:43 @danh
* @microDev for extensive discussions on sleep and alarms.
* @igrr for expert guidance on sleep memory considerations.
* @tannewt for sleep PR reviews.


@DaveP (lurking)


20:45 @David.Glaude (lurking):
* @kjw (kevinjwalters) and @Bogdan50 for test/work on on Enviro+ FeatherWing
* @BlitzCityDIY (Liz Clark) for the MagTag Xmas countdown
* @danh for the work on Non Volatile Memory (during sleep), ULP will also be great
* @tannew for the work on wake on GPIO


21:16 @foamyguy
* @endico for some great questions about display_text and pointing out some missing docstrings
* @jepler for adding PCF support to bitmap_font library
* Group hug


21:48 @hierophect
* @tannewt for advice on dealing with i.MX bugs
* @kattni for guide advice
* @danh for helping to debug analogIO issues
* Group hug


@jasonp (lurking)


@Jayguitar (lurking)


22:25 @jepler
* Thanks for the supportive Adafruit Discord community.  I had no concerns at all inviting my wife to appear on Show & Tell because of how kind everyone is!
* Group hug


23:10 @kattni
* @s-light on GitHub for sticking with the lengthiest PR on the libraries
* @foamyguy for always being available for PR reviews and side quests
* @lewstherintelemon on Discord for accepting an invitation to the Community Helpers role
* Group hug


24:18 @KevinThomas [lurking - text only]
* Group Hugs


24:24 @MakerMelissa
* Group Hug


@Mark(Gamblor) [lurking if i can probably not attending]


24:33 @microDev (lurking)
* Group hug to the community.
* @danh for sleep memory and ulp discussions.
* @tannewt for troubleshooting ota module’s shared-bindings implementation.


18:40 @tannewt
* @igrr for the light sleep help and PR review.
* @moto-timo for the bitbake pointers.
* @bennyE_HH for the wifi help.
* LewsTherinTelamon for helping folks on Discord
## 24:52 Status Updates
@anecdata (lurking)


@cater (lurking)


29:10 @CGrover (text only)


* Significant progress made on the DC motor characterization appliance. Came up with a theory that low-speed torque could be improved by simultaneously adjusting PWM frequency along with duty cycle, smoothing the initial velocity to avoid wheelies. The appliance provided enough data to confirm that lower PWM frequencies of less than 125Hz result in greatly increased torque with a much lower rotational spin threshold throttle setting. However, the theory that the PWM frequency should be varied based on the motor’s RPM was not confirmed. Science! Submitted a PR for MotorKit as a result.
* Will wrap up further testing of the DC motor tester and will look at how PWM frequency is managed in the Crickit and other motor control libraries. Will test the changes “on the string” with existing robots, particularly the StringCar M0 Express implementation.
* Unrelated: Starting to write and record music again. Finally breaking out of the Covid doldrums.


30:23 @charlesburnaford (lurking)
* Working on a control surface for my modular synth


30:33 @danh
* Finishing up SleepMemory PR. Reviewing Scott’s sleep PR’s.
* Fixed some build-process problems.
* To do:
   * Finish alarm/sleep guide.
   * Investigate BLE regressions in 6.x.


31:45 @David.Glaude (lurking):
* Tested BLE RPM (rotation) sensor (Pyloton)
* Added grey scale balls to MagTag Xmas Tree countdown: https://twitter.com/DavidGlaude/status/1337863188919029761?s=20
* Trying forget what is in my last adafruit order, as it goes directly under the Xmas tree
* Failures: 
   * Smashing my phone.
   * Finding a Pixel 4a for delivery in Belgium.
   * Trying "Expressive Pixels" on Matrix Portal. (@brentru)
   * Finding "Sand" demo for Matrix Portal in a learn guide (thank you @marius)


32:25 @foamyguy
* Last week
   * Added support for nrf based devices to blinka-cli tool and refactored it to use more manageable data files rather than hardcoded lists
   * Updated IoT Trivia project to use wrap text helper that was recently added to display_text
   * Some improvements to bitmap_font readme file and updated some of the examples to reference PCF fonts. Added a small new section about creating fonts with some helpful links and info
* Next week
   * Improving display_text examples and adding references to PCF fonts, and adding a few missing docstrings
   * Investigate using Adabot to generate data files for blinka-cli
   * Dive back into MagTag weather display
   * Still trying to settle on a good way to “schedule” different things to run on Matrix Portal throughout the day and different days of the week
   * Test multi-chip implementation of TLC59711 PR


35:07 @hierophect
* Last week:
   * Worked on i.MX PWMOut, but got a bit hung up on flashing issues. Over them mostly now but taking a break to work on the Socket API
   * Implementing Bind, Accept and Listen in Socket
   * Tweaking some existing PRs for pin reset and analog bugs. Testing pin resets (again) this morning
* This week:
   * More of the same, mostly.
   * Need to create some example code for the new TCP server stuff
   * Working on an e-paper flashcards guide for the MagTag


@jasonp (lurking)


@Jayguitar (lurking)


36:58 @jepler
* This year:                          
   * 1852 github contributions in 2020
   * 1059 github contributions in adafruit repos
   * 34% commits, 34% pull requests, 25% code review, 7% issues
* Last week:
   * Worked on guides, guides, guides.  One is published, one is coming soon
   * Implemented a new font format (pcf), loads much faster, but inconvenient to generate except on Linux
   * Ingrid showed our recent collab project, Twinkle Twinkle Little Scarf, on Show & Tell
* This week:
   * Wrapping a guide
   * Several issues picked out to work on, apparently related to I2C and clock stretching


38:52 @kattni
* Last week:
   * Published the Cheerlights LED Animation guide
   * Updated the SGP30 guide with the STEMMA QT rev of the board
   * Created the SGP40 guide - got that as far as possible with Arduino not being updated yet and CircuitPython lib not existing - PCB files are on GitHub, fritzing object was already created.
   * Created the Feather CAN Express guide skeleton
   * Added a Color page to the CircuitPython LED Animations guide to document the colors available in the LED Animation lib
   *    * Created the Wii Nunchuck Adapter Breakout guide including CircuitPython page, fritzing object, uploaded PCB files to GitHub etc. Tagged for review.
* Today so far:
   * Reviewed an ongoing TLC57911 PR and requested a change, and left a suggestion
   * Caught up on messages etc.
   * Started testing QT Py for addition to Essentials guide
* This week:
   * Add QT Py to CircuitPython Essentials guide - involves testing QT Py with each page, and then adding QT Py copy and wiring diagrams where needed.
      * Going to need to redo a bunch of the code to use an LED wired up to the QT Py to take the place of the D13 LED.
   * Look into potential NeoPixel LED glitches seen on ESP32-S2.


42:15 @KevinThomas [lurking - text only]
* Working on brainstorming with FoamyGuy on new CircuitPython IoT projects. We are considering developing an IoT Trivia for the PyPortal.


42:30 @MakerMelissa
* Last Week:
   * Got stub loading working with Web Serial ESPTool
      * Allowed uploading images larger than 2MB
      * Allowed full flash erases
   * Wrote up a guide page on using the Web Serial ESPTool
   * Started working on a guide for creating MagTag projects
* This Week:
   * Finish up the guide
   * Fix an issue with the Raspberry Pi Rotation
   * Possibly port some more libraries to PortalBase
   * Possibly work on eInk guide updates


43:30 @microDev (lurking)
* OTA update done! Initial support is for esp32s2. Can be extended to nRF.
* ULP alarm is in the works. 


25:30 @tannewt
* Reworked sleep workflow is checked in.
* Lots of PRs
* I have Pin Alarm working but need to polish up the PR.
   * Need to either update IDF on master or switch to release/4.2 to get light sleep fix.
* Will bug hunt after that.
* Not at the meeting next week.
## 43:55 In The Weeds
44:11 @kattni - Freeze neopixel and pypixelbuf into QT Py build?
* @jepler - de_DE build of QT Py (non-haxpress) has only 196 bytes available in flash, would totally fit in the haxpress version though
   * @kattni - Haxpress version doesn’t need it frozen.
* @jepler - If that’s different than trinket m0 we should figure out why
   * @kattni - might not be different than Trinket; there’s nothing frozen into Trinket either, evidently.
* @kattni - If we find room with GCC10 - consider freezing. Otherwise, no space.
   * @anecdata - Trinket M0 has Dotstar; QT Py has NeoPixel. But pypixelbuf used by both?
## 48:00 Wrap-Up
