# CircuitPython Weekly July 22nd, 2019

Video of the meeting is available [on YouTube](https://youtu.be/injOqDCV2ro) and [on diode.zone](https://diode.zone/videos/watch/efcf9f0a-9554-469e-84c6-af460df0bec1)

Join here for the chat all week: http://adafru.it/discord

The weekly happens normally at 2pm ET/11am PT on Mondays. Check the #circuitpython channel for notices of change in time and links to past episodes.

CircuitPython development is sponsored by Adafruit. Please support them by purchasing hardware from adafruit.com.

Reminders: Podcast available on most services. Let us know if we’re missing some.

## 3:30 Community News
PyOhio is July 27-28, 2019 in Columbus, Ohio! Kattni Rembor will be the opening keynote speaker! 
https://www.pyohio.org/2019/

A speedier CircuitPython gets 10 out of 10 in the latest issue of HackSpace Magazine
https://hackspace.raspberrypi.org/features/circuitpython-4-1-0-review

295 - In the key of lime - Embedded.fm podcast with @tannewt and @kattni
https://embedded.fm/episodes/295

8/8/2019 is CircuitPython day!

Getting started programming microcontrollers with CircuitPython by NYC Resistor - August 3, 2019.
https://www.eventbrite.com/e/getting-started-programming-microcontrollers-with-circuitpython-tickets-63905511104

CircuitPython Day with the India Linux Users Group Delhi (ILUGD) at the Delhi Technical University for Women - August 4, 2019
https://twitter.com/ilugdelhi/status/1153305958690328576

Empowering developers by embedding Python
https://talkpython.fm/episodes/show/221/empowering-developers-by-embedding-python

How to Add a New Board to CircuitPython
https://learn.adafruit.com/how-to-add-a-new-board-to-circuitpython

Scott Hanselman visits Adafruit!
https://youtu.be/nsnzgqR8-VI

## 8:47 State of CircuitPython + Libraries

This data is as of yesterday.

### 9:15 Overall
* 31 pull requests merged
  * 12 authors - dastels, iraytrace, romanakozak, NanoDano, brentru, tannewt, phrogger, dhalbert, ntavish, jerryneedell, docmollo, caternuson
  * 6 reviewers - dastels, ladyada, tannewt, brentru, kattni, dhalbert
* 7 closed issues by 4 people, 4 opened by 4 people


### 11:16 Core
* 15 pull requests merged
  * 4 authors - jerryneedell, tannewt, ntavish, dhalbert
  * 2 reviewers - tannewt, dhalbert
* 9 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2003
  * https://github.com/adafruit/circuitpython/pull/2000
  * https://github.com/adafruit/circuitpython/pull/1998
  * https://github.com/adafruit/circuitpython/pull/1996
  * https://github.com/adafruit/circuitpython/pull/1986
  * https://github.com/adafruit/circuitpython/pull/1985
  * https://github.com/adafruit/circuitpython/pull/1858
  * https://github.com/adafruit/circuitpython/pull/1363
  * https://github.com/adafruit/circuitpython/pull/1274
* 2 closed issues by 1 person, 1 opened by 1 person
* 182 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 4.1.0: 1 open issues
  * 4.x - Features: 38 open issues
  * 4.x.x - Bug fixes: 2 open issues
  * 5.x: 4 open issues
  * Libraries: 9 open issues
  * Long term: 128 open issues
  * 0 issues not assigned a milestone


Please try the 4.1.0-rc.1 release if you are able, so we can move it from rc to be the main release.


Download stats by board:


| Board                                         | 4.0.2  | 4.1.0-rc.1  |
| ----------------------------------------------|--------|-------------|
| arduino_mkr1300                               |   7    |      1      |
| arduino_mkrzero                               |   12   |      0      |
| arduino_zero                                  |   38   |      1      |
| bast_pro_mini_m0                              |   0    |      0      |
| capablerobot_usbhub                           |   0    |      0      |
| catwan_usbstick                               |   0    |      0      |
| circuitplayground_express                     |  816   |      5      |
| circuitplayground_express_4h                  |   5    |      0      |
| circuitplayground_express_crickit             |   23   |      0      |
| circuitplayground_express_digikey_pycon2019   |   2    |      0      |
| datum_distance                                |   -    |      1      |
| datum_imu                                     |   -    |      0      |
| datum_light                                   |   -    |      0      |
| datum_weather                                 |   -    |      0      |
| electronut_labs_blip                          |   5    |      0      |
| electronut_labs_papyr                         |   1    |      0      |
| escornabot_makech                             |   0    |      0      |
| feather_m0_adalogger                          |   45   |      1      |
| feather_m0_basic                              |   52   |      1      |
| feather_m0_express                            |  136   |      0      |
| feather_m0_express_crickit                    |   3    |      0      |
| feather_m0_rfm69                              |   8    |      0      |
| feather_m0_rfm9x                              |   52   |      0      |
| feather_m4_express                            |  161   |      2      |
| feather_nrf52840_express                      |   40   |      0      |
| feather_radiofruit_zigbee                     |   0    |      0      |
| gemma_m0                                      |  101   |      0      |
| gemma_m0_pycon2018                            |   3    |      0      |
| grandcentral_m4_express                       |   40   |      0      |
| hallowing_m0_express                          |   38   |      0      |
| itsybitsy_m0_express                          |   58   |      1      |
| itsybitsy_m4_express                          |  103   |      3      |
| kicksat-sprite                                |   0    |      0      |
| makerdiary_nrf52840_mdk                       |   7    |      0      |
| makerdiary_nrf52840_mdk_usb_dongle            |   20   |      0      |
| meowmeow                                      |   0    |      0      |
| metro_m0_express                              |  115   |      0      |
| metro_m4_airlift_lite                         |   34   |      3      |
| metro_m4_express                              |  109   |      2      |
| mini_sam_m4                                   |   0    |      0      |
| particle_argon                                |   6    |      0      |
| particle_boron                                |   0    |      0      |
| particle_xenon                                |   3    |      0      |
| pca10056                                      |   13   |      0      |
| pca10059                                      |   28   |      1      |
| pewpew10                                      |   29   |      0      |
| pewpew13                                      |   0    |      0      |
| pirkey_m0                                     |   1    |      0      |
| pybadge                                       |   83   |      2      |
| pybadge_airlift                               |   -    |      0      |
| pygamer                                       |  261   |      2      |
| pygamer_advance                               |   -    |      0      |
| pyportal                                      |  339   |     10      |
| pyruler                                       |   -    |      0      |
| robohatmm1                                    |   1    |      0      |
| sam32                                         |   5    |      0      |
| sparkfun_lumidrive                            |   0    |      0      |
| sparkfun_nrf52840_mini                        |   3    |      0      |
| sparkfun_redboard_turbo                       |   1    |      0      |
| sparkfun_samd21_dev                           |   5    |      0      |
| sparkfun_samd21_mini                          |   6    |      0      |
| trellis_m4_express                            |   76   |      0      |
| trinket_m0                                    |  323   |     10      |
| uchip                                         |   1    |      0      |
| ugame10                                       |   5    |      0      |
| ----------------------------------------------|--------|-------------|
|                                         Total |  3223  |     46      |
| ----------------------------------------------|--------|-------------|


Download stats by language:


| Board            | 4.0.2  | 4.1.0-rc.1  |
| -----------------|--------|-------------|
| ID               |   2    |      0      |
| de_DE            |   57   |      0      |
| en_US            |  2995  |     45      |
| en_x_pirate      |   26   |      0      |
| es               |   35   |      0      |
| fil              |   2    |      0      |
| fr               |   82   |      0      |
| it_IT            |   8    |      0      |
| pl               |   6    |      0      |
| pt_BR            |   6    |      0      |
| zh_Latn_pinyin   |   4    |      1      |
| -----------------|--------|-------------|
|            Total |  3223  |     46      |
| -----------------|--------|-------------|
### 13:17 Libraries
* 16 pull requests merged
  * 9 authors - dastels, iraytrace, romanakozak, NanoDano, brentru, phrogger, dhalbert, docmollo, caternuson
  * 6 reviewers - dastels, ladyada, tannewt, brentru, kattni, dhalbert
* 33 open pull requests
  * https://github.com/adafruit/Adafruit_CircuitPython_SK9822/pull/2
  * https://github.com/adafruit/Adafruit_CircuitPython_WS2801/pull/4
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/8
  * https://github.com/adafruit/Adafruit_CircuitPython_TCS34725/pull/20
  * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5
  * https://github.com/adafruit/Adafruit_CircuitPython_NRF24L01/pull/2
  * https://github.com/adafruit/Adafruit_CircuitPython_NRF24L01/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/9
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_framebuf/pull/14
  * https://github.com/adafruit/Adafruit_CircuitPython_MIDI/pull/13
  * https://github.com/adafruit/Adafruit_CircuitPython_LSM303/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/36
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/35
  * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30
  * https://github.com/adafruit/Adafruit_CircuitPython_SSD1306/pull/26
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/51
  * https://github.com/adafruit/Adafruit_CircuitPython_Pypixelbuf/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_seesaw/pull/36
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/59
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/42
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/39
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/21
  * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/14
  * https://github.com/adafruit/Adafruit_CircuitPython_BitmapSaver/pull/1
* 5 closed issues by 4 people, 3 opened by 3 people
* 118 open issues
  * https://circuitpython.org/libraries/contributing
Library updates in the last seven days:
**New Libraries**
 * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
**Updated Libraries**
 * [Adafruit_CircuitPython_ESP32SPI](https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI)
 * [Adafruit_CircuitPython_PyPortal](https://github.com/adafruit/Adafruit_CircuitPython_PyPortal)
 * [Adafruit_CircuitPython_SimpleIO](https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO)
 * [Adafruit_CircuitPython_Hue](https://github.com/adafruit/Adafruit_CircuitPython_Hue)
 * [Adafruit_CircuitPython_CursorControl](https://github.com/adafruit/Adafruit_CircuitPython_CursorControl)
 * [Adafruit_CircuitPython_AdafruitIO](https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO)
 * [Adafruit_CircuitPython_TinyLoRa](https://github.com/adafruit/Adafruit_CircuitPython_TinyLoRa)
## 14:50 Hug Reports


17:08 @brentru
* @mscosti for ESP32SPI Server and Access Point work - I have a few good ideas which utilize your hard work!
* @tannewt and @kattni for embedded.fm appearance - my fav. Podcast
* @danh for BLE
* Terry from MCCI for questions I had about the HopeRF module revision numbers.
* Lots of thanks to @adam.io for help with digging into the nitty gritty of the MQTT protocol - helped review MiniMQTT.


18:27 @cater
* group hug
* @danh for support on forum
* good luck to @kattni for pyohio


@charlesburnaford (lurking)


24:20 @CGrover - lurking, loving rc1


18:42 @danh
* @tannewt for reviewing my new BLE PR’s
* @jerryn for testing the new BLE code
* @hierophect for stm32f4 work: PR is imminent


19:50 @deshipu
* @tannewt for monochrome displayio work
* group hug


21:10 @hierophect
* @danh and @tannewt for help with stm32f4 port
* @hatchach for TinyUSB help with STM32
* Group hug


@hukuztuna lurking


@jasonp lurking


21:41 @jerryn
* Congratulations on 5.0 alpha!
* @danh for continued BLE improvements


21:58 @jtrip (lurking - no mic)
* @MakerMelissa for reviewing my first CircuitPython library PR
* @brentr for work on the CursorControl library


22:19 @MakerMelissa
* @tannewt and @kattni for a great embedded.fm podcast
* Group Hug


22:41 @mscosti (text only for meeting)
* @siddacious, @sommersoft, @brentru for all the great feedback and suggestions on my PRs. Learned that the WSGI interface exists, which should work out well.
* @arturo182 for taking the time to test out the server PR before his vacation


@noe lurking


23:18 @sommersoft
* @carlos for implementing the "missing board build" for the core's Travis runs.
* Group hug


23:47 @tammymakesthings (text-only for meeting)
* The whole community because CircuitPython is awesome, but especially right now all the folks working on the displayio library


15:31 @tannewt
* Danh for continued ble progress and pr reviews
* Siddacious, arturo182, sommersoft and mscosti for continued good work on esp webserving
* Deshipu and sommersoft for helping folks in discord
* Nina for talk python with me interview: https://talkpython.fm/episodes/show/221/empowering-developers-by-embedding-python
## 24:37 Status Updates


28:40 @brentru
* Last week:
   * Released/shipped MiniMQTT - a MQTT client implementation for Circuit python devices
      * Excited about CircuitPython WiFi IoT projects possibly moving over to this, from the current HTTP implementation.
         * It’s fast.
      * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT
   * New release of the Adafruit IO CircuitPython library - with a MQTT class (minimqtt-powered!). Connect to our HTTP or MQTT APIs!
      * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/releases/tag/2.0.0
   * Fixed an issue with TinyLoRa for Circuit python and Arduino
   * Fixed CursorControl PyGamer issue
   * Started a MQTT for Circuit python learn guide
* This week:
   * Finish MQTT for CircuitPython Learn Guide - out by Wed.
   * Splitting Requests out of ESP32SPI into a separate, non-network-hardware dependent library.
   * Some prototypes to assemble
   * Start sweeping over the Adafruit IO Basics series of guides for usage with the CircuitPython Adafruit IO Library


31:03 @cater
* Wii Nunchuk library, especially useful for assistive technology . The Nunchuk is an I2C device. https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk. A little flaky; it was reverse-engineered, and could use a bit of tuning


@CGrover (lurking)
* Finished prototype of: https://github.com/CedarGroveStudios/AD9833_FeatherWing


33:14 @danh
* PR’s for BLE Central and Scanner, and BLE API update reviewed and approved by @tannewt
* Starting to work on BLE pairing and bonding


34:20 @deshipu
* PewPew Lite shield for D1 Mini https://hackaday.io/project/21578-pewpew-featherwing/log/165753-d1-mini-shield 
* Working on new version of PewPew with a display
* New games for PewPew, including two-person snake game


35:25 @hierophect
* Finished initial PR for stm32f411 and ‘f412 port. UART REPL for now, haven’t finished debugging USB. Includes digitalio, working on I2C.
* Working on making it easier to do a minimal port with few or no features. Conditionalizing more functionality so that a minimal port is really easy to get working, even without digitalio, etc.


@hukuzatuna lurking


@jasonp lurking


38:08 @jepler - nrf pwm audio (not attending live meeting)
* Majority of functionality is in pull request #2000
* Working on pause/resume
* Working on any review items that are noted on the pull request
* Attending pyohio!


38:38 @jerryn
* RPi 4/Buster now working with rfm9x (rpi.gpio updated to fix pull-ups)
   * Begin migration to Buster…
* small amount of BLE testing. New release works on 5.0 alpha
* Spent a lot of time looking into power issue with AIrlift featherwing  vs ESP32 Huzzah on a PyGamer - more - in the weeds


@jtrip lurking


40:38 @MakerMelissa
* Last Week:
   * Updated 8 Arduino Display Guides to reflect drawing Bitmaps with ImageReader library
   * Raspberry Pi forum support for some display issues
   * Added example for new 320x240 ST7789-based display
   * Helped Kattni with some info for her Keynote
   * Added Raspberry Pi Compute Module support to Blinka
   * Started guide for adding boards to CircuitPython.org Website
* This Week:
   * Work on PyBadger fix for PyBadge LC without accelerometer
   * Update ST7735 Arduino library display examples to support 320x240 display
   * Update ST7735 Arduino library display examples to support PyBadge and PyGamer
   * Add missing setup.py to Display_Text library
   * Add Compute Module boards to circuitpython.org
   * Finish guide for adding boards to CircuitPython.org Website


@mscosti (text only)


@Noe lurking


42:30 @sommersoft
* Last Week:
   * adabot PyPI Download stats:
      * The daily report has been failing for the past few days. After some really easy troubleshooting, the problem stemmed from pypistats.org itself. Even the website's interface was failing with timeouts and 502 gateway errors. The website seems to be working again (at time of writing). A local run of the script, and Sunday's Travis cron were successful.
      * Going forward in the future, there are only a few options:
         * Remain reliant on pypistats, and accept any downtimes.
         * Find a different service/API.
         * Implement our own stats retrieval. Obviously, this is the most complex option. May also incur "funding" requirements with regards to using Google BigQuery. See: https://packaging.python.org/guides/analyzing-pypi-package-downloads/
   * RosiePi:
      * Finally got the Ansible finished and running. Allows my/any Raspberry Pi to both be initially setup, manage services, and automatically remain up to date with the associated repos (daily, atm). Still needs a fix though.
   * Worked with @carlos on having the core's Travis check for missing board builds.
* This Week:
   * RosiePi
      * Rework the installation of gcc-arm-embedded in Ansible. Not sure what I was thinking with "download Linux 64-bit tarball". Raspbian clearly said "no". :face_palm: Wonder how long compiling from source is going to take…
      * Verify/get test framework and test board communication working on the RPi.


46:57 @tammymakesthings
* Last week
   * 3-d printing a whole bunch of Flexi dragons for people <https://www.thingiverse.com/thing:3505423>
   * Design of my parking distance sensor project, and connecting a Stemma connector to my Maxbotix ultrasonic sensor so I can use my PyGamer as my test platform
* This week
   * Figuring out displayio enough to be able to get my first test of the parking sensor done this week


25:20 @tannewt
* Embedded.fm interview with Kattni and I is live: https://embedded.fm/episodes/295
* Released 4.1.0-rc.1 with bitmap dirty tracking “fix” and branched 5.x
* PR for oled support is close. Just waiting for a final review
* EINK this week along with frame rate control. May cause displayio API change with wait_for_frame and refresh_soon. Will also be in 5
* Also adding .hidden to TileGrid and Group so they can be hidden temporarily.


## 47:43 In the Weeds


48:19 @jerryn
Odd power issue when connecting ESP32 co-processors to PyGamer with Switch off.
No need for long discussion - main question is should I post an issue for this? Where?
Summary:
* Airlift featherwing - OK
* Airlift breakout - initially OK, speaker noise after turn off
* Feather Huzzah32 - speaker noise before power on — neopixels stay on after use
* ESP32 breakout - Initially OK, neopixels stay on after use
All work when switch turned on.
Feather Huzzah32 OK if 3.3V used instead of VUSB


55:19 @deshipu
        A pattern for all libraries that allocate buffers, to make it possible to pass a pre-allocated buffer to them, to avoid memory fragmentation problems on repeated calls (and to make it possible to share one buffer among several things). Repeated allocation and freeing is particularly an issue in the audioio module.


## 1:04:21 Wrap-up
