# CircuitPython Weekly January 6th, 2020

Video of the meeting is available [on YouTube](https://youtu.be/F7YWP_iHWHk) and [diode.zone](https://diode.zone/videos/watch/19283f6b-6b82-4cdb-911e-7cd3cd76df23).

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

The weekly happens normally at 2pm ET/11am PT on Mondays except when US holidays occur on Monday. 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:15 Community News 
What do you want from CircuitPython in 2020?
https://blog.adafruit.com/2020/01/01/what-do-you-want-from-circuitpython-in-2020-circuitpython2020-circuitpython/ 


Over the break...
200+ libraries!
https://github.com/adafruit/Adafruit_CircuitPython_Bundle/blob/master/circuitpython_library_list.md 


95 boards!
https://circuitpython.org/downloads 


34 boards for Blinka!
https://circuitpython.org/blinka 


(and we have a counter on the pages there now too! Thanks Melissa and Justin!)


6:13 Also, new boards...
CLUE
https://blog.adafruit.com/2019/12/24/adafruit-top-secret-december-24-2019-get-a-clue-adafruit-clue/ 


FEATHER Bluefruit sense:
https://youtu.be/BbNj23MP_C8 


7:30 The top product of the decade for Adafruit is CircuitPython powered
https://blog.adafruit.com/2020/01/02/adafruits-top-ten-best-selling-products-of-the-decade-adafruittopten-decadeofadafruit/ 


8:15 CircuitPython Thermal Camera. Here is the final test of the Thermal Camera project. It uses an AMG8833 Thermal Cam Wing and PyGamer with CircuitPython. Features include image/histogram display, alarm, focus, adjustable display range:
https://twitter.com/CedarGroveMakr/status/1213696186764288001 
https://youtu.be/IyMZOlKJu3Q 


8:43 "...a joy to prototype with"
https://twitter.com/hermansm/status/1211774526071029761 


9:20 Serpente "shields"!
https://twitter.com/arturo182/status/1212767737560387584?s=12 


9:50 PublicDomainDay! Cleveland Museum of Art open access API ... PyPortal!
https://twitter.com/cogliano/status/1213654813411618817 


10:41 Cambridge Python's first meeting of 2020 will be with Nicholas Tollervey: Developing Developers - Meetup. Tues, Jan 7, 2020:
https://www.meetup.com/CamPUG/events/267171231/ 


11:30 7,000 Thanks!
Thanks to everyone who shares their projects, code, sends in links, and for the joy of coding with Python on hardware, the Python for Microcontrollers newsletter has reached over 7,000 subscribers!
https://www.adafruitdaily.com/category/circuitpython/ 


12:05 DRAFT of the newsletter is here:
https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2020-01-07-draft.md 


Ships out Tuesday 11am!
https://www.adafruitdaily.com/ 


## 12:56 State of CircuitPython + Libraries
### 13:15 Overall
* 133 pull requests merged
  * 14 authors - tannewt, brentru, makermelissa, dglaude, dhalbert, philippkeller, hathach, dherrada, deshipu, kattni, CollinCunningham, rhooper, Ferroin, hierophect
  * 8 reviewers - tannewt, brentru, dherrada, makermelissa, ladyada, siddacious, dhalbert, jepler
* 11 closed issues by 5 people, 11 opened by 10 people


Overall: We’re getting close to stabilising 5.x, we have a couple more BLE features we’d like to get in, otherwise bug hunting. Please try the latest beta, we’ll try to get beta.3 out this week, let us know issues and feature requests. Thanks!


### 15:45 Core
* 8 pull requests merged
  * 7 authors - tannewt, hathach, deshipu, dglaude, rhooper, dhalbert, hierophect
  * 3 reviewers - tannewt, dhalbert, ladyada
* 10 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2044 (Open 151 days)
  * https://github.com/adafruit/circuitpython/pull/2054 (Open 148 days)
  * https://github.com/adafruit/circuitpython/pull/2366 (Open 27 days)
  * https://github.com/adafruit/circuitpython/pull/2367 (Open 26 days)
  * https://github.com/adafruit/circuitpython/pull/2404 (Open 19 days)
  * https://github.com/adafruit/circuitpython/pull/2445 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/2449 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/2448 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/2446 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/2450 (Open 1 days)
* 3 closed issues by 3 people, 4 opened by 4 people
* 213 open issues
  * https://github.com/adafruit/circuitpython/issues
* 7 active milestones
  * 4.x.x - Bug fixes: 0 open issues
  * 5.0.0: 15 open issues
  * 5.x.0 - Features: 1 open issues
  * 5.x.x - Bug Fixes: 14 open issues
  * 6.0.0: 3 open issues
  * Libraries: 9 open issues
  * Long term: 157 open issues
  * 14 issues not assigned a milestone


Number of supported boards: 97


Download stats by board:


| Board                                         | 4.1.2  | 5.0.0-beta.2  |
| ----------------------------------------------|--------|---------------|
| arduino_mkr1300                               |   18   |       0       |
| arduino_mkrzero                               |   15   |       1       |
| arduino_nano_33_ble                           |   -    |       9       |
| arduino_zero                                  |   28   |       3       |
| bast_pro_mini_m0                              |   11   |       0       |
| capablerobot_usbhub                           |   11   |       2       |
| catwan_usbstick                               |   11   |       0       |
| circuitplayground_bluefruit                   |   -    |      908      |
| circuitplayground_express                     |  799   |      78       |
| circuitplayground_express_4h                  |   22   |       0       |
| circuitplayground_express_crickit             |   74   |      11       |
| circuitplayground_express_digikey_pycon2019   |   29   |       0       |
| circuitplayground_express_displayio           |   -    |      48       |
| cp32-m4                                       |   -    |       0       |
| datalore_ip_m4                                |   -    |       0       |
| datum_distance                                |   11   |       0       |
| datum_imu                                     |   11   |       0       |
| datum_light                                   |   12   |       1       |
| datum_weather                                 |   13   |       0       |
| edgebadge                                     |   -    |      12       |
| electronut_labs_blip                          |   14   |       0       |
| electronut_labs_papyr                         |   21   |       0       |
| escornabot_makech                             |   22   |       0       |
| feather_m0_adalogger                          |   66   |       4       |
| feather_m0_basic                              |   88   |       5       |
| feather_m0_express                            |  111   |      18       |
| feather_m0_express_crickit                    |   25   |       1       |
| feather_m0_rfm69                              |   58   |       1       |
| feather_m0_rfm9x                              |   77   |       4       |
| feather_m0_supersized                         |   -    |       0       |
| feather_m4_express                            |  212   |      57       |
| feather_nrf52840_express                      |   64   |      31       |
| feather_radiofruit_zigbee                     |   22   |       0       |
| feather_stm32f405_express                     |   -    |      38       |
| gemma_m0                                      |  107   |       2       |
| gemma_m0_pycon2018                            |   23   |       0       |
| grandcentral_m4_express                       |   69   |      14       |
| hallowing_m0_express                          |   59   |       6       |
| hallowing_m4_express                          |   34   |       7       |
| itsybitsy_m0_express                          |   95   |      12       |
| itsybitsy_m4_express                          |  107   |      17       |
| itsybitsy_nrf52840_express                    |   -    |       3       |
| kicksat-sprite                                |   23   |       0       |
| makerdiary_nrf52840_mdk                       |   23   |       0       |
| makerdiary_nrf52840_mdk_usb_dongle            |   25   |       1       |
| meowmeow                                      |   23   |       0       |
| metro_m0_express                              |  112   |      13       |
| metro_m4_airlift_lite                         |   56   |      12       |
| metro_m4_express                              |   67   |      12       |
| metro_nrf52840_express                        |   -    |       1       |
| mini_sam_m4                                   |   23   |       0       |
| monster_m4sk                                  |   -    |      28       |
| particle_argon                                |   23   |       3       |
| particle_boron                                |   22   |       0       |
| particle_xenon                                |   23   |       1       |
| pca10056                                      |   57   |       9       |
| pca10059                                      |   67   |       5       |
| pewpew10                                      |   33   |       1       |
| pewpew13                                      |   23   |       0       |
| pewpew_m4                                     |   -    |       1       |
| pirkey_m0                                     |   22   |       0       |
| pyb_nano_v2                                   |   -    |       2       |
| pybadge                                       |   82   |       9       |
| pybadge_airlift                               |   25   |       1       |
| pyboard_v11                                   |   -    |      12       |
| pygamer                                       |   86   |      10       |
| pygamer_advance                               |   25   |       1       |
| pyportal                                      |  271   |      34       |
| pyportal_pynt                                 |   -    |      19       |
| pyportal_titano                               |   -    |      42       |
| pyruler                                       |   36   |       3       |
| robohatmm1                                    |   25   |       -       |
| robohatmm1_m4                                 |   -    |       4       |
| sam32                                         |   24   |       0       |
| serpente                                      |   -    |      16       |
| shirtty                                       |   -    |       0       |
| snekboard                                     |   -    |       0       |
| sparkfun_lumidrive                            |   23   |       0       |
| sparkfun_nrf52840_mini                        |   26   |       2       |
| sparkfun_qwiic_micro_no_flash                 |   -    |       0       |
| sparkfun_qwiic_micro_with_flash               |   -    |       2       |
| sparkfun_redboard_turbo                       |   26   |       1       |
| sparkfun_samd21_dev                           |   24   |       0       |
| sparkfun_samd21_mini                          |   26   |       0       |
| stm32f411ce_blackpill                         |   -    |       9       |
| stm32f411ve_discovery                         |   -    |       6       |
| stm32f412zg_discovery                         |   -    |       0       |
| stringcar_m0_express                          |   -    |       0       |
| teknikio_bluebird                             |   -    |       0       |
| trellis_m4_express                            |   91   |       7       |
| trinket_m0                                    |  350   |      39       |
| trinket_m0_haxpress                           |   -    |       0       |
| uchip                                         |   22   |       0       |
| ugame10                                       |   24   |       0       |
| winterbloom_sol                               |   -    |       0       |
| xinabox_cc03                                  |   -    |       0       |
| xinabox_cs11                                  |   -    |       0       |
| ----------------------------------------------|--------|---------------|
|                                         Total |  4147  |     1599      |
| ----------------------------------------------|--------|---------------|


Download stats by language:


| Board            | 4.1.2  | 5.0.0-beta.2  |
| -----------------|--------|---------------|
| ID               |  138   |       0       |
| de_DE            |  226   |      26       |
| en_US            |  2617  |     1535      |
| en_x_pirate      |  148   |       5       |
| es               |  150   |       4       |
| fil              |  133   |       0       |
| fr               |  178   |      15       |
| it_IT            |  144   |       6       |
| ko               |   -    |       0       |
| pl               |  135   |       2       |
| pt_BR            |  141   |       0       |
| zh_Latn_pinyin   |  137   |       6       |
| -----------------|--------|---------------|
|            Total |  4147  |     1599      |
| -----------------|--------|---------------|


### 18:07 Libraries
* 125 pull requests merged
  * 8 authors - tannewt, brentru, makermelissa, philippkeller, dherrada, kattni, CollinCunningham, Ferroin
  * 6 reviewers - brentru, dherrada, makermelissa, ladyada, siddacious, jepler
* 58 open pull requests
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/6 (Open 379 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5 (Open 364 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/1 (Open 338 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11 (Open 327 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/6 (Open 314 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/9 (Open 299 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20 (Open 277 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6 (Open 265 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/8 (Open 265 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57 (Open 241 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34 (Open 238 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30 (Open 238 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/18 (Open 164 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MotorKit/pull/19 (Open 164 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/10 (Open 146 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/66 (Open 137 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/69 (Open 134 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP9808/pull/20 (Open 99 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/71 (Open 94 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/pull/41 (Open 85 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_WSGI/pull/2 (Open 83 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_HT16K33/pull/41 (Open 76 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/22 (Open 76 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/40 (Open 76 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_VL53L0X/pull/12 (Open 51 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/59 (Open 35 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/42 (Open 35 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/58 (Open 34 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_HID/pull/43 (Open 18 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/15 (Open 17 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/63 (Open 14 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/29 (Open 9 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/49 (Open 9 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel_SPI/pull/7 (Open 7 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_SSD1306/pull/36 (Open 6 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_miniesptool/pull/14 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_VCNL4010/pull/8 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_STMPE610/pull/10 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Pypixelbuf/pull/3 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MAX9744/pull/9 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_DS3502/pull/2 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CAP1188/pull/12 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MLX90614/pull/14 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MatrixKeypad/pull/8 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP4725/pull/11 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_IRRemote/pull/29 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_DS18X20/pull/16 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP9600/pull/9 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MLX90640/pull/5 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/216 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_seesaw/pull/45 (Open 3 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/18 (Open 2 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Thermal_Printer/pull/12 (Open 1 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO/pull/51 (Open 1 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_miniQR/pull/12 (Open 1 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyBadger/pull/16 (Open 1 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/83 (Open 1 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PN532/pull/29 (Open 0 days)
* 8 closed issues by 3 people, 7 opened by 7 people
* 140 open issues
  * https://circuitpython.org/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_HT16K33](https://github.com/adafruit/Adafruit_CircuitPython_HT16K33)
 * [Adafruit_CircuitPython_LIS2MDL](https://github.com/adafruit/Adafruit_CircuitPython_LIS2MDL)
 * [Adafruit_CircuitPython_AWS_IOT](https://github.com/adafruit/Adafruit_CircuitPython_AWS_IOT)
 * [Adafruit_CircuitPython_RGB_Display](https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display)
 * [Adafruit_Blinka](https://github.com/adafruit/Adafruit_Blinka)
### 20:30 Blinka
* 2 pull requests merged
  * 1 authors - makermelissa
  * 2 reviewers - ladyada, makermelissa
* 2 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/147 (Open 145 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/201 (Open 20 days)
* 1 closed issues by 1 people, 1 opened by 1 people
* 26 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 1381
Number of supported boards: 55

## 22:03 Hug Reports

22:50 @tannewt
* @kattni for doing newsletter and notes-only meeting over the holidays.
* @krayola for pixelbuf!
* @jerryn for moderating over the holidays.
* @arturo182 for pushing the iMX RT bootloader!
* Uwe from sigrok for help on IRC
* Everyone who did #circuitpython2020 posts



25:51 @android_ninja [text only, no mic today]
* @hathach for getting me pointed in the right direction for BLE comms
* @Luminescentsimian for Android testing and feedback
* @jerryn for Android testing and feedback
* @tannewt, Collin, and Trevor (sorry don’t know @handles) for getting me in touch and sending along assets and videos from the iOS Bluefruit Playground app


@anecdata (lurking)


@Anne B (lurking)


26:47 @brentru
* @dheredda for work on migrating Travis to Actions (and forcing me to learn actions for the migration, it’s great and really quick!)
* @cater for DisplayIO guide, valuable reference that I’ve looked at multiple times
* @jerryn for MiniMQTT client identifier PR
* @Cgrover for their work on the AMG camera, I used a similar thermal for the Jupyter + Circuit python guide and am taking mental notes as you go about how to make it even more featured.
* Everyone for writing #CircuitPython2020 posts, read through a lot of them, still more to get to. Especially liked @jepler’s time post (learned a lot) and @stargirl’s thought on packaging
* Group Hug!


28:07 @CGrover (text only)
* Group hug with an extra layer of appreciation for the folks that built and contributed to displayio.


28:23 @charlesburnaford
* Group hug because I haven’t been doing a whole lot. Still working on various MIDI projects. Been getting information from various people, thank you.


@dakotah.redstone (lurking)


29:08 @danh
* @krayola for pixelbuf: a lot of work, many connections to other things, very worth it!
* @dherrada for massive conversion of libraries from Travis to GitHub Actions.
* @GathererA for working on a port of https://github.com/v923z/micropython-ulab (a mini-numpy) to CircuitPython, and for @v923z (author of ulab) for willingness to consider changes for CPy.


30:47 @deshipu (text only)
* @danh for help with the USB HID output report handling code.
* @tannewt for review and great suggestions for a better interface.


31:05 @Drew Fustini
* Thanks to Melissa for reviewing one of my PRs for the BeagleBone in Blinka and pointing out some issues with it.


31:22 @hierophect
* Group hug and a happy new year!
* @jepler & @tannewt for guidance on UF2
* Thanks to the kittenbot team for getting back to me, hopefully seeing more of them to help with MeowBit support


32:18 @hukuzatuna (aka Phil M) [text only today]
* Group hug: Happy New Year!
* General hug: all who have participated in useful discussions and witty banter on Discord.
* @makermelissa for helping debug a transient CPB+Gizmo displayIO(?) bug
* @andon and @madbodger for advising on good PCB design practices
* @jerryn for fixing the STM32F str.encode() bug


@JacobT (lurking)


33:04 @jasonp
* @danh, @stargirl & @tannewt for help way, way back before the holidays with a local CP build
* @kattni for the GitHub learn guide
* @johnpark for the brief Winterbloom Sol demo - I’m fascinated by eurorack stuff but know next to nothing about it - and to @stargirl for the design.  Very nice.
* Group hug


34:55 @jepler
* Group hug
* Double group hug to everyone who wrote #circuitpython2020 blog entries
* @adafruit wow that was an inspiring summary in the community news!
* @tannewt and @sommersoft for filling me in when I was factually inaccurate
* @android_ninja for diving in with this new Android BLE app and @Luminescentsimian for feedback (unfamiliar names to me) -- this is the kind of awesome I love to see in the community
* @nis for reaching out to me with a question about automatically created files in CIRCUITPY filesystem
* @anne b for help with my first blog post on adafruit (I now have two under my belt :woohoo:)
* @danh and @tannewt for PR reviews


36:35 @jerryn
* Group hug. Happy New Year!
* @android_ninja for the amazingly quick development of an Android version of the Bluefruit Playground App.


37:05 @kattni
* @krayola for getting _pixelbuf and Pypixelbuf merged - super excited for super fast animations! As well, for all the work on the LED Animations library - thank you for making our xmas tree an amazing display!
* @dherrada for getting all the CircuitPython libs moved over to actions - my email inbox is exploding with PRs and it’s great to see.
* @MakerMelissa for a super thorough review late on Friday of a PR needed for me to finish updating a guide, thanks much for that.
* @community moderators for keeping up with things over the holidays, especially @jerryn for keeping up with things. It was great to be able to have some downtime over the holiday and know that things were taken care of.
* @android_ninja for asking about an Android version of the new Circuit Playground Bluefruit app and then writing it when it turned out we didn’t have it yet
* @danh for a really helpful discussion over the holidays.
* Everyone writing CircuitPython2020 posts, thank you for your input and ideas.
* Everyone who has participated in CircuitPython through 2019 in any way, from commenting in Discord to contributing code to the core and libraries; you make CP what it is and I’m looking forward to an even more amazing 2020. Thank you so much!


39:49 @krayola (absent)
* Group hug.  Happy new year.  Happy new decade.
* @tannewt for his PR review - we finally got the pixelbuf API changes merged!
* @kattni and @siddacious for help getting PyPixelBuf ready to merge
* @tannewt and @danh for looking at the nRF soft device crashes and helping me figure out why neopixel_write was triggering it (memory fragmentation).


40:22 @makermelissa
* @ladyada for handling all the new issues and PRs while I was out. I saw that there were a lot.
* @dherrada for the massive number of Github Actions CI conversions you did over the past couple of weeks.
* @sommersoft for fixing merge conflicts on a PR twice
* Group Hug


@marius_450  (lurking)


40:58 @ntoll (won’t be in meeting today - dad taxi duties)
* General group hug to wish everyone a flourishing 2020.


@Sai (lurking)


41:11 @siddacious - offline, please read
* Krayola for making progress on and merging a bunch of long term PRs around PixelBuf
* Dylan/@dherrada for continuing to make progress slogging through manually updating and creating PRs for the migration of the CircuitPython libs to github Actions 
* @cgrover for an awesome Thermal Camera app for the PyGamer and GridEye; pretty much just worked!
* @makermelissa and Noe for help with my new, first 3D printer. I knew I was buying a science project and not an actual printer but wow


41:55 @sommersoft (text only)
* Everyone who put up #CircuitPython2020 submissions.
* @dherrada for pushing all of the GitHub Actions migrations. Updating every library manually is mind-numbing, so thanks for tackling that.
* Hap-Hap-Happy New Year's Group Hug!


42:20 @tammymakesthings (won’t be on the call today - medical appointment)
* Tony DiCola for the “Porting an Arduino library to CircuitPython” guide, which is proving invaluable right now
* Everyone who wrote the displayio library and documentation - now that I’ve figured out all the layers of abstraction, it’s making the UI part of my current project much simpler\
* Group hug for an amazing 2020!

## 42:56 Status Updates
@anecdata (lurking)


@Anne B (lurking)


43:14 @tannewt
* Update gcc-arm in homebrew cask
* Playing around with making an easy logic analyzer
   * Github sponsor me!
* Need to finish up HID library change and examples
* Pushed PR for PacketBuffer
* Need to create lint PR for Apple Media Service library
* BLE Midi
* #circuitpython2020 post
* Work on pycascades presentation


46:20 @brentru
* Very short week, worked thurs/fri
   * Built up a PyPortal Two-Factor Authentication “Friend” 
      * Super useful, don’t need to go reaching for my phone at my desk anymore
      * Guide out by this Wed.
* Building up...another Planter Guide(!) for a collaboration with Noe/Pedro: This one will have a 3D printed pot, graphics to show how the saturation level of the roots system works with Adafruit IO, and more.. 
* Life stuff - Next week I’m moving to Massachusetts (again!). I’m transferring to a different masters program which I feel is a better fit for me and will allow me to work on a thesis under a great advisor. I’ll be switching to a 100% remote contractor, though I’ll really miss working at Adafruit HQ.. 
   * Will be AFK a bunch next week as I go north


48:14 @CGrover (text only)
* Wrapped up the code and primary documentation for the AMG8833 Thermal Camera project (started out as the humble Dryer Duct Monitor project and gained a life of its own). The camera features interactively adjustable range along with snapshot, histogram, and focus modes. Default range and alarm setup values are derived from a configuration file so that the primary code can be compiled to bytecode. The camera code automatically configures for a PyGamer or PyBadge. Gained an appreciation for displayio during the development process. Haven’t tested it on an EdgeBadge yet, but expect it to behave like the PyBadge (when running CircuitPython). (Twitter post) (GitHub repo)
* I’ll be back in the recording studio this week and some of the next, putting the final wrap on some tracks. So, the three pending purple PCBs will have to be content just staring at me, knowing they’ll get some attention later. Might slip in some robotics platform coding in my spare time. Don’t tell the purple PCBs.


49:24 @charlesburnaford
* Nothing much to report in the way of progress on anything other than someone spoke of dealing with keyboard matrices, that’s where I’m stuck.
* Also need to create drawbars for Hammond B3 emulation
* Good luck and have a good new year!


@dakotah.redstone (lurking & downloading uf2 files!) 


52:00 @danh
* Finished coding BLE bonding and will start testing today. 
* Helping out porting https://github.com/v923z/micropython-ulab (a mini-numpy) to CircuitPython.
* Need to write my CircuitPython 2020 post.


53:24 @deshipu (text only)
* First 20 PewPew M4 arrived today. Sending them to testers.
* The CapsLock USB HID handling mysteriously stopped working for me, investigating.
* Exploring the UF2 bootloader config, more in the weeds.


54:00 @Drew Fustini
* Started looking into issue adding PWM support for BeagleBone, had a PR that MakerMelissa pointed out some issues with, so looking at that again
* Push a commit that we can merge


54:38 @hierophect
* Worked on a PWM issue affecting builds with optimization settings applied. Need to do a more thorough check of all modules to make sure there isn’t anything else that could be similarly affected across the STM32 boards
* Worked on the Meowbit bootloader UF2 settings, chatting with the Kittenbot team about how to best deal with some of the memory issues we’re hitting
* Chatted with my friend Don here in Boston about scientific applications of Circuitpython. We’re working on a joint Circuitpython 2020 post. 
* This week: optimization testing, busio issue fixes, and hopefully some revamping of internal flash in preparation for a string of boards with no external flash, including the Espruinos and F405 Discovery board. 


57:08 @hukuzatuna [text only]
* Actual work: adafruit_circuitpython_sphero library development
   * Dug out my Sphero collection and mapped the BLE complete.name feature to robot type.
   * Worked on BLE connection and what to do from a user-input perspective if multiple robots are available.
* Distractions:
   * Job hunting
   * CPB + Gizmo bug where a long loop to implement the NetLogo forest fire code in CircuitPython runs for a random length of time before dying. Issue opened, @makermelissa helping, now trying to figure out next analysis steps.
   * Designing breakout board using the AS3935 lightning detector to (surprise) detect lightning. Actually figured out circuit design and BOM creation.Still have some circuits to design and then I’ll have boards built.
   * Massive temperature/pressure sensor comparison. Final four boards arriving today, so I have at least one of every sensor Adafruit makes.
   * CPU temperature monitor in AdafruitIO.
   * Helping some new Discord users with “how do I…?” questions and advising folks in #machine-learning.


@JacobT (lurking)


58:30 @jasonp
* Evo M51 board development continues
   * Works with Arduino
   * Runs CircuitPython
   * SAMD/FPGA interface work ongoing
* Dismantled my wife’s flashlight because the front lens was the perfect magnifier for my TFT Gizmo running a variety of the “Eye” programs
   * This was a hit with the college kids hanging around our house New Year’s Eve
   * Especially the engineering students


1:00:26 @jepler
* During break:
   * Lots of work on JEplayer - it now plays all weekend without lockups or memory errors
   * Led to several unrelated commits in one big PR
   * #circuitpython2020 blog entry
   * Improved documentation of adafruit_seesaw module, added ability to do pull-downs to the DigitalInOut-compatible class, converted seesaw (firmware) to github actions
   * Over at KMK submitted a PR to allow seesaw I/Os to be used for matrix scanning
* This week:
   * Introduce audiomixer to JEplayer for volume control
   * Respond to review comments on the “for-jeplayer” circuitpython changes
      * Renaming MP3File to MP3Decoder so that a mutable .file property isn’t nonsense
   * Respond to review comments on a PR for avoiding disk I/O lockup
* Ongoing fun projects:
   * Keyboard wiring 3/4 complete, then need to write KMK layout module and should be good to go -- Initially Itsy M4, will upgrade to Itsy nRF soon
   * Seesaw work is tangentially related to this, except it turns out to be unneeded for my keyboard layout


1:03:01 @jerryn
* Mostly working on adding “reliable datagram”  mode to RFM9x/69 
   * Close, but still working through some issues especially on RPi
   * Not sure how reliable -- reliable is meant to be …. at least now you know
* Found an issue/bug in MiniMQTT library
   * Main issue was only for STM32F405 (.encode not available) 
      * Working on getting it added
   * Minor bug in reading microcontroller.cpu.uid -- fixed
* Played with the new Android Bluefruit Playground App by android_ninja. 
   * Offered some feedback/tests -- looks great!
   * I learned how to record my IPhone screen -- cool!
* This week -- get PR in for Reliable Datagram mode on RFM9x/69


1:05:17 @kattni
* Last week:
   * (Previously) Updated the Circuit Playground library to work with Express and Bluefruit, a single import now works with both boards and imports the appropriate features. Means all examples work with both boards.
   * Updated the documentation in the CP library to use the new import
   * Updated the CircuitPython Made Easy on Circuit Playground Express and Bluefruit guide to support Bluefruit and the CP lib updates
      * All examples are now in the CP lib repo so there is only one place to update from now on
   * Updated examples in Circuit Playground repo to fit guide updates
   * Updated Welcome to CircuitPython guide to point only to circuitpython.org
   * Helped with getting Pypixelbuf ready for merging
* This week:
   * Final review of the CP Made Easy guide before sending it for QA.
   * Update README on Circuit Playground library to use new import and explain requirements for update.
   * PR adding NotImplementedError in Express module for Bluefruit-only features.
   * PR updating sound_meter code to work with Express and Bluefruit
   * Update CPB NeoPixel Animator to have prints optional for Gizmo purposes
   * Add redirect links to the CPX and CPB guides to the CP Made Easy guide
   * Write my CircuitPython 2020 post
   * Start redoing the TB6112 in CircuitPython using Adafruit_CircuitPython_Motor
* Relatively near future:
   * Update README in Circuit Playground library to explain how library works.
   * Guide for LED Animations library including the xmas tree project or a less holiday-specific example


1:12:22 @krayola (absent)
* Last two weeks:
   * Fought with and eventually gave up on a native method calling a non-native subclass method (.fill() -> .show()) and created a fill helper that neopixel.py and adafruit_dotstar.py can use.
   * Addressed PR changes for the _pixelbuf work.
   * Dug into and eventually found why neopixel_write with large strips on nRF was crashing with large strips, thanks to help from @danh and @tannewt.  Sent a PR for a fix that reuses the same malloced memory.
   * Finished up Adafruit_CircuitPython_Pypixelbuf - pending merge.
   * Fixed up documentation on Adafruit_CircuitPython_LED_Animation in the more-magic branch.  Needs code review and doc review.
   * Updated the pixelbuf branches of Adafruit_CircuitPython_NeoPixel and Adafruit_CircuitPython_Dotstar to work with the latest pixelbuf changes. Still needs pypixelbuf published so it can be tested.
   * Pushed up my ANSI “neopixel” strip simulator to github https://github.com/rhooper/CircuitPython_TerminalPixels
* This Week:
   * Whatever comes out of PR reviews.


1:13:53 @MakerMelissa
* Last Week:
   * Added some circuitpython.org website features such as displaying the number of boards
   * Worked on trying to narrow down an elusive bug for @hukuzatuna’s Fractal Generator.
   * Finished up writing the PiTFT Animated GIF player and started on the guide for that.
   * Started working on HT16K33 updates and added the set_digit_raw() function to be able to create custom characters.
   * Got my Onion Omega2 setup for adding Blinka and updated the requirements to not install a couple of items that were blocking installation on this platform due to the small memory footprint.
* This Week:
   * Finish writing the Animated Gif Player guide. Should be pretty quick.
   * Test out @sommersoft’s PR for ubuntu on the Raspberry Pi 4
   * Write my CircuitPython 2020 Post
   * Continue updating the HT16K33 library and guides


@marius_450 (lurking)


@Sai (lurking)


1:15:35 @siddacious - offline, please read
* Did a bunch of PR review for Dylan’s Actions PRs
* Editing of the MCP4728 guide to do a better job explaining and giving examples of using Vref
* Worked on adding some Arduino libs to actions
* Got octoprint set up with a nice touchscreen. Bed leveling issues convinced me to get an auto bed leveler
* Next: More driver work!


1:16:12 @sommersoft (text only)
* Last Week:
   * cookiecutter:
      *   Fixed an issue with Github Actions files being parsed as Jinja templates.
      * Wrote some tests that will build from the cookiecutter, so issues like above can be caught during PRs/pushes.
   * Adafruit_Python_PlatformDetect:
      *  Fixed merge conflicts after some other PRs were merged, and re-tested non-Raspbian detection on Ubuntu Server 19.04 & 19.10.
   * RosiePi:
      * Read, read, read. Security & authorization techniques are hard to get a solid grasp on, especially in edge-case designs.
* This Week:
   * More reading, and likely, some more reading.


1:17:05 @tammymakesthings
* Last Week:
   * Ironed out almost all of the UI code for my current project, save one remaining issue I think has to do with global variables; once I sort out what’s wrong, I’ll document it in case other relative newbies trip over the same issue.
   * Began the work of porting the Arduino MAX3010x PulseOx sensor library to CircuitPython
      * Several companies, including Sparkfun, make breakout boards for this sensor. In order to keep things simple and standard, I’m going to develop and test with the MAXIM MAXREFDES117 reference board because it’s standard and available for under $20 from Digi-Key and the other usual places.
      * The interface is I2C, so the various other boards *should* work too, but I want to minimize hardware variation as much as I can.
   * Set up a Medium publication for blogging (https://medium.com/tammy-makes-things)
* This week:
   * Continue working on the MAX3010x library port
      * I want to get the basic library stubbed out and confirm it can talk to the sensor okay
      * Goal is to have V1 of the port done and V1 of my current project Show & Tell-worthy by the end of February
      * The sensor module provides an interrupt line. I’m trying to determine if my implementation uses that for anything. If not, I’d like to see if I can make the sensor connection via STEMMA.
   * Fix the one remaining bug in the UI code for my current project, so the only remaining dependency it has is on the MAX3010x library
      * I may also change the hardware configuration from PyBadge+sensor to CPX+TFT Gizmo
   * Write a #CircuitPython2020 blog post


## 1:18:56 In the Weeds
1:19:19 @jepler
I think there’s something I’m missing about “everything but foreground tasks” (which I keep referring to as background tasks, but I think also includes interrupts).  How can I better get oriented so I can answer Dan’s questions and get https://github.com/adafruit/circuitpython/pull/2446 to mergeable status?


1:39:26 @deshipu
The UF2 bootloader has some configuration built into it, including the values for the display initialization. They are easy to read in code, and if we used them in the display initialization, we could share the same uf2 for devices with different displays, as the differences would only be in the bootloader. I made a pull request for PewPew M4 that makes it take the offsets for the display from the bootloader, because the production devices I received have different display than the prototypes I used, and I really don’t want separate firmware for them. But this could be used in a more general way, maybe even replacing pins.h.
## 1:42:20 Wrap-up
