# CircuitPython Weekly for 28 May 2019
Video is available here [on YouTube](https://youtu.be/6HtfZ1Hqd2Y).


Join here for the chat all week: https://adafru.it/discord


The 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.
## 3:13 Community News
For folks who use/know about/test screen readers, etc. please check out https://circuitpython.org/ and add any PRs if we need to make it work better for screen readers.


Atom plug in for CircuitPython, try it out!
https://github.com/jos-b/atom-circuitpython


HOW-TO Creating Custom Boards
https://www.hackster.io/wallarug/circuitpython-creating-custom-boards-8e979e


Added more boards to:
https://circuitpython.org/


Robo HAT MM1 by Robotics Masters.
Escornabot Makech by Electronic Cats.
Programmable USB Hub by Capable Robot Components.
PyGamer by Adafruit.


Python now in win 10, guide coming soon:
https://devblogs.microsoft.com/python/python-in-the-windows-10-may-2019-update/


## 4:46 State of CircuitPython + Libraries
### Overall


* 22 pull requests merged
  * 13 authors - ZachNo, peterhinch, tannewt, makermelissa, brentru, tgs, deshipu, matt-land, dhalbert, jraber, jpecor, dherrada, caternuson
  * 9 reviewers - sommersoft, tannewt, makermelissa, matt-land, kattni, ladyada, siddacious, dherrada, caternuson
* 11 closed issues by 9 people, 15 opened by 12 people


### Core


* 3 pull requests merged
  * 3 authors - deshipu, dhalbert, tannewt
  * 1 reviewers - tannewt
* 12 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1915
  * https://github.com/adafruit/circuitpython/pull/1914
  * https://github.com/adafruit/circuitpython/pull/1909
  * https://github.com/adafruit/circuitpython/pull/1907
  * https://github.com/adafruit/circuitpython/pull/1903
  * https://github.com/adafruit/circuitpython/pull/1898
  * https://github.com/adafruit/circuitpython/pull/1897
  * https://github.com/adafruit/circuitpython/pull/1893
  * https://github.com/adafruit/circuitpython/pull/1858
  * https://github.com/adafruit/circuitpython/pull/1845
  * https://github.com/adafruit/circuitpython/pull/1363
  * https://github.com/adafruit/circuitpython/pull/1274
* 1 closed issues by 1 people, 5 opened by 4 people
* 170 open issues
  * https://github.com/adafruit/circuitpython/issues
* 5 active milestones
  * 4.x - Features: 39 open issues
  * 4.x.x - Bug fixes: 1 open issues
  * 5.x: 2 open issues
  * Libraries: 8 open issues
  * Long term: 118 open issues
  * 2 issues not assigned a milestone


Download stats by board:


| Board                                         | 4.0.1  | 4.0.0-rc.3  |
| ----------------------------------------------|--------|-------------|
| arduino_mkr1300                               |   0    |      0      |
| arduino_mkrzero                               |   0    |      1      |
| arduino_zero                                  |   6    |      4      |
| bast_pro_mini_m0                              |   0    |      2      |
| capablerobot_usbhub                           |   0    |      0      |
| catwan_usbstick                               |   3    |      0      |
| circuitplayground_express                     |  244   |     66      |
| circuitplayground_express_4h                  |   2    |      1      |
| circuitplayground_express_crickit             |   16   |      4      |
| circuitplayground_express_digikey_pycon2019   |   0    |      3      |
| electronut_labs_papyr                         |   2    |      4      |
| escornabot_makech                             |   1    |      0      |
| feather_m0_adalogger                          |   13   |      6      |
| feather_m0_basic                              |   14   |      5      |
| feather_m0_express                            |   56   |     15      |
| feather_m0_express_crickit                    |   2    |      0      |
| feather_m0_rfm69                              |   4    |      2      |
| feather_m0_rfm9x                              |   14   |      8      |
| feather_m4_express                            |   52   |     18      |
| feather_nrf52840_express                      |   11   |      6      |
| feather_radiofruit_zigbee                     |   1    |      0      |
| gemma_m0                                      |   22   |      6      |
| gemma_m0_pycon2018                            |   1    |      0      |
| grandcentral_m4_express                       |   30   |     45      |
| hallowing_m0_express                          |   22   |      7      |
| itsybitsy_m0_express                          |   16   |      4      |
| itsybitsy_m4_express                          |   28   |     10      |
| kicksat                                       |   0    |      0      |
| makerdiary_nrf52840_mdk                       |   0    |      0      |
| makerdiary_nrf52840_mdk_usb_dongle            |   1    |      2      |
| meowmeow                                      |   1    |      0      |
| metro_m0_express                              |   27   |     16      |
| metro_m4_airlift_lite                         |   5    |      8      |
| metro_m4_express                              |   24   |     27      |
| mini_sam_m4                                   |   4    |      0      |
| particle_argon                                |   6    |      0      |
| particle_boron                                |   5    |      1      |
| particle_xenon                                |   4    |      3      |
| pca10056                                      |   6    |      0      |
| pca10059                                      |   8    |      8      |
| pewpew10                                      |   0    |      0      |
| pewpew13                                      |   0    |      0      |
| pirkey_m0                                     |   0    |      0      |
| pybadge                                       |   23   |     19      |
| pygamer                                       |   23   |      -      |
| pyportal                                      |  121   |     157     |
| robohatmm1                                    |   0    |      0      |
| sam32                                         |   0    |      0      |
| sparkfun_lumidrive                            |   0    |      1      |
| sparkfun_nrf52840_mini                        |   3    |      4      |
| sparkfun_redboard_turbo                       |   0    |      1      |
| sparkfun_samd21_dev                           |   0    |      0      |
| sparkfun_samd21_mini                          |   2    |      2      |
| trellis_m4_express                            |   20   |     35      |
| trinket_m0                                    |   70   |     24      |
| uchip                                         |   0    |      1      |
| ugame10                                       |   1    |      1      |
| ----------------------------------------------|--------|-------------|
|                                         Total |  914   |     527     |
| ----------------------------------------------|--------|-------------|


Download stats by language:


| Board            | 4.0.1  | 4.0.0-rc.3  |
| -----------------|--------|-------------|
| ID               |   -    |      0      |
| de_DE            |   -    |      3      |
| en_US            |  914   |     495     |
| en_x_pirate      |   -    |      6      |
| es               |   -    |      5      |
| fil              |   -    |      0      |
| fr               |   -    |     10      |
| it_IT            |   -    |      2      |
| pl               |   -    |      1      |
| pt_BR            |   -    |      4      |
| sprite           |   0    |      -      |
| zh_Latn_pinyin   |   -    |      1      |
| -----------------|--------|-------------|
|            Total |  914   |     527     |
| -----------------|--------|-------------|




### 9:20 Libraries


* 19 pull requests merged
  * 12 authors - ZachNo, peterhinch, tannewt, makermelissa, brentru, tgs, matt-land, dhalbert, jraber, jpecor, dherrada, caternuson
  * 8 reviewers - sommersoft, makermelissa, matt-land, kattni, ladyada, siddacious, dherrada, caternuson
* 30 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_DotStar/pull/36
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/35
  * 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_HT16K33/pull/37
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_framebuf/pull/14
  * https://github.com/adafruit/Adafruit_CircuitPython_CharLCD/pull/39
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_MIDI/pull/13
  * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/21
  * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/20
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/28
  * https://github.com/adafruit/Adafruit_CircuitPython_LSM303/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP230xx/pull/14
  * 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_BNO055/pull/22
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/36
  * 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/45
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/29
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/51
* 10 closed issues by 8 people, 10 opened by 9 people
* 107 open issues
  * https://circuitpython.org/libraries/contributing






## 11:03 Hug reports


16:50 @brentru
* @makermelissa for Blinka work
* And a group hug to all!


17:07 @cater (LURKING)
* kattni - for help fixing pypi on MCP230xx (which i broke with a refactor)
* dan - for continued efforts in forums
* and others i'm probably forgetting....so....group hug!


@CGrover (LURKING)


@charlesburnaford (Lurking)


17:31 @danh
* @kattni, @Roy, @MakerMelissa for writing up internal PyCon debriefing
* @MakerMelissa, @ladyada for working on fonts
* Mbgraham in forums, via @cater for noticing that negative HID mouse movements were broken
        
18:35 @docmollo (lurking)
* @kattni for the one-on-one code review and assistance with the ESP32SPI WiFi manager code I’ve been working on


18:50 @jerryn (LURKING)
* Group hug -- glad to be part of this community


18:58 @joseph
* Group hug - Thanks for being so welcoming everyone and for the help on the Atom plugin!


@kattni
* @dherrada for taking the time to get feedback from classmates on PyCon and the CircuitPython sprints they (and he) participated in, and for providing his own feedback on his experiences.
* @MakerMelissa for providing her feedback on PyCon
* @DanH for reviewing the PyCon notes
* @siddacious for persevering through frustrating board design issues
* @Community Moderators for keeping up with things this weekend. I was unavailable and it was a relief to know I didn’t need to worry about Discord. Thank you for helping to make our Discord server the amazing place that it is!


@KingerNorth
* (LURKING)


@LEDSquibs (Lurking)


@MakerMelissa
* @ladyada for helping me with getting some of the less tested languages for guide
* @pt for helping make the community a better place
* @kattni for helping answering my hundreds of questions

@mikebarela (LURKING)

@Roy (LURKING)

15:30 @siddacious
* @kattni and @sommersoft for PyPi and Travis help
* @kattni for blinka testing help
* @ladyada for giving me an intro to Volcano arcana, and for helping me work through i2c issues with a fussy chip
* @dherrada for continuing to help manage PRs and for taking the initiative to start teaching himself C
* @ladyada for being understanding as I shot myself in the foot several times

16:16 @sommersoft
* @MakerMellisa for the move to fulltime Adafruiter. Congrats!
* @joseph for the Atom package work over the last couple days. Looks nice, and awesome to have additional options for the community.
* Group hug!

@TG-Techie

## 19:17 Status Updates


32:35 @brentr
        Last Week:
* New Module: CircuitPython Azure IoT Module - connect your circuitpython device to a Microsoft Azure IoT Hub. Lots of possibilities when you integrate this with Azure’s services like machine learning, data analytics, etc.
   * https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT/
* New Guide: Azure IoT with CircuitPython to make a plant monitor
   * https://learn.adafruit.com/using-microsoft-azure-iot-with-circuitpython
* Non-CircuitPython: The ESP8266 now works with Adafruit IO Arduino without downgrading firmware anymore. 
        This Week:
* Building out a CircuitPython library for the ATECC608 cryptographic coprocessor.
   * End goal would be generating a CSR, usable by AzureIoT or maybe Adafruit IO in the future. 
   * faster/more secure circuitpython IoT - even with CircuitPython_TinyLoRa.


@cater (LURKING)


@CGrover (LURKING)


@charlesburnaford (LURKING)


34:15 @danh
* Fixed HID library issue preventing negative mouse movements due to stricter CircuitPython bytearray value checking.
* Updating frozen libraries to update HID and other libraries.
* Added mechanism for per-language clean builds, needed for large translations.
* Moving BLE advertising data preparation to Python from C.
* Support work for bootloader problems.
* To do:
   * Continue BLE work.
   * CIrcuitPython variants refactoring: Maybe add flags to distinguish 192KB, 256KB, and full builds. Update documentation to match.


37:03 @docmollo (lurking)
* Based on code review with @kattni on the ESP32SPI library, going to refactor the connect() function into two functions. Due to work and the holiday this weekend, didn’t have time, so will be at least a week or two before I finish all the updates I’m working on.


37:26 @jerryn (LURKING)
* Back from travels - still trying to remember what I was doing before I left.
* Should be re-engaged this week.


37:37 @joseph
* Last couple of days: Atom Plugin
* This week: Holidays, time to revise
* Last couple of weeks: Exams
* Next couple of weeks: More exams
* After that: Summer holidays! Plenty of time to write all sorts of code.


19:57 @kattni
* Last week:
   * PyGamer guide
   * PyGamer fritzing object
   * Moved!
* This week:
   * Meeting wrap-up
   * MCP9600 guide
   * MCP9600 upload CAD files to GitHub
   * Test CP lib
   * Email… so much email.
   * Review cp.org board PRs
   * Blog posts for PyCon wrap-up
   * Finalise cp.org/libraries and /contributing setup


@kingernorth
* (LURKING)


@LEDSquibs  (Lurking)


22:51 @MakerMelissa:
* Last Week
   * Typed up my notes for PyCon
   * Worked on displaying fonts in more complicated language fonts
   * Got my PyBadge Conference Badge guide in moderation
   * Finished updating the SSD1331 guide
   * Added a couple small image updates to SSD1351 guide
   * Added enableDisplay() to ST77xx Arduino Library
   * Tested similar functionality on HX8357 Display with Backlight
   * Got Orange Pi R1 merged into Blinka Library
* Next Week
   * Update Orange Pi guide with Orange Pi R1
   * Work on guide for displayio using Breakouts and Shields
   * Get CircuitPython Motor Library PR issue fixed
   * Test Orange Pi R1 more Thoroughly
   * Get enableDisplay() working on remaining Arduino Displays
@mikebarela (LURKING)


@Roy (LURKING)


24:56 @siddacious:
* Previously on Law & Order:
   * Finished up version 1.0 of BD34 CP and Arduino drivers
   * Sent out a board rev for the BD34
   * Sent out a board to test a new OLED
   * Finished the LPS34HW guide
   * Wrote tester code for and designed the tester for the LPS35HW
* Next time on “siddacious does stuff”
   * Neopixel connector widgets
   * BD34 rev be assembly and driver work
   * OLED testing
   * Miscellaneous board, driver, and support work.
   * Going to NY for the Five Points Festival with my wife, stopping by HQ to say hi


27:00 @sommersoft
* Last Week:
   * Circuitpython-build-tools:
      *  Fixed PyPI deployment issue (that i created).
   * Adabot:
      * Fixed the non-.py file "missing sensorname" validator. However, there are still some inconsistencies that aren't easily fixed on the repo side:
         * Multi-version libraries: e.g. `adafruit_ads1x15` has simpletests for different variants. I think the variants are a good thing. I can probably work around it with some regex + slicing…
      * Dove into the "release notes documenting proper contributor" issue. Walking the code step by step in a terminal, it produces desired results. 
      * The issue may have been a one-off, but I can't explain it. Left the issue open for continued monitoring.
   * Experiment: RosiePi
      * Realized I was essentially re-creating the wheel, once I investigated `tests/` & `tools/cpboard.py` in the core. It was still a fun little exercise.
      * I may move forward with it, but need to decide if it should live in the core vs external. My overall goal was to include physical testing, which is still not a thing:
         * simple example: does `board.Dn` set to `digitalio->OUT/IN` actually produce expected behavior, as confirmed by say a MCP3008.
         * super-duper-optimistic example: does `displayio` produce the expected image as verified by a PiCam & OpenCV/tesseractOCR/etc.
* This Week:
   * Experiment: RosiePi
      * Study current testing in the core, and try to formulate an approach to use on a RPi and expand CircuitPython's usage to physical testing.
      * Look into writing a GitHub App for this. Seems simple enough; just need to work through the Ruby bits. if running this during PR checks would be desired, of course. otherwise...just for fun.


@TG-Techie: 
* Last week of school, time to relax with some CP
* Fixes pure CP tricorder that was broken, convinced a friend to try a board
* Figuring out display rotation with locations of objects on the screen

## 38:36 In The Weeds
@TG-Techie:
* We now have displayio for displays; any talk about a universal touch library? Interested but want to avoid reinventing the wheel
* Sommersoft: Maybe could fall into touchio
* Dan: Touchio is for lower level, more for directly handling pins. 
* Charles: Atmel q-touch libs are what was referenced regarding handling touch currently in touchio. Most touch screens already have drivers built in, so they wouldn’t likely work directly with touchio
* TG: Has and idea to abstract turning user interactions into events that can be handled, Dan would like to see a proposal

##  45:28 Wrap-Up
