adafruit-circuitpython-week.../2024/2024-02-05.md
2024-02-05 16:23:57 -05:00

17 KiB
Raw Permalink Blame History

CircuitPython Weekly Meeting for February 5th, 2024

Video is available on YouTube.

Join here for the chat all week: http://adafru.it/discord.

The CircuitPython Weekly Meeting normally is held at 2pm US 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 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. The canonical URL for the podcast version is https://adafruit-podcasts.s3.amazonaws.com/circuitpython_weekly_meeting/audio-podcast.xml which you may be able to enter directly into compatible podcast apps.

02:38 Community News

02:41 CircuitPython 9.0.0 Beta 0 Released

CircuitPython 9.0.0-beta.0, a beta release for 9.0.0, is now available and is the new unstable release. This release has known bugs that will be addressed before 9.0.0 final - Adafruit Blog and the release page - GitHub.

Notable changes to 9.0.0:

  • New split-heap internal dynamic storage mechanism.
  • Merge updates from MicroPython v1.19.1, v1.20.0, and v1.21.0.
  • Espressif: update to ESP-IDF v5.1.2.
  • Reorganize and split displayio. 8.x.x naming structure is available in 9.x.x, but will be removed in 10.0.0.
  • CIRCUITPY drives now mount on Android.
  • Increased file capacity on CIRCUITPY drives <= 128kB.
  • Further USB host support, on i.MX and RP2040.
  • Make SD cards available over web workflow.
  • Remove 8.x.x deprecations: displayio.*.show(), I2CPeripheral renamed to I2CTarget.
  • Add jpegio JPEG decoder support.
  • Add bitmapfilter image manipulation.
  • Add repl.py, which runs just before the REPL starts up.
  • Add OrderedDict.move_to_end().
  • Add synthio.Synthesizer.note_state.
  • Add warnings module, similar to what is in CPython.
  • Add locale.getlocale().
  • Add I2S MCLK support on Espressif.
  • Add mDNS TXT record support.
  • Add synthio.Note .loop_start and .loop_end properties.
  • Allow signed amplitude in synthio.
  • HID can wake up sleeping host computer.
  • Allow specifying protocol for raw sockets.
  • Add codeop.compile_command(). ###03:08 #CircuitPython2024 Responses Summarized Scott Shawcroft shares all of the responses to the #CircuitPython2024 campaign - Adafruit Blog.

03:17 A Video Player in a VHS Tape

A fun mini-project to cram a Raspberry Pi-based composite video player/recorder inside a VHS cassette. The build uses a Raspberry Pi 3 A+ controlled by Python - hackster.io, GitHub and YouTube.

03:36 Newsletter Details

The Python on Microcontrollers Weekly Newsletter is a CircuitPython-community-run newsletter emailed every Monday. 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 or email cpnews@adafruit.com, or tag a post with #CircuitPython on Mastodon, Bluesky, or X (formerly known as Twitter),.

04:14 State of CircuitPython, Libraries and Blinka

This report contains information from the previous seven days. Any changes (PRs merged, etc.) made today are not included in this report.

04:32 Overall

  • 21 pull requests merged
    • 14 authors - scirelli, jepler, rjauquet, michalpokusa, vladak, ilikecake, ladyada, FoamyGuy, michaelstoops, tedder, weblate, eightycc, dhalbert, justmobilize
    • 8 reviewers - makermelissa, caternuson, jepler, brentru, tannewt, FoamyGuy, jedgarpark, dhalbert
  • 34 closed issues by 13 people, 23 opened by 20 people

05:10 Core (Scott read)

06:19 Libraries

Library PyPI Weekly Download Stats

  • Total Library Stats
    • 133283 PyPI downloads over 324 libraries
  • Top 10 Libraries by PyPI Downloads
    • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8801
    • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8704
    • Adafruit CircuitPython Register (adafruit-circuitpython-register): 3046
    • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1548
    • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1329
    • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1206
    • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1193
    • Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1125
    • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1118
    • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1096

Library updates in the last seven days:

10:10 Blinka (Scott read)

11:16 Hug reports

11:33 @Liz (host)

  • Group hug

11:40 @DJDevon3

  • @TheaFlowers (Winterbloom) for a neat demo of her new Neptune eurorack module.
  • @FoamyGuy, @Justin, @Elpekenin, @Bear, and @Deshipu for a lively discussion about stubs in discord. Was fun to watch you all go back & forth with ideas.
  • @Tannewt for the Deep Dive this week that covered a wide variety of topics and bugs.

12:07 @foamyguy

  • @jepler for creating and sharing a minimal file editor for circuitpython. Its a really neat project and stretches the boundaries of what I thought was possible with the circuitpython terminal
  • @Justin for making a utility that builds device specific board stub files and testing out a branch that adds them to the circuitpython-stubs
  • Group hug

12:58 @jerryn

  • @foamyguy for the quick fix(es) to bitmaptools for the SMS Scrolling demo.
  • Group hug!

13:21 @Justin

  • Double hugs for @FoamyGuy - one for testing and merging a requests fix and the second for opening up a PR to CircuitPython for generating stubs for all the boards based on a script I wrote

13:46 @tannewt

  • Hug to everyone who did #CircuitPython2024. It is exciting to see ambition grow.
  • LLVM embedded folks for entertaining my ideas in the meeting.
  • @jerryn for the 9.0 testing
  • @foamyguy for the usb host testing

14:26 @Tyeth

  • Big Hug for @tannewt, both generally in life, and specifically for the parallel display work on the LilyGo T-DisplayS3… Not only was it greatly educational, youve rekindled a tiny circuitpython flame in me.

14:47 Status Updates

15:11 @Liz (host)

  • I went through Learn Guides that use SD cards and added warnings about needing a directory for the sd card to mount to as of CP 9 beta 0. I also wrote up a quick page in the MEMENTO product guide on how to manually add the directory to your CIRCUITPY drive.
  • Im starting a new project with the Qualia that required setting up PlatformIO, so at the end of last week I got that sorted out and have been acquainting myself with the Arduino GFX library.

15:48 @DJDevon3

  • Finished designing a prototype PCB for a featherwing adapter to an ST7796S SPI display. Ive already written the driver and have been using it for some displayio testing. Tracking down an issue with the driver init sequence where soft reload causes the board to reload twice. The featherwing adapter and driver should work with any feather and circuit python. After watching FoamyGuy use Cookie Cutter last week I doubt I have the skills for contributing the driver to the community bundle.
  • Started redesigning an enclosure for the Adafruit TFT Featherwing that uses magnets instead of screws to hold it together. Working on an ST7796S display enclosure that will work in the same way.
  • Still working on a treasure box project with the ST7796S display, ST7796S Featherwing, 3D printing, and Circuit Python requests with the Fitbit API.

16:50 @eightycc (text only)

  • Got through the night with no flooding, but the power is out here in Mendocino county.
  • Making progress on _bleio, albeit slowly.
  • Updated MAIN to the latest cyw43-driver plus some local patches awaiting integration upstream.

17:10 @foamyguy

  • Working on text editor “cyberdeck” project. Created a makeshift visible cursor from a label that is layered on top of the existing Terminal view. Tweaks and fixes for backspace handling from the USB Host keyboard. Guide in the works
  • Confirmed an issue with SMS Scroller project stemming from bitmaptools blit argument validation. Created a fix, but realized while writing a test that the fix wasnt correct, so made further adjustments to it. (First time creating a test in the core repo with .exp results file. Another hug to Jeff for pointing me toward that)
  • Submitted a PR that adds @Justins device specific board def builder to the circuitpython-stubs build process and created a command that can be used to set your environment to a specific device with stub file that includes more relevant details.
  • Tested a fix for Requests library that deals with a recent change made to the handling of duplicated headers

19:59 @Justin

  • Doing some work on some helpful things that Ill be curious to see if people want. The first is a “time helper” that wraps all the common ways to get time (rtc, adafruit-io, ntp, etc) and the second is a config package that will merge multiple configs to help set defaults (for example what pins to use for airlift). Both of these are to help use the same code across different boards.
  • Did some small updates to ConnectionManager and made sure the Request and MiniMQTT branches were up to date with main. Trying to figure out if I should just start writing tests or not
  • Was curious, and using a ESP32S3 TFT, running 8.2.9 I was able to open 3 SSL sessions before it raised an error. On 9.0.0-beta.0 I got 4…

22:19 @tannewt

  • A number of open PRs with fixes for 9.0.0.
  • Updating pulseio, frequencyio, rotaryio, countio and neopixel_write to IDF 5 APIs in order to fix bugs (and move to APIs.)
  • PulseIn will be switched to pausing reception when the buffer is full.
  • Ari has an ear infection and hurt leg so I may be out some this week. Tuesday-Thursday are my “on call” days if he stays home or comes home early from daycare.
  • No progress on LLVM noxip stuff but it isnt urgent. Folks in meeting were curious to see the working prototype but unsure if itd be worth upstreaming. They are pretty cautious in general.
  • Wrapped up #CircuitPython2024: https://blog.adafruit.com/2024/02/01/thank-you-for-circuitpython2024/

25:49 In The Weeds

  • 26:07 @tannewt Remove context manager functionality of core classes? Allows for something like:

with pulseio.PulseIn(...) as p: p.whatever()

calls deinit automatically

  • Removing it would save enter and exit entries in locals dicts and the corresponding functions.
  • Via Tyeth: Probably dont want to remove all of them: https://github.com/search?q=%22with+pulseio%22&type=code
  • TODO tannewt: guesstimate size savings to decide if it is worth pursuing.

30:17 Wrap-Up