# NOTES ONLY EDITION
# CircuitPython Weekly for 27 December 2019
### This is a notes only meeting! There is no recording of this meeting. The next recorded meeting on Discord will occur on 6 January 2020.


**Thank you all for your participation in and amazing contributions to the CircuitPython project in 2019. Code + Community = CircuitPython. We can write the code, but without your involvement, we can’t truly make it CircuitPython. The past year saw many new contributors to both the core and the libraries, as well as the continued contributions of those already involved. We had a number of new releases up to 5.0.0-beta.2, and passed 200 CircuitPython libraries. We now have nearly 100 CircuitPython supported boards available on circuitpython.org/downloads, many of which have been submitted by community members. That this project has continued to grow at such a rate is a testament to the importance of the community being a part of it. We deeply appreciate everything you do and we look forward to another fantastic year of Code + Community!**


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. The next Discord meeting will be on 6 January 2020.


CircuitPython development is sponsored by Adafruit. Please support them by purchasing hardware from https://adafruit.com.


## Community News


94 boards on Circuitpython.org, 100 here we come!
        https://circuitpython.org/downloads 


Lots of releases!
* MicroPython 1.12 release
https://forum.micropython.org/viewtopic.php?f=8&t=7430 


* CircuitPython 4.1.2 released
https://github.com/adafruit/circuitpython/releases/tag/4.1.2 


* CircuitPython 5.0.0 Beta 2 released
https://github.com/adafruit/circuitpython/releases 


* Bluefruit Playground released!
https://apps.apple.com/us/app/bluefruit-playground/id1489549571 
https://learn.adafruit.com/bluefruit-playground-app 


Make music with CircuitPython - HackSpace Magazine
        https://hackspace.raspberrypi.org/issues/26 


Take Flight with Feather - Hackaday and Digi-Key
        Last week or so to enter, there are over 60 entries!
        https://hackaday.io/contest/168107-take-flight-with-feather 


A Beginner's Guide to Microcontrollers by Jen Fox, Foxbot Industries
        https://www.magcloud.com/browse/issue/1703906?__r=2203689 


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/ 


Show and tell, Ask an Engineer, will be live on Xmas day and New Year’s Day.


DRAFT here! issues/PRs and news/links welcome!
        https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2019-12-24-draft.md 


## State of CircuitPython + Libraries


### Overall
* 40 pull requests merged
  * 9 authors - dhalbert, hathach, tannewt, jerryneedell, dherrada, hierophect, makermelissa, brentru, jepler
  * 7 reviewers - dhalbert, hathach, tannewt, ladyada, siddacious, makermelissa, brentru
* 13 closed issues by 8 people, 8 opened by 8 people


### Core


* 10 pull requests merged
  * 7 authors - dhalbert, makermelissa, hathach, tannewt, jerryneedell, jepler, hierophect
  * 5 reviewers - dhalbert, makermelissa, hathach, tannewt, ladyada
* 9 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2034 (Open 145 days)
  * https://github.com/adafruit/circuitpython/pull/2044 (Open 141 days)
  * https://github.com/adafruit/circuitpython/pull/2054 (Open 138 days)
  * https://github.com/adafruit/circuitpython/pull/2366 (Open 17 days)
  * https://github.com/adafruit/circuitpython/pull/2367 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/2404 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/2416 (Open 6 days)
  * https://github.com/adafruit/circuitpython/pull/2423 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/2428 (Open 1 days)
* 8 closed issues by 5 people, 4 opened by 4 people
* 207 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: 13 open issues
  * 6.0.0: 3 open issues
  * Libraries: 9 open issues
  * Long term: 157 open issues
  * 9 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                               |   1    |       0       |
| arduino_mkrzero                               |   3    |       0       |
| arduino_nano_33_ble                           |   -    |       4       |
| arduino_zero                                  |   8    |       2       |
| bast_pro_mini_m0                              |   0    |       0       |
| capablerobot_usbhub                           |   0    |       0       |
| catwan_usbstick                               |   0    |       0       |
| circuitplayground_bluefruit                   |   -    |      533      |
| circuitplayground_express                     |  352   |      30       |
| circuitplayground_express_4h                  |   11   |       0       |
| circuitplayground_express_crickit             |   29   |       5       |
| circuitplayground_express_digikey_pycon2019   |   18   |       0       |
| circuitplayground_express_displayio           |   -    |      32       |
| cp32-m4                                       |   -    |       0       |
| datalore_ip_m4                                |   -    |       0       |
| datum_distance                                |   0    |       0       |
| datum_imu                                     |   0    |       0       |
| datum_light                                   |   0    |       0       |
| datum_weather                                 |   2    |       0       |
| edgebadge                                     |   -    |       9       |
| electronut_labs_blip                          |   0    |       0       |
| electronut_labs_papyr                         |   1    |       0       |
| escornabot_makech                             |   0    |       0       |
| feather_m0_adalogger                          |   6    |       2       |
| feather_m0_basic                              |   13   |       1       |
| feather_m0_express                            |   37   |       7       |
| feather_m0_express_crickit                    |   2    |       0       |
| feather_m0_rfm69                              |   6    |       0       |
| feather_m0_rfm9x                              |   15   |       3       |
| feather_m0_supersized                         |   -    |       0       |
| feather_m4_express                            |   88   |      30       |
| feather_nrf52840_express                      |   13   |      12       |
| feather_radiofruit_zigbee                     |   0    |       0       |
| feather_stm32f405_express                     |   -    |      23       |
| gemma_m0                                      |   39   |       2       |
| gemma_m0_pycon2018                            |   1    |       0       |
| grandcentral_m4_express                       |   23   |       3       |
| hallowing_m0_express                          |   19   |       3       |
| hallowing_m4_express                          |   8    |       1       |
| itsybitsy_m0_express                          |   40   |       2       |
| itsybitsy_m4_express                          |   42   |       7       |
| itsybitsy_nrf52840_express                    |   -    |       0       |
| kicksat-sprite                                |   1    |       0       |
| makerdiary_nrf52840_mdk                       |   1    |       0       |
| makerdiary_nrf52840_mdk_usb_dongle            |   2    |       0       |
| meowmeow                                      |   1    |       0       |
| metro_m0_express                              |   31   |       8       |
| metro_m4_airlift_lite                         |   13   |       3       |
| metro_m4_express                              |   21   |       4       |
| metro_nrf52840_express                        |   -    |       0       |
| mini_sam_m4                                   |   1    |       0       |
| monster_m4sk                                  |   -    |      10       |
| particle_argon                                |   1    |       0       |
| particle_boron                                |   0    |       0       |
| particle_xenon                                |   0    |       0       |
| pca10056                                      |   6    |       3       |
| pca10059                                      |   10   |       1       |
| pewpew10                                      |   9    |       1       |
| pewpew13                                      |   0    |       0       |
| pewpew_m4                                     |   -    |       0       |
| pirkey_m0                                     |   0    |       0       |
| pyb_nano_v2                                   |   -    |       2       |
| pybadge                                       |   29   |       3       |
| pybadge_airlift                               |   2    |       0       |
| pyboard_v11                                   |   -    |       2       |
| pygamer                                       |   36   |       3       |
| pygamer_advance                               |   0    |       0       |
| pyportal                                      |  109   |      18       |
| pyportal_pynt                                 |   -    |      11       |
| pyportal_titano                               |   -    |      23       |
| pyruler                                       |   7    |       0       |
| robohatmm1                                    |   3    |       -       |
| robohatmm1_m4                                 |   -    |       4       |
| sam32                                         |   0    |       0       |
| serpente                                      |   -    |       4       |
| shirtty                                       |   -    |       0       |
| snekboard                                     |   -    |       0       |
| sparkfun_lumidrive                            |   1    |       0       |
| sparkfun_nrf52840_mini                        |   1    |       2       |
| sparkfun_qwiic_micro_no_flash                 |   -    |       0       |
| sparkfun_qwiic_micro_with_flash               |   -    |       1       |
| sparkfun_redboard_turbo                       |   2    |       1       |
| sparkfun_samd21_dev                           |   1    |       0       |
| sparkfun_samd21_mini                          |   2    |       0       |
| stm32f411ce_blackpill                         |   -    |       2       |
| stm32f411ve_discovery                         |   -    |       1       |
| stm32f412zg_discovery                         |   -    |       0       |
| stringcar_m0_express                          |   -    |       0       |
| teknikio_bluebird                             |   -    |       0       |
| trellis_m4_express                            |   34   |       4       |
| trinket_m0                                    |  164   |      15       |
| trinket_m0_haxpress                           |   -    |       0       |
| uchip                                         |   0    |       0       |
| ugame10                                       |   2    |       0       |
| winterbloom_sol                               |   -    |       0       |
| xinabox_cc03                                  |   -    |       0       |
| xinabox_cs11                                  |   -    |       0       |
| ----------------------------------------------|--------|---------------|
|                                         Total |  1267  |      837      |
| ----------------------------------------------|--------|---------------|


Download stats by language:


| Board            | 4.1.2  | 5.0.0-beta.2  |
| -----------------|--------|---------------|
| ID               |   8    |       0       |
| de_DE            |   47   |       2       |
| en_US            |  1127  |      819      |
| en_x_pirate      |   16   |       1       |
| es               |   14   |       4       |
| fil              |   3    |       0       |
| fr               |   28   |       9       |
| it_IT            |   7    |       2       |
| ko               |   -    |       0       |
| pl               |   5    |       0       |
| pt_BR            |   9    |       0       |
| zh_Latn_pinyin   |   3    |       0       |
| -----------------|--------|---------------|
|            Total |  1267  |      837      |
| -----------------|--------|---------------|




### Libraries


* 30 pull requests merged
  * 4 authors - makermelissa, brentru, tannewt, dherrada
  * 4 reviewers - makermelissa, brentru, siddacious, ladyada
* 44 open pull requests
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/6 (Open 369 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5 (Open 354 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/1 (Open 328 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11 (Open 317 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/6 (Open 304 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/9 (Open 289 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20 (Open 267 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6 (Open 255 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/8 (Open 255 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57 (Open 231 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30 (Open 228 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34 (Open 228 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/18 (Open 154 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MotorKit/pull/19 (Open 154 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/10 (Open 136 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/66 (Open 127 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/69 (Open 124 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MCP9808/pull/20 (Open 89 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/71 (Open 84 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_AM2320/pull/9 (Open 79 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/pull/41 (Open 75 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_WSGI/pull/2 (Open 73 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_HT16K33/pull/41 (Open 66 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/40 (Open 66 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/22 (Open 65 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_VL53L0X/pull/12 (Open 41 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/42 (Open 25 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/59 (Open 25 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/pull/53 (Open 24 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/58 (Open 24 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_HID/pull/43 (Open 8 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/15 (Open 7 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/pull/63 (Open 4 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_VL53L0X/pull/13 (Open 3 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_RSA/pull/6 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_Pixie/pull/14 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PCF8523/pull/14 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_OneWire/pull/17 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PCT2075/pull/5 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PN532/pull/27 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_PCD8544/pull/9 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_RA8875/pull/17 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_RFM69/pull/21 (Open 0 days)
  * https://github.com/adafruit/Adafruit_CircuitPython_RFM9x/pull/35 (Open 0 days)
* 5 closed issues by 5 people, 4 opened by 4 people
* 136 open issues
  * https://circuitpython.org/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_PYOA](https://github.com/adafruit/Adafruit_CircuitPython_PYOA)
 * [Adafruit_CircuitPython_VEML6070](https://github.com/adafruit/Adafruit_CircuitPython_VEML6070)
 * [Adafruit_CircuitPython_US100](https://github.com/adafruit/Adafruit_CircuitPython_US100)
 * [Adafruit_CircuitPython_SGP30](https://github.com/adafruit/Adafruit_CircuitPython_SGP30)
 * [Adafruit_CircuitPython_BusDevice](https://github.com/adafruit/Adafruit_CircuitPython_BusDevice)
 * [Adafruit_CircuitPython_FeatherWing](https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing)


Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 2 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/147 (Open 135 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/201 (Open 10 days)
* 1 closed issues by 1 people, 0 opened by 0 people
* 24 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 2208
Number of supported boards: 53






## Hug reports


@brentru
* @cater for MCP2221 work!
* @tannewt @danh @jepler and everyone involved with the CircuitPython core for Beta 2!
* @jerryn for speedy test of updated nina-fw
* @kattni @krayola for LED tree, still getting over that...


@CGrover
* Holiday group hug and a wish for peace and happiness to the team and community. Congratulations on the Beta-2 release!
* @MakerMelissa for her exceptionally helpful PyPortal Calculator guide. The way she logically walked through the code helped me to break through my “learning Displayio” impasse.


@danh
* Thanks to @tannewt for beta 2, and for the testers.
* Thanks to @heymanrl for a detailed report on issues with random flash writes on SAMD51 boards, which may be related to the bootloader.


@devoh
* Group hug for Beta 2!


@jepler
* Group hug


@jerryn
* Group hug!
* @tannewt and the whole team for getting Beta-2 out
* @hathatch for the quick fix to the STM32F405 issue with Beta-2


@kattni
* Thanks to everyone involved with getting beta.2 out - a lot of fixes and updates went into this and all are greatly appreciated!
* @DanH for all his help with getting the Circuit Playground library updated in the Circuit Playground Express build of CircuitPython - between helping with updating the library in the first place, releasing a new 4.1.2 stable, and getting the updated frozen module into 5.x, as well as creating a bunch of builds with different stack sizes for testing purposes so I could test everything and sort what changes needed to be made. Thank you so much!
* @krayola for all the work going into the LED Animations library and Pixelbuf, for finding sparkly dark purple 3D printing filament, and for making our xmas tree an absolutely amazing LED display.
* Adafruit Learn Dev for always being quick with resolutions when issues come up - I’m rarely down for more than a short time when something goes awry in the Learn system, thanks!
* @MakerMelissa, @sommersoft, @siddacious, @dherrada for the excellent discussion regarding implementing some features into the GitHub Actions migration.
* Group hug to the community and Adafruit for another amazing year. I’m looking forward to continuing this adventure in 2020. Thank you everyone for being a part of this!


@MakerMelissa
* @siddacious, @sommersoft, and @dherrada for your help with coming up with a solution for the preinstaller script
* Group Hug


@PhilM 
* Many thanks to jerryn who helped me with a weird Beta 2 CircuitPython problem. Between his advice and a few different guides, problem resolved!


@tammymakesthings
* Group hugs for Beta 2


@tannewt
* Kattni for doing all of the newsletter items.


## Status Updates


@brentru
* Semester is OVER! Yay!!
* Spent most of last week doing “secret” adafruit things, will probably materialize before EOY ‘19
* Updated nina-fw to v1.6.0, built on latest esp-idf version. Large security patch along with smaller wifi bug fixes.
* Spent time getting some Jupyter/MCP221+FT232H demos up and running, that’s what I’ll be hacking on this week.


@CGrover
* Made progress on the PyGamer-based Vent Monitor. Just a few more tweaks before starting on the enclosure and mount. CircuitPython is fast enough to work nicely with the 8x8 thermal sensor array wing to produce a useful image and histogram. Teaming Displayio with PyBadger made it fairly easy to get the project working. 
Finished all but one PCB build. Hoping to get to that final one between holiday meals and movies.
* Refining the PyPanel concept code. Used it to get a quick prototype of the Vent Monitor going. The PyPanel concept is very useful for project prototyping and proof-of-concept. Need to further evaluate its impact on performance for memory-constrained or time-critical projects.
 
@danh
* Writing BLE bonding code.
* Debugging a number of issues with the UF2 bootloader, including fuse repair problems and spurious writes to internal flash.


@jepler
The last few weeks:
* Progress on SAMD DMA hang (PRd a possible fix in a submodule)
* Fixed allocation errors in jeplayer with mp3file enhancements
* Still getting scratchiness in specific MP3s
* Continuing with jeplayer development & the core improvements it is driving
* Light pipe digit display project: simple GPIO-based board design works.  Had good success with my first stencil & hot air board soldering!
* Keyboard project: putting off bluetooth for now, going with itsy bitsy m4 -- tenkeyless easiest matrix needs 23 I/Os, will make a smaller matrix when it’s time for bluetooth 


@jerryn
* Making progress on “reliable datagram” mode for the RFM9x 
   * I have a working (mostly) version that still needs lots of testing
   * Encouraging start


@kattni
* Last two weeks:
   * Complicated Fritzing objects - PyPortals Pynt and Titano
   * Easier Fritzing object - Feather eInk Friend
   * Updated eInk guide to include Feather Friend
   * Added Pynt to the PyPortal guide with pinouts images etc
   * Created, wrote and published the PyPortal Titano guide
   * Tested and retested and tested again the Circuit Playground library update on Express with the stack size update etc.
   * Started updating the CircuitPython Made Easy on Circuit Playground Express and Bluefruit guide to use the new imports for the Circuit Playground library so the guide will work with Bluefruit as well.
      * This is a major overhaul as there are a lot of Mu screenshots and in-line code explanation.
      * So far: Red LED and slide switch are updated
   * Mostly off for the holiday
* Today and next week:
   * Python on Hardware newsletter
   * Plan to be back to the usual on 2 January 2019
   * Will be picking up where I left off with the CP Made Easy guide
   * PR the updated sound meter code to work with both CPX and CPB
   * Update the CPB NeoPixel Animator code to have streaming prints optional for Gizmo use
   * CircuitPython Motor Party


@MakerMelissa
* Last Week:
   * Worked on Fixing and testing issue with Arduino Deployments
   * Worked on fixing an issue with CircuitPython Deployments and put a pre-installer script in place
   * Worked on fixing some issues with the Adafruit GFX Library and the ST7735 Mini TFT
   * Updated PYOA library to work on PyPortal Titano
   * Worked on Porting Python Animated Gif Player over to working on a PiTFT
* This Week:
   * Out on vacation all week


@PhilM
*  Completed research and framework for the new adafruit_sphero library to allow Adafruit devices (focusing on CircuitPlayground Bluefruit) to control Sphero robots (focusing on RVR.)


@tammymakesthings
* Began working in earnest on a CircuitPython driver for the MAXIM MAX3010x Pulse Oximeter sensor. I’m porting an Arduino library rather than starting from scratch, but still a lot of foundational stuff I need to learn about, so it’s slow going. I’m sure once I get to the place of “debugging runnable code” I’ll have many questions for the group. :-) 
* Prototyped all of the UI stuff for my next project so that when I get the MAX3010x library working, I can finish it


@tannewt
* Still a pumpkin.
* Two apple pies turned out well.
* Tackled re-organizing the office/desk on Thursday. Now lots of stuff is zip tied under the desk rather than on top. More reorg to do.
* Started testing out RS232 featherwing I made for interfacing with AV equipment. Having UART troubles on nRF and need to debug it and the hardware.
* Updated gameboy branch and need to swap to DMAing from backup RAM.
* Back to regularly scheduled email, reviews and bluetooth work on 1/2/2020 (next Thursday.) Figured out issue with Apple Media Service (write WITH response only.) So PacketBuffer will be ready for PR shortly. Also need to determine how to know if an AMS attribute is unavailable.
* Planning to do #circuitpython2020 kick off post for 1/1/2020 and will follow up with my own take by the ⅙ meeting.
## In The Weeds
**As this is a notes-only meeting, please save your In the Weeds topics for the next recorded meeting!**


## Wrap-Up
**Reminder: The next recorded meeting on Discord will occur 6 January 2019.**


**Thank you again, everyone, for your incredible contributions in 2019. Keep it up for 2020! We’ll see you in the new year!**
