adafruit-circuitpython-week.../2020/2020-03-02.md
2020-03-02 12:58:40 -08:00

26 KiB
Raw Permalink Blame History

CircuitPython Weekly for 2 March 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:23 Community News

4:23 PyCon still on as of now: https://pycon.blogspot.com/2020/03/march-2-update-on-covid-19.html

5:17 CircuitPython 5.0.0 Release Candidate 1! https://blog.adafruit.com/2020/03/01/circuitpython-5-0-0-release-candidate-1-adafruit-circuitpython/

With the CircuitPython 5.0.0 Release Candidate there are also some new boards (116+ total) in circuitpython.org/downloads , including: NANO 33 IoT. CircuitBrains Basic. CircuitBrains Deluxe. Feather M7 1011. SAMD51 Thing Plus.

5:55 Feather Bluefruit Sense Takes Flight, Launches with Full CircuitPython Compatibility: https://www.hackster.io/news/adafruit-feather-bluefruit-sense-takes-flight-launches-with-full-circuitpython-compatibility-e1d5023512db

6:41 Command Line Heroes by Red Hat, hosted by Saron Yitbarek (Hardware coming up!) https://www.redhat.com/en/command-line-heroes

7:07 CircuitPython powered big honkin button sampler by Thea Flowers: https://twitter.com/theavalkyrie/status/1234317748496293888

7:25 IoT Design Week with Microchip's "Wizard of Make" Bob Martin and Adafruit. We'll be on 3pm to 4pm ET on Tuesday March 10th, 2020 (lots of CircuitPython): https://events.microchip.com/website/7565/home/ https://youtu.be/fu37Uf-CXNE

7:53 Thank you Morgan Stanley Makerspace Program for your work with Women in Need (CircuitPython workshops and more): https://blog.adafruit.com/2020/03/01/thank-you-morgan-stanley-makerspace-program-for-your-work-with-women-in-need-win-morganstanley-winnyc_org-msgivesback/

8:26 Discord Discover is a GO! https://blog.adafruit.com/2020/02/29/adafruits-community-discord-server-is-now-in-server-discovery-join-16000-makers-adafruit-discordapp-discord/

9:12 All this and more in the DRAFT, thanks for the @s and # everyone! https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2020-03-03-draft.md

9:34 State of CircuitPython, Libraries and Blinka

9:53 Overall

  • 36 pull requests merged
    • 13 authors - FoamyGuy, siddacious, hierophect, makermelissa, kattni, arturo182, jerryneedell, brentru, mytechnotalent, foozmeat, caternuson, dhalbert, tannewt
    • 15 reviewers - FoamyGuy, siddacious, hathach, hierophect, makermelissa, kattni, jerryneedell, jepler, brentru, dherrada, ladyada, sommersoft, caternuson, dhalbert, tannewt
  • 12 closed issues by 6 people, 11 opened by 9 people

Overall: Dans been working on RC for 5.0. Super close to stable. Thats been going great. Libraries and Blinka are going great as well. Everything growing at a steady rate. Thank you to everyone involved.

11:45 Core

13:07 Libraries

15:37 Blinka

  • 5 pull requests merged
    • 3 authors - swarren, yeyeto2788, 123p10
    • 1 reviewers - makermelissa
  • 0 open pull requests
  • 2 closed issues by 2 people, 1 opened by 1 people
  • 33 open issues
  • PyPI Downloads in the last week: 1946 Number of supported boards: 38

16:24 Hug reports

17:07 @tannewt

  • Kate and Mikela who joined me for lunch in Denver.
  • Kirk and Brian for hosting me at SparkFun and chatting about CircuitPython.
  • Group hug! Awesome to see everything that happens over four days Im out.

18:24 @v923z

  • @tannewt for helping out with and fixing the important import issue in ulab (also a great general enhancement in circuitpython)
  • @jepler for reviewing code, fixing a number of bugs, and submitting a number of test scripts for better aligning ulabs behaviour to numpy - Bear hug!

19:47 @AndrewTribble

  • Group hug

10:04 @anecdata (lurking / text-only)

  • Group hug

@anne b (lurking)

20:14 @cater (lurking)

  • @danh for real time chatting about BLE
  • @ladyada/@makermelissa for fixing MiniTFT FeatherWing, totally looked like a hardware issue that was actually software, awesome sleuthing and fast fix.

20:33 @CGrover (text only)

  • @kattni for getting me out of some conceptual quicksand and sharing a new (to me) Python concept that will be incredibly useful from this point forward. Thanks!

20:53 @charlesburnaford

  • Group hug to everybody. Experimenting with the most recent release of 5.0 and seems to be working for what I want - MIDI USB. Thanks to everybody!

21:19 @danh

  • @jwcooper for quick setup of an CloudFront “distribution” to front the AWS S3 downloads of CircuitPython, and for setting up logging so we can get statistics later.
  • @sommersoft, @jepler, and @ladyada for PR reviews over the weekend for 5.0.0-rc.1.
  • @mubes and @arturo182 for i.MX fixes, which got into rc.1.

@davep (lurking)

22:42 @dglaude (text only)

  • @ladyada and @ptorrone for the virus related explanation in “Ask an engineer”
  • Everyone helping with power related issue on my BIT:2:Pi
  • @foamyguy for the patchwork example

23:24 @foamyguy

  • @makermellisa for pointing me toward the IS31FL3731 library for inspiration on using text with 16x8 LED Matrix.
  • @kattni for helping me work through some PR / Git weirdness.

24:00 @geekguy

  • Nothing today.

24:18 @hierophect

  • Thanks to Anne for their help on my Zephyr guide
  • Thanks to the Zephyr folks for being friendly and helpful this week on the Feather F405 PR
  • Group hug

25:08 @JacobT (text only)

  • Hugs to @cater and @DonK for support on the #help-with-circuitpython discord channel and to @ladyada and @MakerMelissa for subsequent fix library for TFTwithJoystick featherwing.

25:55 @jasonp (missing meeting)

26:09 @jepler

  • Group hug
  • Hug to everyone who has contributed to CircuitPython 5.0.
  • Return the hug to Zoltan!

26:46 @jerryn (missing meeting)

  • Group hug

26:52 @kattni

  • @danh for help with choosing an error type to throw
  • @makermelissa for helping get my code working like I intended it to but failed to sort out on my own
  • @foamyguy and @anecdata for joining the new CircuitPython Helpers role on Discord!

@kjw (lurking)

28:30 @MakerMelissa

  • @ladyada for helping point me in the right direction with the Mini TFT FeatherWing
  • Group Hug for everyone waiting on me while Ive been heads down with working on Web Bluetooth

@mr. Certainly (lurking)

@sdw_nj (lurking)

29:20 @sommersoft (text only)

  • @danh, @jwcooper, and whomever else behind-the-scenes that planned and implemented the move to AWS for core firmware delivery.
  • Everyone contributing to additional ports. I've been on the periphery lately and mostly lurking, but it's great to scroll through all of the bits and watch it happening.
  • Group hug!!!

28:59 @tg-techie (text only until 11:20ish)

  • Hug to tannewt for after-meeting chat last week
  • Hug to community for always being so supportive even when the problem is just myself.

30:17 Status Updates

30:56 @tannewt

  • Cant remember last week because I was skiing and enjoying Colorado over the weekend.
  • Today is catch up day.
  • Will squash any bugs in 5.0.0
  • Looking at sleep on nRF this week
  • Cancelling my trip to NYC today. I can always go later.

33:54 @tg-techie

  • A lot of progress. Working on a wristwatch that is CP based, and nRF52840, just this morning it booted on for the first time with display, USB-c charging, etc, in the final enclosure. Still rough, software is functional but incomplete and unorganised, it keeps time! People dont notice its homemade.
  • Next week, working on the software organised and sane. As well as documentation and rest of the circuit. 350mAh battery.
  • Not sure yet how long it lasts on battery only.

35:54 @v923z

  • Last week: Made an attempt at re-organising the internals of ulab; implemented

    • new data container structure (independent from mp_obj_array_t, cheaper in RAM),
    • ndarray creation and manipulation functions etc.
    • Numpy view methods
  • This week: having a bit of difficulty with sensibly organising binary operators (iterating over two ndarrays at the same time, broadcasting); will work on ironing out these details

38:09 @AndrewTribble

  • Last week
    • Managed to get an old library for the AS3935 lightning detector up and running to get my feet wet with making changes to / supporting a circuitpython library
  • This week:
    • Continued testing of the AS3935 lightning module
    • Try to hop into the github repos and help with library issues there.

@anecdata (lurking)

@AnneB (lurking)

@cater (lurking)

39:20 @CGrover (text only)

  • Made progress on a “clock builder” helper library after encountering a couple of sticky issues (see quicksand above). Back on track to wrap up three chronometry-based projects by the end of the week.
  • Testing 5.0.0-rc.1 on some old M4-based projects (going to leave the M0 projects as-is). So far, the only hitches were in some PyPortal weather station code. Expect those to be pretty easy to fix.
  • Future: As an excuse to learn about BLE, planning to evaluate it as a replacement for an existing low-bandwidth RFM69 telemetry link between the workshop and the studio.

40:03 @charlesburnaford

  • Finally received my drawbar B3 rack, someone had one for sale dirt cheap, seems to be working fairly well. Need to figure out how to wire it to a grand central or something. Use data in MIDI setup.

41:38 @danh

  • Released 5.0.0-rc.0 last Wednesday after the remaining milestone bugs were squashed.
  • Manually repaired the missing release assets. My frustration with that and the size of the GitHub assets list led to:
  • Changed download links in circuitpython.org/downloads to point to AWS S3. @jwcooper set up an AWS CloudFront distribution as an intermediary to enable download logging, so we will be able to resume getting statistics on downloads.
  • Released 5.0.0-rc.1 on Sunday to vet the download links changes and to pull in a couple of i.MX PRs.
  • Upcoming:
    • Release 5.0.0 assuming all continues to go well.
    • Remove GitHub release assets from recent older releases to make the GitHub releases page load faster.
    • Debug UF2 bootloader problems.
    • Reverse engineer a BLE BBQ thermometer.

@davep (lurking)

44:27 @dglaude (text only)

  • Last week
    • Discovered watch style “hard:case for micro:bit” is not compatible with the CLUE (maybe Adafruit need to build a list of working/non-working accessories)
    • First BIT:2:Pi usage with NeoPixel from Unicorn HAT and pHAT from Pimoroni: https://twitter.com/DavidGlaude/status/1233140189243092998?s=20
    • Failed to control two screens in CP: The Clue internal and “Mini PiTFT 1.3" - 240x240” (via BIT:2:Pi). I wanted the first dual screen Clue! I forgot to ask @MakerMelissa to know if that was even possible with @displayio
  • Next Week
    • Solder my Adalogger FeatherWing + find a CR1220

45:38 @foamyguy

  • Last week
    • Text example for HT16K33
    • Published first version of BLE patchwork demo for CLUE
    • Assembled PN532, updating library to use property access instead of methods
    • Review and test ESP32 PR providing access to MAC address in proper order
    • Testing a NeoPixel brightness issue on Feather Crickit reported by a user on discord
  • Next Week
    • Solder headers on TLC59711 and start updating the library to use SPIDevice
    • Starting Tile game learn guide
    • Document the process of making displayio compatible bmp files with gimp
    • BLE patchwork demo improvements and tweak to support CPB+Gizmo

47:48 @geekguy

  • Working really hard on little red robot, almost ready to go active. Had to sacrifice the IMU, couldnt fit it. Make up one cable for power to motors, and then itll go active, and Ill start writing serious behaviours for it!

48:32 @hierophect

  • Last week:
    • Zephyr guide published.
    • Finished PulseOut, started on PulseIn
    • Did some research on the F7 and H7 for setup
  • This week:
    • Wrap up PulseIn
    • Get started on RotaryIO
    • Finish Nucleo additions for F7 and H7
    • Work on infrastructure changes to selectively allow modules for the F7/H7 as support is added.

@JacobT (lurking)

52:00 @jepler

  • Last week
    • Ulab improvements and bug squashing
      • Amazing: Our only “delta” from upstream is currently the README file
    • PR to turn some (unlikely in natural code) assertion errors into SyntaxErrors. These were items I found in testing when we were discussing making an mpy-cross web service.
    • PR to add “fuzzing” targets to unix and mpy-cross builds; these are used for software testing
    • PR to create an icalendar-format calendar for a whole year of weekly meetings, skipping known holidays. This can be further edited by humans for other schedule changes (e.g., around pycon and the end of year holidays). I got to learn several Python packages in the process: icalendar, holidays, and pytz.
    • Properly fixed a bug on nRF boards which require flash reads to be 4-byte aligned and a multiple of 4 bytes long; we had previously worked around the bug in the fat filesystem layer
      • May be asked to upstream this into nrfx instead, not sure
    • Created port for sparkfuns “samd51 thing plus”, a feather-style board with a qwiic/stemma qt connector. This port had been started by someone else, but was stalled
    • Provided an updated wavefile for the propmaker “saber” project which is believed to fix audio glitches
  • This week
    • Any 5.0.0 tasks where I can pitch in
    • Hope to see ulab merged soon after 5.0.0 goes out the door
      • Bug fixing as I run into problems
      • Maybe v923z already fixed the bug Im trying to remember right this minute
    • Outlining and maybe starting a ulab guide for learn.adafruit.com
      • May identify additional functionality we want in this process
    • Do you know of a circuitpython module or program that processes a bunch of numbers in a list? @-mention me on #circuitpython and lets see together if ulab can improve it
      • (though for modules/packages also used in blinka, ulab is not blinka compatible so this requires extra thought)

54:42 @jerryn

  • Last week
    • found/fixed minor issue with BluefruitSPI lib (5.0 compatibility)
    • Continued working on RFM9x/69 -- not much progress
  • Next week
    • Press on with rfm9x/69
    • Keep having fun - find some things to break

56:12 @kattni

  • Last week:
    • Added custom badge feature to PyBadger
    • Wrote custom badge example for CLUE
    • Wrote guide page for CLUE badge example, was asked to turn it into a full guide
    • Moved guide page into new guide and spread it out accordingly
  • This week:
    • Update Feather ESP8266 HUZZAH schematic on GitHub and guide
    • Finish up CLUE Badge example guide (needs images and final review)
    • Feather Sense guide
      • CircuitPython example that uses all the sensors

@kjw (lurking)

1:00:44 @MakerMelissa

  • Last week:
    • Heads down with Web Bluetooth and developing a sensor dashboard
    • Fixed MiniTFT Featherwing
    • Updated some missing boards on circuitpython.org
    • Added Bluefruit Sense Feather to Web Bluetooth Dashboard
  • This week:
    • Finishing up Dashboard
    • Working on writing up a guide for the Dashboard
    • Going through Raspberry Pi TFT guide to make sure it still works as a user reported it wasnt
    • Add some new boards to the Blinka page on circuitpython.org

1:01:48 @Marius-450 (text-only this week)

  • Last Week :
    • Worked to improve the turtle lib : some low hanging fruits, some fixes...
    • First draft of translated turtle to french
    • Ask me if you want to test before I try to PR that :)
    • Got a CPB+TFT gizmo generating a mandelbrot fractal

@mr. Certainly (lurking)

@sdw_nj (lurking)

1:02:20 @sommersoft (text only)

  • Last Week:
    • Adabot:
      • Disabled core download stats from the daily report. With the GitHub API not working and the transition to AWS as the CDN, it didn't make sense to continue attempting it.
      • Did some cursory research on how to implement stats/metrics with the move to AWS. It looks like the AWS Python library (boto3) should be able to interface with CloudWatch to get relevant information.
    • RosiePi/physaCI:
      • Got HTTP Signature authorization working on both physaCI (construction) and node server (verification). This adds another layer that allows physaCI/RosiePi to securely send/receive push notifications (keys roll every hour). But of course, as soon as I got the final piece debugged last night...Azure Functions service started having issues.
  • This Week:
    • Get physaCI's Azure fixed, if its beyond a simple fix or service reestablishment on Azure's side.
    • Verify push notifications are working, then move focus back to actually running tests on the RPi.
    • Further research adabot using boto3 for core metrics.

1:03:00 In The Weeds

@v923z:

  • 1:04:07 What kind of clean-up is required in the C code, when a python exception is raised? (Is freeing up resources enough?)
  • 1:05:00 Any comments on the performance impact of using stack vs. heap. More specifically, should the description (shape/strides) of an ndarray be on the stack, or the heap? E.g., is
typedef struct _ndarray_obj_t {
        ...
uint8_t ndim;
        size_t *shape;
        int32_t *strides;
        ...
} ndarray_obj_t;
    significantly worse (speed-wise) than 
    ```

typedef struct _ndarray_obj_t { … uint8_t ndim; size_t shape[3]; int32_t strides[3]; ... } ndarray_obj_t; ``` ? (The latter is obviously worse RAM-wise.)

1:10:35 @foamyguy

  • Updated demo scripts for some of the older devices. Ive seen a few people come through the #help-with room who are new to Circuit Python theyve just recently got their first device and started looking at and playing with the demo script that came pre-loaded on their device. Very quickly after looking to the internet to learn more they are encouraged to update the version of Circuit Python on their device and after doing so the demo script no longer runs due to small changes to various APIs within the libraries and core project. There are updated working examples of all of the functionality from the demo scripts in the Essentials and other Learn guides but finding and fixing each issue is a bit tough for a beginner. I think it would be great if we can updated versions of the demo script created and listed on the relevant downloads pages within the main guide for the respective devices. Im happy to take on that task but wanted to discuss here to make sure I havent just missed an updated version that does already exist somewhere, and see if there are any other thoughts or ideas on this topic. The specific devices that have come up in the last few weeks are Trinket M0, and Metro M0 Express. I havent gone looking yet to see if there are others though.

1:19:46 @dglaude (since I am text only, likely reported):

  • "Reflexion on controlling Raspberry Pi HAT (pHAT or Bonnet) with Circuit Python" I have a big collection of HAT/pHAT/Bonnet from Pimoroni and others and I would like to use them with Circuit Python. I would like to write or reuse Circuit Python Library to drive that hardware
    • Option 1: Use Blinka on the Raspberry Pi to access GPIO/I2C/SPI. => The pin mapping already exist in Blinka for Raspberry Pi
    • Option 2: Use a CLUE and the Bit:2:Pi from 4Tronix that map CLUE (Micro:Bit) pin to Raspberry Pi pinout => The pin mapping is define by Bit:2:Pi
    • Option 3: Make a Feather to 40 pin adapter that let you plug a HAT on a Feather => The pin mapping need to be defined, but maybe someone already made this accessory … How would you map Feather to Raspberry Pi connector to be able to use Raspberry Pi HAT as accessories for a Feather: https://twitter.com/DavidGlaude/status/1232774107525197826?s=20
  • 1:21:20 I am looking for "opinion" or "idea" on how the what would be the "right" way to do the mapping. Is there already a board that map Feather pin to Raspberry Pi? Is it possible to have the same code working on those 3 options? Should I use a "sandwich" library to do some mapping, and use my own alias/naming?
  • Maybe this could help just using existing Python Library within Circuit Python: https://github.com/pimoroni/circuitpython_adapter
  • There is also this, but not sure how it help (and an issue between @Gadgetoid and @tannewt): https://github.com/pimoroni/physical_feather_pins

1:22:41 @kjw

1:28:33 @danh - 5.0.0 release scheduling

1:30:40 Wrap-Up