adafruit-circuitpython-week.../2021/2021-04-05.md
2021-04-05 14:49:52 -05:00

25 KiB
Raw Permalink Blame History

CircuitPython Weekly for April 5th, 2021

Here is the notes document for Mondays CircuitPython Weekly meeting. It is at the normal time of 11am Pacific / 2pm Eastern here on Discord. Everyone is encouraged to attend! Please add your hug reports and status updates even if youll be attending the meeting - its super helpful! If you are unable to attend but would still like to include updates, feel free to include them in the notes and well read them off during the meeting. Hope to see you there! @circuitpythonistas

Welcome to the CircuitPython Weekly meeting notes! Feel free to add your Hug Reports and Status Updates early. During the meeting, we go through them as a round robin sorted by username. If you cant make the meeting and would still like to participate, add your notes with a “(missing meeting)” after your username and well read them off for you.

Add any longer-form discussion topics or general questions you have to the “In the weeds” section.

Thanks! We hope to see you in the meeting!

Jeff is hosting

Video is available here on YouTube.

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. Meeting times are also available in iCal format using the following link: https://raw.githubusercontent.com/adafruit/adafruit-circuitpython-weekly-meeting/master/meeting.ical for use with standard calendar applications or in your browser: https://open-web-calendar.herokuapp.com/calendar.html?url=https://raw.githubusercontent.com/adafruit/adafruit-circuitpython-weekly-meeting/master/meeting.ical

If you want to be able to participate in the meeting by speaking, you will need to be added to the @circuitpythonistas role on Discord. Please ask any one of the moderators or admins to add you if youd like to join.

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.

3:16 Community News

News from around the web! CircuitPython Keyboard and MacroPads

A plethora of CircuitPython keyboards and macropads - Reddit. Gameduino CircuitPython

Using the Dazzler and Gameduino CircuitPython to create a sprite animation - Tiny Letter. GPIO on a PC

How to use CircuitPython with GPIO pins on a PC - Tom's Hardware. Pico macropad

Raspberry Pi Pico macropad - jmdawson.co.uk. Circuit Playground Orb

Circuit Playground ambient weather temperature reactive orb - Adafruit Forum.

The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Tuesday. The complete archives are here. It highlights the latest Python on hardware related news from around the web including CircuitPython, Python and MicroPython developments. To contribute your own news or project, edit next week's draft on GitHub and submit a pull request with the changes. You may also tag a tweet with #CircuitPython on Twitter, or email cpnews@adafruit.com.

4:43 State of CircuitPython, Libraries and Blinka

5:58 Overall

  • 40 pull requests merged
    • 22 authors - jfurcean, hugodahl, dherrada, JPEWdev, tannewt, thefloe1, lyusupov, m-byte, sabas1080, bergdahl, kmatch98, tyomitch, jposada202020, askpatrickw, FoamyGuy, weblate, dhalbert, jamesrusso, jepler, ryang14, makermelissa, ladyada
    • 8 reviewers - kattni, gamblor21, FoamyGuy, dhalbert, tannewt, jepler, makermelissa, ladyada
  • 20 closed issues by 11 people, 22 opened by 16 people

7:17 Core

Overall: Dans been taking the lead on 6.2. Weve already turned over to 7.0 on main - changes to break APIs can happen on main now.

10:10 Libraries

New Libraries

Updated Libraries

12:51 Blinka

13:53 Hug reports

13:55 @jepler

  • Group hug and apologies for being disorganised
  • GitHub user theflow1 who contributed to one of the libraries - an issue filed saying there was an arbitrary limitation, and determined the number could be increased, and PR was submitted and merged

15:05 @Jose David: (text only)

  • @Neradoc: Point the right direction to modify the ADABOT script to make the page list of community libraries
  • @JonnyBergdahl: For his first PR.
  • @Weblate Translators: all languages, you make CircuitPython easier for more people. Your work is important, Thank you for keeping this up, And let's continue the fun competition.

15:30 @kattni

  • Thanks to everyone who sent in newsletter topics
  • Thanks to @jposada202020 for submitting a PR to the newsletter
  • Everyone I missed this week - Im sure Im forgetting things I meant to hug report
  • Group hug

16:12 @kmatch

  • @David.Glaude for memory saving tips
  • @Mark(Gamblor), @charkster and @markb139 on GitHub for great work on microcontroller based logic analyzers
  • @hathach for all the tinyUSB capabilities and @pigrew on GitHub for USBTMC (supports communication with test and measurement equipment)

17:06 @MakerMelissa

  • @danh for tackling circuitpython.org with a new release
  • @NikitaUT for submitting a PR to fix the WebSerial 3DModel Viewer
  • Group Hug

17:33 @Mark(Gamblor) [lurking]

  • @kevinjwalters, @tannewt, @jeff and @daveythacher for review comments on audiomixer

17:45 @tannewt

  • @trev for jumping in on circuitpython
  • @danh for release managing 6.2.0 and for the interrupts as exceptions idea. Ideas are good even when they prove to be troublesome.
  • @tyomitch for the core contributions!

18:31 @askpatrickw:

  • Thanks to @JoseDavidM. for their work on adding the list of libraries and descriptions to the Community Bundle repo!
  • GroupHug: This is a great community thanks!

19:06 @danh

  • @hierophect for working on sleep for the STM32, reviewing @jun2saks nRF sleep PR, and pointing out issues with the current sleep code.
  • @jun2sak for persisting on their long-running sleep PR.
  • @bergdahl, a long-time translator, for their first PR, to clarify some error messages.
  • @tannewt for starting in earnest BLE workflow and finding several long-standing BLE issues as well.
  • @kattni for producing excellent CircuitPython newsletters while Anne is away.
  • @bpatrzyk and @marcos-diaz for finding an important MacOS-only HID mouse issue.
  • @deshipu for reviewing his old Long Term issues.

@DaveP (lurking)

21:13 @David.Glaude: (text only)

  • Thanks to all the Adafruit YouTube streamers (and friends), its great to learn about design and implementation of API, discover new project ideas, see how an engineer thinks about what parts to use, how to run a company, new product,...
  • @danh for all the releases (rc.0 but all those before)
  • @recantha (Michael Horne) for progress on the picocorder: https://www.recantha.co.uk/blog/?page_id=20924

21:37 @deshipu (text)

  • @danh and everybody involved, for figuring out the mystery of macosx hid mouse

21:47 @foamyguy

  • Scott and Trevor for working on the BLE workflow for CircuitPython and iOS. I'm excited to see this coming around. Hoping to work on the Android implementation
  • @Jose David for many great displayio improvements and new widgets across a few libraries

22:24 @hierophect

  • @danh for continued and greatly appreciated help on the deep sleep API
  • @danh, @warriorofwire and others for the interesting discussions re: interrupts
  • @jepler for his continued i.MX work

23:14 @Hugo

  • @Bergdahl for catching and addressing a possible confusing error message memory management
  • The “Weblate gang” for the friendly competition and helping each other out getting CP supporting more languages
  • Group hugs
  • 23:45 Status Updates

24:05 @jepler

  • Majority of my time last week was spent on PWM iMX, pretty good shape now and is available in main. Check it out, leave us issues for any bugs.
  • Other stuff: timings of these new ways of accessing bitmap data, the exciting thing is that weve talked about improving the capabilities of CP, and with these changes, on nRF, we can keep up with the incoming audio data, to sample in the background.
  • Encoders on RP2040
  • Updated ulab to the newest version in CP7
    • This is a breaking change, all software using ulab will need to be updated
    • Guide will be updated closer to release of 7
  • This week: I2S out on rt1011 microcontroller. Would like to improve ulab docs, and whatever else comes along, including wrapping up PRs.
  • Missed the meeting last week to get COVID vaccination. Encourage all to get one.

26:39 @Jose David: (text only) Last Week:

27:36 @kattni

  • Last week:
    • Published my first solo newsletter successfully!
    • Did some catchup on older todos that had been missed - checked off a number of things on my list
    • Continued on templating
  • This week:
    • More newsletter
    • Starting on Neo Trinkey guide
    • Continuing on templating

29:51 @kmatch

  • Created doc with “intermediate-level” Memory usage tips, especially for graphics, fonts and text labels. Please provide comments on GitHub or Discord: https://github.com/kmatch98/CircuitPython_memory_saving/ Other stuff: Extending TinyLogicFriend—a @tannewt project to use Adafruit boards as logic analyzers: Achieved my first call-and-response between sigrok (logic analyzer software for PCs) and a TinyLogicFriend ♥.

31:35 @MakerMelissa

  • Last Week:
    • Wrote the new FunHouse library
    • Updated some minor issue in the PortalBase library
    • Learned TypeScript enough to fix the library management in the VS Code CircuitPython extension
    • Create a Repo for the Dynamic Bundler
  • This Week:
    • Work on trying to get esphome working
    • Work on the VSCode Extension stuff a bit more

32:28 @tannewt

  • Created Creation IDs for identifying boards over BLE advertisements.
  • Created prototype File Transfer service for transferring files over BLE. Starting in Python first and then will get into brought into CP once things have been proven w/iOS.
  • Anyone done generative LED animations? 1-4 byte number -> short unique animation? Will be useful for discovery and pairing over BLE.
  • Presenting on Friday morning at the Open Hardware Summit.

36:13 @askpatrickw

  • Azure IoT Cpython Sockets Support :: #24. Im still slowly whittling away at this. First I wanted to see it work via esp32spi WIFI. And that did require changes. It is working with IoT Hub, but not with IoT Central. Im sort of stuck there and digging through why that might be. Next step is working with the native wifi (esp32-s2). All of this is occurring slowly in my free-time.
  • ESP-IDF v4.3 #4182 : Any news or asks from the community on this?

37:47 @danh

  • Released 6.2.0-rc.0. One important and simple fix for MacOS Mouse HID since then. May just make it 6.2.0 final instead of doing rc.1.
  • Fixed release creation issues when doing 6.2.0-rc.0.
  • Turn off USB Remote Wakeup in our USB descriptor. This was an issue for MicroPython; it affected us less but was still important to incorporate. Good to track MicroPython changes.
  • Proposed an idea to be able to treat an interrupt as a Python exception. @WarriorOfWire pointed out that this was a bad idea in several respects, but it provoked a good discussion over the weekend.

40:34 @David.Glaude: (text only)

  • Trying Blinka on a Pi Zero (and see if my CP code work there)
  • Testing LedShim code on Pi Zero with Blinka and Feather RP 2040
  • Trying to find a uniform naming for Pi Zero like 20x2 pinout (see “in the weed”)
  • Trying to figure out what are the difference and when to use “adafruit_st7789.ST7789” or “adafruit_rgb_display.st7789” (see “in the weed”)

41:?? @deshipu (text)

  • Im doing research for making another hand-held game console, this time with a 3.2” screen and hopefully much better sound and controls. Still struggling with some decisions and some experiments that need to be done.
  • Fluff Micro, a Fluff M0 in an Arduino Pro Micro form factor, for easy replacement in projects.
  • Some progress on the MIDI ocarina.

41:38 @foamyguy

  • Last Week
    • Put together a new page for the custom fonts learn guide that talks about the Bitmap_Font library and shows a few examples of ways it can be used.
    • Testing and Review the new Cartesian widget and other displayio related PRs
    • Implemented basic cursor rendering and movement in the Tiled map helper class.
  • This Week
    • Work on “point / click with cursor to move” Tilemap game mechanic
    • Streaming 1 hour earlier this week Saturday 9am central - have vaccine shot appointment in the afternoon

42:41 @hierophect

  • Last week:
    • Laid out boilerplate for the RP2040 alarm system, digging into sleep docs
    • Found and resolved an issue with the objects returned from Light Sleep
    • Fixed remaining issue with STM32 where objects were not returned properly from deep sleep
    • Submitted the STM32 alarm PR for final testing/review
    • Catching up on the interrupts discussion with implications on Alarm API
  • This week:
    • RP 2040 alarm system control, implementation and testing
    • Re-test changes to AudioPWMIO today
    • Lay out some changes to the internal alarm structure to run by @danh
    • CI fixes, etc for the STM32 PR
    • Moving back to Boston.

44:49 @Hugo

  • Last week:
    • Some infrastructure changes/PRs from the “contributing” page (failed checks, missing content, etc)
  • This week
    • Incorporate PR feedback
    • Look around for other issues with hardware which I can help with
    • Found out that remapping “CAPS LOCK” to F24 in Windows, and using that for PTT in Discord surprisingly works!

45:53 In The Weeds

46:08 @askpatrickw How to handle Dependencies that are not published on PyPi :: Circup #96 Specifying CircuitPython Requirements vs CPython requirements which include CP Libraries

  1. Adding non-pypi published libraries to requirements.txt breaks builds
    • env-requirements.txt as an approach
    • Suggested: circuitpython-requirements.txt and requirements.txt
  2. JSON AND\OR requirements.txt
    • Would third-party bundles also have to implement JSON?
    • Is this a standard that is intended to be established?
    • Should circup switch to the JSON and if so, should we remove the requirements.txt from the bundles? Conclusion:
  • CircuitPython only requirements which are in addition to those in requirements.txt will be documented in a circuitpython-requirements.json -- @MakerMelissa will decide the filename\format.
  • Yes. Circup will move to the JSON files in the bundles.
  • Yes. It is planned that in the future where there are 3-rd party bundles theyd be built the same way.

1:02:43 @David.Glaude (maybe text-only, will try to have microphone an quiet place)

  1. What are the differences between those two way to access a 240x240 screen (is there an old and a new library? One to use with Blinka and the other for CP? Are there benefit or one or the other):

    • “adafruit_st7789.ST7789”
    • “adafruit_rgb_display.st7789”
  2. Proposal: Unified pin numbering for Blinka on 2x20 socket (aka Pi like).

I would like to be able to use the same code on SBC and MCU that communicate with a Bonnet/pHAT/HAT.

When I say "MCU" it could be a CircuitPython board with an adaptor to have Raspberry Pi pinout :

Mostly I am interested in the Raspberry Pi family, but I am Ok with using it on Banana, Google Coral, Jetson, Pin, Orange, or other fruit with a 2x20 connector.

I wanted to see what was available on the Raspbery Pi Zero+ and it is the BMC numbering in use, using Dxx for GPIOxx (with no alias except for SPI/I2C/UART/...)

There are two problems with this:

  • It does not respect the silk numbering (that is the physical pin number)
  • It use Dxx so this "conflict" with Dxx used on Feather

At least one board use for some pin a physical numbering alias in the form of GPIO_Pxx.

So I would like to have a possibly for all board with a compatible 2x20 pin to have such an alias (see https://gist.github.com/dglaude/8a683ae5409970cb4e58a8668eb462e1 for full list):

  • GPIO_P3 = D2
  • GPIO_P5 = D3
  • GPIO_P7 = D4

Then for adapter, I could write a little mapping/alias library.

1:15:50 @Jose David: (Text Only) Issue #4516 I saw some discussion regarding the size of the lists. Is there any guideline on how much data can we put in a list? Why this limit is higher for dictionaries, I have used dictionaries with >2000 entries. 3 items for each entry, all ints.

Second topic: Now that we are moving some widgets out of the Displayio layout library, could we add more features? Widgets were in the light side because they were in the displayio layout library?

1:21:16 @danh

  • Please think about your use cases for interrupts and comment in issue #4542.

1:25:41 @kattni

1:28:49 Wrap-Up