# CircuitPython Weekly for August 31st, 2020

NOTE: The next meeting will be on CircuitPython Day, Wednesday September 9th, not September 7th following the regular schedule or the 8th like our usual US holiday policy.


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


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.
## 5:30 Community News
### 5:33 CircuitPython Day is in one week! September 9th, 2020 (9-9-2020)
 CircuitPython Day: 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.

### Dia CircuitPython
 CircuitPython Day: 9-9-2020 

CircuitPython fans in Central America are planning additional activities.
Costa Rican artist isabelootag has been commissioned to create a mascot for us for this event, taking into account our roots and culture as Central Americans. You may already know Blinka, the snake mascot Adafruit has chosen for CircuitPython. With his talent he has created us who we are sure will be loved by all. I present to you Quetzalblinka .
See their website (in Spanish) for their planned activities - DiaCircuitPython.org.

### 6:50 Dedication
This year CircuitPython Day is being dedicated to Lamba Labs Makerspace, who are helping during the Beirut disaster.
 Lamba Labs Makerspace 

More information on CircuitPython Day is forthcoming. Ideas? Send them via email to circuitpythonday@adafruit.com and add your event to the working calendar - GitHub.## CircuitPython Day is 9-9-2020

### 7:33 The Bornhack Badge
 2020 BornHack badge 

The BornHack hacker camp still happened this year and they once again provided an electronic badge to all attendees - the 2020 BornHack badge!
Similar to the last couple of years, this badge has an ARM cortex M0+ as the main controller, but on this badge it's the SAMD21 from Microchip, with 4 times as much flash and RAM compared to the chips from the previous badges. This makes it possible to run Adafruit CircuitPython, which lowers the bar for how easy it is to get started hacking on the badge.
Read more - Hackaday, GitHub and YouTube.

### 8:08 The tiny book touch

Joey Castillo posts a Twitter thread about his development of the tiny book touch, a small epaper reader with screen touch sensing. In bringing it up, he wrote a demo in CircuitPython with the Adafruit_FocalTouch library - he says it just worked! The device includes STEMMA ports, GPIO and I2C.
He also posts:
So I’m realizing: I need to redesign as a Feather board. Either SAMD51J or ESP32-S2. Imagine using this with a LoRa wing for radio stuff, or controlling a power relay. So many options! And if I can keep it simple, maybe this is a gadget that I could look into having manufactured.

### 8:57  GardenPi 
GardenPi, powered by Neptune.py is designed to manage, monitor and control a series or sprinkler valves and a multitude of sensors for pretty much any sized irrigation / hydroponic / aquaponic project. It can be scaled from 1 to 32 zones for water and 7 zones for power. It is built almost entirely in Python3 for the Raspberry Pi 4 - GitHub.

### 9:26 Getting Started With CircuitPython 
The Getting Started With CircuitPython On Compatible Microcontroller Boards guide is now available to help people get up and running with CircuitPython - Woolsey Workshop and Twitter.


This is a preview of the Python for Microcontrollers newsletter. If you’d like to submit your Python on Hardware related projects, ideas, or posts, please contact AnneB or submit a PR to the newsletter repo: https://github.com/adafruit/circuitpython-weekly-newsletter/tree/gh-pages/_drafts




## 10:24 State of CircuitPython, Libraries and Blinka


### 10:45 Overall
* 26 pull requests merged
  * 12 authors - kattni, jepler, sabas1080, bergdahl, caternuson, tannewt, weblate, michaellass, dglaude, FoamyGuy, makermelissa, ladyada
  * 8 reviewers - kattni, jepler, caternuson, tannewt, dhalbert, FoamyGuy, makermelissa, ladyada
* 17 closed issues by 12 people, 18 opened by 15 people


Overall: We just released 6.0 alpha 3 and everything is moving along.  We’re really close to releasing a beta but we wanted to hold off and make sure all our APIs were set to go before we move to beta.  In terms of the libraries we had a recent sweep of updates due to pylint changing, which is how it goes.  We made the choice to do it this way, but it means we have to go through and test all the libraries.  We’re still finishing that up.  Thank you to Jeff for going through a ton of them to get them up to a good standing in pylint’s eyes.  Blinka just keeps growing, thanks to Melissa for all the effort put in there.  I know every new product we put out and every new demo that we try almost always just runs on raspberry pi without any changes, which is really excellent.
### 13:51 Core
* 5 pull requests merged
  * 6 authors - sabas1080, jepler, ladyada, bergdahl, weblate, tannewt
  * 4 reviewers - dhalbert, tannewt, jepler, ladyada
* 16 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2966 (Open 95 days)
  * https://github.com/adafruit/circuitpython/pull/3044 (Open 75 days)
  * https://github.com/adafruit/circuitpython/pull/3144 (Open 51 days)
  * https://github.com/adafruit/circuitpython/pull/3192 (Open 38 days)
  * https://github.com/adafruit/circuitpython/pull/3237 (Open 29 days)
  * https://github.com/adafruit/circuitpython/pull/3291 (Open 13 days)
  * https://github.com/adafruit/circuitpython/pull/3302 (Open 11 days)
  * https://github.com/adafruit/circuitpython/pull/3310 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/3326 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/3349 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/3344 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/3352 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/3359 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/3358 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/3357 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/3355 (Open 0 days)
* 3 closed issues by 3 people, 7 opened by 6 people
* 321 open issues
  * https://github.com/adafruit/circuitpython/issues
* 7 active milestones
  * 6.0.0: 11 open issues
  * 6.x.0 - Features: 2 open issues
  * 6.x.x - Bug Fixes: 11 open issues
  * 7.0.0: 3 open issues
  * Libraries: 12 open issues
  * Long term: 276 open issues
  * Support: 2 open issues
  * 4 issues not assigned a milestone


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


### 14:53 Libraries
* 19 pull requests merged
  * 8 authors - kattni, jepler, caternuson, tannewt, michaellass, dglaude, FoamyGuy, makermelissa
  * 7 reviewers - dhalbert, kattni, ladyada, FoamyGuy, makermelissa, caternuson, tannewt
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_DHT/pull/47 (Days open: 19)
    * https://github.com/adafruit/Adafruit_CircuitPython_MCP230xx/pull/33 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_seesaw/pull/52 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/104 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_ProgressBar/pull/16 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_BluefruitSPI/pull/18 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_LIS3DH/pull/61 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyBadger/pull/38 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_AMG88xx/pull/29 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MCP4725/pull/17 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_Adafruit/pull/7 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_Adafruit/pull/8 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DPS310/pull/9 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/30 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MatrixPortal/pull/11 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MatrixPortal/pull/10 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MatrixPortal/pull/6 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Motor/pull/48 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/260 (Days open: 1)
* 11 closed issues by 9 people, 11 opened by 11 people
* https://circuitpython.org/contributing
  * 188 open issues
  * 8 good first issues
  * 28 open pull requests (Oldest: 602, Newest: 1)
Library updates in the last seven days:
**Updated Libraries**
 * Check out the [report](https://adafruit-circuit-python.s3.amazonaws.com/adabot/bin/reports/circuitpython_library_report_20200831.txt) for the full list of updated libraries.
### 16:34 Blinka
* 2 pull requests merged
  * 1 authors - makermelissa
  * 2 reviewers - makermelissa, ladyada
* 2 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/304 (Open 84 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/322 (Open 38 days)
* 3 closed issues by 3 people, 0 opened by 0 people
* 25 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 2629
Number of supported boards: 52




## 17:19 Hug reports


18:20 @kattni
* @foamyguy for doing a MASSIVE release sweep - I was expecting assistance, not the entire list of 100+ libraries to be finished. Thank you so much!
* @jepler for taking notes today.
* @kmatch98 for all the contributions lately
* @dglaude for providing feedback on our new French translated guide, and for agreeing to assist with review on upcoming translated guides
* @Anne for coordinating CircuitPython day planning
* @danh and everyone involved in getting the latest release of CircuitPython out
* @cater for helping out with my current guide update by discussing power requirements for everything involved


19:38 @kmatch98
* @foamyguy for continued support on display_text
* @tannewt for helpful code reviews
* @danh and @sommersoft for insights on constraints of MicroPython/CircuitPython for calling overridden parent class getter/setters
* @kattni for positive feedback!


20:20 @MakerMelissa
* @brentru for your help with AdafruitIO
* Group Hug


@Mark(Gamblor) [lurking]


@Mr. Certainly [lurking]


20:34 @tannewt
* Mr. Certainly for keeping ban stats for the Discord
* MEE6 for getting up early to join my stream chat
* @nitz and @k0d for the awesome work on Debug Edge
* @danh for the epic BLE HCI work
* @Cotdp, @maditnerd for adding more ESP32-S2 boards
* @ladyada for adding Kaluga to circuitpython-org


@anecdata (lurking)


@anne (lurking)


@cater (lurking)


@charlesburnaford (lurking today)


22:15 @danh
* @tannewt for ESP32-S2 wifi work and for _bleio HCI review
* @jepler for fixing all kinds of bugs and annoyances
* @xiongyihui for HID OUT reports and various nRF improvements
* @jepler and @hierophect for discovering and fixing a pathological makefile issue


@dave p (lurking)


23:51 @David.Glaude (lurking)
* @arturo182 for the Keyboard Feather Wing (nice acquisition)
* @danh for all the BLE work and support
* @MakerMelissa and @anecdata for trying to help me with RGB Matrix + Feather Wing AirLift


@deshipu (lurking)


24:12 @foamyguy (lurking today)
* @jepler for finding and submitting PRs across many libraries for the new version of PyLint
* @CedarGroveStudios for submitting a detailed account and reproducer code for an issue they found with display_text, and @kmatch98 for checking into it.
* @kmatch98 for continuing to add enhancements to bitmap_label. Text, scale, and line spacing mutability was added this week.

24:41 @hierophect
* @danh and @tannewt for their work on the release and advice with bugs.
* @jerryn and @anecdata for their continued testing


@Jayguitar (lurking)


25:16 @jepler
* Xiongyihui (on github) for working on low power on nRF
* @tannewt and @siddacious for conversation about _canio API
* @carlfk for comments on the CAN bus support issue
* @danh for the release (sorry some of my changes caused trouble)
* @anne and others for working on CircuitPython Day planning
* @kattni for coming up with the idea to interview each other on CircuitPython day


26:04 @jerryn
* @danh for adding HCI BLE to _bleio and BLE work in general
* @smccamy1 (in forums) for the MP port for rfm69/9x
## 27:09 Status Updates
28:25 @kattni
* Last week:
   * Updated LIS3DH and SI7021 guides with the STEMMA version
   * Created three fritzing objects.
   * Blogged up three updated guides.
   * Started adding CircuitPython to the DRV8833 guide
   * Reviewed a bunch of PRs
   * Tested stepper motor code with Metro M4 and Pi for DRV8833
* This week:
   * Finish updating DRV8833 guide
   * Then add TB6612 to the same guide page
   * Mirror page into TB6612 guide
   * Update FingerPrint README
   * Create guide for new OLED FeatherWing
   * Verify that RGB Matrix guide features the nRF properly


32:49 @kmatch98
Last week
* Wrapped up a PR on bitmap_label.py to add mutability to text, line_spacing and scale
* Fixed a scale/placement bug in label.py
This week
* Investigate adding option for an immediate refresh to a display
Other projects
* Made a two color stencil based on my daughter’s design and made two print runs (25 prints)
* Design and test a 3D printed mold and deckle for paper making 


34:11 @MakerMelissa
* Last week:
   * Wrote a NotImplemented busio.OneWire class for Blinka
   * Fixed the pins for an old Raspberry Pi Model A in Blinka 
   * Wrote Weather Demo for John Park
   * Performed code reviews on GitHub
   * Wrote Adafruit_Python_Shell library to help with Shell to Python script conversions
   * Updated a couple of scripts to use this library
   * Made a few improvements to the MatrixPortal library based on Feedback
   * Wrote a Quick demo using MatrixPortal library for Phil B that looks up the current moon phase
   * Started working on next demo for John Park which uses Adafruit IO
   * Added a receive_all_data() function to the CircuitPython Adafruit IO library
   * Added Kaluga and updated a bunch of boards on CircuitPython.org with missing images
   * Did some testing on latest Raspberry Pi OS with a PITFT display I had on hand
* This Week:
   * Test and wrap up some pending changes to the MatrixPortal library and get that released
   * Finish up writing demo
   * Work on some more Shell Script conversions
   * Finish testing some more PRs


@Mark (Gamblor) [lurking]


@Mr. Certainly [lurking]


35:48 @tannewt
* Native_wifi PR is out and waiting for review.
* Added unit tests for Requests module. Going to integrate them into http11 branch.
* Kaluga PR is out.
* Expecting lots of small things going forwards.
* Outside of CircuitPython:
   * Been brainstorming Debug Edge
   * Trying to do ElectionCal.US then next few weeks.


@anecdata (lurking)


@anne (lurking)


@cater (lurking)


@charlesburnaford (lurking)


39:14 @danh
* Submitted _bleio HCI PR and companion adafruit_ble library PR. Revised it based on @tannewt’s review.
* Did 6.0.0-alpha.3 release.
* Concatenated and cleaned up AWS S3 download logs.
* To do:
   * Review @tannewt’s ESP32-S2 wifi PR.
   * After that is merged, probably will do a beta.0 release.
   * Revisit blinka-bleio to document exactly what is working and what is not, on different platforms. Maybe fix some things on Mac (convert UUID’s to fake MAC addresses).
   * Longer term: add central support to _bleio HCI.


@dave p (lurking)


42:37 @David.Glaude (lurking)
* Testing my Keyboard Feather Wing. (Left Shift and Right Shift are indistinguishable, so I may need to update the firmware)
* Trying to make an indoor/outdoor sensor with Adafruit_CircuitPython_BLE_Adafruit (gave up).
* Putting a Feather nRF52840 Sense into a balloon later inflated for science, monitoring using “Web Bluetooth Dashboard”. (Summary: pressure and humidity increase).
* Same balloon that change colour when squeezed: https://twitter.com/DavidGlaude/status/1300490342689648642?s=20
* Failed to do "Feather M4 Express" + "RGB Matrix Featherwing for M4 Feathers" + "Feather Wing AirLift" … because there are conflicting pins.


@deshipu (lurking)


43:28 @foamyguy (lurking today)
* Last week
   * Testing PR for bitmap_label mutability
   * Made a pass through many libraries to create releases from the recent PyLint updates
   * Added bitmap_label to JSON display layout library. And “kick the tires” a bit by creating a multi-function timer gadget with a Minitft Feathering 
   * Got an overhead camera set up at my desk to start working on more video content
* Next week
   * Starting work on examples and a guide for multi-tasking with Circuit Python.
   * Finish up the Timer gadget and record some videos showing it and the code.
   * Starting a series of video tutorials to teach the basics of programming with a Circuit Playground.


44:17 @hierophect:
* Last week:
   * Meowbit display bug / null reference / LSE issue
   * Circuitpython SPI/SD card read problem
   * ESP32 random, fix bug in STM32 implementation
   * Fixed makefile comment problem with build flags, investigated ulab (too big for right now)
   * Fixing null reference exception that pops up for ESP32 somewhere in DisplayIO, probably stack corruption
* This week:
   * Get GDB running on the ESP32-S2
   * Track down this stack corruption thing
   * F1 Flash
   * RotaryIO on both the STM32 and ESP32
   * On-demand debugging as Wifi gets worked in. 


@Jayguitar (lurking)

47:08 @jepler
* Last week:
   * Mostly _canio.  Still haven’t transmitted or received a packet, but most HW registers should be set up properly on SAM E54
   * Switched to rgbmatrix bugs on Friday
* This week:
   * Wrapping up rgbmatrix bugs
   * Returning to _canio when that’s through
   * Need to investigate reliability problems of sdioio that I encountered on a stm32f405 feather -- occur multiple times per hour using displayio to show bitmaps from SD card.  First thing to check: if I swap SD cards does it go away?
* Fun stuff:
   * Put together a visual demo of SD card speed improvements, will show it on CircuitPython day
   * My makerdiary keyboard PCB seems to have shipped, excited to put it together. https://makerdiary.com/products/m60-mechanical-keyboard-pcba


48:36 @jerryn
* Helped with porting rfm69/9x libraries to MicroPython -- they are now working!
   * Fork for rfm69 is here https://github.com/nohcpy
   * Hopefully rfm9x will be added soon. Zip available now in forum https://forums.adafruit.com/viewtopic.php?f=60&t=168167&start=15#p825925
* RFM69 size reduction work is working -- pending resolution of SPI baud rate change
   * Still trying to understand why SPI transactions are so slow -- will ask in “weeds”
   * Ready to add to feather_m0_rfm69 build once library updated.
* Started playing with HCI BLE implementation in the ESP32 NINA Firmware
   * Works with the firmware from the PR https://github.com/adafruit/circuitpython/pull/3310 but not when I build v1.7.0 locally. Filed issue and trying to understand.
* Is SPI on ESP32S2 broken? Could not access RFM9x board.




## 52:02 In The Weeds


52:33 @kattni - Good first issues for October.


58:50 @jerryn   -- why are SPI transactions so slow under CP?
With a typical usage -- the “setup” “with self._device as device” takes a long time ( ~1ms on an M0) 


        with self._device as device:
            self._BUFFER[0] = address & 0x7F  # Strip out top bit to set 0
            # value (read).
            device.write(self._BUFFER, end=1)
            device.readinto(buf, end=length)
This is called for every transaction so polling a register has significant delays.
Is this unavoidable? Is it a problem?
With Arduino there are only a few microseconds between transactions.


1:08:50 @jepler - is reading a hw register faster than reading from RAM? One of them uses floating point math.

## 1:17:55 Wrap-Up
