# CircuitPython Weekly for 8 July 2019
Welcome to the CircuitPython Weekly meeting notes! Feel free to add your notes for Hug Reports and Status Updates early. During the meeting, we go through them as a round robin sorted by username. If you can’t make the meeting and would still like to participate, add your notes with a “(missing meeting)” after your username and we’ll read them off for you. 


Add any longer-form discussion topics or general questions you have to the “In the weeds” section. 


Thanks! We hope to see you in the meeting!


Video is available here [on YouTube](https://youtu.be/6gkVEqh0HEA).


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:18 Community News
8/8/2019 is CircuitPython day!
Getting started programming microcontrollers with CircuitPython by NYC Resistor - August 3, 2019.
CircuitPython Day with the India Linux Users Group Delhi (ILUGD) at the Delhi Technical University for Women - August 4, 2019.


Scott's teardown presentation "Supercharge Your Hardware" is up on GitHub.
https://github.com/tannewt/presentations/blob/master/teardown2019/presentation.md 
https://hackaday.com/2019/07/03/teardown-2019-a-festival-of-hacking-art-and-fpgas/ 


PyBadger Event Badge
Create a CircuitPython powered event badge with PyBadger, PyBadge and PyGamer!
https://learn.adafruit.com/pybadger-event-badge?view=all 


Made with Mu - Alpha 2 Released with Web Mode
https://madewith.mu/mu/users/2019/07/05/alpha2.html 




## 5:14 State of CircuitPython + Libraries


### 5:44 Overall


* 15 pull requests merged
  * 9 authors - dastels, kattni, tgikal, tannewt, caternuson, makermelissa, deshipu, jerryneedell, brentru
  * 5 reviewers - ladyada, caternuson, kattni, tannewt, brentru
* 9 closed issues by 8 people, 5 opened by 5 people


Overall: Have 4.x stable and unstable. 4.1.0 stable work is in progress. 5.0 will bring ble api changes after that. Still adding new libraries each week. Thanks to all contributors.


### 7:29 Core


* 3 pull requests merged
  * 2 authors - tannewt, deshipu
  * 1 reviewers - tannewt
* 8 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1988
  * https://github.com/adafruit/circuitpython/pull/1986
  * https://github.com/adafruit/circuitpython/pull/1985
  * https://github.com/adafruit/circuitpython/pull/1984
  * https://github.com/adafruit/circuitpython/pull/1925
  * https://github.com/adafruit/circuitpython/pull/1858
  * https://github.com/adafruit/circuitpython/pull/1363
  * https://github.com/adafruit/circuitpython/pull/1274
* 3 closed issues by 3 people, 2 opened by 2 people
* 180 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 4.1.0: 1 open issues
  * 4.x - Features: 38 open issues
  * 4.x.x - Bug fixes: 3 open issues
  * 5.x: 2 open issues
  * Libraries: 9 open issues
  * Long term: 125 open issues
  * 2 issues not assigned a milestone


Download stats by board:


| Board                                         | 4.0.2  | 4.1.0-beta.1  |
| ----------------------------------------------|--------|---------------|
| arduino_mkr1300                               |   1    |       1       |
| arduino_mkrzero                               |   3    |       2       |
| arduino_zero                                  |   10   |       3       |
| bast_pro_mini_m0                              |   0    |       0       |
| capablerobot_usbhub                           |   0    |       0       |
| catwan_usbstick                               |   0    |       0       |
| circuitplayground_express                     |  332   |      16       |
| circuitplayground_express_4h                  |   3    |       0       |
| circuitplayground_express_crickit             |   7    |       0       |
| circuitplayground_express_digikey_pycon2019   |   2    |       0       |
| electronut_labs_blip                          |   3    |       2       |
| electronut_labs_papyr                         |   1    |       0       |
| escornabot_makech                             |   0    |       0       |
| feather_m0_adalogger                          |   19   |       7       |
| feather_m0_basic                              |   23   |       6       |
| feather_m0_express                            |   55   |       6       |
| feather_m0_express_crickit                    |   3    |       0       |
| feather_m0_rfm69                              |   2    |       0       |
| feather_m0_rfm9x                              |   28   |       0       |
| feather_m4_express                            |   75   |      12       |
| feather_nrf52840_express                      |   23   |       4       |
| feather_radiofruit_zigbee                     |   0    |       0       |
| gemma_m0                                      |   56   |       2       |
| gemma_m0_pycon2018                            |   3    |       0       |
| grandcentral_m4_express                       |   19   |       6       |
| hallowing_m0_express                          |   19   |       1       |
| itsybitsy_m0_express                          |   22   |       4       |
| itsybitsy_m4_express                          |   46   |      10       |
| kicksat-sprite                                |   0    |       0       |
| makerdiary_nrf52840_mdk                       |   7    |       3       |
| makerdiary_nrf52840_mdk_usb_dongle            |   8    |       3       |
| meowmeow                                      |   0    |       0       |
| metro_m0_express                              |   46   |       6       |
| metro_m4_airlift_lite                         |   10   |       1       |
| metro_m4_express                              |   44   |       6       |
| mini_sam_m4                                   |   0    |       0       |
| particle_argon                                |   4    |       1       |
| particle_boron                                |   0    |       0       |
| particle_xenon                                |   1    |       2       |
| pca10056                                      |   7    |       5       |
| pca10059                                      |   12   |       5       |
| pewpew10                                      |   2    |       0       |
| pewpew13                                      |   0    |       0       |
| pirkey_m0                                     |   0    |       0       |
| pybadge                                       |   45   |       8       |
| pybadge_airlift                               |   -    |       1       |
| pygamer                                       |  179   |      20       |
| pygamer_advance                               |   -    |      14       |
| pyportal                                      |  157   |      30       |
| robohatmm1                                    |   1    |       0       |
| sam32                                         |   2    |       0       |
| sparkfun_lumidrive                            |   0    |       0       |
| sparkfun_nrf52840_mini                        |   1    |       3       |
| sparkfun_redboard_turbo                       |   1    |       0       |
| sparkfun_samd21_dev                           |   0    |       0       |
| sparkfun_samd21_mini                          |   1    |       0       |
| trellis_m4_express                            |   53   |       3       |
| trinket_m0                                    |  132   |      10       |
| uchip                                         |   0    |       0       |
| ugame10                                       |   3    |       1       |
| ----------------------------------------------|--------|---------------|
|                                         Total |  1471  |      204      |
| ----------------------------------------------|--------|---------------|


Download stats by language:


| Board            | 4.0.2  | 4.1.0-beta.1  |
| -----------------|--------|---------------|
| ID               |   2    |       0       |
| de_DE            |   14   |       2       |
| en_US            |  1378  |      173      |
| en_x_pirate      |   16   |      22       |
| es               |   15   |       2       |
| fil              |   0    |       0       |
| fr               |   38   |       3       |
| it_IT            |   4    |       2       |
| pl               |   1    |       0       |
| pt_BR            |   2    |       0       |
| zh_Latn_pinyin   |   1    |       0       |
| -----------------|--------|---------------|
|            Total |  1471  |      204      |
| -----------------|--------|---------------|




### 9:15 Libraries


* 12 pull requests merged
  * 8 authors - dastels, kattni, tgikal, caternuson, makermelissa, deshipu, jerryneedell, brentru
  * 5 reviewers - ladyada, caternuson, kattni, tannewt, brentru
* 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_BitbangIO/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5
  * https://github.com/adafruit/Adafruit_CircuitPython_NRF24L01/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/9
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_framebuf/pull/14
  * 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_SimpleIO/pull/43
  * https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO/pull/41
  * https://github.com/adafruit/Adafruit_CircuitPython_LSM303/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/36
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/35
  * 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_PyPortal/pull/39
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20
  * https://github.com/adafruit/Adafruit_CircuitPython_SSD1306/pull/26
  * https://github.com/adafruit/Adafruit_CircuitPython_Pypixelbuf/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/51
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/45
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/29
* 6 closed issues by 5 people, 3 opened by 3 people
* 103 open issues
  * https://circuitpython.org/libraries/contributing
Library updates in the last seven days:
**New Libraries**
 * [Adafruit_CircuitPython_PyBadger](https://github.com/adafruit/Adafruit_CircuitPython_PyBadger)
**Updated Libraries**
 * [Adafruit_CircuitPython_RA8875](https://github.com/adafruit/Adafruit_CircuitPython_RA8875)
 * [Adafruit_CircuitPython_PN532](https://github.com/adafruit/Adafruit_CircuitPython_PN532)
 * [Adafruit_CircuitPython_CursorControl](https://github.com/adafruit/Adafruit_CircuitPython_CursorControl)




## 12:00 Hug reports


16:43 @brentru
* Adam.io for assistance with the MQTT spec this past week
* @dastels for CursorControl feedback and PRs


@charlesburnaford (lurking)


17:38 @dakotah.redstone (lurking)
* Dogpile group hug for the whole community


17:07 @danh
* @rce106 for SAMD51 UART pad fixes


@gpro1 (lurking)


17:48 @jerryn
* Group hug


12:56 @kattni
* @dcbriccetti for a Learn guide code update
* @Roy for continuing to help with my keynote
* @siddacious for talking through some things regarding my keynote


@kingernorth (lurking)


@ladyada


14:17 @MakerMelissa
* @hulkco for getting another display working with displayio
* Group Hug


14:37 @siddacious
* Group hug!


15:02 @sommersoft (lurking, maybe)
* Group Hug


15:10 @tannewt
* Carl0s for taking time out to work with me on RGB LED status.
* Galen for brain power towards touch on SAMD51.
* Jandjstudios for the datum board support.
* Ben Holt for simpleio fix.
* @dcbriccetti for sample code fixes
* @rce1086 for UART TX fix


@tavish (lurking)
* a group hug from me too


16:25 @tg-techie
* Community hug for keeping it a great and open place


## 18:09 Status Updates
30:43 @brentru
* Finishing up MiniMQTT this week
   * Lots of features which will make the IOT-CircuitPython folks excited. Some of them may be familiar if you’ve used the eclipse foundation’s Paho-MQTT
      * Unsubscribe, methods for handling subscribing/publishing to multiple topics, user-definable acknowledgement handlers (i.e: on_disconnect, on_subscribe), network-interface-agnostic api (ESP32SPI, ethernet and more in the future), multiple logging levels, etc.
   * Aiming to PR by Wed.
* After release - I’m planning on adding MQTT classes within CircuitPython_AdafruitIO and CircuitPython_AzureIOT.
* Taking a short vacation at the end of this week


@charlesburnaford (lurking)


32:30 @dakotah.redstone (lurking)
* received/assembled Adabox12 pygamer haven't done any programming yet
* received/haven't setup Pi4 so more distractions :)
* some small progress on project trashfishlikething
* not holding the forces of chaos at bay... hope to change that  ;)






32:55 @danh
* Getting BLE Central UART Service to work. Needed to do BLE descriptor discovery.


@gpro1 (lurking)


34:13 @jerryn
* Last week 
   * Retired from “day job” :-)
   * Started 30 years of deferred home maintenance!
* Next week
   * Continue
   * Should be more CircuitPython time “real soon now”


19:13 @kattni
* Last week:
   * Fix terminalio.FONT issue in PyBadger
   * show_foo naming for PyBadger functions
   * update examples with naming updates PyBadger
   * Verified PyBadbger example is good
   * PyBadger guide
   * Send info about potential bug displaying label over bitmap
* This week and beyond:
   * Finish documenting PyBadger
      * Clarify fonts are strings
   * Bundle PyBadger
   * Blog up PyBadger guide release
   * Forum support
   * Multiple PCA9865 with ServoKit on RPi
   * Reply to CharLCD memory issue
   * Add PYOA to RTD
   * Add turtle to RTD
   * Outline: Guide for adding a board to CircuitPython
   * Finish documenting Debug_I2C
   * Finish documenting testing Debug_SPI
   * Add e-ink shield to downloads page in e-ink breakout guide: https://learn.adafruit.com/adafruit-eink-display-breakouts/downloads
   * Finish blog posts
   * Finish processing photos
   * Add FeatherWing header pinouts to PyBadge/PyGamer guides
   * MPL3115A2/MPL115A2 combination product guide
   * Sort out community submitted CircuitPython library to get it into the community bundle
   * Recording embedded.fm on Saturday


@kingernorth (lurking)


@ladyada


23:32 @MakerMelissa
* Last Week:
   * Tested Kattni’s PyBadger code
   * Worked on PyCalculator for PyPortal guide
   * Fixed PiTFT Easy Installer on Raspbian Buster
   * Fixed and updated RA8875 CircuitPython Library
* This Week:
   * Finish testing FreqShow PR on Raspberry Pi 4
   * Finish up PyCalculator Guide
   * Look into some Raspberry Pi Script Improvements


24:42 @siddacious
* Last week OLED Friend rev b testing and OLED Bonnet, Vacation
* VCNL4040 Rev B testing and guide
* New module test board tests


25:49 @sommersoft (lurking, maybe)
* Last Week:
   * Continued workcation, which ends today. :(
   * Dynamic RTD module support matrix:
      * Had to change a couple things to make it Python3.5 compatible for Travis.
      * Now getting a Travis failure on 'sphinx-build', which I'm thinking is bash command related (';' vs '&&')
* This Week:
   * Finish support matrix
   * Back to RosiePi work


26:31 @tannewt
* Finishing up displayio work to add other color depth support. First OLEDs and Sharp and EINK later. Decided to extend Palette to store original 24-bit color and store grayscale and RGB565 internally.
* Hacked on touch on SAMD51 this weekend with a friend but ran into some road blocks.
* This week’s challenge is adding bit packing to pixel computation that is both column oriented (like OLEDs) and row oriented (like sharp).
* Recording embedded.fm on Saturday.


29:20 @tg-techie
* Out of state for a while so not much last week
* Have been porting GUI stuff to displayio and reworking some stuff
* Should make it clearer with decorators to avoid passing extraneous
* Will look at cursor control to help with UI stuff

## 35:12 In The Weeds

35:31 @danh
* Should instructions for building CircuitPython be in a README in the source repo, or should it mostly be in https://learn.adafruit.com/building-circuitpython ? See https://github.com/adafruit/circuitpython/pull/1986 for some background.
   * @sommersoft: from an ease-of-maintenance perspective, it'd be easier to point to the learn guide in README; only one set of instructions to maintain.
* Keep the core “known good”/happy path instructions and longer and more detailed instructions can be in the README
* Learn guide will include a clear set of what tools are needed
* Dan will try to figure out how to get them to co-exist


46:00 Tg-techie - AST and/or compile built-in
* CPython uses ASTs, CP doesn’t have `compile` exposed, the tools are available under the hood
* Scott says it’s possible there is no good boundary between parsing and VM, likely there is no AST generated
* Sommersoft pointed out that `eval` may be usable for similar tasks though it runs it immediately

## 50:09 Wrap-Up
