# CircuitPython Weekly for 18 November 2019
Video is available here [on YouTube](https://youtu.be/p9eCuCT6ygo). Timecode in notes are not available for this week’s video.


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.


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.
## Community News
SuperCon was over the weekend, will be posting up coverage and more soon!
https://twitter.com/hashtag/supercon?src=hashtag_click&f=live
https://twitter.com/makermelissa/status/1196456972620455937


Simple byte and string based inter-device communication via BLE
https://twitter.com/ntoll/status/1196493256164610049
https://youtu.be/0tp9eBxQTyk
https://github.com/ntoll/adafruit_radio


Arm AIoT Dev Summit December 2 – 3, 2019! Python badges (and more will be there)...
http://arm.com/AIoT-Dev-Summit


Sophi Kravitz keynote speaker – 2020 Open Hardware Summit, Adafruit is a sponsor:
https://2020.oshwa.org/speakers


Explore Hardware (old and new) with CircuitPython with Scott:
https://youtu.be/NMKm5Zj31jU


Take Flight with Feather - Hackaday and Digi-Key:
https://hackaday.io/contest/168107-take-flight-with-feather


Check out the 25 entries here!
https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2019-11-19-draft.md#take-flight-with-feather---hackaday-and-digi-key


Makerspace survey: they’re looking for members and leaders of makerspaces (whether they be makerspaces, biospaces, hackerspaces, art spaces, you name it, wherever they are at) to fill out the annual survey so they can continue their work of creating a longitudinal dataset that tells them about the impacts that these spaces are having across the country and around the world:
https://makethedata.org/take-the-survey/


GitHub Archive Program - Preserving open source software for future generations. Get your code into the GitHub Arctic Code Vault by 02/02/2020
https://archiveprogram.github.com/


All this and more - https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2019-11-19-draft.md
## State of CircuitPython + Libraries


### Overall


* 28 pull requests merged
  * 8 authors - dhalbert, CedarGroveStudios, caternuson, kattni, makermelissa, hierophect, theacodes, ladyada
  * 8 reviewers - dhalbert, kattni, caternuson, hierophect, ladyada, jepler, makermelissa, tannewt
* 10 closed issues by 5 people, 5 opened by 4 people


### Core


* 15 pull requests merged
  * 4 authors - dhalbert, hierophect, CedarGroveStudios, theacodes
  * 5 reviewers - jepler, dhalbert, hierophect, tannewt, ladyada
* 9 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1274 (Open 398 days)
  * https://github.com/adafruit/circuitpython/pull/1363 (Open 353 days)
  * https://github.com/adafruit/circuitpython/pull/1858 (Open 194 days)
  * https://github.com/adafruit/circuitpython/pull/2034 (Open 106 days)
  * https://github.com/adafruit/circuitpython/pull/2044 (Open 102 days)
  * https://github.com/adafruit/circuitpython/pull/2054 (Open 98 days)
  * https://github.com/adafruit/circuitpython/pull/2148 (Open 66 days)
  * https://github.com/adafruit/circuitpython/pull/2282 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/2291 (Open 1 days)
* 3 closed issues by 2 people, 2 opened by 2 people
* 195 open issues
  * https://github.com/adafruit/circuitpython/issues
* 7 active milestones
  * 4.x.x - Bug fixes: 0 open issues
  * 5.0.0: 19 open issues
  * 5.x.0 - Features: 1 open issues
  * 5.x.x - Bug Fixes: 12 open issues
  * 6.0.0: 1 open issues
  * Libraries: 9 open issues
  * Long term: 156 open issues
  * -3 issues not assigned a milestone


Download stats by board:


| Board                                         | 4.1.0  | 5.0.0-alpha.5  |
| ----------------------------------------------|--------|----------------|
| arduino_mkr1300                               |  113   |       0        |
| arduino_mkrzero                               |   70   |       0        |
| arduino_nano_33_ble                           |   -    |       6        |
| arduino_zero                                  |  164   |       1        |
| bast_pro_mini_m0                              |   16   |       1        |
| capablerobot_usbhub                           |   15   |       1        |
| catwan_usbstick                               |   16   |       0        |
| circuitplayground_bluefruit                   |   -    |      107       |
| circuitplayground_express                     |  5823  |       47       |
| circuitplayground_express_4h                  |   40   |       2        |
| circuitplayground_express_crickit             |  268   |       4        |
| circuitplayground_express_digikey_pycon2019   |   22   |       1        |
| circuitplayground_express_displayio           |   -    |       10       |
| cp32-m4                                       |   -    |       0        |
| datalore_ip_m4                                |   -    |       0        |
| datum_distance                                |   13   |       0        |
| datum_imu                                     |   19   |       0        |
| datum_light                                   |   14   |       0        |
| datum_weather                                 |   18   |       0        |
| electronut_labs_blip                          |   18   |       0        |
| electronut_labs_papyr                         |   14   |       0        |
| escornabot_makech                             |   16   |       0        |
| feather_m0_adalogger                          |  327   |       6        |
| feather_m0_basic                              |  234   |       9        |
| feather_m0_express                            |  693   |       16       |
| feather_m0_express_crickit                    |   35   |       0        |
| feather_m0_rfm69                              |  117   |       1        |
| feather_m0_rfm9x                              |  237   |       1        |
| feather_m0_supersized                         |   -    |       0        |
| feather_m4_express                            |  1090  |       58       |
| feather_nrf52840_express                      |  246   |       29       |
| feather_radiofruit_zigbee                     |   16   |       0        |
| feather_stm32f405_express                     |   -    |       28       |
| gemma_m0                                      |  645   |       3        |
| gemma_m0_pycon2018                            |   20   |       0        |
| grandcentral_m4_express                       |  244   |       5        |
| hallowing_m0_express                          |  337   |       4        |
| hallowing_m4_express                          |   -    |       6        |
| itsybitsy_m0_express                          |  351   |       5        |
| itsybitsy_m4_express                          |  749   |       16       |
| itsybitsy_nrf52840_express                    |   -    |       0        |
| kicksat-sprite                                |   13   |       0        |
| makerdiary_nrf52840_mdk                       |   29   |       1        |
| makerdiary_nrf52840_mdk_usb_dongle            |   67   |       4        |
| meowmeow                                      |   17   |       0        |
| metro_m0_express                              |  635   |       1        |
| metro_m4_airlift_lite                         |  149   |       5        |
| metro_m4_express                              |  366   |       4        |
| metro_nrf52840_express                        |   -    |       0        |
| mini_sam_m4                                   |   33   |       0        |
| monster_m4sk                                  |   -    |       51       |
| particle_argon                                |   38   |       1        |
| particle_boron                                |   25   |       0        |
| particle_xenon                                |   47   |       1        |
| pca10056                                      |   70   |       2        |
| pca10059                                      |  167   |       7        |
| pewpew10                                      |   44   |       0        |
| pewpew13                                      |   14   |       0        |
| pewpew_m4                                     |   -    |       0        |
| pirkey_m0                                     |   15   |       0        |
| pybadge                                       |  401   |       17       |
| pybadge_airlift                               |   19   |       0        |
| pyboard_v11                                   |   -    |       8        |
| pygamer                                       |  542   |       5        |
| pygamer_advance                               |   35   |       0        |
| pyportal                                      |  1052  |       22       |
| pyportal_titano                               |   -    |       0        |
| pyruler                                       |  194   |       1        |
| robohatmm1                                    |   15   |       -        |
| robohatmm1_m0                                 |   -    |       0        |
| robohatmm1_m4                                 |   -    |       0        |
| sam32                                         |   43   |       1        |
| serpente                                      |   -    |       8        |
| snekboard                                     |   -    |       1        |
| sparkfun_lumidrive                            |   17   |       0        |
| sparkfun_nrf52840_mini                        |   45   |       0        |
| sparkfun_qwiic_micro_no_flash                 |   -    |       0        |
| sparkfun_qwiic_micro_with_flash               |   -    |       0        |
| sparkfun_redboard_turbo                       |   43   |       0        |
| sparkfun_samd21_dev                           |   34   |       0        |
| sparkfun_samd21_mini                          |   30   |       2        |
| stm32f411ve_discovery                         |   -    |       1        |
| stm32f412zg_discovery                         |   -    |       20       |
| stringcar_m0_express                          |   -    |       1        |
| trellis_m4_express                            |  302   |       2        |
| trinket_m0                                    |  1828  |       25       |
| trinket_m0_haxpress                           |   -    |       0        |
| uchip                                         |   18   |       1        |
| ugame10                                       |   35   |       1        |
| ----------------------------------------------|--------|----------------|
|                                         Total | 18382  |      560       |
| ----------------------------------------------|--------|----------------|


Download stats by language:


| Board            | 4.1.0  | 5.0.0-alpha.5  |
| -----------------|--------|----------------|
| ID               |   11   |       0        |
| de_DE            |  418   |       11       |
| en_US            | 17106  |      520       |
| en_x_pirate      |  104   |       4        |
| es               |  257   |       5        |
| fil              |   15   |       1        |
| fr               |  260   |       18       |
| it_IT            |   52   |       0        |
| pl               |   47   |       0        |
| pt_BR            |   63   |       1        |
| zh_Latn_pinyin   |   49   |       0        |
| -----------------|--------|----------------|
|            Total | 18382  |      560       |
| -----------------|--------|----------------|




### Libraries


* 13 pull requests merged
  * 5 authors - dhalbert, caternuson, kattni, makermelissa, ladyada
  * 6 reviewers - dhalbert, kattni, caternuson, makermelissa, tannewt, ladyada
* 31 open pull requests
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/6 (Open 329 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5 (Open 314 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/1 (Open 288 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11 (Open 278 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/6 (Open 264 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/9 (Open 249 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20 (Open 228 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6 (Open 215 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/8 (Open 215 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57 (Open 192 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30 (Open 189 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34 (Open 189 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/18 (Open 115 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MotorKit/pull/19 (Open 114 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/10 (Open 96 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/66 (Open 88 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/69 (Open 85 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP9808/pull/20 (Open 49 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/71 (Open 44 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_AM2320/pull/9 (Open 40 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/26 (Open 39 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/pull/41 (Open 36 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_WSGI/pull/2 (Open 34 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_HT16K33/pull/41 (Open 27 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/40 (Open 27 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/22 (Open 26 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_SD/pull/29 (Open 3 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_US100/pull/8 (Open 3 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_VL53L0X/pull/12 (Open 2 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/pull/47 (Open 2 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/pull/50 (Open 1 days)
* 7 closed issues by 5 people, 3 opened by 2 people
* 141 open issues
  * https://circuitpython.org/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_SGP30](https://github.com/adafruit/Adafruit_CircuitPython_SGP30)
 * [Adafruit_CircuitPython_Slideshow](https://github.com/adafruit/Adafruit_CircuitPython_Slideshow)
 * [Adafruit_CircuitPython_SSD1325](https://github.com/adafruit/Adafruit_CircuitPython_SSD1325)
 * [Adafruit_CircuitPython_PyBadger](https://github.com/adafruit/Adafruit_CircuitPython_PyBadger)
 * [Adafruit_CircuitPython_PyPortal](https://github.com/adafruit/Adafruit_CircuitPython_PyPortal)
 * [Adafruit_CircuitPython_US100](https://github.com/adafruit/Adafruit_CircuitPython_US100)
 * [Adafruit_CircuitPython_DotStar](https://github.com/adafruit/Adafruit_CircuitPython_DotStar)
 * [Adafruit_CircuitPython_miniQR](https://github.com/adafruit/Adafruit_CircuitPython_miniQR)
 * [Adafruit_CircuitPython_TCS34725](https://github.com/adafruit/Adafruit_CircuitPython_TCS34725)
 * [Adafruit_CircuitPython_DS3231](https://github.com/adafruit/Adafruit_CircuitPython_DS3231)
 * [Adafruit_CircuitPython_GPS](https://github.com/adafruit/Adafruit_CircuitPython_GPS)






## Hug reports
@andon (lurking)


@AnneB
* Thanks to Adafruit Supercon attendees. We provided ML badges (Edge Badge) to all SuperCon attendees.
* Group hug


@brentru, text only
* Group hug
* Special group hug to everyone tweeting from supercon, it’s been fun to follow!


@cater - lurking


@charlesburnaford
* Thanks to JP and tannewt for the last JP workshop live video. The MIDI stuff was excellent.


@danh
* @tannewt for final reviews and fixes on BLE PRs
* @jepler for coming on board and immediately fixing a bunch of things
* @theacodes for some nice CPy PRs
* @kattni for running the weekly meeting multiple times while @tannewt has been away
* @hierophect for continued stm32f4 PRs
* @jerryn for testing new BLE API examples
* @kattni for proposing a PyCon CircuitPython tutorial


@dave briccetti
* Group hug


@devoh - lurking


@dherrada (lurking)
* @ladyada for reviewing all of the learn guides that I updated
* @siddacious for showing me how to add libraries to the Arduino library manager
* @kattni for helping me figure out a good soldering setup


@hierophect
* @danh for keeping up with my PR’s while tannewt is away
* @jepler, welcome aboard
* group hug


@jasonp
* Late hug to @kattni for the GitHub learn guide!


@jepler
* Group hug - thank you for welcoming me. This is my first day of being sponsored to work on CircuitPython.


@jerryn
* @Ntoll for the new toy
* Group hug


@kattni
* @DanH for taking notes for today’s meeting
* @MakerMelissa, @johnpark, @siddacious, @tannewt for representing Adafruit and CircuitPython at SuperCon
* @DanH for help with sorting the content and outline for my tutorial proposal


@ntoll
* Scott, for making it remarkably easy to create the adafruit_radio module today.
* Group hug


@siddacious - unable to attend, please read/post link
* A huge group hug to the Mike, Sophi, Elliot, the red-shirts and everyone else who organized and ran SuperCon. It was the best con I’ve been to by a large margin.
* Sprite_TM and everyone else involved in producing the SuperCon badge.This thing is an astounding accomplishment of computing and a high watermark for Open Source efforts and conference badges
* Melissa, Scott, and JP for saving my bacon when I forgot _all_ of the cables I needed.
* Amelia for being a delightful person and bench buddy.
* Thea for giving a shiver-inducing awesome and hilarious talk on her love of and devotion to the Yamaha YM2612 sound chip in the Sega Genesis. It’s a must watch!
https://www.youtube.com/watch?v=Yt-QnINCskI
* @robotgrrl / Erin  for what was arguably the best and most ambitious badge hack: An autonomous tree planting robot based on the edge badge!
* Group hug for all the amazing humans I met for the first time and saw again at SuperCon. You all made SuperCon the best

@sommersoft (not in meeting)
   * Everyone representing at Supercon
   * Group Hug!

## Status Updates

@AnneB
   * CP resources in chat
   * Contribute to the Python for Microcontrollers weekly newsletter. One way is by submitting a PR to https://github.com/adafruit/circuitpython-weekly-newsletter/tree/gh-pages/_drafts.
   * There is a CircuitPython subreddit that is updated daily:
https://www.reddit.com/r/circuitpython/
   * Our Twitter accounts: @adafruit and @CircuitPython. Follow those for the latest breaking news.


@brentru, text only
  * No cpy this week, may be picking back up again next week with a new guide. 


@cater - lurking


@charlesburnaford
* Will be using CPy to talk MIDI to a Sunbox synthesizer


@danh
* Merged BLE API change PRs into CircuitPython and adafruit_ble libraries
* With @hathach, refining BLE services that provide functionality for Circuit Playground Bluefruit on-board hardware
* Getting ready for a 5.0.0-beta.0 release with these new (breaking) BLE API changes
* After release, I’ll update our current Learn Guide BLE projects to use the new API.


@Dave Briccetti
* Physical CPX project to visualize bubble sort, along with Kotlin Processing and Ruby Sonic Pi programs
* https://www.youtube.com/watch?v=Y-AZE6prepg
* Circuit Python, several servos, serial communication with the Kotlin program


@devoh - lurking


@dherrada (not in meeting)
* Last week
  * Added instructions for installing Arduino libraries via the Arduino library manager to a bunch of learn guides
  * Added some Arduino libraries to the Arduino library manager
  * Wrote the Circuitpython code for a bike turn signal using neopixels
* This week
  * Update the learn guides that use the libraries that recently got added to the library manager
  * Find a way to attach the turn signal to my bike
  * Work on building a heated glove


@hierophect
* Worked on STM32F4 timing routines, to get accurate delays, and to do NeoPixel support, which requires precise timing
* NeoPixel PR done and waiting for review
* This week, will be adding a number of new boards to the STM32F4 port


@jasonp (text)
* No updates worthy of airtime this week


@jepler (gone)
* Last week & Today:
  * Worked on updating the Korean translation PR.  However, missing glyphs are still considered a blocker, and my work did not address that.
  * It did lead to a smaller merged PR to fix the translation building process
  * Prepared a  PR for speeding up background tasks 
  * 34% performance uplift on Metro M4 on computational task
  * background tasks taking 0.5% of CPU as long as no displayio/audio/etc are going on
  * Dan’s initial feedback means this approach may not work out after all
  * Prepared a PR to fix how GitHub Actions work in circuitpython forks.
  * If your github user / your circuitpython fork have actions enabled, then each push you make to it will result in an eventual e-mail that the build failed.
  * This can be especially confusing because you may think your PR build failed
  * Investigating this and interating towards a solution is complicated by slowness and  wonkiness in GitHub actions
  * As a workaround, you can (should?) turn off actions in your fork
* This week:
  * Investigate the possibility of upgrading gcc.  A new release came out in the first half of november.
  * We are stuck on a “2018Q2” version, as a serious build performance regression affected releases since then. 
  * However, the new gcc is only offered as a .tar.gz instead of a .deb, so it requires changes to our CI process.  See above about the difficulty of testing changes to the github CI process.
  * Note to self: Public documentation about how to build CP would also need to be updated
  * Work on audio bugs such as #2255, a report of general problems with nRF i2s audio.  First step is to reproduce a problem.
  * Doodling on a Feather PCB design, might enter the hackaday contest if it comes together


@jerryn
* No idea where the week went … all fun stuff, but nothing special to report.
* Finally got my stm32f405 up and running CP
* Tried a few I2c devices and connected an airlift - no problems
* Next week -- probably a lot like last week …


@kattni
* Last week:
  * Finished up the HC-SR04/US-100 Ultrasonic Distance Sensors guide - it’s in moderation
    * Tested both on RPi with Blinka, updated code to include PySerial init etc.
  * Updated the US-100 code to fail more gracefully - PR still open for this.
  * Started the Mini GPS PA1010D guide
    * Overview, Pinouts, Downloads pages done
    * Fritzing object created
    * Started the CircuitPython/Python page
  * Tested Mini GPS on Feather with I2C
* This week:
  * Mini GPS guide:
    * Test on RPi
    * Finish CircuitPython/Python usage page 
  * Tri-color eink gizmo guide
  * Continue finishing up PyPI spreadsheet
  * Close out lingering RTD/PyPI GitHub issues
  * Begin work on CPB library


@KingerNorth - lurking


@ntoll
* I made a radio module that piggy-backs on BLE with a super simple API. Check out the repository here: https://github.com/ntoll/adafruit_radio
* Added an AdafruitRadio class to the Adafruit_CircuitPython_BLE module. PR here: https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/33


@sdw_nj - lurking


@siddacious
* Last week: ISM330DHCX bringup and testing,
* LSM6DSOX driver work
* SuperCon!
* This week: SuperCon debriefing/decompression
* LSM6DSOX and ISM330DHCX work
* More badge hacking!


@sommersoft (not in meeting)
* Last Week:
* Didn't get a bunch done. Dealing with cracked car wheels, and their replacement, is super-fun when you're about to start holiday traveling.
* RosiePi/physaCI
* Azure+GitHub interaction complete.
* Started node interaction (registrar & event receipt). Had to think through design, wrt polling, long-polling, push notifications, etc. Ended up on a push system, but rolling my own (registrar above) vs attempting to use something like Firebase.
* This Week & Week After:
* Not much, probably. Starting travel on Friday, and won't be back until after the holiday.

## In The Weeds
(nothing this week)


## Wrap-Up
Next meeting is same time next week, Monday, Nov 25, 2019, 2pm, ET
