Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
559 lines (417 sloc) 27.7 KB

CircuitPython Weekly November 25th, 2019

Video of the meeting is available on YouTube and on

Join here for the chat all week:

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

Reminders: Podcast available on most services. Let us know if we’re missing some.

4:04 Community News

CircuitPython 5.0.0 Beta 0 released! This is release 5.0.0 beta.0. Beta releases are largely feature-complete, but are meant for testing. Use the latest stable 4.x release when first starting with CircuitPython. When you find a bug please check the current known issues and file an issue if something isn't already known. 5.0.0 is the latest major revision of CircuitPython. It features many improvements and enhancements to displayio, including grayscale OLED and e-paper displays, extensive additions and changes to BLE support, support for the STM32F4 and Sony Spresense microcontrollers, and PWM audio support. Downloads are available from! The site makes it easy to select the correct file and language for your board. The downloads page is here:

Python snakes its way to more newsstands:

Take Flight with Feather - Hackaday and Digi-Key, now 33+ entries:

MAKER CHRISTMAS PRESENTS – Issue 25 – HackSpace magazine: Maker Christmas! TONS OF PYTHON THIS ISSUE!

"it blew people’s minds to see how easy circuitpython is to use."

CircuitPython sculpture clock adds character to any desk:

Nice post up at Embedded Computing Design: " was especially neat to run into Scott Shawcroft, who was introduced as pretty much being “CircuitPython,” the language that’s used to program the Adafruit Edge Badges that we received. These badges are conveniently set up so that when plugged in you can open up the program as a text file and make modifications."

Latest batch of SAM32 fresh out of the oven CircuitPython powered SAMD51 with an ESP32 coprocessor and SD card. Open source and documented:

BastWAN with SMR34 compatible with CircuitPython from Electronic Cats:

deshipu showed off the latest prototype of PewPew M4 at the HeroFest: The Gaming-, Esports and Cosplay-Festival in the BERNEXPO!

DRAFT, ships tues!

Happy Holidays!

11:17 State of CircuitPython + Libraries

11:35 Overall

  • 21 pull requests merged
    • 9 authors - kattni, dhalbert, tayden, Johennes, tannewt, cbyr2401, rafa-gould, makermelissa, hierophect
    • 6 reviewers - kattni, dhalbert, ladyada, tannewt, jepler, makermelissa
  • 19 closed issues by 7 people, 7 opened by 7 people

Overall: Dan released 5.0 beta 0, has new bleio changes in it. Getting closer to seeing 5.0 as stable. Cool stuff with BLE. Please play around with the new changes. Let us know what you find. If you have random BLE devices around your house, let us know what you have.

13:30 Core

Download stats by board:

Board 4.1.0 5.0.0-beta.0
arduino_mkr1300 115 0
arduino_mkrzero 74 0
arduino_nano_33_ble - 10
arduino_zero 172 1
bast_pro_mini_m0 17 1
capablerobot_usbhub 15 0
catwan_usbstick 18 0
circuitplayground_bluefruit - 31
circuitplayground_express 6122 17
circuitplayground_express_4h 42 0
circuitplayground_express_crickit 278 2
circuitplayground_express_digikey_pycon2019 24 0
circuitplayground_express_displayio - 2
cp32-m4 - 0
datalore_ip_m4 - 0
datum_distance 16 0
datum_imu 19 0
datum_light 14 0
datum_weather 18 0
electronut_labs_blip 18 0
electronut_labs_papyr 14 0
escornabot_makech 16 0
feather_m0_adalogger 337 0
feather_m0_basic 249 0
feather_m0_express 755 8
feather_m0_express_crickit 36 0
feather_m0_rfm69 117 0
feather_m0_rfm9x 245 0
feather_m0_supersized - 0
feather_m4_express 1150 15
feather_nrf52840_express 262 19
feather_radiofruit_zigbee 16 0
feather_stm32f405_express - 14
gemma_m0 685 3
gemma_m0_pycon2018 21 0
grandcentral_m4_express 263 2
hallowing_m0_express 346 1
hallowing_m4_express - 2
itsybitsy_m0_express 381 4
itsybitsy_m4_express 799 7
itsybitsy_nrf52840_express - 0
kicksat-sprite 13 0
makerdiary_nrf52840_mdk 30 2
makerdiary_nrf52840_mdk_usb_dongle 67 0
meowmeow 17 0
metro_m0_express 735 1
metro_m4_airlift_lite 157 3
metro_m4_express 375 6
metro_nrf52840_express - 0
mini_sam_m4 33 0
monster_m4sk - 7
particle_argon 38 1
particle_boron 25 0
particle_xenon 48 1
pca10056 80 1
pca10059 173 3
pewpew10 44 0
pewpew13 14 0
pewpew_m4 - 0
pirkey_m0 15 0
pybadge 432 8
pybadge_airlift 19 0
pyboard_v11 - 4
pygamer 553 1
pygamer_advance 36 1
pyportal 1107 4
pyportal_titano - 0
pyruler 198 1
robohatmm1 15 -
robohatmm1_m0 - 0
robohatmm1_m4 - 1
sam32 43 0
serpente - 3
snekboard - 0
sparkfun_lumidrive 17 0
sparkfun_nrf52840_mini 46 0
sparkfun_qwiic_micro_no_flash - 0
sparkfun_qwiic_micro_with_flash - 0
sparkfun_redboard_turbo 45 0
sparkfun_samd21_dev 34 0
sparkfun_samd21_mini 32 0
stm32f411ve_discovery - 2
stm32f412zg_discovery - 1
stringcar_m0_express - 0
trellis_m4_express 328 2
trinket_m0 1939 15
trinket_m0_haxpress - 0
uchip 18 0
ugame10 35 0
winterbloom_sol - 0
---------------------------------------------- -------- ---------------
Total 19415 207
---------------------------------------------- -------- ---------------

Download stats by language:

Board 4.1.0 5.0.0-beta.0
ID 11 0
de_DE 444 3
en_US 18065 194
en_x_pirate 112 1
es 261 0
fil 15 0
fr 282 8
it_IT 55 0
pl 48 0
pt_BR 67 1
zh_Latn_pinyin 55 0
----------------- -------- ---------------
Total 19415 207
----------------- -------- ---------------

15:13 Libraries

16:53 Hug Reports

23:42 @anneb

  • Thank @kattni been doing a lot of work, she’s just a trooper, big hug
  • Phil who capped us at the top of the hour - did the CP newsletter, biggest yet. Judge them by how many images he puts in, it was 97 images. Huge issue, and what made it great was all the participation at SuperCon.
  • Wonderful on my end watching SuperCon in realtime on social media
  • Hug to @MakerMelissa who worked with Emily on badge hacks
  • Group hug to everyone

25:40 @brentru (lurking)

  • Group hug to everyone working on/with Circuit python!
  • Welcome back @tannewt

@cater (lurking)

@cgrover (lurking)

25:55 @charlesburnaford

  • Group hug and found watching a lot of the social media for SuperCon, found it interesting

26:16 @danh

  • @jepler for bug detection and all the PR’s
  • @hierophect for continued STM32 feature additions and fixes
  • antonio and @hathach for continued work on CPB BLE services app, spec, and server
  • @babygrimes for finding an important and obscure bug in heap management

@JacobT (lurking)

27:36 @jepler

  • @Kattni and @Danh for continuing to get me oriented
  • iayanpahwa and rafa-gould for patience while we worked on your PRs
  • Group hug for everyone who remembers to be grateful this holiday

28:05 @jerryn (missing meeting)

  • Group hug!

28:13 @kattni

  • @MakerMelissa for providing a ton of support on Discord
  • @jerryn for finding an issue in the servo example on the CircuitPython Essentials guide
  • @danh for all the Bluefruit BLE Learn guide code updates
  • @krayola for help with refactoring the Circuit Playground library
  • @danh and @krayola for help with my PyCon tutorial proposal

29:31 @krayola

  • Thanks to @tannewt for the pointer about printing out qstrs in gdb
  • Thanks to @danh and @jepler for their best wishes regarding my concussion recovery
  • Group hug, so much going on I can't keep up with it all!

30:08 @MakerMelissa

  • @ladyada for the TensorFlow guide updates just in time for SuperCon
  • @ladyada for all you reviewing while a bunch of us were at SuperCon
  • @siddacious, @tannewt, and @johnpark for all your help at SuperCon
  • @kattni for keeping things running while we were at SuperCon
  • All the awesome folks I met at SuperCon
  • Supplyframe and Digikey for contributing to another Awesome SuperCon. It was just as fun as last year!

@mscosti (lurking)

18:03 @ntoll (leaving early)

  • Group hug.
  • @tannewt for extended advertisements in BLE so we get longer radio messages.

20:40 @sommersoft (not in meeting)

  • Group Hug!
  • Happy Thanksgiving to any who are celebrating. Hope you enjoy any & all your festivities, and that you get to spend them with family & friends!

@stargirl (lurking/offline)

20:52 @tannewt

  • Thanks to everyone at Supply Frame and Hackaday for hosting an awesome conference!
  • @siddacious, @ladyada, @makermelissa and @johnpark for helping out with Supercon Edge badges.
  • @digikey for funding the Edge Badges.
  • Thanks to @kattni for hosting all of the meetings while I was away
  • Babygrimes for finding and fixing an issue with long living and frozen files.

31:08 Status Updates

35:41 @anneb

38:15 @brentru (lurking)

  • LW: Finished up work on a secret adafruit project, more details in December, got sick (darn you winter!), did a bit of MATLAB work and remembered why I like Python :)
  • TW: Continuing with that project, wrapping it in the next week.

@cater (lurking)

@cgrover (lurking)

38:45 @charlesburnaford

  • I don’t have a whole lot.
  • I started an interesting thing - found an article about tearing apart an old toy keyboard and creating your own MIDI controller out of it. Working on that.

40:20 @danh

  • Revised all the current Learn Guide CircuitPython code to match the new API. Will be showing up soon as PR’s are approved and merged.
  • To do: will be trying out some BLE light bulbs to see which we can control easily.

@JacobT (lurking)

42:07 @jepler Last week:

  • Verified that CircuitPython builds with gcc 9, but some firmware sizes grew too much. Because of this, it may not be possible to accept the PR at this time.
  • Worked on a PR to reduce time spent in background tasks. Need to determine whether this PR causes a regression in USB performance.
  • While trying to benchmark USB performance, found a crashing bug on nRF52840 boards when bulk copying data with dd. Fixed and PRd.
  • Chased down several different bugs in the nRF I2S driver and opened 3 PRs as well as a fresh issue. This week:
  • Get @tannewt’s opinion on whether to finish and accept the gcc9 PR, or close it without merging
  • Finish benchmarking USB speed and hopefully get the background tasks PR merged
  • Continue to shepherd #2299 “Supervisor: create file with sample code”
  • More stuff; I unexpectedly got the nRF I2S stuff to PR status this morning, had expected it to take more time.
  • Definitely won’t work Thursday, but still intend to do 16-20 hours this week Ongoing fun projects:
  • Making a 3d printed keyboard (“sick-68”) - This week: Hoping to complete the row wiring. (Controller will be a teensy 2.0, so no CircuitPython inside. In the next keyboard for sure!)
  • Working on an edge lit digital display - This week: finalize and order PCB layout

45:53 @kattni

  • Last week:
    • Finished up eInk Gizmo guide
    • Updated CPX examples to not use simpleio
    • Refactored the Circuit Playground library and added support for Bluefruit
      • Added two new features to the bluefruit module: loud_sound and sound_level
    • Closed out some GitHub issues
  • This week:
    • A few fritzing objects
      • OLED display STEMMA revs
      • Feather eInk friend (coming soon!)
    • Update Bluefruit guides where needed from Dan’s updates
    • Update my first ever guide! (Piano in the Key of Lime. It is woefully out of date.)
    • Fix typo in Essentials guide on Servo page
    • Short week this week - should be around through Wednesday. Travelling over the weekend.

@KingerNorth (lurking)

50:32 @krayola Last week:

  • Continued working on _pixelbuf subclass support. Submitted a PR for Scott and Dan to look at that no longer breaks the unit tests.
  • Did a bit of work to make NeoPixel and Dotstar libraries work with the new pixelbuf API. This week:
  • Add iterable support to _pixelbuf
  • Add C .fill() to _pixelbuf
  • Clean up NeoPixel and Dotstar subclasses
  • Do compatibility testing of NeoPixel and Dotstar modules
  • Sync pypixelbuf with _pixelbuf

52:10 @hierophect (unable to make meeting this week due to holiday travel) Last week

  • Various bugfixes to SPI, worked on DisplayIO issues
  • New MCU definition for the STM32F401, used in the Meowbit
  • Added board definition for Pyb Nano board (STM32F411)
  • Worked on board definition for a “blackpill” generic F411 board, encountered boot issues This week
  • Out for thanksgiving, will check discord for questions

52:44 @MakerMelissa

  • Last 2 weeks:
    • Worked on Testing and Reviewing EdgeBadge Code
    • Updates the fritzings in a couple of guides that were waiting on the Beta release of CircuitPython
    • Started going through and updating some libraries using displayio to work in CircuitPython 4 and 5
    • Attended SuperCon
    • Got back fromSuperCon on Tuesday
    • Reviewed some PRs
    • Added E-Ink Gizmo to Gizmo library and wrote example
    • Wrote Arduino E-Ink Gizmo Graphics Test example
    • Added E-Ink functionality to ImageReader Library
    • Subclassed E-Ink code in ImageReader Library
    • Wrote Arduino pages for E-Ink Gizmo Guide
  • This Week:
    • Catch up on some outstanding Pull Requests
    • Update PyBadger Code to handle external fonts better
    • Go through and update IS31FL3731 Charlieplexing guides

@mscosti (lurking)

18:46 @ntoll (leaving early)

54:20 @sommersoft (not in meeting)

  • Last week
    • Mostly travel prep and travel.
    • Bits-n-pieces of physaCI’s Azure functions.
  • This week
    • More travel.
    • Bits-n-pieces of physaCI. Maybe.

@stargirl (lurking/offline)

31:34 @tannewt

  • Back from Supercon on Monday.
  • Jumped in and added pairing back. Got Apple Notification Center Service demo going and BLE HID working with Mac.
  • Working Mon-Tuesday and off and on after that. Have an Apple Pie to bake.
  • Helping JP with this week’s BLE hide and seek project.
  • More BLE HID debugging and test out using other BLE HID devices.

54:45 In the Weeds

55:00 @jepler M0 boards, translations, and the future. Keeping CircuitPython within the constraints of these smaller devices is getting harder, and something we would really like to add will push us over the edge sooner or later--we seem to be at just 24 bytes free on pirkey_m0 with zh_Latn_pinyin translations right now. (this translation uses up ~2400 bytes more than the english original)

Possibilities I considered:

  • In 6.x, drop translations for the most constrained boards. (but support the boards themselves)
  • Declare 5.x the last version for M0s (or just non-Express M0s) and continue to bugfix 5.x for longer than other past versions (e.g., 5.0 is an LTS, at least for M0s)
  • Find a way to push translations to filesystem
    • @danh: We have discussed this a little bit. Another mild advantage is that it would cut down the number of builds
  • Find a substantial improvement in message compression
    • @danh: Currently we use Huffman. I have looked for a C library that does dictionary-based LZ compression, with the dictionary shared across strings, but haven’t found one. All the libraries are oriented toward streaming rather than run-time decompression of a set of strings. Some tiny experiments I did indicated we might get up to an x2 improvement in total message size (I compared current Huffman-compressed total message size with size of a gzip file of the same messages).
  • Scott’s ideas include:
    • compressing qstrs
    • Compressing RAM strings
    • Types take a lot of storage

1:01:10 @jepler Small focused PRs, or more stuff in fewer PRs? Did I file too many about the nRF audio stuff?

1:03:13 @krayola I'd also like to discuss the subscr signature change (See PR

1:10:15 @krayola I'd like some guidance on how to write some automated tests for _pixelbuf.

1:13:55 Wrap-up

You can’t perform that action at this time.