# CircuitPython Weekly Meeting for December 9, 2024


Video is available [on YouTube](https://youtu.be/mewDFnjzxIk).


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](https://raw.githubusercontent.com/adafruit/adafruit-circuitpython-weekly-meeting/master/meeting.ical) for use with standard calendar applications and can also be viewed [in your browser](https://open-web-calendar.hosted.quelltext.eu/calendar.html?url=https%3A%2F%2Fraw.githubusercontent.com%2Fadafruit%2Fadafruit-circuitpython-weekly-meeting%2Fmain%2Fmeeting.ical&title=CircuitPython%20Meeting%20Schedule&tab=agenda&tabs=month&tabs=agenda).


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.
## 2:12 Community News
### Raspberry Pi Release `piolib` for Raspberry Pi 5 RP1 Programming
PIOlib/libPIO is a user-space API to the `rp1-pio` driver, which gives access to the PIO hardware of the RP1 on a Raspberry Pi 5. It will be an important method of running time critical GPIO interface code, such as using smart LED strips (like NeoPixels). It takes the form of a clone of the PICO SDK PIO API, where most of the methods are implemented as RPC calls to RP1 - [GitHub](https://github.com/raspberrypi/utils/tree/master/piolib) and [NeoPixel Example](https://github.com/raspberrypi/utils/blob/master/piolib/examples/ws2812.c).
@jepler has the code working and is integrating it into libraries for community use.
### 3:46 An Updated CircuitPython Plug-in for VSCode is Available
Will S Merkens has come to the rescue of many in the community who have asked for a working VSCode extension for CircuitPython development. Will forked an older, broken version and has applied fixes - [GitHub](https://github.com/wmerkens/vscode-circuitpython).
### 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](https://github.com/adafruit/circuitpython-weekly-newsletter/tree/gh-pages/_drafts) and [submit a pull request](https://help.github.com/articles/editing-files-in-your-repository/) 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:10 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.**
### Overall
* 47 pull requests merged
  * 19 authors - andibing, mikeysklar, weblate, JetForMe, wtuemura, pdw-mb, FoamyGuy, odeevee, caternuson, jposada202020, michalpokusa, jepler, dhalbert, ch4nsuk3, tannewt, Neradoc, todbot, BlitzCityDIY, relic-se
  * 10 reviewers - ladyada, jepler, TheKitty, dhalbert, tannewt, gamblor21, BlitzCityDIY, FoamyGuy, caternuson, tekktrik
* 130 closed issues by 9 people, 19 opened by 14 people
### 7:20 Core
* 17 pull requests merged
  * 13 authors - andibing, jepler, weblate, JetForMe, dhalbert, odeevee, wtuemura, tannewt, todbot, pdw-mb, FoamyGuy, relic-se, jposada202020
  * 4 reviewers - tannewt, dhalbert, jepler, gamblor21
* 20 open pull requests
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 646 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 620 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 498 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 433 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 383 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 278 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 257 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9238 (Open 211 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9245 (Open 208 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9349 (Open 173 days)
  * https://github.com/adafruit/circuitpython/pull/9385 (Open 161 days)
  * https://github.com/adafruit/circuitpython/pull/9550 (Open 108 days)
  * https://github.com/adafruit/circuitpython/pull/9559 (Open 107 days)
  * https://github.com/adafruit/circuitpython/pull/9776 (Open 38 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9804 (Open 27 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9844 (Open 10 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9858 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/9876 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9879 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/9878 (Open 1 days) (draft)
* 15 closed issues by 5 people, 9 opened by 6 people
* 760 open issues
  * https://github.com/adafruit/circuitpython/issues
* 7 active milestones
 * 10.0.0: 13 open issues
 * 9.2.x: 5 open issues
 * 9.x.x: 47 open issues
 * Libraries: 22 open issues
 * Long term: 637 open issues
 * Support: 18 open issues
 * Third-party: 15 open issues
 * 0 issues not assigned a milestone


### 9:20 Libraries
* Adafruit Libraries: 347 Community Libraries: 160 (Total: 507)
* 30 pull requests merged
  * 10 authors - mikeysklar, michalpokusa, jepler, ch4nsuk3, Neradoc, BlitzCityDIY, FoamyGuy, relic-se, caternuson, jposada202020
  * 9 reviewers - ladyada, jepler, TheKitty, dhalbert, tannewt, BlitzCityDIY, FoamyGuy, caternuson, tekktrik
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/98 (Days open: 21)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/227 (Days open: 12)
    * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/128 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Button/pull/48 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/209 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_EPD/pull/84 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_PIOASM/pull/73 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_NeoPxl8/pull/14 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MSA301/pull/21 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MPL3115A2/pull/32 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MMC56x3/pull/7 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MMC56x3/pull/6 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_miniQR/pull/30 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_miniQR/pull/29 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MPL115A2/pull/15 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MPL115A2/pull/14 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ICM20X/pull/27 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_turtle/pull/45 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_turtle/pull/43 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_turtle/pull/42 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_VS1053/pull/21 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_24LC32/pull/25 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_AD569x/pull/5 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Button/pull/53 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Button/pull/52 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Button/pull/51 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Button/pull/49 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Button/pull/50 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_VL53L0X/pull/40 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BNO08x_RVC/pull/9 (Days open: 1)
  * 52 open pull requests (Oldest: 844, Newest: 1)
* 115 closed issues by 5 people, 10 opened by 9 people
  * 728 open issues
  * 6 good first issues
* https://circuitpython.org/contributing


#### Library updates in the last seven days:
* **New Libraries**
  * [relic-se/CircuitPython_PIO_I2S](https://github.com/relic-se/CircuitPython_PIO_I2S)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_BLE](https://github.com/adafruit/Adafruit_CircuitPython_BLE)
  * [adafruit/Adafruit_CircuitPython_turtle](https://github.com/adafruit/Adafruit_CircuitPython_turtle)
  * [jposada202020/CircuitPython_BMI160](https://github.com/jposada202020/CircuitPython_BMI160)
  * [jposada202020/CircuitPython_LPS28](https://github.com/jposada202020/CircuitPython_LPS28)


### 14:40 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 10 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 1158 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 346 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/884 (Open 117 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140 (Open 113 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/888 (Open 100 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/908 (Open 30 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/911 (Open 22 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/914 (Open 7 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/370 (Open 7 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/915 (Open 2 days)
* 0 closed issues by 0 people, 0 opened by 0 people
* 113 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 22826
Number of supported boards: 146




## 15:20 Hug reports
@danh (hosting)
* @jepler for numerous CircuitPython fixes over the past week.


16:00 @CGrover (text only)
* @foamyguy for the informative and imagination-sparking Karel the Robot stream.
* Group hug


16:14 @foamyguy
* Jose for submitting more sensor displayio examples
* Jeff for looking into and fixing a rounding issue with locations inside of adafruit_turtle


16:37 @jepler
* Group hug
* Thanks to Tim for fixing a bug in Turtle that I introduced


16:55 @tannewt
* @jimmo for the gut check about moving CircuitPython to Zephyr.


17:15 @todbot (text-only)
* Mark (@gamblor21) & Tim (@foamyguy) for helping get the MTM Workshop Computer synth going with CircuitPython
* Cooper (@relic-se) & Jeff (@jepler) & Mark (@gamblor21) for the recent audiofilters work.  The echo and filter effects are a lot of fun! Can’t wait to try distortion


## 17:44 Status Updates
@danh (hosting)
* CircuitMatter: I started working on native mbedtls cryptography access, but didn’t have enough information. Instead I went back to the Python version of ecdsa, removed all the Python 2 compatibility stuff, and trimmed it to include only what is required for Matter, which removes a lot of code. I kept testing as I trimmed, so I know it still works. I have a few more things to trim or rewrite and will then try it in CircuitPython.
* Fixed missing alarm module on many 4MB Espressif boards. This is worth a 9.2.2 release soon.


20:20 @CGrover (text only)
* Wrapped up the software side of the new weather architecture. The final step is to install the Source device into a hardened enclosure out in the dusty workshop. Playground Note: https://adafruit-playground.com/u/CGrover/pages/remix-cedar-grove-weather-architecture-v2-0
* Will be reawakening the thermal imager project with a new sensor. Anticipating improved performance since a bunch of changes were made to CircuitPython displayio/vectorio since the first implementation. Excited to incorporate some tricks learned with PaletteSlice and PaletteFilter to improve pseudo-color images. I’m betting that ulab will play a prominent role.
* A FeatherWing PCB design to emulate the “all-in-one” PyPortal functionality for ESP32-S3 Feathers and the 3.5-inch cap-touch TFT Wing is in the works. Although it won’t be compatible with the PortalBase library, it will have the essential audio output, temperature sensor, light sensor, and funky 3 and 4-pin JST-PH Stemma connectors. Q: Why? A: ‘Cause I have quite a few existing PyPortal projects that could use the upgrade to ESP32-S3.


21:34 @foamyguy
* Continuing to work on library issues. This week included some fixes in adafruit_turtle and type annotations / ruff for display_button as well a few in other various libraries
* Implemented Karel the robot with displayio / TileGrid. It’s a utility to help teach the fundamentals of programming that was created by a stanford graduate student in the 70s.


23:20 @jepler
* Pio neopixel now working on pi5 in circuitpython. Compatible with LED animation library, etc. temporary home is https://github.com/jepler/adafruit-blinka-neopixel-pi5 – installation:
   * install latest firmware on pi5
   * install latest kernel on pi5 & reboot
   * pip install git+https://github.com/jepler/adafruit-blinka-neopixel-pi5 adafruit-circuitpython-led-animation adafruit-circuitpython-pixelbuf adafruit-blinka
   * sudo chmod 666 /dev/rpi0
   * wget https://raw.githubusercontent.com/jepler/adafruit-blinka-neopixel-pi5/refs/heads/main/examples/led_animation.py
   * python led_animation.py
* Working on an implementation of StateMachine which will initially target the features needed for neopixel & build from there
   * Another target is support for RGB Matrix Bonnet on PI5
   * Will not be a fully compatible StateMachine replacement, will just hit key functionality needed
* Based on my current understanding it’s not possible to do a concurrent read & write operation (like StateMachine.write_readinto) though maybe it can be done by doing a write ioctl in one thread and a read ioctl in another.
* Other items:
   * Fixed a problem with moving fractional pixels in adafruit turtle
   * Changed how memory could be allocated for ssl objects on espressif microcontrollers with psram
   * Fixed board.DISPLAY on floppsy
   * Fixed a glitch in MP3Decoder when switching streams
   * Removed some unneeded code in some setter functions in the core
   * Set up the 2025 calendar for public meetings
   * Submitted a fix for the module filename in a community library. I think this is the last thing before we can drop a workaround in the bundle builder.


25:55 @tannewt
* Got an nRF52840 build of CP + Zephyr linking but haven’t tried it on the DK. That’s my next step.
   * nRF boards now live at the top level. Builds happen from the top level too.
   * Zephyr cmake calls into async python script that builds circuitpython (replacing our makefiles.) Async python handles parallelism and skipping already done work.
* Monday and Tuesday will be off and on as we get ready for our travel. Wednesday is a travel day. The rest of the week is NYC visit and hacking when we have time.
* Next week we’ll be in Michigan and off and on. Not sure what our plans are. Out completely 12/23 - 1/2.
* I think we should do #CircuitPython2025 in January. Any objections or suggestions?
* Other stuff:
   * Replaced nvme drive that failed as part of my BTRFS RAID1 root partition. Went surprisingly smoothly.
   * Playing around with meshtastic on lilygo tdeck.
## 28:45 In The Weeds
* Any feedback or suggestions for #CircuitPython2025?


## 32:00 Wrap-Up
Next meeting is Monday December 16 at the usual time. The meeting following that will be Monday January 6, 2025!
