CircuitPython Weekly November 25th, 2019
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: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 circuitpython.org! The site makes it easy to select the correct file and language for your board. The downloads page is here: https://circuitpython.org/downloads
Python snakes its way to more newsstands: https://blog.adafruit.com/2019/11/24/some-of-our-favorite-wired-magazine-covers-wired-and-what-is-on-newsstands-november-2019-we-are-what-we-celebrate/
Take Flight with Feather - Hackaday and Digi-Key, now 33+ entries: https://hackaday.io/contest/168107-take-flight-with-feather
MAKER CHRISTMAS PRESENTS – Issue 25 – HackSpace magazine: Maker Christmas! TONS OF PYTHON THIS ISSUE! https://hackspace.raspberrypi.org/issues/25
"it blew people’s minds to see how easy circuitpython is to use." https://twitter.com/no1089/status/1198081568922722305
CircuitPython sculpture clock adds character to any desk: https://hackaday.com/2019/11/21/circuitpython-sculpture-clock-adds-character-to-any-desk/
Nice post up at Embedded Computing Design: "...it 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: https://www.notion.so/SAM32-Guides-6b7e8ca318ff49418eec16e975d98f5d
BastWAN with SMR34 compatible with CircuitPython from Electronic Cats: https://twitter.com/electronicats/status/1196853723894558722
deshipu showed off the latest prototype of PewPew M4 at the HeroFest: The Gaming-, Esports and Cosplay-Festival in the BERNEXPO! https://twitter.com/deshipu/status/1197267856523776001
11:17 State of CircuitPython + Libraries
- 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.
- 8 pull requests merged
- 6 authors - tannewt, dhalbert, cbyr2401, rafa-gould, makermelissa, hierophect
- 5 reviewers - tannewt, dhalbert, jepler, makermelissa, ladyada
- 13 open pull requests
- https://github.com/adafruit/circuitpython/pull/2034 (Open 113 days)
- https://github.com/adafruit/circuitpython/pull/2044 (Open 109 days)
- https://github.com/adafruit/circuitpython/pull/2054 (Open 105 days)
- https://github.com/adafruit/circuitpython/pull/2148 (Open 73 days)
- https://github.com/adafruit/circuitpython/pull/2282 (Open 11 days)
- https://github.com/adafruit/circuitpython/pull/2297 (Open 6 days)
- https://github.com/adafruit/circuitpython/pull/2294 (Open 6 days)
- https://github.com/adafruit/circuitpython/pull/2299 (Open 5 days)
- https://github.com/adafruit/circuitpython/pull/2306 (Open 4 days)
- https://github.com/adafruit/circuitpython/pull/2301 (Open 4 days)
- https://github.com/adafruit/circuitpython/pull/2317 (Open 2 days)
- https://github.com/adafruit/circuitpython/pull/2316 (Open 2 days)
- https://github.com/adafruit/circuitpython/pull/2315 (Open 2 days)
- 1 closed issues by 1 people, 4 opened by 4 people
- 197 open issues
- 7 active milestones
- 4.x.x - Bug fixes: 0 open issues
- 5.0.0: 19 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: 154 open issues
- 0 issues not assigned a milestone
Download stats by board:
Download stats by language:
- 13 pull requests merged
- 5 authors - kattni, dhalbert, tayden, Johennes, makermelissa
- 5 reviewers - kattni, dhalbert, tannewt, makermelissa, ladyada
- 29 open pull requests
- https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/6 (Open 336 days)
- https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5 (Open 321 days)
- https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/1 (Open 295 days)
- https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11 (Open 285 days)
- https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/6 (Open 271 days)
- https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/9 (Open 256 days)
- https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20 (Open 235 days)
- https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6 (Open 222 days)
- https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/8 (Open 222 days)
- https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57 (Open 199 days)
- https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30 (Open 196 days)
- https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34 (Open 196 days)
- https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/18 (Open 122 days)
- https://github.com/adafruit/Adafruit_CircuitPython_MotorKit/pull/19 (Open 121 days)
- https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/10 (Open 103 days)
- https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/66 (Open 95 days)
- https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/69 (Open 92 days)
- https://github.com/adafruit/Adafruit_CircuitPython_MCP9808/pull/20 (Open 56 days)
- https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/71 (Open 51 days)
- https://github.com/adafruit/Adafruit_CircuitPython_AM2320/pull/9 (Open 47 days)
- https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/26 (Open 46 days)
- https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/pull/41 (Open 43 days)
- https://github.com/adafruit/Adafruit_CircuitPython_WSGI/pull/2 (Open 41 days)
- https://github.com/adafruit/Adafruit_CircuitPython_HT16K33/pull/41 (Open 34 days)
- https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/40 (Open 34 days)
- https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/22 (Open 33 days)
- https://github.com/adafruit/Adafruit_CircuitPython_VL53L0X/pull/12 (Open 9 days)
- https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/pull/50 (Open 8 days)
- https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/33 (Open 6 days)
- 18 closed issues by 7 people, 3 opened by 3 people
- 131 open issues
- https://circuitpython.org/contributing Library updates in the last seven days: Updated Libraries
16:53 Hug Reports
- 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
- Group hug and found watching a lot of the social media for SuperCon, found it interesting
- @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
- @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!
- @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
- 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!
- @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!
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!
- 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
- Go over some things to check out:
- Python on Microcontrollers newsletter https://adafruitdaily.com to sign up
- You can contribute to the newsletter on GitHub https://github.com/adafruit/circuitpython-weekly-newsletter
- Reddit: https://reddit.com/r/circuitpython
- @adafruit on Twitter, @circuitpython on Twitter (much of it is sent over from @adafruit)
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.
- 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.
- 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.
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 code.py 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
- Last week:
- Finished up eInk Gizmo guide
- Updated CPX examples to not use
- Refactored the Circuit Playground library and added support for Bluefruit
- Added two new features to the
- Added two new features to the
- 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.
- A few fritzing objects
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
- 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
18:46 @ntoll (leaving early)
- Last week:
- Added tests to the radio module.
- Wrote up what I did here: http://ntoll.org/article/circuitpython-tests
- This week:
- Long[er] messages (a 10 minute fix done via https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/33).
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.
- 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 https://github.com/adafruit/circuitpython/pull/2034)
1:10:15 @krayola I'd like some guidance on how to write some automated tests for _pixelbuf.