adafruit-circuitpython-week.../2025/2025-03-17.md
2025-03-17 16:27:15 -07:00

20 KiB
Raw Permalink Blame History

CircuitPython Weekly Meeting for March 17, 2025

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.

3:12 Community News

3:20 CircuitPython.Org to Get an Update

CircuitPython.org will be updated soon with a fresh new look. CircuitPython has come a long way since the original landing page for CircuitPython.org was created. The new design will focus on what is possible with CircuitPython. And there will be a new Made with CircuitPython badge that will show off the wide range of projects all created with CircuitPython. Each time the page is loaded, it will show off different projects throughout the page.

The new design will do a better job of explaining CircuitPython to those who are new to the language. It also does a better job of organizing the most used aspects of the site, like the individual board pages. This new design is already complete and is under review. So expect to see this update very soon! - Adafruit Blog.

4:08 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),.

4:52 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.

5:10 Overall

  • 24 pull requests merged
    • 13 authors - mikeysklar, wtuemura, Core-i99, tyeth, jepler, frank-pet, tannewt, Neradoc, bablokb, dependabot[bot], eightycc, FoamyGuy, vladak
    • 9 reviewers - dhalbert, jepler, tyeth, makermelissa, tannewt, BlitzCityDIY, Neradoc, FoamyGuy, brentru
  • 11 closed issues by 6 people, 8 opened by 7 people

5:42 Core

7:15 Libraries

11:11 Library updates in the last seven days:

11:35 Blinka

13:00 Hug reports

13:28 @tannewt (host)

  • @blitzcitydiy for hosting for me last minute last week.
  • @ladyada for documenting her LLM coding assistant journey. Claude Code is very powerful.

14:08 @anecdata (text only)

  • @eightycc for digging in to some PIO UART issues

14:17 @danh

  • @hathach for NINA-FW work: getting it to run on ESP32-C6 and getting Bluetooth to work

14:46 @foamyguy

  • Scott for looking into new ways to load fonts
  • @MichalPokusa and @tyeth for help with JS bluefruit connect packet and byte manipulation formats
  • Jeff for continued help and improvements to piomatter
  • @MakerMelissa for showing a really cool circuitpython implementation of chips challenge on S&T last week.

15:36 @jepler

  • Tim & jp for testing piomatter changes & finding problems
  • Tim & Liz for taking on the task of documenting some of the emulator work Im doing on fruit jam

16:20 @mark[gamblor] (missing probably)

  • @Jepler for a discussion on fixed point and integer / floating point math in audio processing that sent me down a rabbit hole I had not thought about before

16:48 Status Updates

17:08 @tannewt (host)

  • Was around last week after Japan trip was cancelled due to me getting a stomach bug. We leave Friday for a shorter California trip. Back next Thursday the 27th.
  • Adding LVGL font binary format loading to bitmap font library. Looks very useful for us. Branch is here: https://github.com/tannewt/Adafruit_CircuitPython_Bitmap_Font/tree/lvfontbin
  • Now adding it to CircuitPython so we can load glyphs from the filesystem into the terminal. This will help us support emoji and other languages with large alphabets with a large number of characters (korean and japanese). Using Claude Code to get much of it in place. Very neat to have it reference the Python library when generating the C code.

19:23 @danh

  • Updating NINA-FW firmware for AirLift co-processors:
    • Can use a lot of the arduino-esp32 libraries instead of existing code in the NINA-FW repo.
    • Got TLS and HTTPS working.
    • ESP32-C6 port is working on both an Espressif dev board and a Feather C6.
    • Thach just reported he got Bluetooth working.
    • Need to get the “data available” pin working.
  • Releasing CircuitPython 9.2.5 is still on my short list.

21:59 @eightycc

  • Noodling around with RP2350 clocks and timing. Got some basic timing tests running at 240 MHz. Also got PSRAM QSPI clocked up to 120 MHz after I discovered the “secret sauce” by turning on PSRAM wrap boundary mode. 240 MHz is an integral multiple of 48 MHz, potentially freeing up the USB PLL for use as an HSTX clock, allowing accurate pixel clock generation. This also works at 144 MHz, so we could stay inside the RP2350s documented clock limits and still free up the USB PLL. Having SYS_CLK at a multiple of 48 MHz would also benefit Pico-PIO-USB in full-speed mode by avoiding the jitter inherent in using a fractional divider for the PIO clock.

23:27 @foamyguy

  • Snake game for metro RP2350 learn guide
  • Experimenting with multiple mice
  • Wrote code for a memory game
  • Trying improvements to PioMatter and helping troubleshoot with JP. Also tested mirroring from a USB HDMI adapter to the matrix panels.
  • Got help from claude to convert arduino matrix example to circuitpython using the new tile palette mapper module
  • Started implementing an HTTPServer script that sends bluefruit connect compatible packets over websockets / WIFI instead of BLE.

26:12 @jepler

  • Not a lot of circuitpython activity again
  • Updates to piomatter improving temporal dithering.
  • I tried to remove a workaround but it turns out the workaround is still needed
  • Over in pico-sdk land Im working on making the pico-mac emulator work as well as possible on fruit jam rp2350
  • Just two weeks before my big trip! So im getting a bit antsy, if were being honest.
  • My last regular day is March 28!

27:40 In The Weeds

@tyeth

  • 28:00 Frozen Libraries - Can we do a minor/patch release weekly if there are updated frozen modules, users cant find the current version number and dont often find the necessary info to support updating them, and the general library advise to stick everything in lib doesnt work (and its discouraged to chuck all libraries in root). Circup could be made aware of frozen modules and how to place them correctly, but many users dont use circup.
    Easiest seems to do a round up release if any frozen modules have changed in last week. Thoughts? Maybe can be part of weekly report as to which / how many frozen modules have been updated since last release...

    • @danh: I plan to update the frozen libraries for 9.2.5 release.
  • 32:39 State of Ruff in the circuitpython libraries / An update mechanism for the cookiecutter projects? (@tyeth - maybe offline) The ruff rules dont currently catch basic errors in examples like missing imports / undeclared variables seen in MiniMQTT (so Ive temporarily bumped version of ruff and added two rules).
    Having chatted with Tim briefly on the subject (thanks Tim+Dan+Justin) it seems the original transition goal was to duplicate any pylint rules we specifically wanted into the ruff config. This inadvertently overwrites the default included rule categories.
    Ive now seen that there is an extends mechanism (select-extends too) so we dont need to select “instead” but maybe “as well” (Dan also suggested taking Micropythons ruleset now as it didnt exist when we transitioned, although warns they are more loose with rulesets generally).
    There is also the desire to have project specific rules overriding our defaults. The issue is cookie cutter projects wont get updates to new pre-commit.yaml and ruff rules (pyproject.tom / ruff.toml / ruff-base.toml).
    So we can possibly have a github stored ruleset, that is duplicated to each cookiecutter project called ruff-base.toml (and can re-fetch in future via a script) and then that is extended by the project specific one. This works similarly for pyproject.toml instead (ruff.toml takes precedence).
    Im aware that adabot can do some things automatically, maybe we can take out a PR on community libraries with the cookiecutter updates, and equally a user could run something like `cookie-cutter update` in repo, or pre-commit clean would also fetch the latest base ruleset from github too.

39:36 Wrap-Up