adafruit-circuitpython-week.../2021/2021-04-26.md
2021-04-26 12:27:37 -07:00

30 KiB
Raw Permalink Blame History

CircuitPython Weekly for April 26, 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 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.

3:30 Community News

Adafruit Sponsoring PyCon US 2021 Participating

Adafruit is a sponsor of PyCon US 2021! PyCon is the largest annual gathering for the community using and developing the open-source Python programming language. It is produced and underwritten by the Python Software Foundation, the 501(c)(3) nonprofit organization dedicated to advancing and promoting Python. Through PyCon, the PSF advances its mission of growing the international community of Python programmers. The conference is happening May 14-15, 2021, with sprints to follow. Learn more at PyCon.org! 4:10 Mu 1.0 beta 4 Released! Mu Editor Logo

Mu 1.0 beta 4 has been released! This release includes a number of bug fixes and back-end updates, including a new way to detect CircuitPython boards and find the CircuitPython REPL connection. Check out this post for details. Since this is a beta release and may have bugs, they've asked that folks provide feedback via GitHub. Learn more and download the latest Mu from CodeWith.Mu! Circuit Playground Express IR remote control shutter

4:55 An animation demonstrating the Adafruit Circuit Playground Express acting as an intervalometer to remotely fire the shutter on a Sony camera using infrared commands, the code also features a manual mode where the CPX left button fires the shutter, both useful for stable, vibration-free photography - YouTube. PicoTouch

5:24 PicoTouch PCBs designed to work with Raspberry Pi Pico and CircuitPython - Twitter. Paint-A-Nator

5:40 The Paint-a-nator 9001, a custom pen plotter for those with particular disabilities, running CircuitPython - YouTube and GitHub.

6:07 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.

7:02 State of CircuitPython, Libraries and Blinka

7:31 Overall

  • 108 pull requests merged
    • 34 authors - deshipu, eddieespinal, ZodiusInfuser, jposada202020, fede2cr, zapwizard, hexthat, Neradoc, tyomitch, colonwq, caternuson, bmeisels, Jcc99, BrianPugh, makermelissa, sandyjmacdonald, dhalbert, jepler, bergdahl, hierophect, dearmash, gamblor21, dherrada, zsimpso, tannewt, GuenterQ, empirical-dan, wtuemura, hugodahl, weblate, lesamouraipourpre, stonehippo, Ninic0c0, DavePutz
    • 14 reviewers - tannewt, microDev1, ladyada, jposada202020, makermelissa, gamblor21, brentru, dherrada, kmatch98, jerryneedell, dhalbert, TrevKnows, jepler, FoamyGuy
  • 38 closed issues by 19 people, 24 opened by 18 people

8:54 Core

Overall: The big thing is that were firmly in 7.0 work land on the main branch. Be aware that things are changing a lot. I started to merge Micropython updates in which will cause turmoil but wed love people to use it if they feel brave. If you find issues and can help fix them wed appreciate that too. Itll put us in a better place for 7.0, but it will have a bit of instability in the short term.

11:17 Libraries

Overall: Im happy to see the flurry of documentation updates and improvements happening - early hug report to @jose david for picking that up. Im also super excited to say the oldest library PR we have has been tested successfully and is essentially ready to be merged!! Were looking at updating the CI on the libraries to include more information when Pylint/Black etc fail, so folks know what to do instead of either us telling them or them figuring it out themselves. That should streamline PRs quite a bit. Note: GitHub made it so first time contributors require someone to “approve” the CI to begin running - so its really important to keep up with new PRs so that new folks have a positive experience!

16:15 Blinka

17:00 Hug reports

17:42 @tannewt

  • @anecdata for working on ESP32-S2 access point mode.

18:04 @anecdata (lurking)

  • Group hug

18:11 @CGrover (text only)

  • Prof. Dan Bruton for the simple spectrum-to-RGB interpolation routines he wrote in Fortran 25 years ago.
  • Group hug

18:27 @charlesburnaford

  • Group Hug

18:45 @danh

  • @Jose David M. (@jposada202020 on GitHub) for continuing to do a big cleanup on library documentation
  • @tannewt for smart idea of merging MicroPython versions one at a time
  • @jepler for working on difficult and flaky hardware
  • @kattni for all the newsletter work while Anne was away
  • @DavePutz for solving deep pulseio issues.
  • @stargirl for a great writeup on SAMD21 brownout detection

20:06 @DaveP (lurking)

  • @tannewt for good direction on where to look for a puzzling pulsein issue.
  • Group hug

20:20 @David.Glaude (lurking)

20:55 @foamyguy

  • @Neradoc, @johnnybergdahl, @hugo, @dexter starboard, @lesamouripourpe, and anyone else who hung out with me on streams over the weekend and gave me many python pointers along the way
  • Group hug

21:31 @hierophect

  • @danh for answers and discussions re: power
  • @jun2sak for all the cleanup and changes to the NRF alarm system
  • @Jepler for the cool new camera stuff

21:55 @Hugo

  • @Neradoc and @FoamyGuy for the really interesting bits of Python I keep picking up
  • @Jose David for pointing me to various resources I asked about, and making me realize that I know more about git and using it than I thought I did
  • @Tannewt (again) for the Bluetooth book recommendations. Makes for some interesting reading while waiting in the carpool line at kids school
  • Group Hug

@Jayguitar (lurking)

22:47 @Jose David

  • @Hugo for being always my Gihub Advisor ;) @nis
  • @Kattni for solving the issue regarding the infrastructure issues in https://circuitpython.org/contributing/library-infrastructure-issues
  • @kmatch For leave a helpful and detailed review on my slider widget. This helps to build and improve. And @foamyguy for also leave this morning a review there
  • @danh @kattni working with me defining the readthedocs standard for the library

23:39 @jepler

  • @jerryn for jumping in and testing with the OV7670 camera
  • @ladyada for pointers related to image processing & machine vision
  • @tannewt for working on the micropython merge, and @microdev for setting the stage
  • @kattni for an awesome stint as author of the newsletter

24:34 @kattni

  • @neradoc for catching such an obvious issue with someone running into issues installing CircuitPython after I tried a bunch of unnecessary troubleshooting (they were loading the wrong build)
  • @kmatch for joining the CircuitPythonLibrarians review team! Way to level up!
  • @jerryn and @Mark [Gamblor] for testing CPU temp on the RP2040 as a sanity check for me
  • @danh for reviewing some code I submitted for a Learn guide and catching something I missed in both that piece of code, and a template I had created.
  • @anneb for helping with the newsletter today.
  • @jose david for blowing up my inbox with documentation improvements
  • @dan and @ladyada for keeping up with a huge number of the documentation PRs
  • @ajs256 on GitHub for submitting their first contribution to the CircuitPython core
  • @neradoc for reporting a bug in the Learn system with single-page view

26:39 @kmatch

  • @jposada202020 for the slider widget and for all the Library PRs! And for becoming a Sphinx documentation expert and for creative suggestions for organizing the documentation.
  • @foamyguy for the updated learn guide on fonts and font files
  • @pigrew on GitHub for help with understanding tinyUSBs capabilities for communicating with test and measurement equipment
  • @tannewt for guidance on the TinyLogicFriend logic analyzer
  • @stargirl for sharing info about bootloader fixes (a real glimpse into black magic of bootloaders)
  • @kattni for support and encouragement on navigating all these diverse and different systems in the CircuitPython world

28:17 @MakerMelissa

  • All the reviewers that reviewed PRs over the weekend. It seemed like there were a lot more notifications than usual.
  • Group Hug

28:32 @Mark (Gamblor) [ lurking but have to leave early ]

  • @microdev for a quick review on the weekend

28:40 @stargirl (offline)

  • @danh for helping me track down the source of flash corruption on a SAMD21 board.

@v923z lurking

28:57 Status Updates

29:18 @tannewt

  • Merging in MicroPython
  • 1.10 is in.
  • 1.11 is in draft PR but failing CI
  • 1.12 is in progress. Merged but not compiling.
  • 1.13, 1.14, 1.15 are all unstarted.
  • Getting my first dose of the vaccine tonight!
  • After merging I need to circle back to status LED changes and then BLE workflow.

@v923z lurking

31:16 @anecdata (lurking)

  • Working on AP mode for ESP32-S2. PR #4650. Feel free to comment and test.

31:29 @CGrover (text only)

  • Revisited two projects, the dual espresso scale (load cells + lots of displayio) and the Thermal Camera.
    • Added audible scale zones/thresholds for hands-off use as well as touch screen controls for initial setup, zeroing, tare recording, etc. Its working for now, but ideally would like to create touch buttons without fills or outlines so that they dont interfere with background graphics; may require a PR.
    • The Thermal Camera received new pseudo color spectrums to replace the more limiting color palette -based approach. Developed some 1-dimensional interpolation methods in CircuitPython. The one based upon the heat signature of heated iron is working the best and looks the most like existing commercial imagers.
  • Experienced an overheating issue with a PyPortal installed in an enclosure. Determined that the TFT backlight generated the majority of the heat. The backlight and a tiny fan are now controlled by an algorithm that monitors ambient light and PCB temperature. Problem solved.
  • The next quest is to learn enough about 2-dimensional interpolation to implement something in CircuitPython for testing.
  • Unrelated: The book illustration project was bitten by the scope creep monster. Instead of 12 drawings, well need about 44. Pretty daunting for this fledgling artist, but Im still having fun. Theyll just need to be patient with my sloooowwww pace.

@charlesburnaford (lurking)

33:04 @danh

  • Finishing up initial coding of dynamic USB descriptors. Now getting the compilation bugs out. Will start on testing and debugging in earnest very soon.
  • Worrying about some 6.2.0 regressions.

34:28 @David.Glaude (lurking)

  • CP: Nothing or almost nothing (that seems to be since two or three weeks in a row).
  • Non CP:
    • Restored a set of Wireless Buzz! controler (leaked battery)
    • Adapted my working code for wired Buzz! controler (python on Raspberry Pi)

34:54 @foamyguy

  • Last week
    • Merged the progress bar PR and update learn guides to reflect the new changes
    • Began work on a HTML/JS requirement screenshot maker for learn guides. This spawned the idea to try to make this more automated and integrated with CI.
    • Tested the changes from LED PWM controller PR TLC59711.
    • Discovered small issue with PortalBase pin initialization (fix merged)
    • Discovered potential issue with the project bundler not finding required libraries in some cases. (weeds topic)
  • This week
    • Continue working on the requirement screenshot utility. Need to work out how to correctly detect the use of secrets.py, font/, images/ or other things used by individual projects that should be included in the screenshots. I am interested in learning how the project bundler is working, perhaps some of it can be reused for this.
    • Work on readthedocs and PyPi releases for the repos in the circuitpython org, and breaking out more of the widgets into new repos.

38:15 @hierophect

  • Last week:
    • Merges and maintenance of the NRF52 alarm system
    • Installed pre-commit for formatting cleanup
    • Caught the STM32 alarm stuff up to recent changes
    • Implemented most of the RP2040 alarm module, just wrestling with deep sleep stuff still
  • This week
    • Merge and maintain the ever-growing list of alarm PRs, hopefully starting with NRF52
    • Wrap up the RP2040 alarm system
    • Whatevers next

39:31 @Hugo

  • Last week
    • Some work on updating the CP branding during build (not as much as anticipated)
    • [Github] Discussion about CookieCutter and default branch naming (Issue #124)
    • Got 2nd shot - a bit rougher than the first, but still beats full-on CoVid-19 infection/symptoms
  • This week
    • Work on CP branding
      • Investigate if using a templating library (Django, Jinja2) for text replacement would be simple and worthwhile
      • Templating library or not, perform actual text-replacement

@Jayguitar (lurking)

40:50 @jepler

  • Last week:
    • Very focused on this camera project
  • This week:
    • Releasing the adafruit_ov7670 library & adding to bundle
    • Investigating possible “posterization” of camera data on the rp2040, seen by Limor.
    • Learning about OpenMV and how we might adapt it or reimplement it in CircuitPython. Keeping in mind that I know nothing about machine vision & AI

42:20 @Jose David Last Week

  • Open Issues Contributing - Open Issues
  • Proto for the Analog Clock.
  • Libraries Documentation
  • Design Guide update This Week
  • Libraries Documentation

43:10 @kattni

  • Last week:
    • Updated the adabot submodule on circuitpython.org to include some fixes that hadnt been included on the site
    • Put three sets of PCB files up on GitHub
    • Published the QT Py RP2040 guide including templates
    • Created template page for the RP2040 install instructions
  • This week:
    • Publish my final newsletter! (Welcome back, Anne!)
    • Debrief Anne on the newsletter situation from the last month
    • Test CP PR #4667 which fixes a Trinkey pixel status issue
    • Finalise our oldest library PR!
    • Run through documentation PRs
    • Add any applicable existing templates to FunHouse guide
    • Start the ItsyBitsy RP2040 guide
    • Sort out getting an aggregated list of all CircuitPython libraries with a running total
      • Will be chatting with @Jose David
    • Look into what would be involved with automatically assigning reviewers to library PRs, ideally once CI passes.
    • Continue to template Essentials pages, beginning with the ones most applicable to the latest boards.

46:44 @kmatch Last week

  • A couple PR reviews, including the slider widget that is raising good discussions about touch-responses and how we want the Control class to handle them
  • Working to understand USB communications for transmitting a large quantity of measurement data (for tinyLogicFriend logic analyzer) This week
  • Measure a 100kHz waveform into the logic analyzer software (sigrok)
  • Review another new widget library

49:38 @MakerMelissa

  • Last Week:
    • Finished up writing FunHouse product guide
    • Wrote a FunHouse library projects guide that should be out soon
    • Moved generic WiFi library modules from Portal libraries to PortalBase
  • This Week:
    • Write an example that allows for more accurate temperature logging on the FunHouse
    • Probably start a FunHouse project guide

51:05 In The Weeds

51:30 @Jose David

1:00:46 @foamyguy

  • Project bundler seems to miss imports that are not “top level” at the top of the file. The instance I found was with this guide: https://learn.adafruit.com/electronic-history-of-the-day-with-pyportal the bundle does not include adafruit_miniqr which I think it would need in order to draw a QR on the screen. Inside PortalBase it only imports miniqr when the user calls the function to use it. So I think its getting missed by the findimports utility.
  • Im interested in learning how the project bundler works to figure out which files should be included in the bundle. I think we might be able to reuse some of it for making accurate screenshots for the project. Answer: JSON is generated from https://github.com/adafruit/circuitpython-build-tools
  • @makermelissa: These are added to requirements.txt I submitted a PR for miniqr to be added to PortalBase.

1:03:42 @tannewt

  • Checked with Phil and Limor and got the greenlight to move the repos @askpatrickw mentioned last week. Who wants to help move those and make sure everything gets updated?

1:05:44 @v923z

  • Is there interest in a float-only implementation of ulab? The benefit is significant reductions in the firmware size.

1:09:49 Wrap-Up