1.5 MiB
CircuitPython Weekly Meeting for January 27, 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 you’d 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 we’re 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:03 Community News
MicroPython at FOSDEM
MicroPython will once again be joining forces with Espruino at FOSDFEM this year, 1-2 February in Brussels. Their table will be in building AW and they'd like you to show off your projects using MicroPython. There will also be two talks by Jon Nordby - X.
Project of the Week: Upcycling an Air Quality Sensor
Using a PM2.5 sensor pulled from a broken "smart" air purifier, Daniel James created a simple two-component CircuitPython-powered air quality monitor using a Raspberry Pi RP2040-based Adafruit KB2040 microcontroller board - hackster.io, website, and GitHub.
New Notes from Adafruit Playground
Adventure Engine: mapping a world in a NeoTrinkey - Adafruit Playground.
News From Around the Web
This week starts with highlighting a set of new videos on CircuitPython by Professor Gallaugher at Boston College.
Bring in Da Noise! Playing .wav files in CircuitPython on a Circuit Playground Express (CircuitPython School) - YouTube.
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),.
6:44 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.
7:03 Overall
- 42 pull requests merged
- 18 authors - BlitzCityDIY, relic-se, eightycc, andibing, jposada202020, noelanderson, wtuemura, rjauquet, jepler, SeanTheITGuy, bwshockley, FK-sauve, SamantazFox, dhalbert, hathach, FoamyGuy, bablokb, weblate
- 11 reviewers - gamblor21, jepler, ladyada, relic-se, makermelissa, dhalbert, hathach, tekktrik, FoamyGuy, TheKitty, tannewt
- 14 closed issues by 6 people, 16 opened by 11 people
8:05 Core
- 15 pull requests merged
- 13 authors - BlitzCityDIY, jepler, SeanTheITGuy, relic-se, eightycc, FK-sauve, bwshockley, SamantazFox, andibing, dhalbert, hathach, weblate, wtuemura
- 6 reviewers - gamblor21, dhalbert, hathach, jepler, relic-se, tannewt
- 21 open pull requests
- https://github.com/adafruit/circuitpython/pull/7811 (Open 669 days) (draft)
- https://github.com/adafruit/circuitpython/pull/8457 (Open 482 days) (draft)
- https://github.com/adafruit/circuitpython/pull/8647 (Open 432 days) (draft)
- https://github.com/adafruit/circuitpython/pull/9009 (Open 327 days)
- https://github.com/adafruit/circuitpython/pull/9094 (Open 306 days) (draft)
- https://github.com/adafruit/circuitpython/pull/9349 (Open 222 days)
- https://github.com/adafruit/circuitpython/pull/9385 (Open 210 days)
- https://github.com/adafruit/circuitpython/pull/9559 (Open 156 days)
- https://github.com/adafruit/circuitpython/pull/9804 (Open 76 days) (draft)
- https://github.com/adafruit/circuitpython/pull/9844 (Open 59 days) (draft)
- https://github.com/adafruit/circuitpython/pull/9876 (Open 51 days)
- https://github.com/adafruit/circuitpython/pull/9878 (Open 50 days) (draft)
- https://github.com/adafruit/circuitpython/pull/9883 (Open 48 days)
- https://github.com/adafruit/circuitpython/pull/9909 (Open 34 days) (draft)
- https://github.com/adafruit/circuitpython/pull/9955 (Open 14 days) (draft)
- https://github.com/adafruit/circuitpython/pull/9965 (Open 10 days) (draft)
- https://github.com/adafruit/circuitpython/pull/9974 (Open 9 days)
- https://github.com/adafruit/circuitpython/pull/9995 (Open 2 days)
- https://github.com/adafruit/circuitpython/pull/9994 (Open 2 days)
- https://github.com/adafruit/circuitpython/pull/10001 (Open 1 days)
- https://github.com/adafruit/circuitpython/pull/9999 (Open 1 days) (draft)
- 5 closed issues by 3 people, 5 opened by 3 people
- 781 open issues
- 7 active milestones
- 10.0.0: 15 open issues
- 9.2.x: 7 open issues
- 9.x.x: 51 open issues
- Libraries: 22 open issues
- Long term: 651 open issues
- Support: 21 open issues
- Third-party: 15 open issues
- 0 issues not assigned a milestone
9:27 Libraries
- Adafruit Libraries: 348 Community Libraries: 152 (Total: 500)
- 24 pull requests merged
- 7 authors - SamantazFox, FoamyGuy, rjauquet, jposada202020, noelanderson, bablokb, jepler
- 6 reviewers - tekktrik, FoamyGuy, jepler, ladyada, TheKitty, tannewt
- Merged pull requests:
- https://github.com/adafruit/Adafruit_CircuitPython_TCA9548A/pull/55 (Days open: 69)
- https://github.com/adafruit/Adafruit_CircuitPython_SHTC3/pull/22 (Days open: 50)
- https://github.com/adafruit/Adafruit_CircuitPython_TCS34725/pull/44 (Days open: 39)
- https://github.com/adafruit/Adafruit_CircuitPython_TLV493D/pull/19 (Days open: 17)
- https://github.com/adafruit/Adafruit_CircuitPython_ICM20X/pull/29 (Days open: 10)
- https://github.com/adafruit/Adafruit_CircuitPython_MMC56x3/pull/8 (Days open: 10)
- https://github.com/adafruit/Adafruit_CircuitPython_VL53L1X/pull/23 (Days open: 9)
- https://github.com/adafruit/Adafruit_CircuitPython_PixelMap/pull/4 (Days open: 5)
- https://github.com/adafruit/Adafruit_CircuitPython_VCNL4200/pull/5 (Days open: 4)
- https://github.com/adafruit/Adafruit_CircuitPython_TM1814/pull/5 (Days open: 4)
- https://github.com/adafruit/Adafruit_CircuitPython_INA3221/pull/4 (Days open: 4)
- https://github.com/adafruit/Adafruit_CircuitPython_Anchored_TileGrid/pull/1 (Days open: 4)
- https://github.com/adafruit/Adafruit_CircuitPython_MCP9808/pull/39 (Days open: 3)
- https://github.com/adafruit/Adafruit_CircuitPython_MMA8451/pull/25 (Days open: 3)
- https://github.com/adafruit/Adafruit_CircuitPython_TSL2591/pull/31 (Days open: 3)
- https://github.com/adafruit/Adafruit_CircuitPython_CCS811/pull/52 (Days open: 3)
- https://github.com/adafruit/Adafruit_CircuitPython_MCP2515/pull/28 (Days open: 3)
- https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/43 (Days open: 2)
- https://github.com/adafruit/Adafruit_CircuitPython_CCS811/pull/53 (Days open: 1)
- https://github.com/adafruit/Adafruit_CircuitPython_APDS9960/pull/48 (Days open: 1)
- https://github.com/adafruit/Adafruit_CircuitPython_PIOASM/pull/76 (Days open: 1)
- https://github.com/adafruit/CircuitPython_Community_Bundle/pull/240 (Days open: 1)
- https://github.com/adafruit/CircuitPython_Community_Bundle/pull/238 (Days open: 1)
- https://github.com/adafruit/CircuitPython_Community_Bundle/pull/236 (Days open: 1)
- 53 open pull requests (Oldest: 893, Newest: 1)
- 7 closed issues by 4 people, 6 opened by 4 people
- 682 open issues
- 3 good first issues
- https://circuitpython.org/contributing
Library updates in the last seven days:
- New Libraries
- Updated Libraries
14:40 Blinka
- 3 pull requests merged
- 1 authors - FoamyGuy
- 2 reviewers - FoamyGuy, makermelissa
- 18 open pull requests
- https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 1207 days)
- https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 395 days) (draft)
- https://github.com/adafruit/Adafruit_Blinka/pull/884 (Open 166 days) (draft)
- https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140 (Open 162 days)
- https://github.com/adafruit/Adafruit_Blinka/pull/888 (Open 149 days)
- https://github.com/adafruit/Adafruit_Blinka/pull/908 (Open 79 days) (draft)
- https://github.com/adafruit/Adafruit_Blinka/pull/911 (Open 71 days)
- https://github.com/adafruit/Adafruit_Blinka/pull/914 (Open 56 days)
- https://github.com/adafruit/Adafruit_Blinka/pull/915 (Open 51 days)
- https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/372 (Open 46 days)
- https://github.com/adafruit/Adafruit_Blinka/pull/921 (Open 35 days)
- https://github.com/adafruit/Adafruit_Blinka/pull/925 (Open 18 days)
- https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/375 (Open 18 days)
- https://github.com/adafruit/Adafruit_Blinka/pull/928 (Open 15 days)
- https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/143 (Open 11 days) (draft)
- https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/378 (Open 9 days)
- https://github.com/adafruit/Adafruit_Blinka/pull/931 (Open 6 days)
- https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/155 (Open 3 days)
- 2 closed issues by 1 people, 5 opened by 4 people
- 125 open issues
Number of supported boards: 146
15:41 Hug reports
@jepler (hosting)
- PaulCutler for pumping out episodes of The CircuitPython Show & for having the stamina to record 4 episodes this week (including an episode where I’m one of the guests)!
- @eightycc for reviving an old question that got me motivated to gather some hard data
- Damien for helping me get a MicroPython PR into shape
16:51 @CGrover (text only)
- @PaulCutler for the invitation to join The CircuitPython Show podcast to talk about my weather station obsession. Very therapeutic.
- @DJDevon3 for two recent Playground Notes (NTP Clock and Sunton display). I always pick up a useful code snippet or two from Devon’s projects.
- SamBlenny for the Greenhouse Temperature Logger Playground Note with an excellent example of how to incorporate ESP32-S3 sleep mode. Also with bonus analytic .csv files and spreadsheets!
17:39 @danh
- @MarshalMiller for DAC audio output on Espressif, and more .wav file support
18:07 @DJDevon3 (text only)
- @Danh for helping with a bitmapsaver issue on the Sunton display.
- @Tannewt for writing init sequences and board ports for a variety of Sunton boards. It made getting the display running on Circuit Python much easier.
- @Neradoc for a good discussion on the Sunton boards and how to possibly improve some implementations.
- @SnakeyMakerCat for their initial commit for a Daisy Seed build.
- @PaulCutler & @CGrover for an amazing Circuit Python Show episode.
18:56 @eightycc (text only)
- @Danh for the helpful feedback on “ramlog” and logging in general
- @jepler for taking a closer look at RP2 PIO clock scaling and jitter
19:11 @foamyguy
- @makermelissa for reviewing some PRs in blinka displayio and web-ide
- @liz for lots of help and direction on writing product guide pages and making the associated assets
- Group hug
19:36 @Paul Cutler (text only)
- Group hug for everyone who has listened and helped share The CircuitPython Show
19:49 @tannewt
- Group hug to everyone who has contributed to CircuitPython via PRs and issues and helped us get to number 10,000.
- @timonsku for all of the Zephyr tips
20:13 @todbot (text only)
- Group hug!
20:21 Status Updates
@jepler (hosting)
- A change of mine from last year finally landed in micropython, making the parsing of numbers slightly more compatible with CPython, including making an invalid number like `07` not be accepted in a .py file. It also saved a little bit of flash space due to re-organizing some existing code, so it was a win/win.
- More updates to Pico-PIO-USB to improve resource allocation & allow use of the 3rd PIO block on the RP2350 and swapped D+/D- lines
- Made another release of the Python hub75 library for Pi5 computers that improves framerate slightly, removes a workaround, and adds a /dev/fb0 (framebuffer) mirroring example program
- Made another release of the Python neopixel library for Pi5 computers that makes it work better with multiple strips on different pins
22:58 @danh
- Debugging NINA-FW update. Something is failing in SSL socket setup.
- Debugging CPy with ESP-IDF 5.3.2 on ESP32-C3. If BLE is enabled, board boot-loops. 5.3.1 is fine with BLE turned on.
- Fixed RP2 DMA issue. Code code be cleaned up more, but fine for now.
- 9.2.4 release soon due to fixes of significant bugs.
@DJDevon3 (text only)
- Started playing with the Sunton ESP32-S3 8048S070 “yellow display”. Getting a 7” 800x480 display working with Circuit Python and displayio is pretty awesome. From a GUI design perspective, having 4x the screen real estate is drool worthy. Wrote a playground note for it. There is something not quite right with the colors being displayed. Green shows up as a lime green and orange looks yellow. Attempting to take a screenshot resulted in an image with obvious RGB565 color swapping issues, perhaps because there’s no palette involved with a dotclock display. Needs investigation.
@eightycc (text only)
- Testing a “ramlog” module that writes messages to a circular buffer in RAM. Useful for debugging where logging messages to a file or I/O device interferes with timing. Includes a Python binding that facilitates message unloading and a custom handler for logging from adafruit_logging.
- Using “ramlog” I’ve been looking into a couple of RP2 port issues involving the CYW43. With a large (1MB) log buffer in PSRAM I’m able to capture detailed network traffic while not interfering with timing. Logging a message typically takes <30 microseconds on an RP2350.
- Fixed an interesting issue with RP2 port MP3 streaming over WiFi that manifested itself as an interrupt loop.
26:17 @foamyguy
- Working on Sparkle Motion learn guide
- Fix for code.circuitpython.org Web-Ide for USB REPL based workflow
- Handling guide feedback
- Prepared GameControls library for release in the community bundle so that it can be used by old TileMap game guide which doesn’t work under current versions of circuitpython.
26:49 @tannewt
- Continuing work on Zephyr on CircuitPython.
- Did more work for RA8 and RA6 dev kits. We use a custom branch now that merges in pending support for them.
- Working on WiFi support on nRF7002. Took all deep dive to realize I wasn’t waiting long enough for results. 🤦I’m excited to get back into it. This is the first board with 5GHz band support that I know. ESP32-C5 has it as well. (But I don’t have one.)
- Thach merged in Zephyr support to TinyUSB so I’ll need to switch to it.
- Once I have networking going I may continue onto Ethernet and LTE or switch to getting the build system integrated into CI so I can PR what I have.
In The Weeds
29:26 @foamyguy - updating code.circuitpython.org with the changes from beta branch?
31:31 @Snakey Maker Cat (text only)
Clarification: status of the CircuitPython stm32 ports
I have been working on the Daisy Seed port, and it's been challenging, but moving ahead -- the first PR is opened: https://github.com/adafruit/circuitpython/pull/9974
I am in the process of adding uf2 bootloader and SDRAM support as well, and was planning to ask for help with the audio (and other) modules that don't seem to exist on the stm32 chips.
With the new Zephyr integration, is this work becoming obsolete? Can any of it be used with Zephyr?
And is there a time estimate until Zephyr "takes over" ?