adafruit-circuitpython-week.../2025/2025-04-21.md
2025-04-21 13:53:58 -05:00

131 KiB
Raw Permalink Blame History

CircuitPython Weekly Meeting for April 21, 2025

Welcome to the CircuitPython Weekly meeting notes! Feel free to add your Hug Reports and Status Updates before the meeting, alphabetically by your username. During the meeting, we go through them in order. 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.

We now convert this document to Markdown on export, instead of including explicit raw Markdown formatting. When you type, just format your contributions with regular Google Docs formatting. If you type using Markdown formatting characters, your input will be converted on the fly to formatted text. You can also right-click and “Paste as Markdown” any text that is using raw Markdown.

Thanks! We hope to see you in the meeting!

Tim is hosting.

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.

04:06 Community News

04:09 MicroPython v1.25.0 Released!

MicroPython v1.25.0 has been released after more than three years of development. Significant improvements include ROMFS, an Alif port, a RISC-V inline assembler, Datagram TLS (DTLS), mpremote recursive remove and much more. The ESP32 port now supports IDF v5.3 and v5.4, and support for versions below v5.2.0 has been dropped. The rp2 port sees the introduction of many new RP2350 boards, including the Pico 2 W, as well as support for PSRAM with size autodetection. WPA3 is now supported on the Pico W and Pico 2 W in both AP and STA modes - GitHub.

05:17 The New Arduino AI Assistant

Arduino has just announced an AI assistant in their Arduino Cloud editor, powered by Anthropic Claude. There is a 30 day trial, a free tier allowing 25 queries, a Maker Plan and Enterprise plans - Arduino Blog.

05:49 Interesting Books (for free)

One of the most popular items in the newsletter is when books related to programming and microcontrollers are made available for free by their authors or publishers. This week there are three, one very relevant, one handy, one reference. Many microcontrollers running Python use Arm Cortex-M chips (Raspberry Pi RP2xxx, Microchip SAMD, etc.). A book on these chips would seem useful. A book on C, which we must use at times rather than Python on embedded systems, looks good. The final one is a textbook for your reference shelf.

Embedded Systems Fundamentals with Arm Cortex-M based Microcontrollers gives an understanding of the most important topics in embedded systems design using a coherent, compelling and hands-on approach - GitHub (PDF).

Beej's Guide to C Programming - "What well try to do over the course of this guide is lead you from complete and utter sheer lost confusion on to the sort of enlightened bliss that can only be obtained through pure C programming" - beej.us (HTML).

Mathematics for Computer Science from MIT Press explains how to use mathematical models and methods to analyze problems that arise in computer science - mit.edu (PDF).

07:39 Project of the Week: The MintyPiPico Gaming Device - PCB Edition


MintyPiPico is a super tiny handheld clamshell device inspired by the Minty Pi Altoids tin video game, but it uses the RP2040 Zero, CircuitPython, and an even smaller Altoids Smalls tin. It has an almost instant power-on, and can play NES and Gameboy games - Adafruit Blog, hackster.io and YouTube.

08:26 Newsletter Details

The Python on Microcontrollers Weekly Newsletter is a CircuitPython-community-run newsletter emailed every Monday. The complete archives are [here](https://www.adafruitdaily.com/category/circuitpython/). 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),.

09:18 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.

09:35 Overall

  • 16 pull requests merged
    • 12 authors - dglaude, weblate, jepler, burtyb, relic-se, dhalbert, hexthat, andibing, philrittenhouse, bablokb, FoamyGuy, eightycc
    • 5 reviewers - FoamyGuy, dhalbert, tannewt, jepler, gamblor21
  • 15 closed issues by 7 people, 14 opened by 10 people

10:35 Core

12:45 Libraries

Library updates in the last seven days:

17:10 Blinka

18:33 Hug reports

18:57 @foamyguy (hosting)

  • @PaulCutler for having me on the CircuitPython show podcast
  • @bablokb for working to bring back support for auto_refresh to my PyGameDisplay library
  • Group hug

19:16 @danh

  • @eightycc for working on ESP-IDF v5.4.1 update.

19:37 @Mark(gamblor) [may miss/late]

  • @Cooper for another audio effect and providing me valuable feedback on my ideas
  • @tannewt for review of the Reverb effect and letting me know what was off on the CI for Zephyr builds
  • @todbot for doing so much with audio and reporting all the weird issues that come up

20:17 @tannewt

  • Foamyguy for deep diving when Im out.
  • Eightycc for joining the host rotation.
  • Dan for the tip on the QSTR hash optimization for SAMD21.

20:48 Status Updates

21:14 @foamyguy (hosting)

  • Match3 Guide published
  • Last two rounds of secrets -> settings updates for learn guide pages
  • Working on guide for USB SNES-like controller with CircuitPython and Arduino examples
  • Look into Adabot / cp.org action task that generates the reports used for the contributing page to try to understand why it sometimes stalls out and attempt to add some things to fix it.
  • Work on Fruit Jam OS Launcher
  • Continue work on implement bitmaptools for Blinka Displayio, all functions except dither() are implemented and working, some still need default argument handling to match core behavior.
  • Easter egg painting with TilePaletteMapper for fun.

23:50 @danh

  • Added uniform wifi power management API for both Espressif and Pico W. This is an improved version of something a user submitted but had a buggy PR.
  • Fixed a bug re NORETURN functions introduced in a recent PR.
  • Helping @eightycc with ESP-IDF v5.4.1 update. Root certs mechanism has changed.

25:30 @tannewt

  • PR is pending for adding working directory to set_next_code file and os path improvements. Blocked on SAMD sizes.
  • PR is pending for optimizing GC collect. Doesnt have a review and is blocked by SAMD size.
  • PR is pending for optimizing SAMD size. Thanks to Dan for a pointer. I also added the ability to disable support for doubles in arrays. The version of libgcc for SAMD is also updated (and smaller).
  • Debugging audio glitches on Fruit Jam now. Turns out if audio buffer filling is stalled, then it plays past the buffer into random memory. (!) So, making it at least replay the last buffer contents. Should it hold the last value instead? That might be trickier. Going to look at why it isnt being filled. I suspect we need to fill buffers when updating the display.
  • Will do more USB host debugging afterward.
  • Will be going part time next Thursday and will be out on leave for 8 weeks too. Deep dive this Friday is the last one Im doing for a while. (Likely until Im back full time when my youngest kid goes to daycare around November.)

31:20 In The Weeds

31:35 Wrap-Up

Normal day/time next week.