# CircuitPython Weekly May 20th, 2019
Video of the meeting is available [on YouTube](https://youtu.be/V4cDJuXcFPM) and [on diode.zone](https://diode.zone/videos/watch/e7b24f2e-23af-4e2c-8bfc-9bc80683d11d)

**Next week’s meeting is on Tuesday due to a US holiday on Monday!**

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:04 Community News
CircuitPython on Python Podcast! Hardware Hacking Made Easy With CircuitPython, Episode 212 - https://www.pythonpodcast.com/circuitpython-hardware-hacking-episode-212/


The History of CircuitPython - https://pyfound.blogspot.com/2019/05/scott-shawcroft-history-of-circuitpython.html


A couple Kickstarters are coming out, and a couple of them could run CircuitPython, so if ya back'em, post in the comments and request it - depending on the chip, it's pretty easy to add. For the PocketScreen, we already support the ATSAMD21G18 so the creator would only need to make a new 'board definition' with the name, VID/PID and the pinouts available. This recent pull request has the basics of what is required. Want to try it out? Build the variant on your own here. You can test it on your board before submitting the PR. https://www.kickstarter.com/projects/zepsch/pocketscreen-worlds-smallest-arduino-compatible-mu & recent pull request & https://learn.adafruit.com/building-circuitpython


Added a bunch of events for the upcoming newsletter, most/all are looking for talks on Python on Hardware too! https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2019-05-21-draft.md


## 6:24 State of CircuitPython + Libraries
### 6:33 Overall
* 31 pull requests merged
  * 13 authors - matt-land, deshipu, tannewt, ladyada, makermelissa, dherrada, ChewyTurtle, caternuson, TG-Techie, kattni, fezthedev, DigitalMakerCIC, dhalbert
  * 9 reviewers - sommersoft, brentru, tannewt, siddacious, ladyada, dherrada, caternuson, kattni, dhalbert
* 12 closed issues by 6 people, 7 opened by 5 people


Overall: We’ve been on the cusp of 4.0 out the door, we’ll talk about that later In the Weeds, but we’re ready to get it out the door today. Any reason not to? Our focus on what we’ve been working on has shifted to beyond 4.0. We’re not chasing down more bugs. Feeling pretty good about it!


### 8:33 Core


* 18 pull requests merged
  * 5 authors - deshipu, TG-Techie, kattni, tannewt, dhalbert
  * 5 reviewers - sommersoft, kattni, tannewt, dhalbert, ladyada
* 6 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1896
  * 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
* 2 closed issues by 1 people, 2 opened by 1 people
* 162 open issues
  * https://github.com/adafruit/circuitpython/issues
* 5 active milestones
  * 4.0.0 - Bluetooth: 0 open issues
  * 4.x: 36 open issues
  * 5.x: 2 open issues
  * Libraries: 8 open issues
  * Long term: 115 open issues
  * 1 issues not assigned a milestone


Download stats by board:


| Board                                         | 3.1.2  | 4.0.0-rc.3  |
| ----------------------------------------------|--------|-------------|
| arduino_mkr1300                               |   -    |      0      |
| arduino_mkrzero                               |   -    |      0      |
| arduino_zero                                  |  481   |      2      |
| bast_pro_mini_m0                              |   -    |      2      |
| capablerobot_usbhub                           |   -    |      0      |
| catwan_usbstick                               |   -    |      0      |
| circuitplayground_express                     |  5495  |     43      |
| circuitplayground_express_4h                  |   -    |      0      |
| circuitplayground_express_crickit             |  528   |      2      |
| circuitplayground_express_digikey_pycon2019   |   -    |      2      |
| electronut_labs_papyr                         |   -    |      4      |
| escornabot_makech                             |   -    |      0      |
| feather52832                                  |   88   |      -      |
| feather_huzzah                                |  754   |      -      |
| feather_m0_adalogger                          |  310   |      2      |
| feather_m0_basic                              |  415   |      2      |
| feather_m0_express                            |  1092  |     14      |
| feather_m0_express_crickit                    |   67   |      0      |
| feather_m0_rfm69                              |   97   |      2      |
| feather_m0_rfm9x                              |  216   |      7      |
| feather_m4_express                            |  948   |     15      |
| feather_nrf52840_express                      |   -    |      5      |
| feather_radiofruit_zigbee                     |   -    |      0      |
| gemma_m0                                      |  726   |      2      |
| gemma_m0_pycon2018                            |   -    |      0      |
| grandcentral_m4_express                       |   -    |     30      |
| hallowing_m0_express                          |  295   |      6      |
| itsybitsy_m0_express                          |  518   |      4      |
| itsybitsy_m4_express                          |  561   |      9      |
| kicksat                                       |   -    |      0      |
| makerdiary_nrf52840_mdk                       |   -    |      0      |
| makerdiary_nrf52840_mdk_usb_dongle            |   -    |      2      |
| meowmeow                                      |   -    |      0      |
| metro_m0_express                              |  654   |     13      |
| metro_m4_airlift_lite                         |   -    |      4      |
| metro_m4_express                              |  472   |     22      |
| mini_sam_m4                                   |   -    |      0      |
| particle_argon                                |   -    |      0      |
| particle_boron                                |   -    |      1      |
| particle_xenon                                |   -    |      1      |
| pca10056                                      |   -    |      0      |
| pca10059                                      |   -    |      5      |
| pewpew10                                      |   -    |      0      |
| pewpew13                                      |   -    |      0      |
| pirkey_m0                                     |   28   |      0      |
| pybadge                                       |   -    |     16      |
| pyportal                                      |   -    |     123     |
| robohatmm1                                    |   -    |      0      |
| sam32                                         |   -    |      0      |
| sparkfun_lumidrive                            |   -    |      0      |
| sparkfun_nrf52840_mini                        |   -    |      3      |
| sparkfun_redboard_turbo                       |   -    |      1      |
| sparkfun_samd21_dev                           |   -    |      0      |
| sparkfun_samd21_mini                          |   -    |      2      |
| trellis_m4_express                            |   -    |     25      |
| trinket_m0                                    |  2112  |     12      |
| uchip                                         |   -    |      1      |
| ugame10                                       |   -    |      1      |
| ----------------------------------------------|--------|-------------|
|                                         Total | 15857  |     385     |
| ----------------------------------------------|--------|-------------|


Download stats by language:


| Board            | 3.1.2  | 4.0.0-rc.3  |
| -----------------|--------|-------------|
| ID               |   -    |      0      |
| de_DE            |   -    |      3      |
| en_US            | 15857  |     358     |
| en_x_pirate      |   -    |      6      |
| es               |   -    |      5      |
| fil              |   -    |      0      |
| fr               |   -    |      7      |
| it_IT            |   -    |      2      |
| pl               |   -    |      1      |
| pt_BR            |   -    |      3      |
| zh_Latn_pinyin   |   -    |      0      |
| -----------------|--------|-------------|
|            Total | 15857  |     385     |
| -----------------|--------|-------------|
### 10:37 Libraries
* 13 pull requests merged
  * 9 authors - matt-land, tannewt, ladyada, makermelissa, dherrada, ChewyTurtle, caternuson, fezthedev, DigitalMakerCIC
  * 7 reviewers - caternuson, brentru, kattni, tannewt, siddacious, ladyada, dherrada
* 38 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_miniQR/pull/7
  * 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_Waveform/pull/8
  * https://github.com/adafruit/Adafruit_CircuitPython_Waveform/pull/7
  * 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_Bitmap_Font/pull/6
  * 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_LIFX/pull/3
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx/pull/14
  * 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_FocalTouch/pull/8
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/58
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/51
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/28
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/42
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/29
  * https://github.com/adafruit/Adafruit_CircuitPython_LSM303/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/29
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/31
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/22
  * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/12
* 10 closed issues by 5 people, 5 opened by 5 people
* 102 open issues
  * https://circuitpython.org/libraries/contributing
## 12:29 Hug Reports


15:02 @brentru
* Was out last week - delayed hug reports!
   * @tannewt, @kattni, @siddacious, @makermelissa, and @danh for PyCon. It was a great time to meet all of you and hang out to discuss Circuitpython for a few days!
   * Zach Heshelman for getting his PyCon Sprint Project up, running, and documented. It was a PyPortal project which displayed his latest tweets.
   * @makermelissa for joining adafruit!


15:47 @cater (missing meeting)
* Group hugs 2 all


@cgrover
* lurking


16:00 @charlesburnaford
* Group hug in general


16:21 @danh
* @MakerMelissa - Welcome to Adafruit full time
* lawrenceyy in the forums noticing an issue with `round(x, ndigits)`
* @kjw for noticing a number of incorrect USB PIDs
* @tannewt for rc.3


17:32 @dherrada
* Thanks @kattni  for adding me to the Github organization. In the small amount of time I’ve definitely learned a lot more Python by looking at PRs and issues. Thanks @siddacious us for the MCP230xx modules. Also, thanks to everyone who reviewed my PRs.


18:05 @docmollo (lurking)
* Jerryn and anecdata for testing my latest build of the NINA firmware
* Ladyada for asking for changes to a PR I made against the Adafruit_CircuitPython_ESP32SPI library that caused me to learn new Python/programming constructs


@jasonp (lurking)
* 

18:37 @kattni
* @MakerMelissa for joining Adafruit full time!
* @siddacious for helping me with newsletter stuff on Friday
* Late hug report to @MikeB for doing my newsletter stuff while we were at PyCon
* @dherrada for becoming a CircuitPython Librarian and for all your hard work
* Everyone providing support on Discord - we’ve had an influx of new people and they’ve been receiving the help and support they need. It’s been great to see.


@kingernorth (lurking)


@kjw
* lurking


19:48 @MakerMelissa
* @ladyada and @pt for allowing me to start full-time
* @kattni for all your help and support
* @tannewt for all your help
* @siddacious for your help with ordering the right part to fix my PyBadge


20:16 @mikebarela
* @MakerMelissa I think you do really awesome work and I’m really glad you’re going to be on the team
* Everyone at Adafruit and all the people who met with the folks at PyCon, kinda held down the fort here
* Continually impressed by how many people in the community are joining in - it’s a big community effort


21:30 @siddacious
* @makermelissa for sharing some _awesome_ news
* @ladyada for adding SPI support to BusIO in no time flat, and for pointing out some room for improvement on a board.
* @dherrada for becoming a CP librarian and taking on more tasks. The help is appreciated!
* @kattni for another round of fritzing help


23:12 @sommersoft
* belated hug to @cater for the displayio guide. it will no doubt prove indispensable once i finally hop into utilizing displays.
* Group hug!
* non-CP Hug: to the maintainers of GNU `screen` & `awk`; thorough docs helped me learn and use them over the weekend!


13:04 @tannewt
* elvis-epx for adding ps2 support and blogging it up: https://epxx.co/logbook/entries/howto.html
* Nnja, chewy_turtle and sean tibor for continuing to make things for the pyportal and test it.
* Jerryn for helping out on the forums. Specifically the case of the appearing files.
* Matt-land for Palette docs
* @osterwood for the usb hub board!
* Carl0s for work on supporting RGB status LEDs
## 24:09 Status Updates


28:59 @brentru
* Last Week
   * Nothing Circuit python Related! Spent last week finishing up finals week, feeling relieved now :) 
* This week
   * Started a new library before I left, hoping to wrap it up today and write it up tomorrow: Adafruit_CircuitPython_AzureIOT (https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT)
      * Providing access to Microsoft Azure’s powerful IOT Platform, for Circuit python devices.
      * This is an advanced platform compared to Adafruit IO. 
      * If you’re starting to scale an IOT Project, or want to use something which can support hundreds of nodes easily, 
      * Azure is a paid service - be careful if you want to beta-test this, and carefully monitor your data usage
@cgrover
* lurking


30:00 @charlesburnaford
* My various projects for MIDI are coming to an end. Breath controller seems to work consistently
* Next, fingering keyboard working.
* Modular keyboard where I can build a 1 octave keyboard
* Being able to read multiple 23017s in a loop?


31:55 @danh
* Another UF2 bootloader release covering pybadge, pybadge_lc, pygamer, with a bunch of minor fixes
* Fix `round(n, <negative ndigits>)`
* Started on BLE Scanner.
* To do: continue BLE work


33:31 @dherrada (might be missing meeting)
* I was able to finish adding all of the location and gps-related NMEA sentences that the GPS FeatherWing supports. I was able to do a bunch of testing and I learned even more about the NMEA protocol. I put out a release for that, and was able to use the new features in a personal project I was working on. I also was able to fix a few issues, merge some PRs, and close some issues that had been left open. This week, I want to do some more testing of the MCP23008 and MCP23017 modules to make sure there aren’t any issues with the recently refactored MCP230xx library.


34:21 @docmollo (lurking)
* Submitted pull request for NINA firmware repo. No code changes, but updated documentation to reflect current build process and requirements for building
* Submitted pull request for Adafruit_CircuitPython_ESP32SPI library to add WPA2 Enterprise support to the WiFi Manager library


34:50 @kattni
* Last week:
   * Still recovering from PyCon
   * Continued working on the PyBadge guide
* This week:
   * Library Monday
      * Updating circuitpython.org/libraries
   * PyCon wrap-up blog post
   * Finalise Travis setup for circuitpython.org/libraries page
   * PyBadge guide
   * Fritzing for PyBadge
   * PyGamer guide next


@kingernorth - lurking


@kjw - lurking


37:25 @MakerMelissa
* Last Week:
   * Worked on writing guide for Multi-Language PyBadge code
   * Worked on next phase of Arduino Display Library updates
   * Assisted with Orange Pi R1 Blinka Implmentation
   * Tested EPD fix for issue with single bytes not being checked
   * Tested Arduino GFX code update from @PaintYourDragon
* Next Week:
   * Finish up PyBadge Guide
   * Work on guide for displayio using Breakouts and Shields
   * Start closing Arduino Display library issues and PRs
   * Finish up assisting with Blinka on Orange Pi
   * Start work on some Odroid Boards


38:38 @mikebarela
* Scott added some nice things in the bootloader, you can get to safe mode and various status LEDs - we have a chart! Go to any of the Adafruit boards, check under UF2 Bootloader page, they should all have that chart. If you see an issue with it, report it!
* CircuitPython Python on Microcontrollers newsletter goes out every week, encourage you to join! Adafruitdaily.com 


40:58 @siddacious
* BD34 driver work, debugging, and board rev.
* LPS35 guide work & fritzings
* Started OLED project
* Started a TOP SEEKRET personal project that is AWESOME… don’t ask
* Next up: LPS34 SPI-ification
* More fritzing and guide work
* More board work
* Vetting CP drivers on RPi


42:20 @sommersoft
* Last Week:
   * circuitpython-build-tools:- 
      * `__init__.mpy` PR was merged. Made a release on Wednesday/Thursday, but the new .travis.yml failed to trigger the deploy job. I went through more iterations on my fork, and have it working again. I need to send the PR in.
   * Experiment: RosiePi
      * Had this seed for an RPi based Rosie pop in my head a couple weeks ago. Enough random design thoughts finally collected, and I started working an experiment (software only atm) this weekend.
      * I have a Python script sending commands to a Metro M4 through `screen`, and reading the Metro's REPL output from a logfile using a tail-like function.
      * `screen` connection to `/dev/tty*` is done through a bash script, that finds the board's tty and does not rely on hardcoded address. The USB drive mount point is also discovered in the bash, using non-hardcoded info (besides name markers).
* This Week:
   * RosiePi
      * Once my RPi3 is delivered, set it up to test/move dev to its more natural habitat.
      * Continue building out a "test controller" framework
   * Adabot
      * work a couple open issues; invalid "missing sensorname" errors for non-.py example files, and release notes documenting proper contributor (currently uses the "merger").


46:00 @ladyada
* Hug reports:
   *  Hug report to MakerMelissa who is going to be doing more stuff with us
   * Siddacious who is attacking complicated Arduino lib stuff, ton of HW
   * Dan for fixing up bootloaders and getting them released
   * Brent who finished his first year of grad school, doing CP stuff all summer
* Status updates:
   * Coral Blinka support, added sysfs pwm, wanted to get a bunch more Blinka boards done, there’s a lot of demand. Anyone with various SBCs, we can get you going.
   * This week did a bunch of HW design, AirLift featherwing, sensors and such
   * PyGamers made, will be in store this week


24:40 @tannewt
* Released RC.3
* Improved Group to be iterable and have index and remove.
* Recorded podcast.__init__ and it is available now! https://www.pythonpodcast.com/circuitpython-hardware-hacking-episode-212/
* Recap blog post from Language Summit is live too! https://pyfound.blogspot.com/2019/05/scott-shawcroft-history-of-circuitpython.html
* For the weeds: Need RC.4 for minor changes on 4.0.x or stick a fork in it and call it done (aka 4.0.0)?
* Out Thursday through next Wednesday.
* Aim to PR switch to rectangle pixel fill from pixel by pixel. Definitely speed up scenes with lots of TileGrids.
* Once back will jump into computing damage rectangles for a big speedup on display updates. 
## 48:40 In the weeds
@docmollo (lurking)
* I’d appreciate some guidance and/or a review of my PR on the Adafruit_CircuitPython_ESP32SPI library (https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/45). There are some checks that are failing and I’m not sure how folks would prefer I move forward. Add options so pylint ignores those issues on that file? Resolve the actual issues? If so, how?


50:33 @charlesburnaford - One Q - multiple MCP23017 chips. Can have 8 on a bus.


53:53 @tannewt - 4.0.0?


## Wrap-up


Next week’s meeting will be on Tuesday at 2pmET!
