# CircuitPython Weekly for 4 November 2019
Video is available here [on YouTube](https://youtu.be/7VqPzzli_7Q).


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


The CircuitPython 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.
## 5:13 Community News
CircuitPython 5.0.0 Alpha 5 released! 
Lead story is more STM support!
https://blog.adafruit.com/2019/11/03/circuitpython-5-0-0-alpha-5-released/ 


Take Flight with Feather - Hackaday and Digi-Key:
https://hackaday.io/contest/168107-take-flight-with-feather 


All 35 posts from Open hardware month in one spot (MicroPython and more included):
https://blog.adafruit.com/2019/10/31/all-35-posts-from-open-hardware-month-in-one-spot-ohm2019-oshwa-ohsummit-opensource-opensourcehardware-opensourceorg-adafruit/ 


"maintainable code is more important than clever code":
Python creator Guido van Rossum is retiring from DropBox, this is a great quote
https://blog.dropbox.com/topics/company/thank-you--guido 


Snekboard - A Python Microcontroller for Lego:
https://www.crowdsupply.com/keith-packard/snekboard 


Crowd funding and crowd sourcing trackers with PyPortals:
https://blog.adafruit.com/2019/10/31/tree-count-donation-display-with-pyportal-teamtrees-pyportal-dashblock-teamtreesofficl-dashblockhq-adafruit/


New boards! Now up to 86 boards!
https://circuitpython.org/downloads 
SparkFun Qwiic Micro
ItsyBitsy NRF52840 Express




## 9:17 State of CircuitPython + Libraries


### 9:37 Overall


* 19 pull requests merged
  * 10 authors - 2bndy5, caternuson, kattni, Anton-2, makermelissa, sommersoft, schelmo, kevinjwalters, anecdata, siddacious
  * 8 reviewers - tannewt, ladyada, caternuson, kattni, dhalbert, makermelissa, brentru, siddacious
* 17 closed issues by 10 people, 8 opened by 8 people
* Removed Hacktoberfest label from 0 issues.


### 11:34 Core


* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 12 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1274 (Open 384 days)
  * https://github.com/adafruit/circuitpython/pull/1363 (Open 339 days)
  * https://github.com/adafruit/circuitpython/pull/1858 (Open 180 days)
  * https://github.com/adafruit/circuitpython/pull/2034 (Open 92 days)
  * https://github.com/adafruit/circuitpython/pull/2044 (Open 88 days)
  * https://github.com/adafruit/circuitpython/pull/2054 (Open 84 days)
  * https://github.com/adafruit/circuitpython/pull/2148 (Open 52 days)
  * https://github.com/adafruit/circuitpython/pull/2211 (Open 22 days)
  * https://github.com/adafruit/circuitpython/pull/2236 (Open 12 days)
  * https://github.com/adafruit/circuitpython/pull/2248 (Open 6 days)
  * https://github.com/adafruit/circuitpython/pull/2252 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/2262 (Open 1 days)
* 0 closed issues by 0 people, 4 opened by 4 people
* Removed Hacktoberfest label from 0 issues.
* 193 open issues
  * https://github.com/adafruit/circuitpython/issues
* 7 active milestones
  * 4.x.x - Bug fixes: 0 open issues
  * 5.0.0: 23 open issues
  * 5.x.0 - Features: 1 open issues
  * 5.x.x - Bug Fixes: 13 open issues
  * 6.0.0: 1 open issues
  * Libraries: 9 open issues
  * Long term: 155 open issues
  * -9 issues not assigned a milestone


Download stats by board:


| Board                                         | 4.1.0  | 5.0.0-alpha.4  |
| ----------------------------------------------|--------|----------------|
| arduino_mkr1300                               |   97   |       15       |
| arduino_mkrzero                               |   66   |       25       |
| arduino_zero                                  |  150   |       29       |
| bast_pro_mini_m0                              |   16   |       17       |
| capablerobot_usbhub                           |   14   |       12       |
| catwan_usbstick                               |   16   |       12       |
| circuitplayground_bluefruit                   |   -    |      725       |
| circuitplayground_express                     |  4975  |      239       |
| circuitplayground_express_4h                  |   33   |       14       |
| circuitplayground_express_crickit             |  248   |       27       |
| circuitplayground_express_digikey_pycon2019   |   20   |       14       |
| cp32-m4                                       |   -    |       12       |
| datalore_ip_m4                                |   -    |       12       |
| datum_distance                                |   13   |       12       |
| datum_imu                                     |   19   |       13       |
| datum_light                                   |   14   |       14       |
| datum_weather                                 |   18   |       12       |
| electronut_labs_blip                          |   18   |       15       |
| electronut_labs_papyr                         |   14   |       14       |
| escornabot_makech                             |   16   |       12       |
| feather_m0_adalogger                          |  258   |       41       |
| feather_m0_basic                              |  194   |       42       |
| feather_m0_express                            |  593   |       60       |
| feather_m0_express_crickit                    |   34   |       15       |
| feather_m0_rfm69                              |  100   |       29       |
| feather_m0_rfm9x                              |  208   |       48       |
| feather_m0_supersized                         |   -    |       15       |
| feather_m4_express                            |  948   |      105       |
| feather_nrf52840_express                      |  200   |       57       |
| feather_radiofruit_zigbee                     |   16   |       13       |
| gemma_m0                                      |  596   |       39       |
| gemma_m0_pycon2018                            |   20   |       13       |
| grandcentral_m4_express                       |  216   |       25       |
| hallowing_m0_express                          |  308   |       42       |
| hallowing_m4_express                          |   -    |       83       |
| itsybitsy_m0_express                          |  314   |       27       |
| itsybitsy_m4_express                          |  647   |      102       |
| kicksat-sprite                                |   13   |       12       |
| makerdiary_nrf52840_mdk                       |   26   |       13       |
| makerdiary_nrf52840_mdk_usb_dongle            |   58   |       15       |
| meowmeow                                      |   15   |       14       |
| metro_m0_express                              |  580   |       34       |
| metro_m4_airlift_lite                         |  133   |       34       |
| metro_m4_express                              |  329   |       43       |
| metro_nrf52840_express                        |   -    |       13       |
| mini_sam_m4                                   |   32   |       12       |
| monster_m4sk                                  |   -    |      872       |
| particle_argon                                |   36   |       19       |
| particle_boron                                |   23   |       12       |
| particle_xenon                                |   44   |       20       |
| pca10056                                      |   66   |       33       |
| pca10059                                      |  146   |       42       |
| pewpew10                                      |   43   |       14       |
| pewpew13                                      |   13   |       12       |
| pewpew_m4                                     |   -    |       15       |
| pirkey_m0                                     |   15   |       12       |
| pybadge                                       |  286   |       25       |
| pybadge_airlift                               |   16   |       14       |
| pygamer                                       |  488   |       37       |
| pygamer_advance                               |   35   |       15       |
| pyportal                                      |  933   |       70       |
| pyportal_titano                               |   -    |       15       |
| pyruler                                       |  189   |       31       |
| robohatmm1                                    |   15   |       -        |
| robohatmm1_m0                                 |   -    |       15       |
| robohatmm1_m4                                 |   -    |       19       |
| sam32                                         |   39   |       -        |
| snekboard                                     |   -    |       15       |
| sparkfun_lumidrive                            |   17   |       15       |
| sparkfun_nrf52840_mini                        |   42   |       17       |
| sparkfun_redboard_turbo                       |   41   |       15       |
| sparkfun_samd21_dev                           |   27   |       16       |
| sparkfun_samd21_mini                          |   28   |       12       |
| stm32f411ve_discovery                         |   -    |       42       |
| stm32f412zg_discovery                         |   -    |       34       |
| trellis_m4_express                            |  272   |       26       |
| trinket_m0                                    |  1626  |       79       |
| trinket_m0_haxpress                           |   -    |       19       |
| uchip                                         |   17   |       12       |
| ugame10                                       |   34   |       13       |
| ----------------------------------------------|--------|----------------|
|                                         Total | 16076  |      3798      |
| ----------------------------------------------|--------|----------------|


Download stats by language:


| Board            | 4.1.0  | 5.0.0-alpha.4  |
| -----------------|--------|----------------|
| ID               |   8    |       5        |
| de_DE            |  327   |       12       |
| en_US            | 14983  |      3644      |
| en_x_pirate      |   76   |       13       |
| es               |  236   |       25       |
| fil              |   13   |       8        |
| fr               |  236   |       38       |
| it_IT            |   49   |       4        |
| pl               |   43   |       6        |
| pt_BR            |   60   |       26       |
| zh_Latn_pinyin   |   45   |       17       |
| -----------------|--------|----------------|
|            Total | 16076  |      3798      |
| -----------------|--------|----------------|




### 12:37 Libraries


* 19 pull requests merged
  * 10 authors - 2bndy5, caternuson, kattni, Anton-2, makermelissa, sommersoft, schelmo, kevinjwalters, anecdata, siddacious
  * 8 reviewers - tannewt, ladyada, caternuson, kattni, dhalbert, makermelissa, brentru, siddacious
* 30 open pull requests
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/6 (Open 315 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5 (Open 300 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/1 (Open 274 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11 (Open 264 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/6 (Open 250 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/9 (Open 235 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20 (Open 214 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6 (Open 201 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/8 (Open 201 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57 (Open 178 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34 (Open 175 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30 (Open 174 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_TCS34725/pull/20 (Open 106 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/18 (Open 101 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MotorKit/pull/19 (Open 100 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/10 (Open 82 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/66 (Open 74 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/69 (Open 71 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP9808/pull/20 (Open 35 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/71 (Open 30 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_AM2320/pull/9 (Open 26 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/26 (Open 25 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/pull/41 (Open 22 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_WSGI/pull/2 (Open 20 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_SGP30/pull/20 (Open 15 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_HT16K33/pull/41 (Open 13 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/40 (Open 13 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/22 (Open 12 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/30 (Open 11 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_GPS/pull/36 (Open 0 days)
* 17 closed issues by 10 people, 4 opened by 4 people
* Removed Hacktoberfest label from 0 issues.
* 138 open issues
  * https://circuitpython.org/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_TestRepo](https://github.com/adafruit/Adafruit_CircuitPython_TestRepo)
 * [Adafruit_CircuitPython_RGBLED](https://github.com/adafruit/Adafruit_CircuitPython_RGBLED)
 * [Adafruit_CircuitPython_ATECC](https://github.com/adafruit/Adafruit_CircuitPython_ATECC)
 * [Adafruit_CircuitPython_PCD8544](https://github.com/adafruit/Adafruit_CircuitPython_PCD8544)
 * [Adafruit_CircuitPython_SharpMemoryDisplay](https://github.com/adafruit/Adafruit_CircuitPython_SharpMemoryDisplay)
 * [Adafruit_CircuitPython_WS2801](https://github.com/adafruit/Adafruit_CircuitPython_WS2801)
 * [Adafruit_CircuitPython_framebuf](https://github.com/adafruit/Adafruit_CircuitPython_framebuf)


## 13:25 Hug reports


18:22 @Adafruit (PT)
* @MakerMelissa for getting some more boards on circuitpython.org


@Anne B (lurking)


@cater (lurking)


@CGrover (lurking)


@dakota.redstone (listening/lurking)


18:39 @danh
* @tannewt for BLE PR’s and reworks.
* @theacodes for BLE PR reviews
* @ladyada for testing latest CPy board changes
* @sommersoft (belated) for several proposals for version-specific library bundles
* @hierophect for continued STM32F4 work


@Drew Fustini 
* @MakerMelissa @s-light @ladyada for feedback on https://github.com/adafruit/Adafruit_Blinka/pull/168


19:56 @Hierophect
* Scott and Dan for help with PWM
* Ladyada for testing new STM32 PRs
* Group hug to everyone for new release


20:41 @jasonp
* @DavePutz for the DisplayShapes fix
* Adafruit team for excellent documentation


21:20 @jepler
* @danh for tagging a new alpha release of CircuitPython 5
* Everyone who has changes represented in this new alpha release, it’s sure to be the best one yet


14:21 @kattni
* @PT, @ladyada for being understanding during a situation on Thursday
* @jepler for discussion on Thursday, I really appreciate it
* @Community Moderators for continuing to be amazing
* @MakerMelissa for taking notes for today’s meeting
* The team for another CircuitPython release


@KingerNorth (lurking)


@krayola (lurking)


15:22 @MakerMelissa:
* @DavePutz for the Display Shapes fix
* @Drew Fustini for adding PWMOut to Pocket Beagle
* @Ladyada, for tips on getting the Sharp Display working
* Everyone involved in getting another release of CircuitPython out
* Group Hug to everyone


@sdw_nj (lurking)


16:00 @siddacious
* @sommersoft for some `sed`-fu to further automate the migration to actions and inspiring me to get off my but and start learning it.
* @tannewt for the reminder to "automate the boring bits"
* @cater for adding the FT232H to blinka. It's transformed the way I work for the positive.


17:23 @sommersoft
* @danh for the next alpha release, and all those who contributed to it!
* @ladyada, @kattni, and @tannewt for the reviews and merges


17:49 @stargirl (lurking until 11:30 pst, then offline)
* Group hug, this community just continues to be awesome. :)


18:00 @tannewt (on a plane to warm weather)
* Thanks to Dan for BLE PR reviews, Alpha 5 and holding down the fort.
* Thanks to Kattni for running the meeting for the second week in a row!
* Thanks to Thea for the BLE PR review.
* Group hug for all of the awesome things I’ve missed.
## 21:46 Status Updates
@Anne B (lurking)


@cater (lurking)


@CGrover (lurking)


@dakota.redstone (listening/lurking)


35:38 @danh
* Finished BLE PR reviews and discussed with @tannewt. Some revisions including simplifications which I re-reviewed. Ready to go and will be merged soon, after 5.0.0-alpha.5 gets some smoke testing.
* Release 5.0.0-alpha.5, first alpha since mid-September. Many fixes and changes, new boards support, tuning existing boards (multiple I2C for CPB, for instance). This release does not include the breaking BLE changes: those will be in the next alpha (or perhaps it will be a beta) soon. See https://github.com/adafruit/circuitpython/pull/2236 and https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/30.
* Next:
   * Merge BLE changes, re-test the examples, and then prepare an alpha.6. We also need to rewrite the current BLE guide examples.
   * Develop a strawman Adafruit/CPB BLE service for a few peripherals on the board, and test using it from the command line using bluez. This is a way to step away from the Bluefruit NUS UART style of communicating over BLE, towards a more natural BLE service-oriented style.


39:07 @Drew Fustini (lurking)
* Implemented PWM for pocket beagle
* Pin defs for beaglebone black


39:45 @Hierophect
* Working on wrapping PWM and UART. Pretty close to being finished.
* Open up for STM32 cleanup
* Lots of minor things that need to be tweaked or fixed or added
* Keeping an eye on people who need STM32 support
* Helping out new people
* Dragged into coworker’s project
* Plastics related projects


41:58 @jasonp
* PCBs for new SAMD+FPGA board are in house
* Prepping for CircuitPython support
* It’s quite a learning process


44:44 @jepler
* Last week: fixed one small CP Bluefruit bug (noise on the internal speaker if you touched the audio pad with a fingertip)
* This week: Friday is my last day at my old job, wrapping things up there.
* Would be nice to find time for a VL53L1X driver (incompatible with VL53L0X)


22:37 @kattni
* Last week:
   * Updated Fingerprint sensor guide, blogged
   * Finished STEMMA relay guide, blogged
   * Added Feather QuadWing PCBs to GitHub repo
   * Updated TTL Serial camera VC0706 guide
   * Misc. 
* This week:
   * Add USB-C micro lipo charger to micro lipo guide
      * Create Fritzing object, downloads images etc.
   * Test MPR121 HAT, update guide if successful
   * Create issue on AS7262 about adding UART support
   * Test PMS5003 on Pi with PySerial, update code, update guide if successful
   * Create guide for HCSR04, test on Pi, etc.


@KingerNorth (lurking)


@krayola (lurking)


25:35 @MakerMelissa
* Last Week:
   * Updated CircuitPython Scrolling Example to work in latest CP
   * Finished up Nokia Display Guide
   * Finished up Sharp Memory Display Guide
   * Updated CircUp guide to reflect new features
   * Worked on WS2801 Guide
   * Updated some boards on circuitpython.org website
* This Week:
   * Fix some WS2801 issues on Hardware SPI
   * Finish WS2801 Guide
   * Work on updating SSD1325 Guide
   * Work on updating IS31FL3731 CharliePlex LED Guide


@sdw_nj (lurking)


26:42 @siddacious
* Last week: Finished LSM303 and MPU-6050 guide updates until final hardware is available
*  LSM6DSOX bringup and hardware tests; Blinka with the FT232H and some light automation is the future
* Initial sketching of JSON register abstractions and code generation
* borked a pyportal trying to get fancy while assembling an EZ-Make oven. Hopefully I can find someone to fix it.
* Major progress with Droid reversing project; most of the schematic is captured
* Used sed to rename a bunch of stuff in the schematic from the useless default net names
* This week: more LSM6DSOX driver work and testing
* Guide wrap up for LSM and MPUs
* Likely starting some new boards
* Continued droid hacking; voltage checks followed by blinky and hopefully spinning some motors


31:00 @sommersoft
* Last Week:
   * GitHub Actions CI Migration
      * Got the Community bundle migration done.
      * Almost finished with the adabot migration.
   * Adabot
      * Disabled Travis infrastructure checks, and put in GitHub Actions migration checks.
      * Fixed a crash-inducing variable typo in adabot's Hacktoberfest label function. It successfully removed the labels yesterday, even though the number reported is zero above.
   * Successfully transitioned RosiePi to boot from an SSD.
* This Week:
   * Keep pushing on Actions migration.
      * Finish adabot
      * Start circuitpython-org
   * Continue researching more viable options for RosiePi's topology. Having the app handler, server, and test component all in one place limits throughput, does not scale at all beyond the number one, and leaves a single point of failure.
   * Whatever comes up, is suggested, or I stumble upon.


34:30 @stargirl (lurking until 11:30 pst, then offline)
* Last week:
   * Finished up beta hardware & software for my Eurorack project (Winterbloom Sol), found beta testers, and ordered PCBs and components. Beta modules go out later this month. 🎉
   * Poked at BLE stuff.
* This week:
   * 100% of my energy will now be devoted to panicking about my Supercon talk. (so I may not be online much)


34:54 @tannewt (on a plane still)
* Polished up the _bleio changes and the corresponding library work and should be merged shortly. Please test it out and help us expand support for BLE services and advertisements.
* Out this week soaking up sun in Florida. Back Saturday. Will be around Sunday - Tuesday. (Running Monday meeting)


## 46:30 In The Weeds

46:57 @danh
* Make a decision on version-specific bundles mechanism: https://github.com/adafruit/Adafruit_CircuitPython_Bundle/issues/181
   * Branches
   * Version info in files
   * Augmented tags: x.x.x+y.y.y, where x.x.x is the library version and y.y.y is the minimum CPy version compatible with x.x.x


1:01:44 @Drew Fustini
* I’d like to ask about the generic Linux PWMOut implementation:
   * https://github.com/adafruit/Adafruit_Blinka/blob/master/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py
   * @s-light proposed abstract self._pin_path.format(self._pwmpin) as function - this way one could override it for boards where the /sys/class/pwm channel path is different like PocketBeagle/BeagleBone.
      * for example, generic needs:
         * pin_path = os.path.join(channel_path, self._pin_path.format(self._pwmpin))
      * but beagle needs:
         * pin_path = os.path.join(channel_path, self._pin_path.format(self._channel,self._pwmpin))
   * Does this sound like a good approach?
   * Details in this PR as to why the path is different on beagle:
      * https://github.com/adafruit/Adafruit_Blinka/pull/168#issue-332797708


1:05:43 @cater
* is this a bug? or just the way it is?
   * `Adafruit CircuitPython 4.1.0 on 2019-08-02; Adafruit Trinket M0 with samd21e18
   * >>> import os
   * >>> os.stat("/font5x8.bin")
   * Traceback (most recent call last):
   *   File “<stdin>", line 1, in <module>
   * OverflowError: small int overflow
   * >>> `
* note it's a M0


## 1:08:00 Wrap-Up
