# CircuitPython Weekly February 19th, 2019

Video is available here [on YouTube](https://youtu.be/lxYcMSpD11g) and [on diode.zone](https://diode.zone/videos/watch/11698cf4-7179-4e61-95f8-e3c66d496a35)

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.

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
@adafruit (pt) - will not be in meeting, please read off’
* We partnered with Python Discord (about 13k members), the largest Python community on Discord that also runs /r/Python on Reddit - for folks who want specific Python help or want to join another good community with excellent mods/helpers/events/code jams/ encourage them to visit: https://discord.gg/djuFYQA 


* The Python on Microcontrollers newsletter @ https://www.adafruitdaily.com/  is up to 5,000 subscribers, we’re always looking for news, projects, and more - contribute here: https://github.com/adafruit/circuitpython-weekly-newsletter 

* Awesome-circuitpython is also looking for updates as needed, contribute here: https://github.com/adafruit/awesome-circuitpython 

* In the news… Python on Hardware Means Choices for Makers by Liz Clark - Apress. https://www.apress.com/us/blog/all-blog-posts/python-on-hardware-means-choices-for-makers/16332230 


## 6:00 State of CircuitPython and Libraries
### 6:22 Overall


* 8 pull requests merged
  * 4 authors - ArthurDent62, dhalbert, tannewt, debrouxl
  * 4 reviewers - tannewt, dhalbert, brennen, kattni
* 13 closed issues by 7 people, 12 opened by 9 people


### 7:47 Core


* 7 pull requests merged
  * 3 authors - dhalbert, tannewt, debrouxl
  * 3 reviewers - dhalbert, tannewt, kattni
* 11 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1573
  * https://github.com/adafruit/circuitpython/pull/1569
  * https://github.com/adafruit/circuitpython/pull/1558
  * https://github.com/adafruit/circuitpython/pull/1552
  * https://github.com/adafruit/circuitpython/pull/1534
  * https://github.com/adafruit/circuitpython/pull/1423
  * https://github.com/adafruit/circuitpython/pull/1415
  * https://github.com/adafruit/circuitpython/pull/1365
  * https://github.com/adafruit/circuitpython/pull/1363
  * https://github.com/adafruit/circuitpython/pull/1274
  * https://github.com/adafruit/circuitpython/pull/1144
* 8 closed issues by 4 people, 8 opened by 6 people
* 146 open issues
  * https://github.com/adafruit/circuitpython/issues


Download stats by board:


| Board                                            | 3.1.2  | 4.0.0-beta.2  |
| -------------------------------------|--------|---------------|
| arduino_mkr1300                          |   -        |          39           |
| arduino_mkrzero                                  |   -        |           9           |
| arduino_zero                                             |  263   |           2           |
| catwan_usbstick                                  |   -        |           1           |
| circuitplayground_express                |  1616  |          37           |
| circuitplayground_express_crickit        |  295   |          10           |
| feather52832                                     |   54   |           -           |
| feather_huzzah                                   |  421   |           -           |
| feather_m0_adalogger                     |  142   |           6           |
| feather_m0_basic                         |  178   |          17           |
| feather_m0_express                       |  434   |          25           |
| feather_m0_express_crickit               |   33   |           1           |
| feather_m0_rfm69                         |   38   |           4           |
| feather_m0_rfm9x                         |   51   |           9           |
| feather_m4_express                       |  365   |          33           |
| feather_nrf52840_express                 |   -        |          26           |
| feather_radiofruit_zigbee                |   -        |           1           |
| gemma_m0                                         |  252   |           6           |
| grandcentral_m4_express                  |   -        |          17           |
| hallowing_m0_express                     |  116   |           9           |
| itsybitsy_m0_express                     |  207   |          15           |
| itsybitsy_m4_express                     |  189   |          19           |
| makerdiary_nrf52840_mdk                  |   -        |           0           |
| makerdiary_nrf52840_mdk_usb_dongle   |   -        |           1           |
| meowmeow                                         |   -        |           0           |
| metro_m0_express                         |  222   |           7           |
| metro_m4_express                         |  221   |          23           |
| mini_sam_m4                                      |   -        |           1           |
| particle_argon                                   |   -        |           2           |
| particle_boron                                   |   -        |           0           |
| particle_xenon                                   |   -        |           0           |
| pca10056                                                 |   -        |           0           |
| pca10059                                         |   -        |          13           |
| pirkey_m0                                        |   16   |           0           |
| pyportal                                         |   -        |           6           |
| sparkfun_lumidrive                               |   -        |           3           |
| sparkfun_nrf52840_mini                   |   -        |           3           |
| sparkfun_redboard_turbo                  |   -        |           4           |
| sparkfun_samd21_dev                      |   -        |           1           |
| sparkfun_samd21_mini                     |   -        |           5           |
| trellis_m4_express                               |   -        |          14           |
| trinket_m0                                       |  751   |          23           |
| -------------------------------------|--------|---------------|
|                                            Total |  5864  |          392          |
| -------------------------------------|--------|---------------|


Download stats by language:


| Board   | 3.1.2  | 4.0.0-beta.2  |
| --------|--------|---------------|
| ID          |   -        |           6           |
| de_DE   |   -        |          43           |
| en_US   |  5864  |          296          |
| es          |   -        |           5           |
| fil         |   -        |           1           |
| fr          |   -        |          35           |
| it_IT   |   -        |           4           |
| pt_BR   |   -        |           2           |
| --------|--------|---------------|
|   Total |  5864  |          392          |
| --------|--------|---------------|




### 10:07 Libraries


* 1 pull requests merged
  * 1 authors - ArthurDent62
  * 1 reviewers - brennen
* 10 open pull requests
  * https://github.com/adafruit/Adafruit_CircuitPython_SK9822/pull/2
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP230xx/pull/7
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_FancyLED/pull/5
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_LSM303/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_GPS/pull/12
  * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/28
* 5 closed issues by 3 people, 4 opened by 4 people
* 63 open issues
  * https://github.com/adafruit/Adafruit_CircuitPython_SK9822/issues/1
  * https://github.com/adafruit/Adafruit_CircuitPython_SI4713/issues/2
  * https://github.com/adafruit/Adafruit_CircuitPython_Thermal_Printer/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_MCP3xxx/issues/9
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx/issues/7
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx/issues/2
  * https://github.com/adafruit/Adafruit_CircuitPython_BluefruitSPI/issues/9
  * https://github.com/adafruit/Adafruit_CircuitPython_BluefruitSPI/issues/8
  * https://github.com/adafruit/Adafruit_CircuitPython_BluefruitSPI/issues/4
  * https://github.com/adafruit/Adafruit_CircuitPython_Crickit/issues/13
  * https://github.com/adafruit/Adafruit_CircuitPython_DS3231/issues/15
  * https://github.com/adafruit/Adafruit_CircuitPython_seesaw/issues/23
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/issues/21
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/issues/20
  * 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_TCS34725/issues/18
  * https://github.com/adafruit/Adafruit_CircuitPython_TCS34725/issues/7
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/issues/4
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/issues/2
  * https://github.com/adafruit/Adafruit_CircuitPython_INA219/issues/5
  * https://github.com/adafruit/Adafruit_CircuitPython_SD/issues/11
  * 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_SSD1306/issues/24
  * https://github.com/adafruit/Adafruit_CircuitPython_SSD1306/issues/23
  * 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_IRRemote/issues/16
  * https://github.com/adafruit/Adafruit_CircuitPython_CCS811/issues/28
  * https://github.com/adafruit/Adafruit_CircuitPython_CCS811/issues/25
  * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/issues/3
  * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/issues/1
  * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/issues/4
  * https://github.com/adafruit/Adafruit_CircuitPython_TSL2591/issues/8
  * https://github.com/adafruit/Adafruit_CircuitPython_TSL2591/issues/7
  * https://github.com/adafruit/Adafruit_CircuitPython_GPS/issues/15
  * https://github.com/adafruit/Adafruit_CircuitPython_GPS/issues/10
  * https://github.com/adafruit/Adafruit_CircuitPython_BME280/issues/21
  * https://github.com/adafruit/Adafruit_CircuitPython_BME280/issues/19
  * https://github.com/adafruit/Adafruit_CircuitPython_BME280/issues/15
  * https://github.com/adafruit/Adafruit_CircuitPython_DHT/issues/15
  * 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_CircuitPlayground/issues/37
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/issues/25
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/issues/21
  * https://github.com/adafruit/Adafruit_CircuitPython_HID/issues/25
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP_ATcontrol/issues/20
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP_ATcontrol/issues/14
  * https://github.com/adafruit/Adafruit_CircuitPython_PN532/issues/19
  * https://github.com/adafruit/Adafruit_CircuitPython_PN532/issues/14
  * https://github.com/adafruit/Adafruit_CircuitPython_PN532/issues/7
  * https://github.com/adafruit/Adafruit_CircuitPython_CharLCD/issues/29
  * https://github.com/adafruit/Adafruit_CircuitPython_CharLCD/issues/21
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/issues/27
139 out of 139 repos need work.




CircuitPython drivers page missing driver - 22


Example file(s) missing sensor/library name. - 40


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


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


For pypi compatibility, missing setup.py - 10


Library has new commits since last release over a month ago. - 1
  * https://github.com/adafruit/Adafruit_CircuitPython_MLX90393 (32 days)


Library has new commits since last release within the last month. - 3
  * https://github.com/adafruit/Adafruit_CircuitPython_HID (29 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PN532 (16 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel (14 days)


Library has new commits since last release within the last week. - 1
  * https://github.com/adafruit/Adafruit_CircuitPython_RA8875 (7 days)


Library repository has no releases. - 4
  * https://github.com/adafruit/Adafruit_CircuitPython_CPython
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX
  * https://github.com/adafruit/Adafruit_CircuitPython_ST7735
  * https://github.com/adafruit/Adafruit_CircuitPython_ILI9341


Missing simpletest example. - 14


New repo(s) currently in work, and unreleased. - 6


Not in bundle. - 5
  * https://github.com/adafruit/Adafruit_CircuitPython_CPython
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX
  * https://github.com/adafruit/Adafruit_CircuitPython_TestRepo
  * https://github.com/adafruit/Adafruit_CircuitPython_ST7735
  * https://github.com/adafruit/Adafruit_CircuitPython_ILI9341


Not listed on PyPi for CPython use - 12


PyLint version not fixed - 2
  * https://github.com/adafruit/Adafruit_CircuitPython_CPython
  * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation


PyLint version very out of date - 131


ReadTheDocs latest build has warnings and/or errors - 5
  * https://github.com/adafruit/Adafruit_CircuitPython_DS1307
  * https://github.com/adafruit/Adafruit_CircuitPython_Thermistor
  * https://github.com/adafruit/Adafruit_CircuitPython_SD
  * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad
  * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display


ReadTheDocs missing as a subproject on CircuitPython - 8


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


Unable to find or create (no auth) GITHUB_TOKEN env variable - 4
  * https://github.com/adafruit/Adafruit_CircuitPython_AT86RF233
  * https://github.com/adafruit/Adafruit_CircuitPython_SK9822
  * https://github.com/adafruit/Adafruit_CircuitPython_CPython
  * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO




## 12:40 Hug Reports
15:44 @brentr
   * Hugs to @MakerMelissa @jerryn and @ladyada for work on ESP32 WiFi
   * @ladyada and @tannewt for PyPortal work. I have one on my desk and it’s my favorite piece of CircuitPython hardware so far!


@cater
   *  lurking


16:25 @cgrover
   * Group hug today. Very appreciative of Corey Schafer’s Python instructional video series that provided the inertia for a couple of important breakthroughs. David Beazley’s excellent printed reference is also foundational in my journey.
   * https://www.youtube.com/user/schafer5
   * https://www.amazon.com/Python-Essential-Reference-David-Beazley/dp/0672329786


17:20 @charlesburnaford
   * general group hug this week.


18:04 @danh
   * @TG-Techie for PyPortal testing
   * @MakerMelissa, @jerryn, and @kattni  for all the testing, especially (for me) of the BLE stuff
   * @notro for ure improvements


@jasonp - lurking


18:54 @jerryn
   * @MakerMelissa for all the work on the ESP32SPI library - great job!
   * @danh for continually trying to make things better!
   * @JohnPark for the guide for the ble_rover using nrf52840 and crickit 


19:42 @kattni
   * @MakerMelissa for all the work on Adafruit CircuitPython FeatherWing
   * @sommersoft for all the support on the Python Discord #microcontrollers channel
   * @sommersoft for moving `drivers.rst` to the new CP Bundle RTD setup, and for updating the Creating and Sharing a Library guide with how to update the newly-moved `drivers.rst`
   * @tannewt for representing CircuitPython at PyCascades
   * @danh and @ktown for starting to help with BLE on CP bugs


21:05 @MakerMelissa:
   * @jerryn for reviewing and testing several tickets, working with me to get the ESP32SPI work done and tested, and for working with me to troubleshoot some nRF52840 issues
   * @tannewt for helping move FeatherWing PRs along
   * @danh for helping with troubleshooting nRF52840 issues
   * @kattni for helping me with getting a few more boards to work on


@Mr Certainly - lurking


22:00 @siddacious
   * @jerryn and @makermelissa for kicking butt with PRs and reviews


22:25 @sommersoft
   * @danh for all the mp config changes.
   * @danh for the issue bringing up moving library documentation from the core to the bundle repo, and @kattni for helping facilitate it happening. Will make doc updates much easier and seamless!
   * @kattni for the PR merges on adabot.
   * grouphug_list = [hugs for hugs in circuitpythonistas]


13:20 @tannewt
   * @pt for PyCon planning
   * @kattni for running the next two meetings for me.
   * To @danh from Lionel Debroux “Hi tannewt. The build settings refactoring PR #1554 makes my hacked up DPFP build of CircuitPython targeting the TI-Python Adapter slightly less hacky, that's good :)”
   * @TG-Techie for all of the displayio testing.


## 23:23 Status Updates

28:46 @brentr

* Last week working on guide for Wireless Dual Stepper Control with Adafruit IO, Raspberry Pi, and CircuitPython libraries (https://learn.adafruit.com/wireless-stepper-control-with-adafruit-io-circuitpython-raspberry-pi-python)
* Started on a tangent with a PyPortal Adafruit IO…wait for it…on CIRCUITPYTHON…OVER WIFI! 
Building it out, it’s a wrapper on top of the ESP32SPI library’s WiFiManager class. Lots of things are breaking, but shouldn’t by Thursday. Been testing using a PyPortal, would love to have other hardware testing it
 https://github.com/brentru/Adafruit_CircuitPython_AdafruitIO


@cater - lurking


30:30 @cgrover

* The majority of CircuitPython effort this week was put into generalizing and adapting an analog signal quantizing helper that I’ve used to turn variable potentiometer signals into indexed rotary-switch-like values. The helper used direction sensing to apply a variable hysteresis value to minimize the noise created when the potentiometer value is sitting on a threshold value shelf. 
* The result of the effort is a range_index class that supports multiple instances of the algorithm depending on the range of the input signal and the number of output index positions/values needed. It can handle analog signals for uses like the potentiometer switch application, but also for processing Eurorack control voltage signals, providing linear quantization, but also inversion, compression, and expansion.
* The range_index library passed all the tests so far, but I want to exercise some extreme conditions before calling it “good.” The conceptual design of the hardware implementation is done, so after testing, I’ll wrap up a PCB design and build the front panel.


32:18 @charlesburnaford

* No status updates this week


32:24 @danh

* Add second UART to nrf port.
* Fix atmel-samd UART bug.
* Big refactoring of build options and Makefiles. Allows easy enabling/disabling of builtin modules. Combines atmel-samd and nrf builds more thoroughly to ensure the builds are as similar as possible. Worked on a number of follow-up fixes after the initial PR.
* Travis was having trouble with shallow clones, breaking the builds; fixed this.
* Will be working on BLE UART problems, and also generally issue work for 4.0.0.


@jasonp - lurking


34:10 @jerryn

* Lots of testing of ESP32SPI and new WifiManager -- working great!
* Helped troubleshoot nrf52840 stack overflow issues
* Came out of testing new Featherwing libraries - they work well!
* Played with nrf52840 on crickit - great fun!
* Working on some RFM69 and RFM9x projects
* Next -- more of the same -- hope to do more with displayio and BLE


35:29 @kattni

* Last week / since last meeting:
  * Updated eInk guide with two new eInk displays, fritzing objects created, diagrams done up etc.
  * ESP32SPI added to bundle, RTD setup.
  * Updated FeatherWing OLED PCB files on GitHub to latest version
  * Continued work on VCNL4040 driver
  * Got basic functionality on VEML7700 driver
  * Started documenting both drivers.
  * Continued work on Getting Started with BLE and CP guide - the examples are buggy for various reasons.
  * Library Monday times two!
  * Did some releases, updated [lib tracking issue](https://github.com/adafruit/circuitpython/issues/1246)
* This week:
  * Continue/finish VCNL4040 driver
  * Continue/finish VEML7700 driver
  * Fritzing objects for VCNL4040 and VEML7700
  * Update INA219 guide/PCB files with FeatherWing form factor
  * Work with Dan to debug BLE examples 
  * Finish Getting Started with BLE guide - if bugs get sorted.
  * Merging various CircuitPython PRs in Scott’s place


38:27 @MakerMelissa:

* Last Week:
 * Released the NeoPixel FeatherWing update
 * Released the 7-Segment LED FeatherWing update
 * Completed and released the RTC FeatherWing update
 * Tested examples for ESP32SPI Library
 * Wrote the ESP32SPI WiFi Manager and released that
 * Did some code Reviews
 * Updated some Repo Level Fixes
 * Helped with troubleshooting Stack Size issue on NRF52840 Boards
 * Helped with troubleshooting some missing time functionality on NRF52840 Boards 
 * Worked some more on my learning guide
* This Week:
 * Starting with the GPS FeatherWing continue more work on the FeatherWing Library
 * Work on a similar ESPAT WiFiManager
 * Get a bunch more work done on the learning Guide
 * Fix some more Repo Level issues


@Mr Certainly - lurking


40:03 @siddacious

* Last week
 * Paused JPEG decoding to start adding more bitdepths to OnDiskBitmap
 * Got my INA260 breakout working and a simple driver written
 * Started on a ST7735 displayio driver for my teeny TFT
* This week
 * Finish OnDiskBitmap update
 * Assemble a new board if USPS ever delivers it


41:00 @sommersoft

* Last Week:
   * adabot - library report:
      * Fixed core insights (issues, PRs).
      * Fixed RTD version fetching.
      * Changed downloads by board/language section to a table.
   * Libraries RTD:
      * Moved the `drivers.rst` file/content from the core repo to the Bundle, and setup Travis to build the docs.
      * Updated the drivers page in the core to point to the new location on the Bundle.
      * Updated "creating/sharing a library in the bundle" guide to include adding new documentation link to the list.
   *  FrequencyIn: 
      * Brought my seriously out of date branch up to date, and started re-gluing things in.
      * Moving from `pulseio` to a new `frequencyio` to allow for better port/board inclusion.
   * samd-peripherals:
      * Re-submitted previously reverted work to move `shared_timer_handler()` back to `ports/atmel-samd` dir. PR to finish on the core is ready to go once I can update the submodule.
* This Week:
   * FrequencyIn
      * Finish re-gluing, run a few more tests, then get ready for PR.
   * adabot:
      * Work on newline issue for Google Docs transcription (I keep forgetting to do this!)
      * Going to change Travis up a little to further debug the constant job failures. Dropping `cache: pip` and setting up the build as either a matrix or stages. :fingers_crossed:


24:00 @tannewt

* Displayio fixes based on TG-Techie’s work.
* Add flush support to print.
* Add Group ability to return proper subclass.
* Fixed SD card OnDiskBitmap.
* Last week before I’m out a week. 4.0.0 bug hunting. Add disable_write_concurrent_protection to storage.remount today.


## 43:35 In the weeds
44:11 @kattni - Talk quickly about Scott being gone. - Please ping Dan or Kattni instead for the next two weeks!


48:51 wrap - up
