adafruit-circuitpython-week.../2020/2020-02-18.md
2020-02-18 13:25:51 -08:00

27 KiB
Raw Blame History

CircuitPython Weekly for 18 February 2020

Video is available here on YouTube and on diode.zone.

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

The CircuitPython Weekly happens normally at 2pm ET/11am PT on Mondays. Check the #circuitpython channel on Discord for notices of change in time and links to past meetings.

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

Reminders: Podcast available on most services. Let us know if were missing some.

4:35 Community News

4:45 CircuitPython day in Beirut Video from the CircuitPython celebration day in Beirut (2019) organized By Lamba Labs - This video is from last year, but was just posted on Twitter, it's great! https://youtu.be/14RCTs6n47E

5:13 Bluefruit Playground app updates! https://apps.apple.com/us/app/bluefruit-playground/id1489549571

5:35 Testing of the Open Hardware Summit 2020 wrist-watch badge https://blog.adafruit.com/2020/02/15/testing-of-the-open-hardware-summit-2020-wrist-watch-badge-ohsummit-circuitpython-ohsummit20/

6:05 CircuitBrains boards, castellated modules coming soon … https://blog.adafruit.com/2020/02/15/circuitbrains-boards-castellated-modules-coming-soon-circuitpython-crowd_supply-nullbytelabs-kevinneubauer/

6:43 Special thanks to Andrew in the Adafruit community Discord server for making this CLUE pinout, here is the .ai file for download if needed - https://www.dropbox.com/s/ja11znurbwvyqsi/ClueBoard_PINOUT.ai?dl=0

7:06 CircuitPython is bringing Python to more developers and makers around the world - Twitter. Anwesha Das also has a post/overview from the event - https://twitter.com/WillingCarol/status/1228698325693583360 https://anweshadas.in/february-pyladies-pune-workshop/

7:25 The many forks & ports of MicroPython, start of a community made list, please edit/update if we missed anything: https://github.com/adafruit/awesome-micropythons

8:12 State of CircuitPython, Libraries and Blinka

8:27 Overall

  • 30 pull requests merged
    • 15 authors - makermelissa, FoamyGuy, maholli, kattni, dherrada, ares-est, dhalbert, siddacious, hierophect, geekguy-wy, hexthat, jamesbowman, foozmeat, nnja, tannewt
    • 9 reviewers - makermelissa, kattni, caternuson, dherrada, dhalbert, siddacious, ladyada, tannewt, brentru
  • 12 closed issues by 11 people, 7 opened by 6 people

Overall: Core side - were getting closer and closer to 5.0 RC, once we have all the fixes in, and want people to test it. Getting quite close to that. On lib side, continues to grow, passed 200 libraries, and fully expect us to keep going. Thank you to everyone involved in the libraries!

10:28 Core

Core CircuitPython GitHub download statistics request failed.

12:13 Libraries

Updated Libraries

14:35 Blinka

15:17 Hug reports

16:19 @tannewt

  • @v923z for ulab and being an open and awesome maintainer. Very excited to see it in CircuitPython.
  • @DavePutz for taking a look at improving unicode support.
  • @jimmo for brainstorming GC/allocation things and supporting other folks with MicroPython questions.
  • @mubes for iMX RT work
  • @kattni for covering me on the newsletter
  • Alaa and Hassan from Lamba Labs in Beirut for bringing CircuitPython to their community and on YouTube: https://youtu.be/14RCTs6n47E
  • James Bowman, creator of Gameduino, adding the eve module to CircuitPython, happy to see that get checked in

20:00 @tg-techie (text only):

  • Community hug
  • Hug to tannewt for helping with displayio / entertaining my questions

20:30 @Andrew Tribble

  • Hugs to @Tannewt and @ladyada for helping clarify the discrepancy between Net pin names and Chip pin names on the Adafruit Clue schematic while working on a pinout diagram for that board.
  • @kattni for the newsletter exposure for the same pinout diagram

21:29 @brentru

  • @danh and @hierophect for hanging out last week in Boston, was a great time. Good irl circuitpy discussions!
  • @v923z for ulab
  • @arturo for IMXRT work

@cater (lurking)

21:51 @CGrover (not able to attend)

  • @cater, @brentru, and @MakerMelissa for the essential detail in the “CircuitPython Display Support Using displayio” and “...Adding Cursor Support to CircuitPython” learning guides. The fusion of the two helped me successfully move beyond just Labels, Bitmaps, and Shapes to TileGrid and Buttons. Still have a way to go, but the concepts are increasingly making more sense and have found a way into my most recent project.

22:30 @charlesburnaford

  • General hug report to everybody, just now trying out 5.0

22:49 @danh

  • @jepler and @v923z for great continued progress on ulab capabilities and integration into CircuitPython.
  • @hierophect for arranging a CircuitPython meetup at Artisans Asylum maker space in Somerville, MA.
  • @DavePutz and @mubes for CircuitPython PRs.
  • @dherrada, @JohnPark, and Ruiz brothers for Pyloton project: BLE heart rate, cycling sensors, CLUE display, and case. Great project and really good test of integration of many new capabilities.
  • @jepler for pointing out too-small SPI transactions.

@davep (lurking)

24:44 @dglaude (Lurking or not there or text only)

  • @danh and @JohnPark for BLE and Heart Rate support, demo, ...
  • @kattni for CLUE library and documentation.
  • @MakerMelissa for DisplayIO stuff that made the same code work on CLUE, PyPortal and PyGamer
  • @foamyguy and @MakerMelissa for Background color in the Label.

25:13 @Drew Fustini (intermittently in meeting)

  • Alex Camilo for building awesome test jig for Open Hardware Summit wrist badge
  • Alex Camilo for hand assembling rev1 badge to test so we can go to production
  • Siddacious for testing rev0 OHS wrist badge and giving feedback
  • Michael Welling diagnosing issues with rev0 and helping to validate rev1
  • Kevin Walseth at Digi-Key for doing an awesome job supporting the badge project by getting the components we need

25:56 @foamyguy

  • @cater for the great Candy Hearts guide. Especially the nice diagrams illustrating the anchored positioning of Labels.
  • @cater and @makermellisa for feedback on color background Label PR as well as a few other PRs earlier in the week.
  • @siddacious and @dherrada for feedback on accelerometer PR earlier in the week
  • Group hug for everyone!

26:34 @geekguy (text only)

  • @MakerMelissa for helping me through doing PRs for the HT16K33 library stuff.

27:24 @jepler

  • @v923z for all the work hes been doing to make micropython-ulab work even better with circuitpython
  • Adafruit for giving me the freedom to go on vacation for a couple of weeks and be a little flaky about how much I work and check in
  • @kattni for taking notes
  • Group hug

28:23 @kattni

  • @foamyguy for sticking through many change requests on PRs
  • @nnja for fixing up PyBadger while she works through using the code
  • @DanH for being a sounding board about some code plans
  • @MakerMelissa for testing some code Im writing on PyBadge since I managed to end up without one
  • Anwesha Das for running her first large CircuitPython workshop for PyLadies Pune

30:15 @makermelissa

  • @Geekguy for your enthusiasm with coding the HT16K33
  • @nnja for your PyBadger PRs to help refactor and improve the code
  • @FoamyGuy for making all of the change requests on the Display Text background_color PR
  • Group Hug

@mscosti (lurking)

@sdw_nj (lurking)

30:55 @siddacious

32:48 @sommersoft (text-only; in the meeting for about 30 minutes; day_job conflict after that)

  • @csexton for their quick attention regarding updates to their release assets upload GitHub Action.
  • Group Hug!

33:29 @v923z:

  • @jepler/@tannewt for all the encouragement concerning the integration of ulab into circuitpython
  • @danh/@Agatherer for taking the first steps in porting ulab to circuitpython
  • Group hug: the whole circuitpython community for the extremely welcoming and friendly atmosphere.

34:00 Status Updates

34:31 @tannewt

  • Last week spent a day optimizing the memory allocation worst case. Please let me know if your projects run faster or slower with the new code.
  • Added a BLE Eddystone library for sharing URLs with a beacon. Need to polish it up and release it this week.
  • Began work on bleio scanning support in Blinka with Adafruit_Blinka_bleio. It works well enough to move forwards. Need to track down a bug in the underlying library where it fails to recover from an unexpected state of Linux BLE.
  • Need to finish up ESP32SPI changes this week as well. BroadcastNet is in decent enough shape that folks should be able to start playing around with it once it is all merged.

39:30 @tg-techie (text only):

  • Ran a circuitpython workshop that had four attendees and went very well! Not only did we cover blinking/breathing an led but we were also able to add a sensor in really quickly using the power of circuitpython! (Although I did forgot that hardware Deinits in cp right after the scripts ends, but it made for great live debugging and docs usage ) will definitely do another some time.

  • Made a small fix to the circuitpython_rgb_display rotation pull requests

  • The motherboard for the “not dumb” watch came in and was able to test the power, charging, and backlight boost circuitry. (The “not dumb” watch is a circuitpython running watch similar to a smart watch with a touchscreen, usb-c port, and graphical user interface running on the nrf52840)

  • Need to learn how to reflow solder to attach the raytac nrf52840 module and water-resistant usb type-c connector to the watch

40:50 @Andrew Tribble

  • Last week:
    • Made the Clue pinout
    • Worked on a mag sensor bar graph graphing the values from the mag sensor on the clue
  • This week
    • Replace my physically broken screen (waiting for me in my mailbox today, actually)
    • Continue working on bar graphs or meter graphs for various sensors on the clue board as a way to play with those sensors and further familiarize myself with the displayio ecosystem
    • Get some more testing hardware ordered so i can answer more questions in the chat and actually have the hardware to back up my answers.

41:58 @brentru

  • Ive been working on a Pure-Python driver for Wiznets W5x ethernet chips - like whats on the ethernet FeatherWing. Itll be easier to add more chips down the road.
    • Last week I finished up the driver and a CPython socket-like object implementation.
    • Unfortunately the W5xs dont have built-in DHCP/DNS implementations like the ESP32s firmware.
      • Ill be adding them this week.
    • Then Ill be checking/testing compatibility with existing CircuitPython Internet Libraries like Requests and MiniMQTT
    • Planning on releasing later this week, guide/documentation for it next week

@cater (lurking)

43:57 @CGrover (not able to attend)

  • Completed and tested the CircuitPython Daylight Saving Time (DST) detector/adjuster helper and made significant progress on a hardware support library of clock “building blocks” for RTC-based, non-Internet timekeeping. Eliminating the twice-yearly clock updates with the new DST helper will be a real time-saver. Published the helper as part of the CedarGroveStudios/Unit_Converter repo.
  • The latest recording studio project is “in the can” and off to the CD duplicator vendor. (Yes, CDs are still a “thing.”) The project will be the last with any significant acoustic content. As a result, the old acoustic recording studio was dismantled and is in the process of liquidation. Moving to a simpler, 98% digital musical instrument studio more in tune with my transition to solo composition and performance. Declutters the studio space, as well.

45:04 @charlesburnaford

  • Havent had a whole lot of progress on anything this week, been travelling back and forth from FL to PA. Goal is to work more on keyboard, so I can get sunvox synth working in its entirety.

45:40 @danh

  • Added high-speed (32 MHz) SPI support on nRF.
  • Fixing a bunch of smaller issues in CircuitPython, working toward 5.0.0:
    • Fixed os.stat() integer overflow on smallint-only builds.
    • Implemented signed to_bytes()
    • Fixed compile-time check of flash erase boundaries for nvm and similar regions.
  • Added BLE libraries to bundles and fixed small library issues.
  • Started investigating BLE thermometers.

@davep (lurking)

47:06 @dglaude (Lurking or not there or text only) Last week:

  • Got my CLUE!
  • Got two BLE Heart Rate.
  • Ported my Thermal Camera code to CLUE, PyPortal (and of course PyGamer)... searching for someone with a PyPortal Titano to check the scaling.
  • Got stuck on taking screen capture from DisplayIO to SD (issue and code to reproduce) Next Week:
  • Trying to use my two BLE Heart Rate monitor simultaneously and display on CLUE.
  • Make a CLUE color reader that transmit as BLE advertisement

48:23 @Drew Fustini: (intermittently in meeting)

48:58 @foamyguy Last week:

  • Implementing colored backgrounds for Label
  • Working on Tilemap game example for PyGamer / PyBadge
  • Audio Mixer troubleshooting Next Week:
  • Work through pylint and other issues in tilemap game
  • Finish documenting Mixer weirdness on SAMD51 and submit issue
  • Get back to NeoTrellis tones example

49:43 @geekguy (text only)

  • Added an example to the HT16K33 library to show how to do animations, including several examples.
  • Modified the brightness property of HT16K33 to use floats like displayio does.
  • Modified the set_digit_raw() function to return errors if the bitmask or digit is out of range.

50:14 @jepler Last week & this week:

  • Small amounts of work on micropython-ulab. We now have basic CI infrastructure in micropython-ulab to build it with micropython and check that tests pass. However, we need more tests! Theres just one proof of concept test right now
  • Will be pretty much gone from discord and github until the 25th, see you in a week!

51:29 @kattni

  • Last week:
    • Blogged newly released guides
    • Completed guide pages for CLUE demos: Spirit level, height calculator, temp/humidity monitor
    • Updated FT232H guide to include new rev
    • Wrote and documented a slideshow example for CLUE
    • Released libs with commits since last release
    • Adapted PyBadger library to work on CLUE
    • Refactored PyBadger to properly include CLUE, automatically detect which board is connected, and import the proper features for that board (CLUE, PyBadge/LC, PyGamer)
  • This week:
    • Finish documenting and testing PyBadger refactor
    • Working on more CLUE demos. Compass is next. Brainstorming after that!
    • PSA: Clues will be given out to everyone at PyCon so having lots of demos will help everyone there.
    • If you have CLUE demo ideas or code, please let me know!

59:54 @makermelissa

  • Last Week:
    • Wrapped up WebSerial IMU Calibration for the time being.
      • It was too experimental and was getting bogged down.
    • Worked on reviewing PRs and fixing issues on Github
    • Added a couple of new shapes to the Display Shapes library
    • Hooked up the CLUE board to a Bit:Buggy and was able to get that completely running using Bluetooth and CircuitPython
      • Still want to make use of some of the CLUE sensors
    • Created a 3D Model Viewer that moves a 3D bunny around using WebSerial and the CLUE board
      • Originally created using Euler angles
      • Converted to make use of Quaternions
    • Started helping @Kattni with testing new PyBadger code
    • Worked on getting the MiniTFT demo working more consistently. It still seems to lock up after running for a little while.
    • Started looking into getting WebBluetooth working
  • This Week:
    • Continue working on WebBluetooth
    • Finish Testing @Kattnis code
    • See if I can come up with any more improvements for the MiniTFT

@mscosti (lurking)

1:01:47 @mubes (not able to attend)

  • RTS/CTS/RS485 first implementation tested and working on IMXRT1021. Currently porting to other members of IMXRT family. Requires changes to common_hal_busio_uart_construct so this will be updated over the next few days as part of the same PR across other uCs to get CI happy. Implementation will throw a Not Yet Implemented for any uC where the integration & test hasnt been done.

@sdw_nj (lurking)

1:02:29 @siddacious

  • Finished the code for and published Sip and Puff guide
  • Shipped the LPS2X libraries
  • Tested the HTS221

1:03:41 @sommersoft (text-only; in the meeting for about 30 minutes; day_job conflict after that)

  • Last 2 Weeks:
    • Actions CI:
      • Worked out a fix for a breaking change to the 3rd-party action we utilize to upload bundle/library release assets. Thanks again to @krayola & @kattni for steering me away from my tunnel vision on the root cause.
    • Adabot:
      • Added Community Bundle info gathering to the library report and circuitpython.org/contributing.
      • Updated the GitHub API authentication procedures; previous process is being deprecated in July.
    • RosiePi/physaCI:
      • Finished the node-side program to register a node with physaCI's registrar (for push notifications). This includes the hourly rotation of generating new keys for use with HTTP Signature authentication.
      • Re-wrote most of physaCI's initial push notification code; largely additional abstraction and implementing HTTP Signature authentication.
      • Started working on the physaCI code to trigger push notifications when a new GitHub check is created, and how the different datasets interact.It is currently very "bowl of spaghetti" in my mind...
  • This Week:
    • Start deeper exploration on my idea for The Great Pylint Upgrade of 2020 (https://github.com/adafruit/actions-ci-circuitpython-libs/issues/2). Mostly just verifying my assumptions with adabot patching/tracking, and writing a script to auto-upgrade libraries that already pass pylint 2.x.
    • Keep moving forward on physaCI push notifications.
    • In the spirit of Work/Life Balance, Ill be out most of this weekend (Fri-Sun). Mardi Gras awaits...

1:05:35 In The Weeds

1:05:50 @siddacious:

  • should we consider what it means to “release” a change to the cookiecutter?
    • @sommersoft: You can point to a branch/tag with the '--checkout' option when running cookiecutter. I would think branch would be better for our use case, if we want an explicit release state. Using tags would force continual lookup on the repo for the user to verify what the current release tag is (I think). Could also give a false sense of "current" wrt cookiecutter's "do you want to download again" prompt. Using a standard branch would avoid those, and is basically our current setup.
  • How and when do we want to apply cookiecutter changes to existing repos?

1:10:17 John Reese/@jreese contributed Black formatting checks to the Actions workflow and it would be nice to get it used in the existing library repos as well.

1:15:55 @jepler can we directly support setting a color to None at the palette API level (i.e. in C) and simplify a bunch of code that special cases it? I can enter an issue and maybe prototype it if theres not an obvious reason its a wrong direction.

1:16:57 @siddacious should we revisit the template we use in the cookiecutter? It would be great if we could have all the info on one page

  • Timon mentioned the open frameworks docs as a good example: https://openframeworks.cc/documentation/
  • His other feedback “My tldr for the openframeworks docs that I would take over to cpy: having all the core functions and classes browsable and at best a snippet for each and then in the libraries section the same for each lib that comes with the libraries download. its what I miss the most whenever I try to do stuff with cpy”

1:28:54 @tannewt - Update on 5.0.0?

  • Getting close. Looking at the 5.x related milestones.
  • Ulab wont make 5.0.0 but will be the highlight of a 5.x release.

1:34:43 Wrap-Up