# CircuitPython Weekly Meeting for July 29th, 2024


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 can’t make the meeting and would still like to participate, add your notes with a “(missing meeting)” after your username and we’ll read them off for you. 


Add any longer-form discussion topics or general questions you have to the “In the weeds” section. 


Thanks! We hope to see you in the meeting!


Tim is hosting.


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


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.
## 02:58 Community News
### 03:03 Arduino to Switch From Arm Mbed to Zephyr Real-Time Operating System (RTOS)
Following Arm’s decision to stop supporting Mbed from July 2026 onwards, Arduino has now decided to use Zephyr RTOS instead of Arm Mbed for Arduino boards that rely on the latter including Arduino GIGA, Arduino Nano 33 BLE, Arduino Nano RP2040 Connect, as well as Arduino PRO boards/solutions such as the Portenta, Nicla, and Opta families. Arduino plans to release the first beta of their solutions by the end of 2024, with a rollout for various boards starting in 2025 - CNX Software and Arduino.
### 04:11 CircuitPython 9.1.1 Released
CircuitPython 9.1.1 is the latest bugfix revision of CircuitPython and is a new stable release - Adafruit Blog and GitHub Release Notes.
FIXES AND ENHANCEMENTS
nordic Fix BLE MTU negotiation.
RP2040 Check that all busio.UART pins are valid before claiming any.
SAMx SAMD51: fix PWMOut by reverting #9343: symptoms included no backlight on boards with displays.


### 04:55 MicroPython Simulation With Proteus
Proteus VSM for MicroPython provides system level simulation of an embedded design centered around a processor running MicroPython code. Users design the hardware directly on a schematic, choosing from thousands of embedded peripherals and placing and wiring them to the microcontroller board - Proteus via X.
### 05:31 Checkout Challenge
Checkout Challenge is a shopping trolley racing game made for the Adafruit PyBadge with CircuitPython, inspired by popular racing games - hackster.io and GitHub.
"With an Adafruit PyBadge I had stored away for a few years, and with the advent of AI accelerating code development and generating impressive artwork, I realized it was the perfect time to start working on this game."




### 06:24 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),.
## 07:11 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.**
### 07:20 Overall
* 26 pull requests merged
  * 18 authors - EAGrahamJr, mMerlin, bradanlane, rpavlik, vickash, jepler, Timeline8, FoamyGuy, rwmanos, andibing, dhalbert, lovrojakic, weblate, timchinowsky, RetiredWizard, ch4nsuk3, makermelissa, wtuemura
  * 5 reviewers - dhalbert, FoamyGuy, tannewt, makermelissa, jepler
* 15 closed issues by 5 people, 14 opened by 11 people


### 08:47 Core
* 17 pull requests merged
  * 10 authors - bradanlane, andibing, dhalbert, wtuemura, weblate, lovrojakic, timchinowsky, RetiredWizard, vickash, jepler
  * 4 reviewers - dhalbert, FoamyGuy, jepler, tannewt
* 18 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 755 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 525 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 513 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 487 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 365 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 300 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 250 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 145 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 124 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 121 days)
  * https://github.com/adafruit/circuitpython/pull/9238 (Open 78 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9245 (Open 75 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9315 (Open 52 days)
  * https://github.com/adafruit/circuitpython/pull/9349 (Open 40 days)
  * https://github.com/adafruit/circuitpython/pull/9385 (Open 28 days)
  * https://github.com/adafruit/circuitpython/pull/9462 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/9470 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/9469 (Open 1 days) (draft)
* 7 closed issues by 3 people, 11 opened by 8 people
* 712 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 10.0.0: 4 open issues
 * 9.1.x: 7 open issues
 * 9.2.0: 0 open issues
 * 9.x.x: 36 open issues
 * Libraries: 22 open issues
 * Long term: 614 open issues
 * Support: 15 open issues
 * Third-party: 14 open issues
 * 1 issues not assigned a milestone


### 10:27 Libraries
* 7 pull requests merged
  * 7 authors - Timeline8, FoamyGuy, EAGrahamJr, rpavlik, ch4nsuk3, mMerlin, rwmanos
  * 3 reviewers - dhalbert, jepler, tannewt
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1106/pull/19 (Days open: 12)
    * https://github.com/adafruit/Adafruit_CircuitPython_24LC32/pull/24 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_NTP/pull/39 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/81 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_BME280/pull/69 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_EMC2101/pull/34 (Days open: 1)
    * https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/237 (Days open: 1)
  * 48 open pull requests (Oldest: 711, Newest: 4)
* 3 closed issues by 2 people, 1 opened by 1 people
  * 860 open issues
  * 103 good first issues
* https://circuitpython.org/contributing


#### 13:30 Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 176092 PyPI downloads over 331 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 11562
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 11251
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 10032
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2609
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 2043
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1900
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1839
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1551
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1401
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1321


#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_NTP](https://github.com/adafruit/Adafruit_CircuitPython_NTP)
  * [adafruit/Adafruit_CircuitPython_ImageLoad](https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad)
  * [mindwidgets/Mindwidgets_CircuitPython_DF1201S](https://github.com/mindwidgets/Mindwidgets_CircuitPython_DF1201S)


### 14:04 Blinka
* 2 pull requests merged
  * 2 authors - FoamyGuy, makermelissa
  * 2 reviewers - dhalbert, makermelissa
* 3 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 1025 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 213 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 213 days) (draft)
* 5 closed issues by 1 people, 2 opened by 2 people
* 99 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 18318
* Piwheels Downloads in the last month: 18147
Number of supported boards: 145
## 15:04 Hug reports
15:27 @foamyguy (hosting)
* Github user @ch4nsuk3 for adding jpg support to Imageload which minimizes the differences in code for loading different types of image files
* @DJDevon3 for some nice chatting on interest in cryptography and old ciphers. And for playing through the cipher puzzle game that I shared.
* @Justin for starting the ball rolling initially on changing libraries to Ruff
* @jepler for fixing the board module documentation
* @danh for making a new core release with fix for the SAMD51’s with built-in displays and other improvements
* @makermelissa for Blinka improvements, maintenance and guides. Installed it on a fresh Pi recently and guides made it a breeze


16:45 @danh
* @vickash for rotaryio, frequencyio, countio overflow handling on Espressif
* @jepler for infrastructure fixes


17:23 @DJDevon3 (text only)
* @CGrover for investigating alternatives to OpenWeatherMap.org and amazing step-by-step playground notes for both NOAA’s Weather.gov API and AdafruitIO+ Weather PowerUp for Circuit Python. 
* @Deshipu for his new ugame_s3 board. It looks awesome!
* @FoamyGuy for an excellent Saturday live stream working on soft_keyboard and the cipher challenge. I hope it was a rewarding experience learning someone solved your puzzles as it was for you to create them.
* @AnneB for an exceptional playground note on MS-DOS Disk Images.
* @Everyone working at Adafruit Industries HQ going through a big transition while moving to a new location. 
* @Group Hug


18:31 @jerryn
* @danh for patiently  helping me get a new library set up.
* @foamyguy for updating cookiecutter to use ruff


18:55 @tannewt
* Danh for another MicroPython merge.
* MicroPython contributors for continuing to improve things.
* Foamyguy for filling in on deep dive and wrangling all of circuitpython’s libraries.
* Rylie Pavlik for updating the mailmap file with upgraded names and updated emails for folks.
## 19:32 Status Updates
19:58 @foamyguy (hosting)
* Updated cookiecutter for using ruff instead of pylint / black
* Worked on a fix for the few displayio drivers that had issues inside of Blinka_Displayio rather than the driver. Setup a fresh Raspberry pi to test the fix and insure it doesn’t cause other issues
* Working through the handful of original Ruff PRs to make the final touches to config file and merge main / resolve conflicts so they’re ready to go.
* Tried out the jpeg support in ImageLoad
* Added ability to change layouts in the Softkeyboard library.


21:12 @danh
* I made a lot of progress on the MicroPython v1.22 release and submitted it as a PR, which needs some merge conflicts fixed. I annotated all remaining changes with CIRCUITPY-CHANGE that weren’t annotated. I compiled and ran it on representative boards from all ports, and did some blinky/BLE/wifi testing, and everything is working.
* After that is merged I’ll do the MicroPython v1.23 merge.
* There are several significant bugs to work on for further 9.1.x releases.




22:57 @DJDevon3 (text only)
* Updated my feather weather script that is still using the OpenWeatherMap 2.5 Free API.  Even though documentation says it’s deprecated, their 2.5 API is still working as of today. When their 2.5 API gets yoinked into the nether it will break more than a few learn guides.
* Started working on an animated font out of curiosity. It works the same way as a sprite sheet except it loops through unicode keyboard characters. The advantage is you can change the color of any element in an animation frame by changing the font color (or other displayio label parameter). That is something you cannot do with an animated gif or sprite sheet. When all other glyphs are detached the font is 4 KB. A sprite sheet with the same dimensions is 28 KB. Small animated fonts are more ram efficient than sprite sheets. This is a good trick to keep in mind for ram constrained boards using the M0 and M4 going forward.
*   * Spent part of my Saturday diving into some basic encryption challenges that FoamyGuy setup at https://cipher.foamyguy.com While I’ve heard of the types used I’d never actually decrypted them before. Solved all 4 puzzles and got a gold star. The puzzles were just the right combination of not too easy and not too hard. There weren’t any tricks, misdirection, or multiple encryption schemes. It was a very enjoyable experience.


24:39 @jerryn
   * Switched to using ruff on my RFM library – a few tweaks to get it to work, but fairly painless
   * Hoping to have a PR out soon to get the updated RFM library out for review. 


25:24 @tannewt
   * Debugging SPAKE2+ implementation for Matter. Will have a secure channel afterwards. 🤞
   * Out Thursday and Friday for a long family weekend w/tide pools!
## 26:33 In The Weeds




## 26:54 Wrap-Up