# CircuitPython Weekly Meeting for Monday, February 10, 2025

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

Join here for the chat all week: [http://adafru.it/discord](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](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:07 Community News

### 3:21 Maximizing MicroPython Speed

There are times where we'd like code to run much faster than it does at present. Part of any coding class beyond the basics involves optimizing code for speed and size, especially in resource restricted environments (like microcontrollers and single-board computers). MicroPython has documentation which helps suggest code changes to make programs run faster including the Native and Viper code emitters \- [ReadTheDocs](https://docs.micropython.org/en/v1.9.3/pyboard/reference/speed_python.html).

### 4:03 MicroPython IDEs and Tools

Mayur Koshti has a new guide to the best development environments for MicroPython \- [Medium](https://medium.com/@mayurkoshti12/aebe61b0f0c5). Click "No Medium subscription? Read the full article 👉 here." in the second paragraph to read.

### 4:21 Debugging Within Visual Studio Code

Visual Studio Code allows for debugging within the interface including setting up a REPL (Read-Eval-Print Loop) \- [visualstudio.com](https://code.visualstudio.com/Docs/editor/debugging#_debug-console-repl) and specifically [Python Debugging](https://code.visualstudio.com/docs/python/debugging).

### 4:34 Adafruit Announces Fruit Jam, an RP2350B-based Single Board Computer

Looking to "jam a ridonkulous amount of hardware" into a single-board computer, Adafruit has shown their design in progress, initially entitled Fruit Jam. Adafruit is aiming it for classic game and computer emulation and CircuitPython, although it should work with any RP2350 compatible language \- [Adafruit Blog](https://blog.adafruit.com/2025/02/03/fruit-jam-rp2350b-credit-card-mini-computer-with-all-the-fixins/), [Hackster.io](https://www.hackster.io/news/adafruit-unveils-a-work-in-progress-raspberry-pi-rp2350b-single-board-computer-the-fruit-jam-008f4cc73dde), and [Tom's Hardware](https://www.tomshardware.com/raspberry-pi/adafruits-fruit-jam-is-a-raspberry-pi-pico-2-powered-credit-card-sized-computer).

"With the extra pins of the QFN-80 RP2350B, we’re able to jam a ridonkulous amount of hardware into this shape: RP2350B dual 150MHz Cortex M33 w/ PicoProbe debug port, 16 MB Flash \+ 8 MB PSRAM, USB type C for bootloading/USB client, Micro SD card with SPI or SDIO, DVI output on the HSTX port, I2S stereo headphone \+ mono speaker via the TLV320DAC3100, 2-port USB type A hub for both keyboard and mouse or game controllers, chunky on-off switch, Stemma QT I2C \+ Stemma classic JST 3-pin, EYESPI for TFT displays, 5x NeoPixels, 3x tactile switches, and a 16-pin socket header with 10 A/D GPIO \+ 5V/3V/GND power pins. The PSRAM will help when we want to do things like run emulations that we need to store in fast RAM access, and it will also let us use the main SRAM as the DVI video buffer."

### 6:31 Adafruit Updates PioMatter Library For Raspberry Pi 5

The Raspberry Pi 5 can now drive Adafruit's RGB Matrix Bonnet and HAT accessories, thanks to the RP1's PIO blocks \- [Adafruit Guide](https://learn.adafruit.com/rgb-matrix-panels-with-raspberry-pi-5) and [hackster.io](https://www.hackster.io/news/adafruit-s-piomatter-library-brings-hub75-rgb-led-matrix-support-to-the-raspberry-pi-5-s-rp1-chip-70bfb3c3bdd8).

### 7:00 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](mailto:cpnews@adafruit.com), or tag a post with \#CircuitPython on Mastodon, Bluesky, or X (formerly known as Twitter),.

## 7:41 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.**

### 8:03 Overall

* 30 pull requests merged  
  * 14 authors \- dhalbert, jerryneedell, SeanTheITGuy, MarshallMiller, BlitzCityDIY, wtuemura, jposada202020, FoamyGuy, weblate, eightycc, karlosgliberal, tannewt, andibing, jepler  
  * 7 reviewers \- dhalbert, brentru, BlitzCityDIY, FoamyGuy, tannewt, ladyada, jepler  
* 8 closed issues by 5 people, 11 opened by 10 people

### 8:39 Core

* 12 pull requests merged  
  * 9 authors \- **SeanTheITGuy**, **MarshallMiller**, **wtuemura**, weblate, eightycc, **karlosgliberal**, tannewt, andibing, jepler  
  * 3 reviewers \- dhalbert, tannewt, jepler  
* 23 open pull requests (11 draft)  
  * [https://github.com/adafruit/circuitpython/pull/7811](https://github.com/adafruit/circuitpython/pull/7811) (Open 683 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/8457](https://github.com/adafruit/circuitpython/pull/8457) (Open 496 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/8647](https://github.com/adafruit/circuitpython/pull/8647) (Open 446 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9009](https://github.com/adafruit/circuitpython/pull/9009) (Open 341 days)  
  * [https://github.com/adafruit/circuitpython/pull/9094](https://github.com/adafruit/circuitpython/pull/9094) (Open 320 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9349](https://github.com/adafruit/circuitpython/pull/9349) (Open 236 days)  
  * [https://github.com/adafruit/circuitpython/pull/9385](https://github.com/adafruit/circuitpython/pull/9385) (Open 224 days)  
  * [https://github.com/adafruit/circuitpython/pull/9559](https://github.com/adafruit/circuitpython/pull/9559) (Open 170 days)  
  * [https://github.com/adafruit/circuitpython/pull/9804](https://github.com/adafruit/circuitpython/pull/9804) (Open 90 days)  
  * [https://github.com/adafruit/circuitpython/pull/9844](https://github.com/adafruit/circuitpython/pull/9844) (Open 73 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9876](https://github.com/adafruit/circuitpython/pull/9876) (Open 65 days)  
  * [https://github.com/adafruit/circuitpython/pull/9878](https://github.com/adafruit/circuitpython/pull/9878) (Open 64 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9883](https://github.com/adafruit/circuitpython/pull/9883) (Open 62 days)  
  * [https://github.com/adafruit/circuitpython/pull/9909](https://github.com/adafruit/circuitpython/pull/9909) (Open 48 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9955](https://github.com/adafruit/circuitpython/pull/9955) (Open 28 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/9974](https://github.com/adafruit/circuitpython/pull/9974) (Open 23 days)  
  * [https://github.com/adafruit/circuitpython/pull/9994](https://github.com/adafruit/circuitpython/pull/9994) (Open 16 days)  
  * [https://github.com/adafruit/circuitpython/pull/10023](https://github.com/adafruit/circuitpython/pull/10023) (Open 7 days)  
  * [https://github.com/adafruit/circuitpython/pull/10028](https://github.com/adafruit/circuitpython/pull/10028) (Open 5 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10027](https://github.com/adafruit/circuitpython/pull/10027) (Open 5 days)  
  * [https://github.com/adafruit/circuitpython/pull/10040](https://github.com/adafruit/circuitpython/pull/10040) (Open 2 days) (draft)  
  * [https://github.com/adafruit/circuitpython/pull/10038](https://github.com/adafruit/circuitpython/pull/10038) (Open 2 days)  
  * [https://github.com/adafruit/circuitpython/pull/10044](https://github.com/adafruit/circuitpython/pull/10044) (Open 1 days) (draft)  
* 5 closed issues by 3 people, 8 opened by 8 people  
* 751 open issues  
  * [https://github.com/adafruit/circuitpython/issues](https://github.com/adafruit/circuitpython/issues)  
* 7 active milestones  
* 10.0.0: 15 open issues  
* 9.2.x: 8 open issues  
* 9.x.x: 58 open issues  
* Libraries: 17 open issues  
* Long term: 616 open issues  
* Support: 21 open issues  
* Third-party: 15 open issues  
* 2 issues not assigned a milestone

### 10:39 Libraries

* Adafruit Libraries: 351 Community Libraries: 154 (Total: 505\)  
* 18 pull requests merged  
  * 5 authors \- dhalbert, jerryneedell, BlitzCityDIY, jposada202020, FoamyGuy  
  * 6 reviewers \- dhalbert, brentru, tannewt, ladyada, BlitzCityDIY, FoamyGuy  
  * Merged pull requests:  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MiniMQTT/pull/238](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/238) (Days open: 16\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_DPS310/pull/30](https://github.com/adafruit/Adafruit_CircuitPython_DPS310/pull/30) (Days open: 8\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MSA301/pull/22](https://github.com/adafruit/Adafruit_CircuitPython_MSA301/pull/22) (Days open: 8\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_TMP117/pull/18](https://github.com/adafruit/Adafruit_CircuitPython_TMP117/pull/18) (Days open: 8\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_AHTx0/pull/23](https://github.com/adafruit/Adafruit_CircuitPython_AHTx0/pull/23) (Days open: 8\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_asyncio/pull/70](https://github.com/adafruit/Adafruit_CircuitPython_asyncio/pull/70) (Days open: 4\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_LIS2MDL/pull/19](https://github.com/adafruit/Adafruit_CircuitPython_LIS2MDL/pull/19) (Days open: 2\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_BH1750/pull/12](https://github.com/adafruit/Adafruit_CircuitPython_BH1750/pull/12) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MPL115A2/pull/16](https://github.com/adafruit/Adafruit_CircuitPython_MPL115A2/pull/16) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MPU6050/pull/41](https://github.com/adafruit/Adafruit_CircuitPython_MPU6050/pull/41) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_MPL3115A2/pull/33](https://github.com/adafruit/Adafruit_CircuitPython_MPL3115A2/pull/33) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_LTR390/pull/18](https://github.com/adafruit/Adafruit_CircuitPython_LTR390/pull/18) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_HX711/pull/5](https://github.com/adafruit/Adafruit_CircuitPython_HX711/pull/5) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_OV5640/pull/35](https://github.com/adafruit/Adafruit_CircuitPython_OV5640/pull/35) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_LPS28/pull/1](https://github.com/adafruit/Adafruit_CircuitPython_LPS28/pull/1) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Bundle/pull/494](https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/494) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Bundle/pull/493](https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/493) (Days open: 1\)  
    * [https://github.com/adafruit/Adafruit\_CircuitPython\_Bundle/pull/492](https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/492) (Days open: 1\)  
  * 54 open pull requests (Oldest: 907, Newest: 1\)  
* 2 closed issues by 2 people, 1 opened by 1 people  
  * 687 open issues  
  * 3 good first issues  
* [https://circuitpython.org/contributing](https://circuitpython.org/contributing)

#### 14:39 Library updates in the last seven days:

* **New Libraries**  
  * [adafruit/Adafruit\_CircuitPython\_INA228](https://github.com/adafruit/Adafruit_CircuitPython_INA228)  
  * [adafruit/Adafruit\_CircuitPython\_LPS28](https://github.com/adafruit/Adafruit_CircuitPython_LPS28)  
* **Updated Libraries**  
  * [adafruit/Adafruit\_CircuitPython\_TM](https://github.com/adafruit/Adafruit_CircuitPython_TM)  
  * [adafruit/Adafruit\_CircuitPython\_asyncio](https://github.com/adafruit/Adafruit_CircuitPython_asyncio)

### 15:00 Blinka

* 0 pull requests merged  
  * 0 authors \-  
  * 0 reviewers \-  
* 18 open pull requests  
  * [https://github.com/adafruit/Adafruit\_Blinka\_bleio/pull/40](https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40) (Open 1221 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/335](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335) (Open 409 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/884](https://github.com/adafruit/Adafruit_Blinka/pull/884) (Open 180 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/140](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140) (Open 176 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/888](https://github.com/adafruit/Adafruit_Blinka/pull/888) (Open 163 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/908](https://github.com/adafruit/Adafruit_Blinka/pull/908) (Open 93 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/911](https://github.com/adafruit/Adafruit_Blinka/pull/911) (Open 85 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/914](https://github.com/adafruit/Adafruit_Blinka/pull/914) (Open 70 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/915](https://github.com/adafruit/Adafruit_Blinka/pull/915) (Open 65 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/372](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/372) (Open 60 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/921](https://github.com/adafruit/Adafruit_Blinka/pull/921) (Open 49 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/925](https://github.com/adafruit/Adafruit_Blinka/pull/925) (Open 32 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/375](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/375) (Open 32 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/928](https://github.com/adafruit/Adafruit_Blinka/pull/928) (Open 29 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka\_Displayio/pull/143](https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/143) (Open 25 days) (draft)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/378](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/378) (Open 23 days)  
  * [https://github.com/adafruit/Adafruit\_Blinka/pull/931](https://github.com/adafruit/Adafruit_Blinka/pull/931) (Open 20 days)  
  * [https://github.com/adafruit/Adafruit\_Python\_PlatformDetect/pull/379](https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/379) (Open 1 days)  
* 1 closed issues by 1 people, 2 opened by 2 people  
* 126 open issues  
  * [https://github.com/adafruit/Adafruit\_Blinka/issues](https://github.com/adafruit/Adafruit_Blinka/issues)  
* Number of supported boards: 146

## 16:35 Hug reports

17:14 @tannewt (host)

* @timonsku for Zephyr pointers.  
* @ladyada for FruitJam design.  
* @jepler for code size reduction PRs.

17:57 @ CGrover (text only)

* @DJDevon3 for the extra effort to find openweathermap API alternatives and to provide a creative CircuitPython code example for the Open-Meteo URL API.  
* @PaulCutler for inviting me to talk about weather stations on a recent episode of The CircuitPython Show. Received some excellent feedback as a result.


18:25 @danh

* @justmobilize, @tyeth for testing the NINA-FW release  
* @hathach for doing almost all the work needed for the NINA-FW update  
* @eightycc for excellent work on lwip updates

18:42 @eightycc

* @tannewt, @danh, @jepler, @anecdata for all the help and hints along the way. I am so impressed with the team and the project.

19:10 @foamyguy

* @makermelissa for working on fixes to the web-ide  
* @jepler for continued improvements to pio matter and documentation  
* @tannewt for the basic keyboard USB host test in the core repo  
* @danh for working on nina-fw updates to certs and more & another for everyone who helped and tested  
* Group hug

20:11 @jepler

* thanks @foamyguy for working on piomatter stuff with me  
* @eightycc thanks for popping in with arm low-level guidance, I’m still processing it  
* @relic-se thanks for reviews on my code  
* @tannewt @dan thanks for reviews & merging  
* @ladyada the excitement about fruit jam is palpable  
* @paulcutler thanks for editing together the podcast I was a part of. (mea culpa for not listening through the draft edited version) I’m also excited you’ve got so much in the hopper that it’ll be April before the episode debuts.

21:14 @Liz (likely missing)

* @Mark and @cooper for tips on using audio effects with analogbufio

21:25 @Mark\[Gamblor\] (missing)

* @jepler and @cooper for continue audio effects ideas, PRs and reviews.  
* @paul cutler for having me as a guest on and in general for the CircuitPython show

21:54 @SamBlenny (text only)

* @ladyada for FruitJam design (this is very exciting\!)

## 22:05 Status Updates

22:22 @tannewt (host)

* Out Wednesday morning to put things back after floor install and before cleaners come.  
* Working on Zephyr CP. Figured out crash due to two heaps in one place. Now debugging why connecting doesn’t work. Looks to be something with random via BLE.  
* Going to continue down Zephyr networking.  
* May get distracted by FruitJam when it arrives. Made a brainstorming issue this weekend: [https://github.com/adafruit/circuitpython/issues/10045](https://github.com/adafruit/circuitpython/issues/10045)  
* Started discussion of TinyUF2 support for CP10. (Primarily enabling BLE on 4MB S3s instead of OTA.)

24:10 @CGrover (text only)

* Finished an Open-Meteo Weather Display project using an ESP32-S3 and 2.4-inch TFT FeatherWing. The Playground Note will be published today. [https://adafruit-playground.com/u/CGrover/pages/weather-display-using-open-meteo-s-api](https://adafruit-playground.com/u/CGrover/pages/weather-display-using-open-meteo-s-api)  
* Playing With Plastics is the theme for this week. Trying to refine and document some techniques for hand machining and bending acrylic, ABS, and polycarbonate into project stands and enclosures. Turns out that KiCAD makes an excellent CAD tool for designing the glued-on paper fabrication templates, particularly when importing actual-size Adafruit Eagle footprints for things like the TFT FeatherWing PCB.

24:52 @danh (out)

* Got NINA-FW working with ECDSA cert chains. Thach’s PR was really fine, except that the firmware was running out of heap space. I reduced the number of available sockets from 7 to 6, which helped some. Community users helped me test. I then also reduced the root certificate file, mostly by discarding some discredited certs. That helped even more, and a test of many https sites now works without error.  
* I released NINA-FW as 2.0.0-rc.0+adafruit, and will make a final release after Tyeth and others do some more testing.  
* Did some more PR reviews and testing of things for a 9.2.5 release.

25:44 @foamyguy

* Started taking photos and creating guide pages for upcoming Steamboat Willie clock project featuring the new round displays. Designed and printed a basic box for it  
* Testing the web-ide fixes  
* Updating pio matter examples to use new configuration parameters and then will add a section to the learn guide that covers them.  
* Figured out how to read data from generic USB PS3 controller and map incoming data to it’s correlated button presses.

27:04 @jepler

* Piomatter is in good shape, doing some improvements of the API & supporting more modules (those with swapped R/B pins)  
* Made all the pi5 python libraries I write yesterday create docs on readthedocs.  
* Working on fixing picodvi blanking when writing to flash on rp2350, but I have stuff to learn (interrupt priority). Current status: scratching my head

29:06 @eightycc

* Resolved a slew of performance/stability issues with lwIP on RP2  (pull \#10027) by configuring all memory allocations to use dynamic tlsf heap memory allocations. I need a small assist to resolve some git problems with Adafruit’s lwIP repo before this can merge.  
* In the process of adding/testing RP2350 SHA-256 hardware acceleration to mbedtls config for the RP2 port. This should help with HTTPS performance.

30:16 @SamBlenny (text only)

* Learning my way around Zephyr and writing Playground guides about it.  
* Working on a Zephyr board definition for Feather RP2350. Planning to try the Metro RP2350 and FruitJam once boards are available. Planning to look at display support (SPI, HSTX, maybe LVGL).

## 30:43 In The Weeds

## 31:02 Wrap-Up

Next meeting: **Tuesday** February 18, 2025 at the usual time of 2PM US ET/11AM US PT.
