adafruit-circuitpython-week.../2021/2021-03-15.md
2021-03-15 13:03:37 -07:00

31 KiB
Raw Permalink Blame History

CircuitPython Weekly for March 15, 2021

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:02 Community News

3:09 Piper Make Brings Block Programming to CircuitPython

Piper Make

Piper Learning is releasing a new product, Piper Make, which is a browser-based coding platform for the Raspberry Pi Pico. It has a block-programming interface based on Google Blockly. The underlying code is CircuitPython! You can access the interface, which is similar to MakeCode, at https://make.playpiper.com/. Under the hood, there is a CircuitPython helper library Piper has created.

3:55 The Adafruit Discord Server Surpasses 28,000 Members

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 28,000 humans, thank you! Adafruit believes Discord offers a unique way for CircuitPython folks to connect. Join today at https://adafru.it/discord.

4:30 Software Releases

Here are some software releases of note for this weeke: CircuitPython Bundle Manager

New version of CircuitPython Bundle Manager released including dependency detection - GitHub. PIO

The Raspberry Pi team is posting examples of using PIO to make common interfaces on the Raspberry Pi Pico - GitHub Mu Beta

The Mu Editor team is testing 1.1.0-beta.2 - First Public Beta - GitHub.

5:34 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.

6:39 State of CircuitPython, Libraries and Blinka

7:28 Overall

  • 73 pull requests merged
    • 22 authors - noahcoad, caternuson, DavePutz, thomoray, weblate, dhalbert, dglaude, jepler, cognitivegears, tyomitch, hugodahl, flavio-fernandes, makermelissa, FoamyGuy, lesamouraipourpre, twa127, AlexColello, jposada202020, TeslaK20, SAK917, kmatch98, tannewt
    • 9 reviewers - caternuson, kattni, dhalbert, jepler, FoamyGuy, microDev1, ladyada, tannewt, makermelissa
  • 36 closed issues by 12 people, 27 opened by 21 people

8:45 Core

10:25 Libraries

13:02 Blinka

13:48 Hug reports

14:29 @tannewt

  • @microdev for setting up issue templates
  • @lukew for help with flash stuff on rp2040

14:49 @v923z

  • David Glaude for a very interesting discussion on his thermal camera stuff
  • Group hug

@anecdata (lurking)

15:10 @brentru (text only)

  • Group hug
  • @jposada202020 and @qwertimer for PRs into the CircuitPython Jupyter Kernel
    • One hug for RP2040! And one for inline magics that allows CPython code to be executed in the same notebook as CircuitPython code. Really powerful stuff (can already think about the applications of this)

15:44 @CGrover (text only)

  • Group hug to the team and community.

15:52 @charles Burnaford (Lurking)

  • Group Hug and Happy PI day!

15:58 @danh

  • @Gadgetoid for discussions and work on RP2040 I2C.
  • @askpatrickw, @microDev1, and @skieast for attention and testing on ESP32-S2 I2C.

17:15 @DaveP (text only)

  • @tannewt for his careful and patient reviews of my RP2040 pulseio PR

17:30 @david.glaude (lurking)

  • @MakerMelissa for fast response time on further IS31FL3731 improvement
  • @v923z for helping me with ulab for thermal camera usage
  • @Gadgetoid for discussion on CP support for breakout garden
  • @jepler for the Feather RP2040 RGBmatrix guide (just in time)
  • @deʃhipu for breaking the group limit in displayio (this is so last week Hug Report)

18:09 @foamyguy

  • Kmatch98 and Jose David for their help documenting the display_text library
  • @kmatch98 for working on a nice dial gauge widget. Also for enhancing the IconWidget with some animation.
  • @Jposada202020 for some great additions in the display_text library: baseline alignment with anchored_position and directional labels that can be in other orientations. Also for adding a new example font file
  • @Jeff E for an enhancement in bitmaptools in the core and in the bitmap_font library that decreases the time it takes to load fonts.
  • @AnneB and @Kattni for all of the work on the newsletter, and delivering a steady stream of interesting python projects and news.
  • Github user @flavio-fernandes for fixing a bug that I introduced with the display_text refactoring

20:00 @hierophect

  • @tyomitch for their work on an implementation of audiopwmIO for the STM32 port, fitting in nicely with the existing timer system.
  • @microdev and @askpatrickw for their continued work on the IDF update for ESP32
  • @danh for finally tracking down the ESP32-S2 I2C bug
  • Jason Mecham, whose tag is a lot of letters and numbers, for reporting an issue with UART deinit on the STM32
  • @tannewt for reviews and approvals of bugfixes

21:12 @Hugo

  • @danh for the info on good places to check for computer purchase
  • @kattni for a pleasant chat

21:42 @jepler

  • @tannewt for figuring out the flash reliability problem on RP2040
  • @kattni for helping me find the right page on Learn
  • @jerryn for testing some PRs and discussing something confusing about the rtc module
  • @microdev for work on the code-formatting PR which I guess well be able to take soon!

22:24 @jerryn

  • @jepler for fixing the RTC on the RP2040
  • Group Hug

22:37 @Jose David Montoya (Lurking, Text only)

  • @foamyguy for the excellent work in the display text guide
  • @qwertimer for working on executing python native code in the Jupyter Notebook CircuitPython Kernel, this will allow user to use both in a same notebook
  • @jerryn for helping me debugging my RFMx feather
  • @scott that is always open to answer questions in other discord channels about circuitpython.
  • @kmatch98 for all the help and reviews
  • @hugo For helping me understand Github and cherry-picking.

23:20 @kattni

  • @dherrada for all the work on Adabot
  • @sommersoft for popping in to help with some Adabot updates
  • @sheehan on the Learn dev team for dealing with all the bugs I found in a new Learn feature
  • @foamyguy for all the work on all the things
  • @sak917 on GitHub for picking up some older issues, beginning with Good First Issues
  • @Hugo for adding another pre-commit hook to cookiecutter to cover tests

24:07 @kmatch98

  • @foamyguy for the new display_text learn guide and the new icon_widget
  • @jposada202020 for the new anchor to baseline, including with anchor_point and many other additions
  • @WarriorOfWire for the vectorio library, there is a lot of good capability here to use for drawing and mutating polygons
  • @MakerMelissa for adding rotations on the MatrixPortal
  • @jepler for new bitmap loading tool
  • All the discord members discussing and sharing how they are using MatrixPortals and MagTags

25:10 @MakerMelissa

  • Group Hug

25:19 @microDev (text-only)

  • Group Hug
  • @danh for looking into esp32s2 i2c
  • @jepler for solving my code formatting pr issues

25:36 Status Updates

26:07 @tannewt

  • Further flash work and debugging of unreliable flash on Feather RP2040.
  • Will focus on C version of QSPI init this week. Should be able to make versatile version

27:07 @v923z

  • Added functions to ulab to interface with peripheral devices producing 32-bit integers

@anecdata (lurking)

27:24 @brentru (text only)

27:48 @CGrover (text only)

  • Last week: Submitted PR to include a settable brushed DC motor recirculation current mode parameter for the Adafruit_CircuitPython_Motor.motor library. Learned a bit more about PyLint in the process. Starting work on the learning guide rewrite in anticipation of the PR merge.
  • This week: Will address converting raw measurements to Lux and UVI for the LTR390 true UV sensor. Plans are to update the supporting library.
  • Spotted a Stemma DRV8830 voltage-regulated motor controller in the wild (on Ladyadas desk). Excited to get my hands on one for testing.
  • Unrelated: After months of downsizing, the commercial side of the recording studio is now officially closed. Not sure how the space will be reconfigured just yet, but it will certainly involve multiple strings of NeoPixels and the underutilized Ekornes recliner.

@charles Burnaford (Lurking)

28:53 @danh

  • Disabled secondary USB CDC serial channel by default, because it is confusing existing workflows. You can still make a custom build.
  • Made a simple library to identify the REPL and secondary (“data”) channels on host computers. Will submit a PR to Mu to use this to identify boards and the REPL channel.
  • Fixed ESP32-S2 I2C problem with a small change in the I2C driver in esp-idf. Its not obvious why the fix works0. I narrowed the problem down to something in the closed-source ESP wifi stack. (:

31:30 @david.glaude (lurking)

32:48 @foamyguy

  • Last week:
    • Display_text guide published
    • Began work on a Touch Deck project in collaboration with JP
    • Display_text refactor merged, and reviews on many PRs that were waiting on it.
  • This week
    • Convert the current Touch Deck code to work with Feather RP2040 and 3.5” Featherwing, and wrap up any other loose ends. Also make a layer configuration for PyCharm with helpful Git commands and other shortcuts. 3D Print the enclosure stand for it.
    • Finish up reviews on the last few remaining display_text and displayio_layout PRs.
    • Begin work on an easter themed game that involves a bunny finding colorful eggs and eating carrots for energy.
    • Add a 3.5” Featherwing helper to the Featherwing library

34:40 @hierophect

  • Last week:
    • Ive had a rough couple of weeks and Im sort of outstaying my welcome on the STM32 power stuff. Its mostly done but Im stuck on deep sleep interrupt behavior. Im going to keep cracking at it today with a logic analyzer but Im also trying to make myself available for more urgent material
    • Fixed some minor bugs, like a deinit problem with UART
    • Caught the STM32F4 Discovery board to do everything the Feather can, since they have the same silicon.
    • Did a little research about overclocking and the options for changing the clock settings of Circuitpython over resets
  • This week:
    • Test audiopwmio
    • Going to try and nail this deep sleep stuff and get some final notes on low power consumption for the docs
    • Going to try and bundle at least RTC in with that since its basically done already.
    • In general, available for other assignments, could fix some recent socket requests, etc.

36:55 @Hugo

  • Last week:
    • Get ProgressBar code refactored to appease Pylints “duplicate-code” rule
    • Start looking into the Magtag bitmap crash issue
  • This week:
    • Finish refactor
    • More work on the Magtag bitmap crash issue
    • Learn about computers to PTT on Discord

37:32 @jepler

  • Last week:
    • Wrote a new guide on circuit sculpture
    • Enabled MP3 playback on RP2040, but only extremely low bitrate files work
    • Fixed an RTC bug on RP2040
    • Reverted a space-saving commit, but may need to reevaluate it in light of the discoveries about flash speed on RP2040
    • Ran the meeting
    • The PCF metrics bugfix was merged
    • Update the rgbmatrix guide with a page for rp2040
  • This week:
    • See if audiomixer can be enabled on rp2040
    • Enable choosing the pin for pios conditional JMP PIN” instruction
    • Test i2sout for pico/rp2040
    • May be starting on some imx stuff
  • Fun stuff:
    • Will move my WWVB Clock from Matrixportal to Feather RP204, a more accurate local clock will improve its ability to stay synchronized
    • Got to fix a daylight saving time bug in the code, have to wait for next year to test it

40:59 @jerryn

  • Had fun playing with my toys
    • Did find that I was able to install the PiTFT kernel update for my Braincraft Hat with the latest RPi 4 kernel. Seems to be OK now. Also works with AMG8833 Thermal Camera
  • Will do it again next week
    • Hope to add battery monitor to LYWSD03MCC - maybe…
    • Some catchup on the Fingerprint Library and issue with differences between various sensors.

42:39 @Jose David Montoya (Lurking, Text Only) Last week:

  • PR adding a solution from @k3wals for the I2CPeripheral samd51 corrections in the CTRLC bit
  • Draft PR for the Feather RP2040 I2Cpheripheral
  • Corrections for the PRs for display text
  • PR for directional label
  • Exploring how to port encoding polylines to CP
  • PR for label Styles
  • Some PR for Core documentation This Week
  • Work on the comments from scott in the I2Cpheripheral
  • Review and corrections of Core documentation (Readthedocs) (related to Issue #321)
  • Corrections on feedback for directional label
  • If decided path to take, work in style library

43:30 @kattni

  • Last week:
    • Hugo updated cookiecutter to include a new pre-commit hook to run pylint on tests directories similarly to examples minus one pylint: disable
    • Updated Fritzing to the latest version, so far havent run into any issues
    • Added a “reverse lookup” pinouts list to the Feather RP2040, so the pins are now listed both by pin name = functionality, and pin function = pin names.
    • Updated AMG8833 guide for STEMMA QT rev
    • Worked with Anne further on interim taking over the newsletter
    • Wrote the first template in the Learn system with the new templating feature
      • First template is “Blink” using the D13 LED.
    • Found a ton of bug with the new templating feature in Learn
    • Other miscellaneous that Im certain Im forgetting
  • This week:
    • Chat with Brent about getting datetime passing pylint (done)
    • Continue on the template creation mission
      • The eventual plan is to “recreate” the CircuitPython Essentials guide with templates, so each guide will have its own tailored pages so were not dealing with “but my board looks different” or “there is no LED” or whatever other feedback is constantly coming up because the guide was written to be generally applicable, not necessarily specifically applicable.
    • Update the CLUE guide to have info on the debug pins
    • New products process for Cyberdeck
    • MIDI FeatherWing guide

48:10 @kmatch98 Last week:

  • bitmaptools: Added fill_region and draw_line functions
  • Helped animate the new icon_widget
  • Submitted Dial widget This week:
  • Submit Annotation and FlipInput widgets
  • Create an example combining several widgets

49:08 @makermelissa

  • Last Week:
    • Wrote a CircuitPython driver for the SSD1680
    • Updated the CircuitPython EPD library to add the SSD1680
    • Wrote the 2.13” EPD Guide
    • Created a PR for the RPLIDAR to add additional functionality, but need to update it some more
    • Looked into an issue where a user was having trouble updating the WiFi coprocessor firmware
    • Fixed an issue with the 2.7” EPD in arduino where the RED and black were swapped
  • This Week:
    • Working on misc github issues
    • Possibly starting a guide on the 2.9” E-Inks which will mostly be gathering pages from existing guides and making them look more uniform.
    • Probably work on the RPLIDAR library a bit more

50:30 @microDev (text-only)

  • Did some esp32s2 i2c and idf update work.
  • Added code formatting and translation checks to pre-commit.

51:49 In The Weeds

52:17 @Jose David @foamyguy There is PR#139 for display_text label to introduce styling. Do we want to create a helper library that will be available for other widgets to use? Or keep the styling for individual libraries?

Proposed new “ColorHelper” library would contain things like:

  • Helper functions for converting between numeric Hex color code, tuple RGB, and string hex color code.
  • Possibly helper functions for manipulating colors (i.e. lighten or darken by X amount)
  • Hold color theme definitions that could be imported by other libraries and user code and easily applied to displayio objects.

1:00:41 @david.glaude, @v923z

Interfacing circuitpython objects with ulab. E.g. enable displayios bitmap to accept buffers, and return buffers, so that data could directly be piped into numerical arrays.

Context:

Thermal camera without ulab: https://github.com/dglaude/circuitpython_phat_on_pico/blob/main/mlx90640_240x240.py With some ulab optimisation to find min, max and map to 64 colour: https://github.com/dglaude/circuitpython_phat_on_pico/blob/main/mlx90640_ulab.py

Slow part:

image_bitmap = displayio.Bitmap(24, 32, number_of_colors) inta=ulab.array((npframe-min_t)*factor,dtype=ulab.int8) index = 0 for h in range(24): for w in range(32): image_bitmap[h, w] = inta[index] index+=1

David will create an issue summarizing the Discord discussion, then others can add tips to that issue and hopefully someone will pick it up. Please ping @v923z on the issue!

1:08:38 @v923z The circuitpython repository is not searchable. Can anything be done about that?

1:15:16 Wrap-Up