# CircuitPython Weekly for December 21st, 2020


Welcome to the CircuitPython Weekly meeting notes! Feel free to add your Hug Reports and Status Updates early. During the meeting, we go through them as a round robin sorted by username. If you can’t make the meeting and would still like to participate, add your notes with a “(missing meeting)” after your username and we’ll read them off for you. 


Add any longer-form discussion topics or general questions you have to the “In the weeds” section. 


Thanks! We hope to see you in the meeting!


Jeff is hosting.


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


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:47 Community News

zoomout - a pull switch (or BYO button) that gets you out of video calls, quick. Uses an [Adafruit Feather nRF52840 Express](https://www.adafruit.com/product/4062) running CircuitPython - [Twitter](https://twitter.com/lanewinfield/status/1339257875034566656) and [GitHub](https://github.com/lanewinfield/zoomout).

Control your TV using The Force! Build a gesture-controlled remote with an [Adafruit Feather M4 Express](https://www.adafruit.com/product/3857) and CircuitPython - [sudomod](https://sudomod.com/force-remote/).

Designing the ESP32-S2 Open Book - [Twitter](https://twitter.com/josecastillo/status/1339575324997263360).

Analog panel meter clock using CircuitPython and the new FeatherS2 by Unexpected Maker. It syncs with WorldTimeAPI on boot and every 12 hours - [Twitter](https://twitter.com/jfurcean/status/1340017323688812544).

The new Reclaimer Labs STM32WB Feather board with Bluetooth - [Reclaimer Labs](https://www.reclaimerlabs.com/stm32wb-feather).


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.

##  5:58 State of CircuitPython, Libraries and Blinka

### Overall


* 21 pull requests merged
  * 12 authors - FoamyGuy, MattyJeronimo, askpatrickw, WizardTim, orderthruchaos, yeyeto2788, jepler, StackRduino, jerryneedell, alustig3, anecdata, makermelissa
  * 9 reviewers - FoamyGuy, dhalbert, gamblor21, kattni, jepler, ladyada, dherrada, siddacious, makermelissa
* 25 closed issues by 11 people, 17 opened by 14 people


### Core
* 3 pull requests merged
  * 2 authors - StackRduino, jepler
  * 3 reviewers - ladyada, dhalbert, jepler
* 19 open pull requests
  * https://github.com/adafruit/circuitpython/pull/3291 (Open 125 days)
  * https://github.com/adafruit/circuitpython/pull/3349 (Open 114 days)
  * https://github.com/adafruit/circuitpython/pull/3454 (Open 89 days)
  * https://github.com/adafruit/circuitpython/pull/3493 (Open 81 days)
  * https://github.com/adafruit/circuitpython/pull/3619 (Open 52 days)
  * https://github.com/adafruit/circuitpython/pull/3659 (Open 42 days)
  * https://github.com/adafruit/circuitpython/pull/3662 (Open 41 days)
  * https://github.com/adafruit/circuitpython/pull/3677 (Open 39 days)
  * https://github.com/adafruit/circuitpython/pull/3696 (Open 35 days)
  * https://github.com/adafruit/circuitpython/pull/3730 (Open 31 days)
  * https://github.com/adafruit/circuitpython/pull/3733 (Open 30 days)
  * https://github.com/adafruit/circuitpython/pull/3768 (Open 22 days)
  * https://github.com/adafruit/circuitpython/pull/3812 (Open 11 days)
  * https://github.com/adafruit/circuitpython/pull/3824 (Open 6 days)
  * https://github.com/adafruit/circuitpython/pull/3830 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/3834 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/3848 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/3850 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/3854 (Open 0 days)
* 5 closed issues by 3 people, 8 opened by 6 people
* 358 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
  * 6.0.x: 6 open issues
  * 6.1.0: 6 open issues
  * 6.x.0 - Features: 4 open issues
  * 6.x.x - Bug Fixes: 28 open issues
  * 7.0.0: 3 open issues
  * Libraries: 12 open issues
  * Long term: 289 open issues
  * Support: 4 open issues
  * 6 issues not assigned a milestone


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


Overall: We are continuing with progress on the core, but the strongest activity seems to be going on in the libs. Know what we need to do to get to 6.1. Next couple of weeks will be slower, as folks are taking time off.
###  9:55 Libraries
* 18 pull requests merged
  * 11 authors - FoamyGuy, MattyJeronimo, askpatrickw, WizardTim, orderthruchaos, yeyeto2788, jepler, jerryneedell, alustig3, anecdata, makermelissa
  * 9 reviewers - FoamyGuy, dhalbert, gamblor21, kattni, jepler, ladyada, dherrada, siddacious, makermelissa
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_TLC5947/pull/23 (Days open: 116)
    * https://github.com/adafruit/Adafruit_CircuitPython_DS3231/pull/32 (Days open: 17)
    * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/12 (Days open: 17)
    * https://github.com/adafruit/Adafruit_CircuitPython_INA219/pull/26 (Days open: 10)
    * https://github.com/adafruit/Adafruit_CircuitPython_DHT/pull/55 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/42 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/41 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/39 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/38 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/56 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/53 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/13 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DHT/pull/56 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing/pull/66 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_AS7341/pull/5 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Slideshow/pull/30 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Slideshow/pull/29 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/49 (Days open: 1)
* 20 closed issues by 10 people, 6 opened by 6 people
* https://circuitpython.org/contributing
  * 246 open issues
  * 8 good first issues
  * 37 open pull requests (Oldest: 714, Newest: 1)
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_INA219](https://github.com/adafruit/Adafruit_CircuitPython_INA219)
 * [Adafruit_CircuitPython_SCD30](https://github.com/adafruit/Adafruit_CircuitPython_SCD30)
 * [Adafruit_CircuitPython_MagTag](https://github.com/adafruit/Adafruit_CircuitPython_MagTag)
 * [Adafruit_CircuitPython_DS3231](https://github.com/adafruit/Adafruit_CircuitPython_DS3231)
 * [Adafruit_CircuitPython_EMC2101](https://github.com/adafruit/Adafruit_CircuitPython_EMC2101)
 * [Adafruit_CircuitPython_Bitmap_Font](https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font)
 * [Adafruit_CircuitPython_TLC5947](https://github.com/adafruit/Adafruit_CircuitPython_TLC5947)
 * [Adafruit_CircuitPython_BitbangIO](https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO)
 * [Adafruit_CircuitPython_DHT](https://github.com/adafruit/Adafruit_CircuitPython_DHT)
 * [Adafruit_CircuitPython_FeatherWing](https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing)
 * [Adafruit_CircuitPython_AS7341](https://github.com/adafruit/Adafruit_CircuitPython_AS7341)
 * [Adafruit_CircuitPython_Slideshow](https://github.com/adafruit/Adafruit_CircuitPython_Slideshow)
 * [CircuitPython_Community_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)


###  13:03 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 6 open pull requests
  * https://github.com/adafruit/Adafruit_Python_PureIO/pull/1 (Open 1661 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/20 (Open 88 days)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/41 (Open 64 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/363 (Open 45 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/383 (Open 4 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/384 (Open 1 days)
* 0 closed issues by 0 people, 3 opened by 3 people
* 51 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 1639
Number of supported boards: 60


##  14:13 Hug reports



14:31 @jepler
* Hug to everyone who is helping others on Discord, whether you’re recognized with a role for it or not
* Group hug and well wishes for 2021!


@jfurcean (lurking)


15:01 @kattni
* @askpatrickw for looking into circup not deploying to PyPI, adding a PR to automate semver, and testing whether the update worked.
* @foamyguy and @s-light for sticking with the longest running library PR
* @anecdata and @askpatrickw for joining the CircuitPythonLibrarians review team
* Group hug, and everyone have a wonderful rest of the year and into the new year!


17:15 @kevin_thomas - lurking - text only
* Group Hugs


17:25 @MakerMelissa
* @foamyguy for testing out my Display_Text wrapping fix PR
* Group Hug


17:56 @Mark(Gamblor) (lurking)
* @JeffE for catching and fixing my first core bug
* Group hug and best wishes to everyone


18:18 @microDev (lurking)
* Group hug to the community.
* @danh for all the alarm - sleep conversations.


18:30 @Mr. Certainly (text only)
* Group hug for all the dedication, hard work, and kindness throughout this very challenging year. 
* Thank you to all the helpers -- even if you don’t have a colorful tag on your name. You folks go a step above and beyond to make this community a place that’s truly amazing. You’re the role models that so many look up to.

@anecdata (lurking)


18:58 @brentru 
* @danh and @tannewt for low-power and alarms
* @hierophect and @tannewt for native wifi work and sockets
* @makermelissa for web esptool - will make loading nina-fw ez!
* Group hug to all who have worked on, maintained, and helped with CircuitPython all year.


@brrzap (lurking)


19:59 @charlesburnaford  Lurking  
* Group Hug and a Happy Holidays to all. Enjoyed listening to the meeting throughout the year.


20:12 @danh
* @foamyguy for quick fixes to several libraries.
* @tannewt for initial PinAlarm and starting to debug it.
* @microDev for more discussions re sleep and its alarms.


@DaveP (lurking)


21:04 @David.Glaude (lurking)
* @PaintYourDragon (@Phillip.Burgess) for the “MagTag Lists From Google Spreadsheets” learn guide (and special attention to not being US centric)
* @MakerMelissa for the modular MagTag Portal library and learn guide (will the PyPortal and Matrix Portal also be modularized?)
* @MakerMelissa for the “Web Serial ESPTool” and @kattni for the “Matrix Portal learn guide”




21:40 @foamyguy
* @nealterrell updating the year progress code to account for rarer leap year changes.
* @makermelisa for fixing issues with the text wrapping helper
* @jepler for figuring out an odd I2C issue with the LC70920 Battery Gauge breakout
* @jerryn for a fix to allow Keyboard Featherwing helper to work with UM Feather S2 and other feathers.
* @cater for inspiration on a nice looking frame graphic
* Group hug thank you all for making this year far more amazing than it would have been without the much needed friendship and community.


23:14 @hierophect
* @tannewt for Sockets discussions
* @joey for making cool stuff as always
* Group hug and happy holidays


23:53 @jerryn
* @foamyguy for help and quick review of changes to the keyboard_featherwing library.
* @arturo182 for making the keyboard feathering available.
* @danh for the sleep guide and all involved for the implementation.
* Group Hug

## 24:36 Status Updates

25:14 @jepler
* Last week:
   * Finished a guide (hardly any python inside)
   * Worked on some I2C stuff that turned out to be related to `adafruit_bus_device` being moved into core code
   * Identified other I2C issues but haven’t worked on them yet (some are related to esp32s2, others to adafruit_bus_device)
   * Responded to guide feedback
   * Continued progress but not conclusion on Python bdf-to-pcf converter
* This week & next:
   * Short weeks due to holidays
   * Looking for a quick project to bring to Show & Tell Wednesday
   * More I2C work
* Fun stuff:
   * Made a 17th century “pumpion” (pumpkin) pie recipe https://youtu.be/FF0HnhuzGak --  verdict: pie very tasty, video very educational


26:30 @jerryn
* Minor update to keyboard_featherwing library to pass all pins in as arguments
   * Need the changes to use the library with a umfeathers2 attached to a keyboard_featherwing.
* Trying to catch up on all the updates in the past few months. Hoping to return to more CP activity. Amazing amount of progress while I was “absent”.
* Hope to have time to look at some open issues on RFM9x Library.


@jfurcean (lurking)


27:58 @kattni
* Last week:
   * Added QT Py to CircuitPython Essentials guide, updated Essentials guide in the process
   * Found a bug in storage.remount()
   * Looked into an LED bug on ESP32-S2, filed an issue
* Today:
   * Adding warning to MagTag guides regarding updating CircuitPython and the libraries to go with it.
   * Get circup library deploying properly to PyPI
      * Updated it to use the global secrets for PyPI
      * Merged a PR that automates semver
      * @askpatrickw tested successfully
        
32:37 @kevin_thomas - lurking - text only
* Worked with David Whale to create IoT and ML apps for the micro:bit V2 with the bitio module as a CPython bridge.
* Hoping to work on some additional CircuitPython apps this week.


33:04 @MakerMelissa
* Last Week:
   * Finished up my Creating MagTag Projects guide
   * Fixed an issue with Pi Rotation which really happened to be updating a guide settings due to a previously fixed bug
   * Created a PR to fix an issue with wrapping certain text in display_text
   * Removed some useless code from the bitbangio library
   * Tested out a Blinka NeoPixels PR and came up with a slightly better solution
   * Worked on Porting MatrixPortal over to PortalBase, but running into some issues related to the updated requests and esp32spi code. Still working it out.
* This Week:
   * Short week this week and off next week
   * Finish up porting MatrixPortal over to PortalBase
   * Test out some reported slowness with the VL6180X with Blinka
   * Test out a reported touch issue with Raspberry Pi displays
   * Work on some Blinka issues


34:55 @microDev (lurking)
* Worked on Touch Alarm implementation.
* Trying to debug the wake_alarm crash.


35:08 @Mr. Certainly (text only)
* In the process of getting a Power Profiler to gain experience with low-power consumption. 

@anecdata (lurking)


35:26 @brentru    
* Finished out semester + started up work on minimqtt refactor
   * CPython implementation looks OK!
   * Blocking on how native sockets handle timeouts and close
      * https://github.com/brentru/Adafruit_CircuitPython_MiniMQTT/tree/cpython-s2
   * After block I’ll look at ESP32S2 and ESP32SPI and Ethernet then release
* Ctd work on Adafruit IO Wippersnapper firmware.
   * https://blog.adafruit.com/category/adafruitio/wippersnapper/
* Looked back at my “2020 circuitpython wishlist” and a few others’ lists - a LOT of people’s “wants” for CircuitPython in 2020 have been covered by this year!
* Shoveled for the first time in a while - was annoying but snow is nice to look at :) 
* Got a devkit from blues wireless (wireless.dev), feather-compat, fixed price for cellular. Should be interesting...maybe...we’ll see.


@brrzap (lurking)


@charlesburnaford (lurking)


37:13 @danh
* Finished initial version of sleep Learn Guide. Spent more time on video editing than anything else (several Linux video editors are flaky in various ways; ended up using OpenShot).
* Started to debug frequencyio crash.
* Looked at assembler output for PinAlarm crash that @tannewt worked on during his live stream.
* Fixed BLE regression and other issues in 6.0.0.
* Various PR reviews.
* Will be looking at remount bug in 6.0.0.


@DaveP (lurking)


39:00 @David.Glaude
* Putting UF2 Bootloader on my (white) MagTag
* Write a MagTag “bootloader” to pick the code you want to run using a button at wakeup/boot: https://twitter.com/DavidGlaude/status/1340365817138044933
* Started a sheet that list all the MagTag learn guide and evaluate on criteria: https://docs.google.com/spreadsheets/d/1ZBrLID3p-dKbLkJ6x4Uq77l1FHkGS5ZRIoqBoD2kw_w/edit?usp=sharing 


41:31 @foamyguy
* Belated Hug report: David G for sharing a neat way to run different projects on the MagTag
* Last week
   * Fix for SlideShow library on devices without json
   * Test fix for Keyboard Featherwing
   * Test updated versions of text wrapping helper
   * Created reusable displayio widget for a rounded rect frame with a text label at the top. Added to community bundle
* Time Off:
   * Integrate the new frame widget with my MagTag weather display
   * Make some more attempts to get the stubs packaged and installable via Pip
   * Use cookiecutter to make a proper project repo for my display layouts library and add it to the community bundle
   * Work on PyPortal trivia game


44:21 @hierophect
* Last week
   * ESP32S2 socket work: Implemented Bind, Listen and Accept
   * Reworked the send and receive functions to recognize whether a socket is using TLS or not
   * Fixed and simplified some behavior in sendto and other functions.
   * Shoveled my house out of 18 inches of snow
* This week
   * Review socket timeout and error behavior, to make things align to how Cpython behaves.
   * Work on the neopixel issue Kattni’s been running into
   * Work on my language flashcard guide for the MagTag
   * Christmas-y cooking


## 47:26 In The Weeds


47:46 @David.Glaude
* Proposal to harmonize MagTag learn guide code to facilitate co-hosting and best practice (see also https://docs.google.com/spreadsheets/d/1ZBrLID3p-dKbLkJ6x4Uq77l1FHkGS5ZRIoqBoD2kw_w/edit?usp=sharing) :
   * Size/space
      * Make sure all the bitmap are as small as possible.
      * Use binary font whenever possible.
   * Co-hosting of multiple project on the same MagTag
      * Do not use code.py but magtag_project.py
      * Put fonts in the /fonts directory, with normal name if it is not optimised for minimal set of character.
      * Use special name for fonts if they are optimised for space and only contain a subset of the character.
      * Put all the bitmaps in the /bmps directory (but avoid generic name such as background.bmp and try to use the project name)
* Open questions / best practice:
   * Can we get RLE compressed image support in MagTag library to make even smaller images?
   * Is it best to only refresh once (and use auto_refresh=False to avoid unnecessary refresh) or to do a first refresh with static information, and another refresh when dynamic data are fetched from the network or computed?
   * Should we import “/fonts” or “fonts”




## 1:09:1 Wrap-Up
