# CircuitPython Weekly for July 27th, 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!


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


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


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:22 Community News
### Python Leads the IEEE Top Programming Languages for 2020


  



It’s been a turbulent year since the last time IEEE Spectrum broke out the digital measuring tools to probe the relative popularity of programming languages. Yet one thing remains constant: the dominance of Python.


> Our default ranking is weighted toward the interests of an IEEE member, and looking at the top entries, we see that Python has held onto its comfortable lead, with Java and C once again coming in second and third place, respectively. Arduino has seen a big jump, rising from 11th place to seventh.


One interpretation of Python’s high ranking is that its metrics are inflated by its increasing use as a teaching language: Students are simply asking and searching for the answers to the same elementary questions over and over. But Python is frequently used professionally and in high-profile realms, such as machine learning, thanks to its enormous collection of high quality, specialized libraries - [IEEE](https://spectrum.ieee.org/at-work/tech-careers/top-programming-language-2020).


### ALICE the Robot
  

ALICE is a Kinect controlled FPV mini-mech powered by CircuitPython on an Adafruit Feather microcontroller. The skeleton is 3D printed on a MP Mini Delta printer - [Twitter](https://twitter.com/scottmonaghan/status/1285807221805375488).


## CircuitPython Day is 9-9-2020


  



Adafruit has chosen September 9, 2020 (9/9/2020) as the snakiest day of this year for CircuitPython Day! Much more to come on events and happenings to include a CircuitPython team livestream, collaboration with hardware and software folks, and highlighting all things Python and Python on Hardware. More information will be forthcoming. Ideas? Send them via email to circuitpythonday@adafruit.com.


### Adafruit Update


  



**Adafruit is shipping orders!**


Production is up and now is the best time to get the Adafruit you've been waiting for.


### Workshop clock
  

A workshop clock (with a pandemic-inspired what-is-today display) ready for its debut. No internet required and ready for the zombie apocalypse. Inspired by 
John Park's Metro Minimalist Clock project. Programmed in CircuitPython - [Twitter](https://twitter.com/CedarGroveMakr/status/1286806325272252418). 


### Productivity Timer
  

Another Pomordoro-like timer device with Adafruit Feather components - [Twitter](https://twitter.com/blain3r/status/1287758601206018048).


> First time using CircuitPython and it’s awesome!


[![UF2 and CircuitPython on Serpano](../assets/20200728/20200728serpano.jpg)](https://twitter.com/arturo182/status/1285298952372396032)
  

Serpano, a CPY Breadboard Power Supply - Assembly and Bring-Up - [Twitter](https://twitter.com/arturo182/status/1285298952372396032) and [YouTube](https://www.youtube.com/watch?v=12E5Q9fWuHA&feature=youtu.be).


### PyOhio 2020 


  

All the talks from last week's PyOhio online conference are available in one playlist - [YouTube](https://www.youtube.com/playlist?list=PL2k6bbM_wgjtGSzPXzUzP3AfVO-o4imbB).


## 6:00 State of CircuitPython, Libraries and Blinka


### 7:02 Overall


* 23 pull requests merged
  * 14 authors - jepler, burtyb, 2bndy5, Flameeyes, DavePutz, tannewt, WarriorOfWire, FoamyGuy, brentru, hierophect, gphi, kmatch98, xobs, phil-shenk
  * 10 reviewers - makermelissa, jepler, tannewt, brentru, hierophect, dherrada, siddacious, ladyada, gfbarros, dhalbert
* 13 closed issues by 9 people, 19 opened by 9 people




### 8:00 Core
* 10 pull requests merged
  * 6 authors - burtyb, DavePutz, tannewt, xobs, WarriorOfWire, hierophect
  * 5 reviewers - jepler, ladyada, tannewt, dhalbert, hierophect
* 14 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2914 (Open 71 days)
  * https://github.com/adafruit/circuitpython/pull/2966 (Open 60 days)
  * https://github.com/adafruit/circuitpython/pull/3044 (Open 40 days)
  * https://github.com/adafruit/circuitpython/pull/3101 (Open 25 days)
  * https://github.com/adafruit/circuitpython/pull/3144 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/3187 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/3196 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/3193 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/3192 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/3191 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/3202 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/3198 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/3203 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/3209 (Open 0 days)
* 1 closed issues by 1 people, 8 opened by 4 people
* 315 open issues
  * https://github.com/adafruit/circuitpython/issues
* 7 active milestones
  * 6.0.0: 7 open issues
  * 6.x.0 - Features: 2 open issues
  * 6.x.x - Bug Fixes: 3 open issues
  * 7.0.0: 3 open issues
  * Libraries: 11 open issues
  * Long term: 282 open issues
  * Support: 1 open issues
  * 6 issues not assigned a milestone


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


### 10:47 Libraries
* 13 pull requests merged
  * 8 authors - jepler, 2bndy5, Flameeyes, FoamyGuy, brentru, gphi, kmatch98, phil-shenk
  * 8 reviewers - makermelissa, tannewt, brentru, dherrada, siddacious, ladyada, gfbarros, dhalbert
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/29 (Days open: 49)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes/pull/14 (Days open: 45)
    * https://github.com/adafruit/Adafruit_CircuitPython_MCP230xx/pull/28 (Days open: 23)
    * https://github.com/adafruit/Adafruit_CircuitPython_SGP30/pull/29 (Days open: 8)
    * https://github.com/adafruit/Adafruit_CircuitPython_DS3231/pull/27 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_PCF8523/pull/19 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_ProgressBar/pull/8 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/44 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_Register/pull/39 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/74 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/73 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BusDevice/pull/57 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BusDevice/pull/55 (Days open: 1)
* 11 closed issues by 7 people, 11 opened by 8 people
* https://circuitpython.org/contributing
  * 172 open issues
  * 9 good first issues
  * 38 open pull requests (Oldest: 567, Newest: 1)
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_PyPortal](https://github.com/adafruit/Adafruit_CircuitPython_PyPortal)
 * [Adafruit_CircuitPython_PM25](https://github.com/adafruit/Adafruit_CircuitPython_PM25)
 * [Adafruit_CircuitPython_ProgressBar](https://github.com/adafruit/Adafruit_CircuitPython_ProgressBar)
 * [Adafruit_CircuitPython_DS3231](https://github.com/adafruit/Adafruit_CircuitPython_DS3231)
 * [Adafruit_CircuitPython_PCF8523](https://github.com/adafruit/Adafruit_CircuitPython_PCF8523)
 * [Adafruit_CircuitPython_MCP230xx](https://github.com/adafruit/Adafruit_CircuitPython_MCP230xx)
 * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
 * [Adafruit_CircuitPython_Requests](https://github.com/adafruit/Adafruit_CircuitPython_Requests)
 * [Adafruit_CircuitPython_Display_Shapes](https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes)
 * [Adafruit_CircuitPython_BusDevice](https://github.com/adafruit/Adafruit_CircuitPython_BusDevice)


### 13:42 Blinka 
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 3 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/304 (Open 49 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/316 (Open 17 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/322 (Open 3 days)
* 1 closed issues by 1 people, 0 opened by 0 people
* 23 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 1503
Number of supported boards: 52


## 14:18 Hug reports


14:44 @jepler  
* Group hug
* Hug to kattni for continuing to help me run this meeting
* I know there are people I’m forgetting, my brain is fried this morning
* @hierophect for reviews going in both directions


15:23 @jerryn
* @cater,@foamyguy,@anecdata,@kattni and others who helped for the team effort on Discord to work through a confusing issue.
* @jepler for getting sdio working on the STM32F405


16:02 @kattni
* @foamyguy for putting a ton of effort into helping a user in the #help-with-circuitpython channel with a difficult issue
* @jerryn and @cater for stepping in and helping the same user with the same apparently impossible issue - so much patience and effort was put into this.
* @fede2 for continuing to translate new guides and adding a page to a guide we updated in English
* Community Moderators for keeping up with the influx of spam and terribleness that’s been happening on Discord - remember that it represents only a small part of the community and we’re creating an important, inclusive, welcoming place for the majority of the community.


17:22 @kmatch98
* @foamyguy and @tannewt for label fixes and both of your patience with me as I learn. Thanks for the positive attitude.
* Thanks @foamyguy for an adaptive ‘display identifier’ for built in vs external display.and the Clue Sparkline accelerator demo!
* @danh for the learn guide on building CP


18:13 @MakerMelissa
* @Kattni for helping confirm I was doing something right with regards to submitting a new library
* Group Hug


@Mark(Gamblor) (lurking)


18:34 @Mr. Certainly [text only]
* Thanks to all the Community Moderators for their help with the recent uptick of Discord incidents. 
* Thanks to all the community members who reach out to us reporting issues that need moderation. You all make this place awesome, and we appreciate the help.


@sommersoft (lurking)


19:02 @stargirl (text only)
* Community moderators - we’ve had a lot to deal with this week.


21:04 @v923z
* Group hug
* A huge hug to @jepler for helping out with ulab documentation issues, and always being a good sport


@warriorofwire (lurking late)
* @foamyguy for good bug reports on vectorio


21:47 @ anecdata (lurking)


* @tannewt for the Deep Dives, it’s very educational to get a peek behind the curtains and see how all of the pieces of this big endeavor stack up and work together.


@Anne B (Lurking)


@cater (Lurking)


@CharlesBurnaford Lurking


22:20 @danh
* @jepler and @phil-shenk for PR’s and issues to tidy up after removing I2C `stop=` keyword arg (thanks to @tannewt for initial PR).
* @WarriorOfWire for async/await PR and good post-meeting discussion re a simple event loop library. Also thanks for looking at speeding up CI builds.
* @DavePutz for experimentation and a PR to use better compilation optimization when space allows.
* @tannewt for doing necessary gcc10 changes earlier rather than later.
* @kattni for discussion and reviews re changing Learn Guide examples to use `board.I2C()`.
* Entire moderation team for super-prompt cleanup of bad discord actors.


24:45 @DavidGlaude (lurking)
* @danh for quick help on pylint+black install and @kattni for the learn guide
* @tannewt @MakerMelissa and @deshipu for enlightenment on what is (and is not) Blinka and portability between Pi and Feather when I wanted to use gamepad on the Pi.


@deʃhipu (Lurking)


@dherrada (Lurking)




@fede2 (Lurking)


25:15 @foamyguy
* Kmatch98 for creating the Sparkline module and working through the changes request to get it merged into the display_shapes library.
* The folks from Kittenbot, their IOBit device makes a great add-on for CLUE
* @carter, @anecdata, @kattni, @jerryn and anyone else who helped solve the case of the mysterious Neopixel error
* @John Park for the excellent and easy to use PyPortal countdown guide
* @Flameeyes for adding support for older IO expander IC to the MCP230XX library
* Group Hug


26:32 @hierophect
* @jepler and @tannewt for reviews
* @jepler for his work on SDIO


19:15 & 27:38 @tannewt
* @WarrorOfWire for pushing async forwards
* @ciscorn for improving type hints
* @kattni for making a community-helpers private channel
* All of our Discord mods for keeping Discord clean.
* Iotpanic and xxcoder for pinging us when moderation is needed
* Siddacious for shutting down an unproductive github issue conversation




## 29:00 Status Updates 


29:41 @jepler
* Last week: SD card guide, mostly
* This week: Finishing SD card guide.  Starting on Sharp Memory Display support (an LCD display)


30:35 @jerryn
* Testing 6.0.0.-alpha2
   * Nice to see I2C issue resolved 
   * Ran across the “pystack exhausted” issue?
      * https://github.com/adafruit/circuitpython/issues/3208
      * Doubling size to 2048 fixed it for me  -- Do you want a PR?


33:05 @kattni
* Last week:
   * Helped with further translations of guides by @fede2
   * Blogged the published PMSA300I guide
   * Created nine fritzing objects
   * Updated VL53L0X guide with STEMMA QT version
   * Updated the localisation section on circuitpython.org
   * Uploaded board files for two new boards
* This week:
   * More fritzing objects - 2.7” sharp memory display, Grand Central M4
   * Update product copy on the uploaded board file repos
   * Update the default files for M0 boards on GitHub
   * Link the default files from Metro M4 Express Airlift guide and reply to forum post requesting them
   * Update BME680 guide with STEMMA QT version
   * Continue updating Git/GitHub guide eventually


38:34 @kmatch98
Last week:
* Finished update to display_shapes Sparkline and examples and resolved two off-by-one errors due to (int) rounding that confused me. 
* Built CircuitPython!
* Outlined documentation updates for label.py with new background features
This week:
* Fix displayio.Group bug: Allow insert into end of a list (or empty list)
Other items:
* Identified two ways to mount 3D printed gears to reclaimed stepper motors


40:05 @MakerMelissa
* Last Week:
   * Worked on MatrixPortal library and developed a couple of examples
   * Figured out how to detect a if YouTube is live streaming
   * Updated circuitpython.org to add a message to Chrome users warning about chrome blocking UF2 files by default.
* This Week:
   * Work on finishing up various assigned GitHub issues and PRs


@Mr. Certainly [lurking]


@sommersoft (lurking)


41:00 @stargirl (text only)
* Working on hardware designs for my next Eurorack module.
* Packing, packing, and getting rid of stuff - movers come next monday.


41:32 @tannewt
* Got all PRs in
* Released 6.0.0-alpha.2
* Tested hardware pinouts and ordered rev 3 of adapter board.
* Focused this week on native wifi APIs for -S2.
* For fun I’m looking at FPGA SoC design. ARM has an interesting book about SoC design with ARM: https://www.arm.com/resources/ebook/system-on-chip-design


44:17 @v923z
* Last week:
   * Added norm by @rcolestete, trapz, and arange to ulab
   * Took a stab at integrating the documentation into the source code. Credit goes to Scott, Flameeye, and Jeff; let me know, if I missed someone
* This week:
   * Will try to solve remaining issues with the documentation
   * Am going to focus a bit on bringing n-dimensional arrays into ulab




@warriorofwire [lurking late]


@ anecdata (lurking)


@Anne B (Lurking)


@cater (Lurking)


@CharlesBurnaford Lurking


47:44 @danh
* Still working on ATT (attribute) protocol for HCI _bleio. Skeletal code now compiles, and now I’m working on the attribute table and implementing the common_hal routines that add and references attributes.
* New board definition for an upcoming product (see Top Secret videos).
* Lots of reviews and issue follow-ups.
* Took some timing traces for NeoPixel timing on SAMD21/51 on Arduino/CircuitPython. I have a table of typical timings, and will see if some are out of spec. Some people have had issues with WS2813 RGB LED’s (Adafruit doesn’t sell those).


49:50 @DavidGlaude (lurking)
* Upgrading many of my boards to 6.0.0 alpha 2 and latest library.
* Still some work on air quality sensor resolving a disagreement between pylint and black.
* Convinced the maker of Commander to add gamepad to his board (PR accepted by @danh) … and now I want countio.


@deʃhipu (Lurking)


@dherrada (Lurking)


@fede2 (Lurking)


50:54 @ foamyguy
        Last week:
* Cleaned up, documented, and published a Productivity Timer I made for Circuit Playground a while back.
* Testinting a few shapes and display_text PRs.
* Implemented ProgressBar with vectorio Polygons but then realized it’s not backward compatible with 5.x. Plan to create a new Vector_ProgressBar for now.
* Played with Kittenbot IO Bit and CLUE together
* Created a Circuit Python day countdown for PyPortal 
* 3D Printed heart shaped “Neon” Neopixel strip holder
* Built the circuit for, and tested a PR that added support for older MCP23016 IO Expander IC..
Next Week
* Teaching Javascript class 2 nights a week for a few weeks.
*  Work with Kmatch98 on updating the display_text documentation with the learn guide page.
* Play with displayio.Shape some more 


53:36 @hierophect
* Last week:
   * Wrapped up PWMOut on the ESP32-S2, fixing a duty cycle bug and some other nitpicks
   * Finished the Timer PR for STM32, after verifying that everything worked properly across RGBMatrix
   * Reviewed and tested Jeff’s SDIO PR
   * Read the documentation for the ESP32-S2 Remote Control peripheral, which I’ll be implementing as PulseIO this week. 
* This week
   * Keep working on ESP32-S2 PulseIO
   * Support development of the flash module on the STM32F1
   * Investigate SPI issue appearing on STM32 
   * Other bugfixes roundup


## 56:26 In The Weeds
56:50 @jerryn
* Moderation on Discord has become much more challenging with “Server Discovery” - It was noted last week that the issue has been raised with Adafruit. Looking forward to hearing more about this. What are the pros/cons for having it?
* @kattni - We spoke with PT. We can discuss it here.
   * Talking with Discord first as this is a bigger issue.
   * Considering removal from Discord Server Discovery
   * In the meantime we will do some more steps to circumvent bad actors


1:22:58 @v923z
* Where do we stand with ulab documentation?
* Generally, could documentation be generated on a per module basis? (to save time and other resources)
   * Check the sphinx-build flags to remove the one that causes a full rebuild. It’s good to do before committing because sphinx-build isn’t perfect.


1:22:15 @danh
* Summary about `board.I2C()` vs `busio.I2C()` (requested by @jepler): We added the default `board.I2C()` singleton creator to CircuitPython well after many Learn Guides were written. We’ve seen user confusion about whether one can use both `board.I2C()` and `busio.I2C(board.SCL, board.SDA)` in the same program. To avoid this confusion, more Learn Guides could be changed to use `board.I2C()`.

Idea that just occurred to me: we could also make `busio.I2C(board.SCL, board.SDA)` reference the singleton, instead of just failing. … A better idea is just to have `busio.I2C(board.SCL, board.SDA) throw an exception with a more explanatory error message. @danh will open an issue for this. 

Another minor discussion issue is related to this include allowing setting the baudrate or frequency when creating `board.I2C()`, .SPI()`, and `.UART()` for the first time.


1:32:00 @hierophect
   * might be worth mentioning that @jepler and I started an issue for board.SDIO, are there any other devices that might be worth supporting in this way? 




## 1:37:25 Wrap-Up
