# CircuitPython Weekly July 29th, 2019

Video of the meeting is available [on YouTube](https://youtu.be/upkOsW_hCEk) and [on diode.zone](https://diode.zone/videos/watch/1006a100-1535-4477-8d6c-1c9b3c23d041)

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:44 Community News
PyOhio - Kattni's Keynote!
https://twitter.com/EWDurbin/status/1155111965053915137 
https://twitter.com/WillingCarol/status/1155165692934574081 


STM32 support snakes its way to CircuitPython!
https://blog.adafruit.com/2019/07/28/stm32-discovery-f412zg-and-f411re-support-snakes-its-way-to-circuitpython-stmicroelectronics-st_world-circuitpython/ 


8/8/2019 is CircuitPython day!
https://blog.adafruit.com/2019/07/29/diy-light-painting-wand-using-circuitpython-by-iayanpahwa-circuitpython/ 


In the news
The MagPi Magazine: Control servos with CircuitPython & Raspberry Pi
Issue 21 HackSpace magazine: CircuitPython storage


stemma and stemma QT - easy connections!
https://youtu.be/_Cu7UOcGL14 
https://learn.adafruit.com/introducing-adafruit-stemma-qt?view=all 


Snekboard v0.2 Update: Snek sneks its way to CircuitPython
https://keithp.com/blogs/snekboard-0.2/ 


Made with Mu - A HyperCard inspired GUI framework for beginner developers in Python
https://github.com/ntoll/pypercard
https://twitter.com/ntoll/status/1155567530876055552 


Help name our Pygantic PyPortal :)
List of names in the newsletter:
https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2019-07-30-draft.md 


## 8:36 State of CircuitPython + Libraries
This data is as of yesterday.
### 8:56 Overall
* 40 pull requests merged
  * 18 authors - rhooper, jtrip, tannewt, jepler, mscosti, ladyada, zostay, ncguk, dhalbert, WoefulDerelict, ntavish, siddacious, makermelissa, caternuson, AnthonyDiGirolamo, hathach, hierophect, brentru
  * 6 reviewers - tannewt, siddacious, makermelissa, ladyada, brentru, dhalbert
* 10 closed issues by 8 people, 12 opened by 7 people
### 11:08 Core
* 6 pull requests merged
  * 6 authors - jepler, tannewt, ntavish, hierophect, AnthonyDiGirolamo, hathach
  * 2 reviewers - tannewt, dhalbert
* 13 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2018
  * https://github.com/adafruit/circuitpython/pull/2017
  * https://github.com/adafruit/circuitpython/pull/2016
  * https://github.com/adafruit/circuitpython/pull/2014
  * https://github.com/adafruit/circuitpython/pull/2012
  * https://github.com/adafruit/circuitpython/pull/2011
  * https://github.com/adafruit/circuitpython/pull/2003
  * https://github.com/adafruit/circuitpython/pull/2000
  * https://github.com/adafruit/circuitpython/pull/1996
  * 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 people, 4 opened by 3 people
* 184 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 4.1.0: 1 open issues
  * 4.x - Features: 36 open issues
  * 4.x.x - Bug fixes: 2 open issues
  * 5.x: 6 open issues
  * Libraries: 9 open issues
  * Long term: 129 open issues
  * 1 issues not assigned a milestone


Download stats by board:


| Board                                         | 4.0.2  | 4.1.0-rc.1  |
| ----------------------------------------------|--------|-------------|
| arduino_mkr1300                               |   11   |      1      |
| arduino_mkrzero                               |   15   |      0      |
| arduino_zero                                  |   49   |      3      |
| bast_pro_mini_m0                              |   1    |      0      |
| capablerobot_usbhub                           |   1    |      0      |
| catwan_usbstick                               |   1    |      0      |
| circuitplayground_express                     |  1108  |     27      |
| circuitplayground_express_4h                  |   8    |      0      |
| circuitplayground_express_crickit             |   42   |      2      |
| 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    |      1      |
| feather_m0_adalogger                          |   56   |      1      |
| feather_m0_basic                              |   63   |      9      |
| feather_m0_express                            |  184   |      4      |
| feather_m0_express_crickit                    |   3    |      0      |
| feather_m0_rfm69                              |   13   |      0      |
| feather_m0_rfm9x                              |   73   |      3      |
| feather_m4_express                            |  211   |     16      |
| feather_nrf52840_express                      |   48   |      4      |
| feather_radiofruit_zigbee                     |   0    |      0      |
| gemma_m0                                      |  136   |      2      |
| gemma_m0_pycon2018                            |   3    |      1      |
| grandcentral_m4_express                       |   59   |      5      |
| hallowing_m0_express                          |   60   |      1      |
| itsybitsy_m0_express                          |   76   |      4      |
| itsybitsy_m4_express                          |  131   |     13      |
| kicksat-sprite                                |   0    |      0      |
| makerdiary_nrf52840_mdk                       |   8    |      0      |
| makerdiary_nrf52840_mdk_usb_dongle            |   29   |      4      |
| meowmeow                                      |   0    |      0      |
| metro_m0_express                              |  139   |      1      |
| metro_m4_airlift_lite                         |   39   |      6      |
| metro_m4_express                              |  136   |      6      |
| mini_sam_m4                                   |   1    |      1      |
| particle_argon                                |   10   |      0      |
| particle_boron                                |   0    |      0      |
| particle_xenon                                |   4    |      0      |
| pca10056                                      |   24   |     10      |
| pca10059                                      |   36   |      4      |
| pewpew10                                      |   29   |      1      |
| pewpew13                                      |   0    |      0      |
| pirkey_m0                                     |   1    |      0      |
| pybadge                                       |  133   |     10      |
| pybadge_airlift                               |   -    |      0      |
| pygamer                                       |  306   |     10      |
| pygamer_advance                               |   -    |      2      |
| pyportal                                      |  424   |     41      |
| pyruler                                       |   -    |      1      |
| robohatmm1                                    |   1    |      0      |
| sam32                                         |   5    |      0      |
| sparkfun_lumidrive                            |   0    |      0      |
| sparkfun_nrf52840_mini                        |   3    |      0      |
| sparkfun_redboard_turbo                       |   2    |      0      |
| sparkfun_samd21_dev                           |   7    |      0      |
| sparkfun_samd21_mini                          |   6    |      1      |
| trellis_m4_express                            |   94   |      2      |
| trinket_m0                                    |  423   |     32      |
| uchip                                         |   1    |      0      |
| ugame10                                       |   5    |      1      |
| ----------------------------------------------|--------|-------------|
|                                         Total |  4226  |     231     |
| ----------------------------------------------|--------|-------------|


Download stats by language:


| Board            | 4.0.2  | 4.1.0-rc.1  |
| -----------------|--------|-------------|
| ID               |   3    |      0      |
| de_DE            |   73   |      1      |
| en_US            |  3923  |     221     |
| en_x_pirate      |   38   |      2      |
| es               |   46   |      1      |
| fil              |   5    |      0      |
| fr               |   97   |      1      |
| it_IT            |   12   |      0      |
| pl               |   11   |      2      |
| pt_BR            |   8    |      0      |
| zh_Latn_pinyin   |   10   |      3      |
| -----------------|--------|-------------|
|            Total |  4226  |     231     |
| -----------------|--------|-------------|

### 12:53 Libraries
* 34 pull requests merged
  * 13 authors - rhooper, jtrip, tannewt, mscosti, ladyada, zostay, ncguk, dhalbert, WoefulDerelict, siddacious, makermelissa, caternuson, brentru
  * 6 reviewers - tannewt, siddacious, makermelissa, ladyada, brentru, dhalbert
* 32 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_MAX31865/pull/9
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/18
  * https://github.com/adafruit/Adafruit_CircuitPython_MotorKit/pull/19
  * 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_GPS/pull/32
  * https://github.com/adafruit/Adafruit_CircuitPython_ST7735R/pull/8
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/51
  * https://github.com/adafruit/Adafruit_CircuitPython_TCA9548A/pull/12
  * 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
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_SSD1306/pull/26
  * 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
* 8 closed issues by 7 people, 8 opened by 4 people
* 121 open issues
  * https://circuitpython.org/libraries/contributing

Library updates in the last seven days:

**New Libraries**
 * [Adafruit_CircuitPython_Nunchuk](https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk)
 * [Adafruit_CircuitPython_DisplayIO_SSD1306](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306)
 * [Adafruit_CircuitPython_Requests](https://github.com/adafruit/Adafruit_CircuitPython_Requests)
 * [Adafruit_CircuitPython_SSD1325](https://github.com/adafruit/Adafruit_CircuitPython_SSD1325)
 * [Adafruit_CircuitPython_SSD1322](https://github.com/adafruit/Adafruit_CircuitPython_SSD1322)
 * [Adafruit_CircuitPython_SSD1327](https://github.com/adafruit/Adafruit_CircuitPython_SSD1327)

**Updated Libraries**
 * [Adafruit_CircuitPython_SI5351](https://github.com/adafruit/Adafruit_CircuitPython_SI5351)
 * [Adafruit_CircuitPython_INA260](https://github.com/adafruit/Adafruit_CircuitPython_INA260)
 * [Adafruit_CircuitPython_Display_Text](https://github.com/adafruit/Adafruit_CircuitPython_Display_Text)
 * [Adafruit_CircuitPython_CursorControl](https://github.com/adafruit/Adafruit_CircuitPython_CursorControl)
 * [Adafruit_CircuitPython_ST7789](https://github.com/adafruit/Adafruit_CircuitPython_ST7789)
 * [Adafruit_CircuitPython_PyBadger](https://github.com/adafruit/Adafruit_CircuitPython_PyBadger)
 * [Adafruit_CircuitPython_PYOA](https://github.com/adafruit/Adafruit_CircuitPython_PYOA)
 * [Adafruit_CircuitPython_ILI9341](https://github.com/adafruit/Adafruit_CircuitPython_ILI9341)
 * [Adafruit_CircuitPython_seesaw](https://github.com/adafruit/Adafruit_CircuitPython_seesaw)
 * [Adafruit_CircuitPython_PyPortal](https://github.com/adafruit/Adafruit_CircuitPython_PyPortal)

## 14:20 Hug Reports

16:58 @brentru
* Congrats on the keynote @kattni!
* @jerryn for finding a bug within _PyPortal
* @mscosti for continuing work on ESP32 PRs


@cater - lurking


17:36 @CGrover
* Group hug for new libraries from everyone
* Kevinjwalters for midi library
* Kattni for how to add a board guide


18:25 @danh
* @hathach for several BLE discussions, and STM32 TinyUSB fixes
* @hierophect for further work on STM32 port
* Congrats @kattni on keynote!
* @ntoll for PyperCard work: https://twitter.com/ntoll/status/1155567514358824964
* @GMagician for UF2 fuse fix PR


@deshipu - lurking


20:06 @hierophect
*  group hug for help with stm32. Thach, dan and tannewt


23:45 @hukuzatuna (Text Only)
* hugs to Jerry, LadyAda, and Brentru for fixing issue #46/#47 on PyPortal (the gamepadshift bug).


@jasonp - lurking


21:04 @jepler (text only)
* @kattni for taking some time to talk to me at PyOhio
* @krayola for sticking with me when things got real for a minute
* @tannewt for gentle prodding to do something the right way
* To PyOhio folks: they really knocked it out of the park, they deserve hug reports too


21:31 @jerryn
* @JohnPark for the neopixel controller for the PyGamer
* @kattni for doing the keynote at PyOhio.
* @brentr for the MQTT guide and PyPortal fix
* Group hug -- lots going on


@jtrip - lurking


@KingerNorth - lurking


22:13 @MakerMelissa
* @kattni for your PyOhio Keynote - Can’t wait to see recordings when they’re out
* @pt for your great blog post about my MagPi Article
* @darrell24015 for testing my PyBadger PR
* @hexthat for working to improve the FeatherWing Library MiniTFT module


@MikeBarela - lurking


22:51 @sommersoft (prob missing meeting; $day_job meeting conflict)
* @hoffmanjan for giving adabot some love on the Arduino side. Also for catching my off-by-one-leads-to-infinite-loop error waiting for the GitHub rate limit reset. Apologies again for that.
* @kattni for representing at PyOhio, and congrats on the Keynote! I'm impatiently waiting for them to upload the talk videos...
* @carlos once again for the Travis check for building added boards
* @tannewt for the awesome review on the module support matrix PR.
* @group, cause you're #awesome.


15:01 @tannewt
* @kattni for PyOhio Keynote!
* @ktemkin for the Rhododendron pcb and BOM. Very excited about it!
* C47D and sommersoft for Travis check to ensure new boards are always built.
* Hathach for tinyUSB fixes
* Ntavish for nrf fixes
* Hierophect for adding a way to build without any modules to start.
## 24:37 Status Updates


28:08 @brentru
* Last Week
   * Small bugfixes to a few libraries 
   * Brought up a couple CircuitPython boards at HQ 
   * Split ESP32_Requests into Requests - a CPython-requests-like library which doesn’t require external hardware!
      * Taking my time on this to hopefully not break anything between documentation and code.
         * Merging in supporting PRs today, then...
         * Documentation has been updated, waiting on bundler then will make live.
      * Wrote a sub-guide for using requests, useful for people who want to talk to HTTP/REST APIs
      * https://github.com/adafruit/Adafruit_CircuitPython_Requests
   * MQTT with CircuitPython Guide is live!
      * https://learn.adafruit.com/mqtt-in-circuit python
* This Week
   * Finish the move to _Requests        
      * Update: All guides/docu which references requests has been updated!
   * Start looking at updates for moving the Adafruit IO Basics Guides to CircuitPython.


@cater - lurking


30:02 @CGrover - working on landscaping but getting too hot for it. Added examples for midi featherwing. Made MIDI helper for frequency. Having some trouble with running status messages.


809833 precision waveform generator. .001% accuracy. MIDI reading and playing notes. Working on envelope and ADSR support.


Restarting string car m0 express board once supplies come in.


34:04 @danh
* BLE: allow service solicitation and discovery by a peripheral, for central-provided services, such as Current Time Service, etc. These services usually require pairing.
* Wrote Python library code for Current Time Service client.
* Working on simple BLE pairing


@deshipu - lurking


36:14 @hierophect - Stalled out on f412 but hoping to sort it out this week. Starting on busio.I2C for the port. Also working on pins for f411 and hal cross-compatibility.


38:21 @hukuzatuna (Text Only)


@jasonp - lurking


38:36 @jepler (text only)
* Creation of the new `audiocore` module is done (note that this is a breaking change)
* Nrf audio pull request updated to use `audiopwmio` name
* This week / weekend: pause/resume support and any requested re-work
* Hopefully a week from now, the pull request will be ready for merge


39:06 @jerryn
* Not a lot of CP time this week.
   * Tried to fix adafruit_pyportal but hung up on TFT_BACKLIGHT in use issue.
      * Fixed by @brentr
* The great Buster migration on Raspberry Pis continues…
* Got the deck power-washed and screens repaired…
* Next week … who knows…no point in making predictions.


@KingerNorth - lurking


40:17 @MakerMelissa
* Last Week:
   * Fixed PyBadger to work with PyBadge LC
   * Updated Arduino ST7735 examples to work with new 2.0” Display and PyBadge/PyGamer
   * Added RPi Compute Modules to CircuitPython.org
   * Finished Guide for adding boards to CircuitPython.org
   * Started working on Guide for Displayio Breakouts. Plan Changed to update individual guides.
   * Replaced my Macbook Pro Battery successfully
* This Week:
   * Work on updating display guides for displayio.
   * Test out an issue with I2C OLEDs on DragonBoard.
   * Test Smaller New Displays with current Arduino examples.
   * Maybe work on Raspberry Pi Buster Touchscreen Issues


@MikeBarela - lurking


41:54 @sommersoft (prob missing meeting; $day_job meeting conflict)
* Last Week:
   * RosiePi:
      * Attempted to compile gcc-arm-none-eabi from source on Raspbian. Once. That's not happening.
      * Shifted to putting Ubuntu Server's arm64 RPi image on. Fought with the ethernet settings for a few days. Ended up being the older cable I was using (combined with the fact that the kernel wouldn't properly auto negotiate a slower, 2-wire based speed).
   * Core Docs - Module Support Matrix:
      * Revamped according to review. Now lists each board, and the modules that are available for each.
      * Added port-wide inclusion/exclusion based on 'mpconfigport.mk'. I forgot about it initially.
      * Got Sphinx building with the current version (2.1.2). Just needed to re-work the 'c2rst' parser into an extension. This also drops one requirement for CPython2, since EOL is coming up.
   * circuitpy.org libraries:
      * Totally missed that @kattni had merged the PR in adabot a week ago.
      * Updated the adabot submodule in circuitpy.org repo, but forgot to tag a reviewer on the PR.
   * * This Week:
   * RosiePi
      * Buy a new ethernet cable. :D
      * Test if gcc-arm-none-eabi will run on the arm64 distro.
      * Get test framework and test board communication working on the RPi.


43:28 @tammymakesthings
* Not much CP time this week (or for the next few) - moving to Arizona at the beginning of September


25:01 @tannewt
* Lots of OLED wrap up. Added SSD1306, SSD1322, SSD1325 and SSD1327 drivers for displayio.
* Review of initial STM PR and of audioio changes.
* Submitted PR to add writeto_then_readfrom to busio.I2C. Got lots of good feedback and will circle back on it this week.
* Clean up RTD warnings. Turns out you need to left click the link in them for them to go away.
* Monday: lots of catch up on emails and reviews. (Was camping all weekend.)
* Rest of week: diving into e-Paper

## 43:43 In the Weeds

44:14 @brentru: Proposal - categorizing CircuitPython_Bundle helpers. There’s a few in there which could be tagged - how broad would we make categories? I.e: IOT vs WiFi and BLE categories.
https://circuitpython.readthedocs.io/projects/bundle/en/latest/drivers.html
        https://github.com/adafruit/Adafruit_CircuitPython_Bundle/tree/master/libraries/helpers

## 46:57 Wrap-up
