# Adafruit CircuitPython Weekly November 12th, 2018

Video is available here: [diode.zone](https://diode.zone/videos/watch/7fe11686-6dcc-43e1-b9d4-3adc1ad9f65e) [YouTube](https://youtu.be/FPqeLzMAFvA)

Thanks to @kattni for taking notes!

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.

## 2:57 State of CircuitPython + Libraries

### 3:07 Overall
* 31 pull requests merged
  * 10 authors - ladyada, tannewt, dhalbert, microbuilder, kattni, brennen, sommersoft, arturo182, caternuson, process1183
  * 6 reviewers - ladyada, tannewt, dhalbert, kattni, caternuson, brennen
* 16 closed issues by 5 people, 11 opened by 8 people

Summary: Alpha.3 close to landing with the largest changes of 4.x so far BLE and tinyusb.

### 4:33 Core
* 5 pull requests merged
  * 4 authors - tannewt, caternuson, arturo182, dhalbert
  * 2 reviewers - tannewt, dhalbert
* 4 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1323
  * https://github.com/adafruit/circuitpython/pull/1294
  * https://github.com/adafruit/circuitpython/pull/1274
  * https://github.com/adafruit/circuitpython/pull/1144
* 4 closed issues by 2 people, 5 opened by 4 people
* 61 open issues
  * https://github.com/adafruit/circuitpython/issues

Download stats for 3.1.1
1219 total


By board:
* arduino_zero - 50
* circuitplayground_express - 321
* circuitplayground_express_crickit - 65
* feather52832 - 17
* feather_huzzah - 64
* feather_m0_adalogger - 25
* feather_m0_basic - 39
* feather_m0_express - 78
* feather_m0_express_crickit - 13
* feather_m0_rfm69 - 10
* feather_m0_rfm9x - 21
* feather_m4_express - 59
* gemma_m0 - 68
* hallowing_m0_express - 68
* itsybitsy_m0_express - 59
* itsybitsy_m4_express - 47
* metro_m0_express - 46
* metro_m4_express - 40
* pca10056 - 7
* pirkey_m0 - 7
* trinket_m0 - 115

By language:
* en_US - 1219

Download stats for 4.0.0-alpha.2
370 total

By board:
* arduino_zero - 23
* circuitplayground_express - 41
* circuitplayground_express_crickit - 10
* feather_huzzah - 12
* feather_m0_adalogger - 16
* feather_m0_basic - 7
* feather_m0_express - 13
* feather_m0_express_crickit - 1
* feather_m0_rfm69 - 4
* feather_m0_rfm9x - 7
* feather_m4_express - 22
* feather_nrf52832 - 7
* feather_nrf52840_express - 2
* gemma_m0 - 7
* hallowing_m0_express - 111
* itsybitsy_m0_express - 9
* itsybitsy_m4_express - 17
* metro_m0_express - 7
* metro_m4_express - 9
* pca10056 - 0
* pca10059 - 1
* pirkey_m0 - 1
* trinket_m0 - 43

By language:
* de_DE - 23
* en_US - 315
* es - 6
* fil - 1
* fr - 23
* pt_BR - 2

### 5:35 Libraries
CircuitPython Library Tracking Issue: https://github.com/adafruit/circuitpython/issues/1246

We’ve updated Adabot to make the output much cleaner and more accurate; all new/empty repos are no longer included in unnecessary checks and are identified in their own list. (I’ve updated the info below with the new output - so if the numbers don’t match the Overall, that’s why!) This will make the CircuitPython Library tracking issue (and the Weekly notes!) much less overwhelming and make it easier to identify repos that really have issues. Thanks to @sommersoft for the great work!

* 23 pull requests merged
  * 7 authors - dhalbert, kattni, tannewt, caternuson, process1183, ladyada, brennen
  * 5 reviewers - dhalbert, tannewt, kattni, caternuson, brennen
* 9 open pull requests
  * https://github.com/adafruit/Adafruit_CircuitPython_LSM9DS0/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_SK9822/pull/2
  * https://github.com/adafruit/Adafruit_CircuitPython_BusDevice/pull/22
  * https://github.com/adafruit/Adafruit_CircuitPython_US100/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/28
  * https://github.com/adafruit/Adafruit_CircuitPython_MPR121/pull/14
  * https://github.com/adafruit/Adafruit_CircuitPython_GPS/pull/12
  * https://github.com/adafruit/Adafruit_CircuitPython_FRAM/pull/4
  * https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/pull/19
* 10 closed issues by 4 people, 5 opened by 4 people
* 58 open issues
  * https://github.com/adafruit/Adafruit_CircuitPython_IRRemote/issues/17
  * https://github.com/adafruit/Adafruit_CircuitPython_IRRemote/issues/16
  * https://github.com/adafruit/Adafruit_CircuitPython_SD/issues/11
  * https://github.com/adafruit/Adafruit_CircuitPython_SD/issues/9
  * https://github.com/adafruit/Adafruit_CircuitPython_SD/issues/8
  * https://github.com/adafruit/Adafruit_CircuitPython_Motor/issues/18
  * https://github.com/adafruit/Adafruit_CircuitPython_Motor/issues/17
  * https://github.com/adafruit/Adafruit_CircuitPython_INA219/issues/5
  * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/issues/21
  * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/issues/20
  * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/issues/19
  * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/issues/1
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/issues/12
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/issues/11
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/issues/10
  * https://github.com/adafruit/Adafruit_CircuitPython_TSL2591/issues/8
  * https://github.com/adafruit/Adafruit_CircuitPython_TSL2591/issues/7
  * https://github.com/adafruit/Adafruit_CircuitPython_CCS811/issues/25
  * https://github.com/adafruit/Adafruit_CircuitPython_SI4713/issues/2
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC5947/issues/6
  * https://github.com/adafruit/Adafruit_CircuitPython_RFM9x/issues/5
  * https://github.com/adafruit/Adafruit_CircuitPython_PN532/issues/8
  * https://github.com/adafruit/Adafruit_CircuitPython_PN532/issues/7
  * https://github.com/adafruit/Adafruit_CircuitPython_LSM9DS0/issues/10
  * https://github.com/adafruit/Adafruit_CircuitPython_L3GD20/issues/2
  * https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO/issues/33
  * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/issues/3
  * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/issues/1
  * https://github.com/adafruit/Adafruit_CircuitPython_TCS34725/issues/10
  * https://github.com/adafruit/Adafruit_CircuitPython_TCS34725/issues/7
  * https://github.com/adafruit/Adafruit_CircuitPython_SK9822/issues/1
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/issues/16
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/issues/12
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/issues/9
  * https://github.com/adafruit/Adafruit_CircuitPython_EPD/issues/5
  * https://github.com/adafruit/Adafruit_CircuitPython_EPD/issues/2
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/issues/25
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/issues/21
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx/issues/7
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx/issues/5
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx/issues/2
  * https://github.com/adafruit/Adafruit_CircuitPython_ADXL34x/issues/3
  * https://github.com/adafruit/Adafruit_CircuitPython_CharLCD/issues/5
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/issues/27
  * https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing/issues/4
  * https://github.com/adafruit/Adafruit_CircuitPython_BME280/issues/15
  * https://github.com/adafruit/Adafruit_CircuitPython_HID/issues/25
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/issues/37
  * https://github.com/adafruit/Adafruit_CircuitPython_MPR121/issues/12
  * https://github.com/adafruit/Adafruit_CircuitPython_GPS/issues/10
  * https://github.com/adafruit/Adafruit_CircuitPython_BluefruitSPI/issues/4
  * https://github.com/adafruit/Adafruit_CircuitPython_HT16K33/issues/8
  * https://github.com/adafruit/Adafruit_CircuitPython_FRAM/issues/2
  * https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/issues/17
  * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/issues/94
  * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/issues/83
  * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/issues/77
  * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/issues/57
117 out of 118 repos need work.


PyLint version very out of date - 107


For pypi compatibility, missing Adafruit-Blinka in requirements.txt - 16


ReadTheDocs missing the latest release. (Ignore me! RTD doesn't update when a new version is released. Only on pushes.) - 37


For pypi compatibility, missing pypi provider in .travis.yml - 6


PyLint version not fixed - 7


For pypi compatibility, missing setup.py - 6


Not in bundle. - 1
  * https://github.com/adafruit/Adafruit_CircuitPython_CPython


ReadTheDocs missing as a subproject on CircuitPython - 1
  * https://github.com/adafruit/Adafruit_CircuitPython_CPython


CircuitPython drivers page missing driver - 20


Not listed on PyPi for CPython use - 8


Library repository has no releases. - 1
  * https://github.com/adafruit/Adafruit_CircuitPython_CPython


Library has new commits since last release. - 28


New repo(s) currently in work, and unreleased. - 3
  * https://github.com/adafruit/Adafruit_CircuitPython_AT86RF233
  * https://github.com/adafruit/Adafruit_CircuitPython_SK9822
  * https://github.com/adafruit/Adafruit_CircuitPython_US100


README image missing alt text - 1
  * https://github.com/adafruit/Adafruit_CircuitPython_HCSR04


ReadTheDocs latest build has warnings and/or errors - 2
  * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad
  * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation


Mismatched readthedocs.yml - 3
  * https://github.com/adafruit/Adafruit_CircuitPython_DHT
  * https://github.com/adafruit/Adafruit_CircuitPython_DS3231
  * https://github.com/adafruit/Adafruit_CircuitPython_GPS


Unable to enable Travis build - 1
  * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation


## 8:32 Hug Reports

11:00 @brennen
* @ladyada for pointers on libgpiod

11:18 @cater - massive group hug. Regular round of normal cast of characters being awesome.

11:58 @CGrover - group hug, still just amazing to watch the progress of team and community working together. Learning more quickly from interactions.

12:23 @charlesburnaford - general group hug. 

12:50 @danh -
* @tannewt for huge USB replacement and other refactoring
* @sommersoft for big adabot library stats improvements
* @kattni for Trellis M4 library

13:50 @deshipu - congrats on the big refactoring! Group hug!

14:05 @DrewFustini - lurking

14:08 @jerryn - congrats and thanks to Scott for massive USB update, and Dan for reviewing it, and giving me lots of new things to test and break.

14:34 @kattni
* @siddacious for tons of help with Python dictionaries and arrays and helping me get a demo going!
* @sommersoft for all of the adabot work. the improvements are great!
* @danh for reviewing my demo code, helping to make it better, and getting me started with arrays and list comprehensions

15:16 @sajattack
* Tannewt, Sommersoft, Nis, Danh, Kattni and possibly more people I’m forgetting for all the excellent hardware info and help with debugging my projects.

15:44 @siddacious
* To kattni, scott, cgrover, nis, sommersoft and everyone else who helped me troubleshoot the issues with the board who shall not be named and talked me off the ledge when things went more and more pear-shaped.
* To cgrover for a reminder that styrene is a thing that exists; it made my bezel making waay easier

16:24 @sommersoft
* Kattni for the many Adabot reviews/ideas
* Carter, Kattni, jerryn, deshipu, Dan, nis, and Scott for discord support this week; looking back it was quite busy!
* Scott for pushing forward on the TinyUSB conversion
* Carter for updating ADS usage to match MCP3xxx usage


9:14 @tannewt
* Danh for the review on usb, jerry for testing.
* Cater for the ADS API redo and sommersoft for the review.
* Kattni for reviews galore!
* Sommersoft for build tools and adabot love.
* Brennen for all the pypi and library work


10:41 @tg-techie - hugs to:  @danh, @jerryn , @cater , @tannewt , and @sommersoft  for always being so kind and willing to help, and also for helping debug 

## 17:19 Status Updates

20:22 @brennen
* Trying to do a bit more general code review.
* Tweaking platform detection in Adafruit_Python_GPIO and Adafruit_Blinka for Pi Zero, etc.
* Looking into packaging or optionally using libgpiod in Blinka.
* Grepping library READMEs for buggy string formatting on keywords.
* The flu’s loose in my house, so I might be out of commission for a while this week.

22:21 @cater - couple of things, did a property style access MPR121, good feedback on that, has a lot of flexibility, PR has good commentary. Rewrite of ADS1X15, complete rewrite. Bunch of other minor things, added PR to onewire, MPL115a2 lib, few other things like that.

23:43 @CGrover - automating an analog meter tester and characterisation tool, teaching class on reconditioning analog meters. Use CP and M4 express and oled and custom PCB, OSHPark rocks. This week: wrapping up code and enclosure for synth. Converting arduino project to CP. Rebuilding studio.

25:45 @charlesburnaford - very interested in your USB MIDI, trying to get started on adapting midi library to be able to have a python version of it. Ocarina code, convert to CircuitPython if having MIDI. using busio to pass into lib to interface with serial.

27:32 @dakotah.redstone - hugs all around. Still not far getting started with CircuitPython, so keeping up with everything. Discovered already gotten ESP32 mongoose installed.

28:21 @danh - 
* Merged arturo182’s bleio API
* In the midst of some revisions to that API; learning more about BLE in the process

25:59 @deshipu - there was an indie game festival this weekend, got them interested in pewpew. Going to inflict them on students. Otherwise laptop is still broken, still on code vacation.
@DrewFustini - lurking

30:39 @jerryn - playing a lot this week with the BluefruitSPI lib on a whole bunch of different boards, works with CPX even, been a lot of fun. Make some things can use as peripherals that can talk to nRF52s, quick testing with modifying scan program to work with new API, it runs. Been working on LoRA, but Brent is on the CP port. 300m range with no effort, working well. Otherwise just playing!

33:09 @kattni
* Last week:
   * Release and PyPI of Adafruit_CircuitPython_BluefruitSPI
   * Release and PyPI of BMP388
   * Updated lib tracking issue
   * Added all new libs to the bundle (this should be part of the process when a new lib is merged - release and bundle.)
   * Check all libs to make sure everything is in the bundle.
   * Added NeoPixel toggle demo to TrellisM4 repo.
   * Added page to Trellis M4 guide about Adafruit CircuitPython TrellisM4 library - explained rotation and coordinate layouts etc.
* This week:
   * Library Monday:
      * DONE - Update library tracking issue (https://github.com/adafruit/circuitpython/issues/1246)
      * Go through all libs to make sure everything is in the bundle
      * STARTED - Going through all the libs with updates since last release and do a new release
      * Start on fixing the example naming in the library repos
      * All about Adabot!
      * File issue on Adabot to check for sensor_simpletest.py examples
   * CharLCD shield, test on Metro M0/M4 with CircuitPython, update guide
   * IN PROGRESS - Adding trellis m4 library page for toggle demo
   * Test LSM9DS0, merge PR, release, etc.
   * MPL115A2 - needs PyPI update and deployment
   * PyPI guide updates to: ADXL345, MAX31856, LSM9DS1 and LSM9DS0

38:18 @sajattack
* https://github.com/adafruit/Adafruit_CircuitPython_CharLCD/pull/18
* Rusty neopixels with nops mostly working, plans for more cross-platform SPI/DMA version, once I get a DMA hal going
* DMA hal started
* Metro M4 hal, clock initialization not yet functional
* Check out the effort to bring support for adafruit boards to a new(ish) systems programming language here: https://github.com/atsamd-rs/atsamd

40:08 @siddacious
* last week: Received and assembled the new boards, didn't work, couldn't figure out issues in time for a new board rev :(((((
* Scrapped the first board and assembled a second one that is working great though the boost converter needs rework before assembly
* Learned a lesson: never. ever trust someone else's footprints.
* Resolved to have a single example of the blinky Cyborg Raccoon for display at Designer Con instead of having some for sale :|
* Started assembly of a base, doing some woodwork to build in the TFT and made an initial bezel out of styrene.


* This week:
* Finish up the rest of the base, prep and paint.
* Work on more animations for the TFT and finalize coding for TFT and LED animations.
* Pack up the car and drive to Anaheim for Designer Con! http://www.designercon.com/
(we're in booth 1049 for anyone who wants to stop by)

42:16 @sommersoft
* Adabot:
   * Reduced the validators run on new/in-work libraries.
   * Added script to gather Library Bundle and PyPi download stats
   * Setup a .travis.yml to run Adabot on Travis. PR awaiting review.
* CircuitPython Build Tools: changed top level folder name to match zipfile name (use ‘-’ vs ‘_’). PR is merged, but repo needs a new release to push update to PyPi.
* FRAM Library: added SPI version; PR awaiting review.
* Received Particle Mesh boards late in the week; 2 Xenon [nRF52840], 1 Boron [cellular]. I’ve been reading the documentation and firmware code to see about possibly Blinka-izing them. A lot of linkers in their build which makes for “fun” hunting, and the mesh boards haven’t been merged in the repo just yet: https://github.com/particle-iot/firmware/tree/mesh-develop . Retaining full Particle usability may be difficult (Cloud, available peripherals, etc).
* This Week:
   * Some Adabot work: 
      * Finish ‘requests’ timeout handling
      * Fix list_repos(), which I broke
      * Extend check of ‘/examples’ for ‘sensor_simpletest’
   * Update core driver’s page


17:57 @tannewt
* Atmel USB switched to tinyusb! Thanks to Dan for review and Jerry for testing.
* Running down bugs then alpha.3.
* USB MIDI including EndpointOutputBuffer.
* Then…. displayio

20:13 @tg-techie - lurking

## 45:30 In the weeds (Discussion)

46:50 @sajattack
* Clock initialization/configuration on SAMD51

1:05:36 @danh
* Handling asynchronous events: use message queues

51:01 @cater
* Still need flash eraser UF2s?
* Safe mode issue
* Safe mode build of circuitpython

1:29:00 when a module is 'del' ed is the imported .py text file removed from ram

1:30:10 scheduling the learn review thing.

1:32:25
