# CircuitPython Weekly August 19th, 2019

Video of the meeting is available [on YouTube](https://youtu.be/eqIY1M6TvaA) and [on diode.zone](https://diode.zone/videos/watch/58394940-ba73-480a-b1a1-bef85fd35cf0)

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.

## 4:20 Community News

Hug report, @jepler audio stuff with nrf...

CircuitPython day is not quite over, YET! Here are some CircuitPython cupcakes from the Lamba Labs Beirut Hackerspace
https://www.instagram.com/p/B1Os82ADp9B/?igshid=jcb7cwkdsryp

Latest newsletter is in DRAFT, please add an issue with any updates and more, and/or for next week too!
https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2019-08-20-draft.md

New feature: Bryan, Dan, and Melissa!

Consumers Should Immediately... Python the Circuit
http://www.extrasleepy.com/#/recalled/

Python powered art: CompuCanvas
https://youtu.be/4BkDwmhM_Gc?t=1114

CircuitPython book!
https://twitter.com/AoyamaProd/status/1161419847781142529
"Limitless hue of the spectral color represents the infinite possibilities by multiplying the programmatic necessity by the creativity of the CPX users. I would be happy if my artwork visualizes the multiplicity of the possibility of CPX."

Stickers all month:
https://www.adafruit.com/free

Circuit Playground Bluefruit - Bluetooth Low Energy, ahead of schedule!
https://www.adafruit.com/product/4333
https://youtu.be/FzYq9_8j-Bg
https://youtu.be/sS5JoHFpvw8

## 9:48 State of CircuitPython + Libraries
### Overall


* 23 pull requests merged
  * 10 authors - devoh747, caternuson, adario7, LBertrandDC, tannewt, brentru, jepler, cogliano, makermelissa, dhalbert
  * 6 reviewers - matt-land, dhalbert, makermelissa, ladyada, tannewt, brentru
* 11 closed issues by 7 people, 11 opened by 10 people


Overall: 4.x is in a good spot. 5.x is coming very shortly. First unstable release this week. Alpha. Correspond with first batch of Circuit Playground Bluefruit.


### 11:55 Core


* 6 pull requests merged
  * 3 authors - dhalbert, tannewt, jepler
  * 2 reviewers - dhalbert, tannewt
* 17 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2074
  * https://github.com/adafruit/circuitpython/pull/2072
  * https://github.com/adafruit/circuitpython/pull/2071
  * https://github.com/adafruit/circuitpython/pull/2068
  * https://github.com/adafruit/circuitpython/pull/2065
  * https://github.com/adafruit/circuitpython/pull/2062
  * https://github.com/adafruit/circuitpython/pull/2055
  * https://github.com/adafruit/circuitpython/pull/2054
  * https://github.com/adafruit/circuitpython/pull/2049
  * https://github.com/adafruit/circuitpython/pull/2044
  * https://github.com/adafruit/circuitpython/pull/2034
  * https://github.com/adafruit/circuitpython/pull/2032
  * https://github.com/adafruit/circuitpython/pull/2027
  * https://github.com/adafruit/circuitpython/pull/2012
  * https://github.com/adafruit/circuitpython/pull/1858
  * https://github.com/adafruit/circuitpython/pull/1363
  * https://github.com/adafruit/circuitpython/pull/1274
* 5 closed issues by 3 people, 5 opened by 5 people
* 187 open issues
  * https://github.com/adafruit/circuitpython/issues
* 7 active milestones
  * 4.x - Features: 24 open issues
  * 4.x.x - Bug fixes: 1 open issues
  * 5.0.0: 10 open issues
  * 5.x.0 - Features: 3 open issues
  * 5.x.x - Bug Fixes: 3 open issues
  * Libraries: 9 open issues
  * Long term: 132 open issues
  * 5 issues not assigned a milestone


Download stats by board:


| Board                                         | 4.1.0  | 4.1.0-rc.1  |
| ----------------------------------------------|--------|-------------|
| arduino_mkr1300                               |   17   |      1      |
| arduino_mkrzero                               |   12   |      3      |
| arduino_zero                                  |   10   |      4      |
| bast_pro_mini_m0                              |   0    |      0      |
| capablerobot_usbhub                           |   0    |      0      |
| catwan_usbstick                               |   0    |      0      |
| circuitplayground_express                     |  650   |     49      |
| circuitplayground_express_4h                  |   3    |      0      |
| circuitplayground_express_crickit             |   38   |      4      |
| circuitplayground_express_digikey_pycon2019   |   3    |      0      |
| datum_distance                                |   0    |      2      |
| datum_imu                                     |   0    |      0      |
| datum_light                                   |   0    |      0      |
| datum_weather                                 |   1    |      0      |
| electronut_labs_blip                          |   2    |      1      |
| electronut_labs_papyr                         |   0    |      0      |
| escornabot_makech                             |   1    |      1      |
| feather_m0_adalogger                          |   39   |      1      |
| feather_m0_basic                              |   42   |     15      |
| feather_m0_express                            |  122   |      8      |
| feather_m0_express_crickit                    |   9    |      0      |
| feather_m0_rfm69                              |   32   |      0      |
| feather_m0_rfm9x                              |   33   |      3      |
| feather_m4_express                            |  166   |     24      |
| feather_nrf52840_express                      |   53   |      9      |
| feather_radiofruit_zigbee                     |   2    |      2      |
| gemma_m0                                      |   77   |      5      |
| gemma_m0_pycon2018                            |   2    |      1      |
| grandcentral_m4_express                       |   58   |      6      |
| hallowing_m0_express                          |   35   |      4      |
| itsybitsy_m0_express                          |   87   |      7      |
| itsybitsy_m4_express                          |  110   |     25      |
| kicksat-sprite                                |   0    |      0      |
| makerdiary_nrf52840_mdk                       |   7    |      3      |
| makerdiary_nrf52840_mdk_usb_dongle            |   12   |      4      |
| meowmeow                                      |   0    |      0      |
| metro_m0_express                              |   68   |      8      |
| metro_m4_airlift_lite                         |   25   |      9      |
| metro_m4_express                              |   73   |     14      |
| mini_sam_m4                                   |   3    |      1      |
| particle_argon                                |   2    |      1      |
| particle_boron                                |   2    |      0      |
| particle_xenon                                |   8    |      1      |
| pca10056                                      |   14   |     10      |
| pca10059                                      |   39   |      9      |
| pewpew10                                      |   5    |      5      |
| pewpew13                                      |   0    |      0      |
| pirkey_m0                                     |   1    |      0      |
| pybadge                                       |   59   |     15      |
| pybadge_airlift                               |   0    |      1      |
| pygamer                                       |   78   |     17      |
| pygamer_advance                               |   1    |      2      |
| pyportal                                      |  201   |     52      |
| pyruler                                       |   58   |     12      |
| robohatmm1                                    |   0    |      0      |
| sam32                                         |   6    |      1      |
| sparkfun_lumidrive                            |   0    |      0      |
| sparkfun_nrf52840_mini                        |   7    |      0      |
| sparkfun_redboard_turbo                       |   3    |      0      |
| sparkfun_samd21_dev                           |   2    |      0      |
| sparkfun_samd21_mini                          |   4    |      3      |
| trellis_m4_express                            |   59   |      4      |
| trinket_m0                                    |  321   |     48      |
| uchip                                         |   2    |      0      |
| ugame10                                       |   16   |      3      |
| ----------------------------------------------|--------|-------------|
|                                         Total |  2680  |     398     |
| ----------------------------------------------|--------|-------------|


Download stats by language:


| Board            | 4.1.0  | 4.1.0-rc.1  |
| -----------------|--------|-------------|
| ID               |   2    |      0      |
| de_DE            |   61   |      7      |
| en_US            |  2465  |     361     |
| en_x_pirate      |   17   |      2      |
| es               |   55   |      6      |
| fil              |   7    |      1      |
| fr               |   27   |      6      |
| it_IT            |   7    |      2      |
| pl               |   19   |      3      |
| pt_BR            |   14   |      5      |
| zh_Latn_pinyin   |   6    |      5      |
| -----------------|--------|-------------|
|            Total |  2680  |     398     |
| -----------------|--------|-------------|




### 13:50 Libraries


* 17 pull requests merged
  * 9 authors - devoh747, caternuson, adario7, LBertrandDC, brentru, jepler, cogliano, makermelissa, dhalbert
  * 5 reviewers - matt-land, makermelissa, ladyada, tannewt, brentru
* 35 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/11
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/10
  * 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_Fingerprint/pull/11
  * 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/35
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/21
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/18
  * https://github.com/adafruit/Adafruit_CircuitPython_SSD1306/pull/26
  * https://github.com/adafruit/Adafruit_CircuitPython_GPS/pull/32
  * 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_ESP32SPI/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_IL0373/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/21
  * https://github.com/adafruit/Adafruit_CircuitPython_MotorKit/pull/19
  * https://github.com/adafruit/Adafruit_CircuitPython_framebuf/pull/14
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/67
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/51
  * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/14
* 6 closed issues by 5 people, 6 opened by 5 people
* 128 open issues
  * https://circuitpython.org/libraries/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_VCNL4040](https://github.com/adafruit/Adafruit_CircuitPython_VCNL4040)
 * [Adafruit_CircuitPython_SGP30](https://github.com/adafruit/Adafruit_CircuitPython_SGP30)
 * [Adafruit_CircuitPython_SSD1331](https://github.com/adafruit/Adafruit_CircuitPython_SSD1331)
 * [Adafruit_CircuitPython_SSD1351](https://github.com/adafruit/Adafruit_CircuitPython_SSD1351)
 * [Adafruit_CircuitPython_ILI9341](https://github.com/adafruit/Adafruit_CircuitPython_ILI9341)
 * [Adafruit_CircuitPython_DS3502](https://github.com/adafruit/Adafruit_CircuitPython_DS3502)
 * [Adafruit_CircuitPython_ST7735R](https://github.com/adafruit/Adafruit_CircuitPython_ST7735R)
 * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
 * [Adafruit_CircuitPython_PCD8544](https://github.com/adafruit/Adafruit_CircuitPython_PCD8544)


## 15:22 Hug Reports


17:22 @brentru
* @mscosti for ESP32SPI Access Point Mode, it’s merged and released!
* @adam.io for the Adafruit IO web redesign and revamp - if you havent checked it out yet head over to https://io.adafruit.com
* @danh for BLE - more protocols!
* Jpadilla on GitHub for work on PyJWT - API inspiration for the yet-to-be-released CircuitPython JWT module


@cater (lurking)
* Group hug!


@cgrover (lurking)


18:30 @danh
* @jepler for numerous PR’s, new work, cleanups, and fixes.
* @tannewt for displayio PR’s and review of my BLE PR’s.
* @hierophect for stm32 PR
* @jerryn for simulating a continuous testing engine :) Thanks for trying PR’s and also filing issues on apparent glitches.


20:00 @dave briccetti
* @kattni for creating a new category for advanced examples


20:18 @deshipu
* @danh and @jepler for reviews


20:33 @jepler
* @danh for some PR reviews and help with some git SNAFUs
* @ladyada for some helpful direction on PDM audio
* @sommersoft for multiple chats about audio stuff
* @tannewt for taking a joke pull request even slightly seriously
* @tannewt for the github CI work
* Group hug to everyone for being the best community I participate in


21:40 @jerryn (missing meeting)
* @danh - congratulations on the release of the BLE lib! Also thanks for patiently helping me with several issues that turned out to be non-issues.
* Thanks to Adafruit for getting several STEMMA/QWIIC  breakouts out there. Nice to be able to daisy chain sensors.


22:05 @josh (text only)
* My hug report this week goes to the team working on the Circuit Playground Express BLE version. It’s going to open up a whole new way to interact with the Circuit Playground and CircuitPython.


22:22 @kattni
* @dcbriccetti for submitting new examples to the Circuit Playground Express lib repo and for being super patient with PR issues
* @siddacious for helping out with forums and such while I was getting caught up with work after being gone
* @krayola for help with my current code and explaining modulo
* @warthog9 for getting me set up with VMware
* @sommersoft for continued work on Adabot, and fixing up an issue on circuitpython-build-tools this weekend
* @dherrada for suggesting adding a note to the PyGamer guide on how to read the analog joystick data


@kingernorth (lurking)


24:26 @MakerMelissa
* @tannewt for helping me get the SSD1351 display driver working again
* Group Hug


23:51 @sommersoft (not in meeting)
* @jepler for the conversation regarding MixerVoice.


15:46 @tannewt
* Johnpark, cgrover and jepler for finding and fixing the MIDI byte packing
* @jepler for filling in the gaps for the circuitplayground ble
* @jerryn for the debugging of the purple led mystery
## 25:05 Status Updates


28:38 @brentru
* Completed work on Google Cloud Core IoT for Circuit python 
* Built out a JWT library this past Thurs/Fri to support JSON-Web-Token authentication 
* As a result of work on GCS, I’ve been making CircuitPython MiniMQTT a solid MQTT client..
   * Network management improvements - sockets and the network manager are handed in a more intelligent way, blocking loop updated to handle the network manager.
   * Control loop improvements - Both loops (blocking and nonblocking) handle the keepalive value with a timer/timeout, pingreq/pingresp added to loops to prevent disconnection from server. 
   * CONNECT packet creation was refactored to support long client identifiers and passwords - added the remaining-length algorithm described in the MQTT specification. 
* Starting to release all the components early this week (Mon/Tue):
   * CircuitPython RSA Module
   * CircuitPython JWT (JSON Web Token) module
   * CircuitPython GCS IoT Core Module
      * Guide about GCS IoT later this week


@cater (lurking)


@cgrover (lurking)


30:20 @danh
* BLE PR’s revised and merged after reviews by @tannewt.
* Reviewed and merged several PR’s by @jepler and @tannewt.
* Board definition for Circuit Playground Bluefruit.
* Made GPIO-based touchio originally developed for nRF available on SAMD51. Now all CircuitPython boards can have touchio.
* Increased number of Travis job to shorten build times after it increased due to new optimization for nRF builds
* To do: Debug BLE HID, implement bonding


33:17 @Dave Briccetti
* Wanting to add simulated momentum to the imaginary object represented by the NeoPixel in our example, Gravity Pulls Pixel. I’m thinking maybe pendulum physics formulas is the way to go.
* This Wednesday my grades 6–8 students at a private school where I teach part time will start with CPX. We’ll start with MakeCode, and then I’ll encourage them (especially the older grades) to apply the Python skills they developed last year and use CircuitPython. 


34:37 @deshipu
* Prototype number 4 for PewPew M4


36:07 @jepler
* Thanks to @kattni, I’ve been promoted to CircuitLibrarian
* nRF PDMIn quickly reached a PR’able state, but some additional work / re-work anticipated.  We’re having a `make check-translate` problem that I don’t understand yet.
* While doing PDMIn, found a bug with PWMAudioOut always looping RawSamples
* Small, simple fixes for several other issues
* Contributed several reviews
* Working on upstreaming the namedtuple bugfix to micropython
* PyRuler project: USB HID device to control my media player, digital picture frame, and a wifi-addressable lamp.  Status: Done, but the tape-over key legends keep coming loose


38:33 @jerryn (missing meeting)
* Trying to understand why the PyRuler DotStar comes up solid magenta instead of pulsing green … good excuse to get J-link hooked up and remember how to use it.
   * Still a WIP
* Spent a lot of time chasing what seemed to be a similar DotStar issue on Gemma_M0 but it appears to have been an isolated HW issue on one board…..
* Found odd issue with VEML4040 i2c on nRF52840s but it appears to be isolated to the VEML4040 and VEML7700 and not a generic I2C issue.
* This week -- just keep breaking stuff ...


39:29 @josh (text only)
* This week I’ve been working on an offline version of EduBlocks as it’s been heavily requested by multiple people. For now, I’ve only got it working on Linux + Raspberry Pi & Hopefully Windows + Mac when I learn how to do installers for them. It’ll include offline support for CircuitPython so you can code your CircuitPython compatible devices in block format without having internet.


40:05 @kattni
* Last week:
   * Started redoing uPython Watch guide in CircuitPython, immediately ran into bug in CircuitPython with I2C and OLEDs. Put that on hold.
   * Assembled OLED watch stacking assemblies (Feather M4, DS3231 FeatherWing, OLED FeatherWing)
   * Started looking into linting guide.
   * Tested bug fix for CircuitPython, I2C and OLEDs.
   * Completed code for CircuitPython OLED Watch.
   * Started CircuitPython code page in OLED Watch guide.
   * Setup Windows VM.
* This week:
   * Finish CircuitPython page in OLED guide (contingent on 5.0 release)
   * Start linting guide 
   * Update the CP Libs issue in CircuitPython issues list to point to circuitpython.org
   * Make note of how to use joystick_x/y.value to find analog joystick data on PyGamer somewhere in PyGamer guide - Essentials guide
   * Begin sorting out how to better track library PRs and issues
      * Consistent follow through needed 
      * Needs to be multiple people involved
      * Update Adabot to better facilitate this
      * Discuss with @sommersoft how best to go about updating Adabot
   * Hopefully setting up replacement new laptop (the first one GPU failed, had to be returned)


@kingernorth (lurking)


44:48 @MakerMelissa
* Last Week:
   * Finished updating the remainder of the display guides (11, I think) with a displayio section
   * Did some Blinka testing on the Jetson Nano
   * Started on a new Adafruit IO MessagePanel guide
   * Updated Display Text PyPortal example to work on latest stable build
* This Week:
   * Finish Message Panel Guide
   * Start working on a guide for getting TensorFlow running on the Raspberry Pi 4
   * Anything else that comes up


45:45 @sommersoft (not in meeting)
* Last Week:
   * MixerVoice
      * Non-DSP v DSP Capable Functions:
         * At @jepler's suggestion, I've dropped efforts to accomplish/fix non-working ASM/DSP functions in favor of using C functions. My ears & eyes cannot discern any lag in using the C functions compared to the ASM.
      * 8-bit signed/16-bit unsigned:
         * Last week I asked about not supporting these formats, which received agreement. During our conversation, @jepler also pointed out that RawSample allows both of these formats.
         * Worked through some test scripts for this, and the functions seem to be working properly on an M4. Need to test on M0. Then should have a PR in.
   * Circuitpython-build-tools
      * Fixed a bundling issue with an examples subfolder containing the word "examples" in the name (e.g. "examples/advanced_examples"). Basically, the subfolder path would be truncated when building the path tree, causing the bundle/zip functions to cough up a NotFoundError.
* This Week:
   * MixerVoice


47:12 @tammymakesthings (not in meeting)
* Working on a script to automatically update CircuitPython devices with the latest .uf2 and latest libraries (more details to come)


25:30 @tannewt
* Finishing EPaper work and refresh rework
* Finishing switching to GitHub CI
* Finish stop=
* Group hide and show


## 47:43 In the Weeds

* 48:14 @danh- more 4.x releases with new features?
   * binascii and hashlib for RSA for IoT
   * HID custom descriptor for @ATMakersBill
* 58:03 @tannewt - Breaking changes and backwards compatibility: https://github.com/adafruit/circuitpython/pull/2068
* 1:13:40 @kattni - Lib bundle builds question.

## 1:17:10 Wrap-up
