adafruit-circuitpython-week.../2021/2021-06-14.md
2021-06-14 14:16:12 -05:00

25 KiB
Raw Permalink Blame History

CircuitPython Weekly for June 14th, 2021

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!

Kattni 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 for use with standard calendar applications and can also be viewed in your browser

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.


2:50 Community News

Tom's Hardware Best RP2040 Boards 2021

Best RP2040 Boards

While Raspberry Pi has its own RP2040-powered board in the Raspberry Pi Pico, there are now more than a dozen, third-party solutions that offer improvements which range from smaller sizes to built-in Wi-Fi, more storage or a lot of additional outputs. There are even RP2040-powered keypads. To help you choose, weve listed the best RP2040 boards below. These boards can be used for everything from general learning to building Wi-Fi connected robots to implementing basic A.I. Adafruit has three of the 10 boards! - Tom's Hardware.

3:25 GitHub repository use from within Visual Studio Code

GitHub repository use from within Visual Studio Code

The Remote Repositories extension lets you quickly browse, search, edit, and commit to any remote GitHub repository directly from within Visual Studio Code - Visual Studio Code Blog and YouTube.

3:45 2021 - The Year Windows Became a First Class Python Development Environment

Windows Powershell

I felt so badly burned by Apples laptop hardware design decisions of a few years ago that Ive rather fallen out of love with that platform for my personal work. My first choice was the Linux desktop, and after months of struggling, instability and accessibility issues Ill admit Ive been looking for stable, solid alternatives that are also powerful enough to get the job done and maybe even have something new to offer... If youve tangoed with Windows in the past, and found yourself struggling against its rather byzantine UI, Id urge you to read on and see if maybe its not time for another careful look. 2021 - The Year Windows Became a First Class Python Development Environment - Blind Not Dumb.

4:29 PyFest This week!

PyFest

PyFest is an online festival dedicated to Python. The aim is to bring all the Python community together in a fun and interactive event. 🤗 Join for a series of lighting talks, artistic performances, quizzes and more... starting on 16 June 2021. PyFest will be free and streamed on YouTube and Twitch - PyFest.

4:52 The CircuitPython Parsec with John Park

CircuitPython Parsec

This week, John shows how to use the CircuitPython map_range function. You can see the latest video and past videos on the Adafruit YouTube channel under John Park's CircuitPython Parsec playlist - YouTube. magtag-keps

5:06 magtag-keps - get the top post from Reddit r/worldnews without using Reddit's API and display on an Adafruit MagTag - GitHub. RP2040 Powered Shortcut Keyboard

5:20 How to Build an RP2040 Powered Shortcut Keyboard with CircuitPython - Tom's Hardware and YouTube. 3D Printed Macropad

5:30 "The worlds cutest 3D printed macropad" inspired by Romlys keycappie and powered by Adafruit QTPY and CircuitPython - Twitter.

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:14 State of CircuitPython, Libraries and Blinka

6:50 Overall

  • 43 pull requests merged
    • 23 authors - kattni, timonsku, FoamyGuy, dherrada, bergdahl, ZodiusInfuser, rpavlik, fede2cr, ladyada, jposada202020, wtuemura, DavePutz, weblate, benclifford, alexwhittemore, twa127, jfurcean, jepler, netroy, woolseyj, lesamouraipourpre, makermelissa, microDev1
    • 15 reviewers - kattni, dhalbert, FoamyGuy, dherrada, tannewt, ladyada, jposada202020, askpatrickw, brentru, jepler, woolseyj, caternuson, lesamouraipourpre, deshipu, makermelissa
  • 17 closed issues by 13 people, 22 opened by 19 people

7:37 Core

Overall: The 6.3.0 release continues to be stable, though we have 3 open issues wed like to resolve in a future bug-fix release such as 6.3.1.

Most of our work is in the main branch, which will become 7.0. Theres not a specific schedule. Instead, were working on issues tagged “7.0.0” and as that number decreases well move towards beta release. Think months, not weeks.

The recent improvement on the main branch Im most excited about is that you can now run a command to install the “circuitpython stubs” locally (make stubs && pip install .), so that advanced source code editors such as pycharm can help diagnose mistakes like calling functions without the right number of arguments, before even running the code. Early hug report to @foamyguy for laying the groundwork for this in setup.py.

9:40 Libraries

Library updates in the last seven days:

Overall: Weve moved all of the CircuitPython libraries to the main default branch. Early hug report to Dylan for all the amazing work there, and early hug report to Justin for creating a tool that made updating Learn super simple. Were continuing to get through older PRs - Jose David has done up a report that covers the rest of the open PRs, and suggestions on what to do (well discuss this more In the Weeds). Im really happy to see us getting caught up on library PRs, and continuing to stay caught up on recent ones. Thanks again to everyone who contributes and to those contributing their own libraries to the Community Bundle.

12:13 Blinka

13:15 Hug reports

14:00 @kattni

  • @dherrada for getting all of the CircuitPython libraries moved from master to main default branch
  • @jose david for going through all the library PRs, reviewing, merging etc
  • Justin for creating a tool that allows us to easily update the links to GitHub code embedded in Learn guides to main.

15:36 @KeithTheEE (text only)

  • @Jose David for helping get my first pull request organized and through at the start of last week, and offering a lot of perspective throughout the process
  • The community as a whole for being awesome and helping make the experience great!

16:05 @kingernorth (text only)

  • A general hug to all as the updates and improvements keep coming.

16:15 @MakerMelissa

  • @lesamouraipourpre for submitting a better implementation of I2CDisplay on Blinka Displayio
  • @kattni and @dherrada for helping me with moving some master repos to main
  • Group Hug to everyone else

17:00 @askpatrickw (not in meeting)

  • Very busy with day-job work but I wanted to send a Group Hug and hug to @kattni for the CP Community CoC work.

17:17 @CGrover

  • @v923z (Zoltán Vörös) for the latest release of ulab for CircuitPython 7.0. Looking forward to using more of the numpy compatibility layer. Great for sensor and image processing.
  • @AnneB and @ladyada for prompt moderation and publication of the thermal camera learning guide.

18:04 @danh

  • @DavePutz for revisiting reading CPU voltage on SAMx5x, which now seems to work even for flaky chips.

@DaveP (lurking)

18:48 @david.glaude (skipping the meeting)

  • @CGrover and those that helped him (anne?) for the improved thermal camera learn guide
  • And a Group Hug

19:05 @foamyguy

  • @Jepler for improving the stubs setup.py configuration to fix an issue that was revealed by readthedocs
  • @deʃhipu for a great suggestion to improve variable naming in a PR for the imageload library
  • @dherrada @kattni and @makermelissa for working on moving library repos to the “main” default branch

19:48 @hirophect

  • @danh for help working through a tricky run-reason problem
  • @cwalther for their work on the original run reason PR
  • @deshipu, @robertgallup and @tannewt for their thoughts and contributions to the problem
  • @maholli for taking a look at the SAMD low power implementation

20:30 @jepler

  • @foamyguy and @danh for quick feedback on some PRs
  • @foamyguy for the first push on setup.py for the stubs
  • @ladyada and @pt for helping me keep upbeat while working on camera stuff
  • @jerryn for testing my code and giving useful feedback

21:01 @jerryn

  • @jepler for getting the parallel image capture and OV7670 working on the ESP32S2 Kaluga.
  • @dherrada and all involved in the migration to “main”.

21:30 @Jose David (Text Only)

  • @Woolseyj user in Github for adding support for the 74HC165 driver library To the community Bundle
  • @lesamouraipourpre for given clear explanations on how to add libraries to PyPI

21:55 Status Updates

22:40 @kattni

  • Last week:
    • Updated circuitpython.org/libraries to have the 7.x bundle.
    • Updated the README for the Project Bundler to reflect the two version folders within the zip
    • Updated the Adafruit Community CoC.
    • Created a PR to generate a CircuitPython Community CoC for community libraries.
    • Added a CP NeoPixel example to the Rotary QT guide (it was not intuitive to use)
    • Templated the Feather RP2040 CircuitPython install page
    • Incidentally testing the “replace page” feature in Learn for the first time (spoiler: it worked! Well, mostly…)
    • Fixed a couple of misc.
    • Added a section on using safe mode in CircuitPython to the RP2040 install page template (so its in all of the RP2040 board guides)
    • Started the Slider Trinkey guide
    • Updated the Git and GitHub guide to include a section on deleting your fork and your local clone, and forking again and cloning locally again. This is the simplest way to update your setup to use the main default branch if you had previously forked and cloned a repo that was updated.
  • This week:
    • Finish Slider Trinkey guide
    • Test pypixebuf PR on 6.x and 7.x
    • Start the QTRP2040 Trinkey guide
      • Including using the NeoPixel and the button in CircuitPython
      • And a page using the QT Trinkey with U2IF that turns it into a Blinka-compatible USB adapter
    • Create I2C CircuitPython template (to go into QT Trinkey guide)
  • This evening:
    • Getting my second COVID vaccine! (So no idea how this week will end up looking.)

27:15 @kingernorth (text only)

  • Last couple of weeks
    • Ive been working on a new course proposal with the local college through a program set up by the Ministry of Colleges and Universities in Ontario for grant money. This is a new program of Micro-credentials. My proposal has advanced and has been officially submitted to the college and the Ontario government. This course Ive created is Microcontrollers for Commercial Applications. This course is using both CircuitPython and Arduino.
  • This week
    • I just built a 3x3x3 led cube, which Ive never built one before, and Ill be writing code and testing using it with CircuitPython on a couple of RP2040 boards, feather and pico, that I have.
    • I also purchased my first Raspberry Pi, a Pi400 and Im starting to use it with both a monitor and Cyberdeck/TFT. New adventures.

28:05 @MakerMelissa

  • Last Week:
    • Finished up Voice2JSON guide
    • Updated EPD Guide with new 2.13” E-Ink Display
    • Tested a fixed SDL Script and updated the PiTFT guides
    • Moved a number of Blinka and Raspberry Pi related repos from Master to Main
    • Went through and fixed a handful of repos that were not passing their checks
  • This Week:
    • Finish up fixing repos
    • Test out using Python Extended Bus on Raspberry Pi with multiple SPI devices
    • Take a look at an outstanding PR on the WebSerial ESPTool
    • Start working on a Microsoft Lobe guide

29:15 @Mark(Gamblor) [lurking and may not be present]

  • Looking more into the ESP32S2 display glitches now that I have a logic analyzer. I cant make in the weeds this week but there seems to be an occasional delay in the row/column commands to the display causing an issue. Ill keep looking.

29:39 @CGrover

  • Published the nuevo thermal camera learning guide, so its time to pull out a couple projects that need upgrades and fixes.
    • To extend its life, the robotic heirloom cuckoo clock project is now augmented with electronic sounds as a backup for the servo actuators. After 50+ years of operation, the original mechanical whistles are showing irreversible wear. In the recording studio today getting some high resolution tracks of the original mechanical whistles and gongs to replace the stock sound effect samples.
    • To reduce the kludge of breakout boards and wires (and to obtain another OSHPark sticker), designing a dual INA260 + DRV8833 custom FeatherWing PCB for the motor tester appliance.

31:15 @danh

  • Rewrote keypad scanner several times to zero in on the best and simplest API. Finishing key-per-pin and will do key matrix next.

32:47 @david.glaude (lurking)

33:10 @foamyguy

  • Last week
    • Rotary Trinkey brightness crank code
    • Began work in imageload library to allow it to work with file-like objects like BytesIO
    • Remove a workaround in imageload library no longer needed
  • This week
    • Design and print Rotary Trinkey crank case
    • Learn about PyPi versioning to try to figure out how to set up seperate stable and latest releases for the stubs

35:05 @hierophect

  • Last week:
    • Wrote up the learn documentation for Alarm and the light/deep sleep implementations across the other ports it now exists on
    • Got started merging in code for supervisor set-next-file
    • Planned out some of the difficulties this runs into as it relates to sleep, since the filename needs to persist across deep sleep, which is similar to a reset
  • This week:
    • Wrap up an initial implementation for next-file that simply avoids any interaction with deep sleep
    • Fill out some related sleep features, like sleep memory on the STM32 and RP2040
    • Articulate problem on github for input

36:45 @jepler

  • Last week:
    • Finally got ov7670 camera working on esp32s2! Pull request is in but not merged
    • It means incompatible changes in the ParallelImageCapture class, which will be fixed in adafruit_ov7670 library
    • Added a board definition for the “v1.3” kaluga board
    • Tracked down and fixed some other fun stuff
    • Helped out with setup.py to install stubs
  • This week:
    • Back to ov2640 initialization code, moving over to rp2040 due to some glitches on samd51.
    • Also discovered that i2c speeds below 100kHz dont actually go to lower rates on samd51, no idea why.
    • Would like to update my keyboard to 7.0-pre to get the ability to shut off the repl, but also need to contrive access to its reset button before doing that
    • Would also like to look into some apparent problems with the ulab stubs (stubs have names like ulab.ndarray, not ulab.numpy.ndarray, for instance)

39:39 @jerryn

  • Played with OV7670 on a Kaluga esp32s2. Learned a lot about the displayio init sequence for the ili9341 -- always nice to demystify something.
    • The examples from @jepler were very educational.
  • Chasing down some issues with sdioio on the stm32f405
    • Getting intermittent I/O errors on writes
    • Working on a minimal case showing the problem -- will open an issue
    • Same code runs fine on feather M4 with sdcardio or M0 with sdcard
  • Stumbled across issue with print in CircuitPython
    • On some builds , print will throw an error if the “flush” keyword is used.
      • So far, fails on M4,nrf52840,esp32s2,stm32f405... works on M0
      • Issue opened.
  • Out next week -- Grandkids visiting!!!

41:32 @Jose David (Text Only)

  • Last Week:
    • PR reviewing and status report
    • Learning Guides Updates for the BME280
    • Adding some of my community libraries to PyPI
    • Working on the SI4713 driver to have the radio stations
    • Update the I2C Addresses Learning Guide
  • This Week:
    • PR reviewing
    • Others

42:05 In the Weeds

42:24 @kattni and @jose david - overall CircuitPython library PR status discussion.

44:37 @Jose David: Could we create different tag for identifying PRs. I am thinking of two labels that could be helpful. One for when the PR could modify some learning guides, and the second when the PR will need a revision change. Dylan mentioned to me that is good to have in the PR when the changes will break the API, but in the PR process I completely forgot this. https://github.com/adafruit/Adafruit_CircuitPython_BME280/pull/52 So I think this could help, or if you have any other ideas?

47:08 Wrap-Up