# CircuitPython Weekly Meeting for August 19, 2024

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


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:52 Community News
### 3:08 A CircuitPython Day 2024 Recap
CircuitPython Day 2024 was last Friday and it was a huge success! Eleven videos/shows were presented throughout the day and there was a time limited Adafruit discount code for that day. A huge thank you to all viewers, customers, presenters and more - [Adafruit Blog](https://blog.adafruit.com/2024/08/16/circuitpython-day-is-august-16-2024-2/).


If you missed any videos, check out the playlist - [YouTube](https://www.youtube.com/playlist?list=PLjF7R1fz_OOXfOj_-jSrcGNwIXiX83DZS).


### 3:37 The RP2350 Hacking Challenge
We discussed the security built into the new Raspberry Pi RP2350 microcontrollers last week. Raspberry Pi has teamed with hextree.io to offer a security challenge to see if anyone can break through the layers of chip security. hextree.io also had a glitch board specifically aimed at the RP2350 at DEF CON 32. You can find out more about this $10,000 challenge at [hextree.io](https://www.hextree.io/rp2350), [Raspberry Pi](https://www.raspberrypi.com/news/can-you-hack-our-new-chip/) and on [GitHub](https://github.com/raspberrypi/rp2350_hacking_challenge), running until September 7th.


### 4:29 A Closer Look at Raspberry Pi RP2350’s HSTX High-Speed Serial Transmit Interface
HSTX on the new Raspberry Pi 2350 microcontrollers is an exciting new peripheral. Providing output only, the first discussions have been about providing video, although there has been talk of [NeoPixel output](https://x.com/PaintYourDragon/status/1824104364300271976) too. CNX Software describes HSTX and its use in C and CircuitPython alpha builds - [CNX Software](https://www.cnx-software.com/2024/08/15/raspberry-pi-rp2350-hstx-high-speed-serial-transmit-interface/).


### 5:09 Yes, the New Raspberry Pi RP2350 Can Run Doom (Rather Well!)
Graham Sanderson, one of the designers of the new Raspberry Pi RP2350 microcontroller, has demonstrated running Doom on the RP2350-powered DEF CON 32 badge. The game includes sound and save game support and runs at a smooth 50 frames per second. This is another demonstration of the power and versatility of the RP2350 which has been shown running PalmOS and emulating a GameBoy Color, also on the DEF CON badge - [X](https://x.com/kilograham5/status/1822618988821827674?t=mmP4mDxpkXd4LbWzxlUWeg&s=03) and [GitHub](https://github.com/kilograham/rp2040-doom).


### 5:50 The RISC-V Cores in the New Raspberry Pi RP2350
RISCV.Org looks at the RISC-V cores included in the Raspberry Pi RP2350 chips and Pico 2 board - [RISC-V](https://riscv.org/news/2024/08/raspberry-pi-launch-new-rp2350-microcontroller-and-pico-2-development-board-with-risc-v-support/).


### 6:12 RP2350 Launch Partners
Raspberry Pi has a list on their website of 32 boards powered by the RP2350 at launch. This includes many in the maker space including Adafruit, Pimoroni, Wiznet, Cytron, Invector Labs, Solder Party, Seeed Studio and SparkFun - [Adafruit Blog](https://blog.adafruit.com/2024/08/09/a-listing-of-all-the-announced-raspberry-pi-rp2350-powered-boards-raspberry_pi/) and [Raspberry Pi](https://www.raspberrypi.com/for-industry/powered-by/product-catalogue/?category=RP2350).
### 6:44 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),.
## 7:34 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
* 26 pull requests merged
  * 17 authors - bill88t, dhalbert, kolcz, RoaCode, wtuemura, weblate, EAGrahamJr, UnexpectedMaker, EGJ-Moorington, wyrdsec, andibing, XENONFFM, BlitzCityDIY, waiweng83, FoamyGuy, tannewt, RasmusB
  * 6 reviewers - FoamyGuy, tannewt, dhalbert, makermelissa, jerryneedell, ladyada
* 11 closed issues by 7 people, 14 opened by 13 people


### 9:28 Core
* 16 pull requests merged
  * 10 authors - bill88t, wyrdsec, dhalbert, andibing, BlitzCityDIY, wtuemura, waiweng83, tannewt, weblate, UnexpectedMaker
  * 3 reviewers - tannewt, dhalbert, ladyada
* 20 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 776 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 546 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 534 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 508 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 386 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 321 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 271 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 166 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 145 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9238 (Open 99 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9245 (Open 96 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9349 (Open 61 days)
  * https://github.com/adafruit/circuitpython/pull/9385 (Open 49 days)
  * https://github.com/adafruit/circuitpython/pull/9469 (Open 22 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9483 (Open 12 days)
  * https://github.com/adafruit/circuitpython/pull/9532 (Open 2 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9531 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9530 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9529 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9534 (Open 1 days)
* 8 closed issues by 4 people, 6 opened by 6 people
* 732 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 10.0.0: 6 open issues
 * 9.1.x: 14 open issues
 * 9.2.0: 2 open issues
 * 9.x.x: 39 open issues
 * Libraries: 22 open issues
 * Long term: 619 open issues
 * Support: 17 open issues
 * Third-party: 14 open issues
 * 0 issues not assigned a milestone


### 10:54 Libraries
* 9 pull requests merged
  * 7 authors - FoamyGuy, tannewt, EAGrahamJr, kolcz, XENONFFM, RoaCode, RasmusB
  * 4 reviewers - FoamyGuy, jerryneedell, dhalbert, tannewt
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_SCD4X/pull/20 (Days open: 135)
    * https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad/pull/85 (Days open: 10)
    * https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/pull/99 (Days open: 8)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306/pull/46 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_Prompt_Toolkit/pull/4 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_RFM/pull/2 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/136 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/469 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/219 (Days open: 1)
  * 44 open pull requests (Oldest: 732, Newest: 5)
* 2 closed issues by 2 people, 6 opened by 5 people
  * 876 open issues
  * 103 good first issues
* https://circuitpython.org/contributing


#### 14:07 Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 166667 PyPI downloads over 331 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 11956
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 11091
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 9850
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2528
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 2133
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1642
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1500
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1363
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1290
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1283


#### 14:30 Library updates in the last seven days:
* **New Libraries**
  * [adafruit/Adafruit_CircuitPython_RFM](https://github.com/adafruit/Adafruit_CircuitPython_RFM)
  * [XENONFFM/CircuitPython_PCA9674](https://github.com/XENONFFM/CircuitPython_PCA9674)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_Ticks](https://github.com/adafruit/Adafruit_CircuitPython_Ticks)


### 14:42 Blinka
* 1 pull requests merged
  * 1 authors - EGJ-Moorington
  * 1 reviewers - makermelissa
* 4 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 1046 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 234 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/884 (Open 5 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/140 (Open 1 days)
* 1 closed issues by 1 people, 2 opened by 2 people
* 103 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 16249
* Piwheels Downloads in the last month: 16249
Number of supported boards: 146






## 15:31 Hug reports
16:02 @tannewt (host)
* Liz and Anne for organizing CircuitPython Day and everyone who participated.


16:11 @danh
* A little belated: @tannewt for having RP2350 builds available so quickly and for adding new boards, and also doing update to ESP-IDF v5.3.
* Everyone who worked on and attended CircuitPython Day. Thanks especially to @anne and @BlitzCityDIY for all the organization, prep, and video work.


16:58 @David.Glaude (text only)
* To all the hosts, organizers and participants of the CircuitPython Day.
* @tannewt and @todbot for adding support for some RP2340 boards by Pimoroni during the DeepDive.
* Group Hug for many people and many things since my last report here.


17:25 @DJDevon3 (text only)
* @SomeNice for requesting a guide on wifi requests error handling.
* @AnneB for an excellent Networking in Circuit Python learn guide!
* @Tannewt for adding support for a  bunch of new RP2350 boards. I’m sure there will be more coming in the future as the RP2350 becomes more widely available.
* @Everyone who hosted or interacted with a Circuit Python Day 2024 livestream. It was nice to scroll back through broadcast chat to see an entire day of people having a great time discussing Circuit Python.
* @Group Hug


18:01 @foamyguy
* @tannewt for finding and fixing an issue involving corrupted binary files due to line ending configuration
* Everyone who participated in CircuitPython day. There were so many great discussions, projects, and insights into the past present and future of circuitpython and related projects. It was inspiring and a great reminder of how great the community is.


18:36 @jerryn
* @foamyguy for adding the msgpack example to the RFM library
* Group Hug.


18:57 @makermelissa (text only)
* Group Hug


19:05 @michalpokusa (not present)
* Tyeth for second pair programming session regarding live video feed on MEMENTO


19:15 @Paul Cutler (text only)
* Hug to Liz and Anne for all their work to organize CircuitPython Day
* Group hug to everyone who participated, it was a ton of fun


19:33 @todbot (text only, not present)
* Liz & Anne for organizing CircuitPythonDay2024
* @prcutler for organizing our particular livestream
* Everyone who participated on CircuitPythonDay2024. It was great being a part of it!
## 19:55 Status Updates
20:28 @tannewt (host)
* A number of improvements for RP2350
   * Enabled RGBMatrix and USB Host
   * Fixed audio playback
   * Added SparkFun Pro Micro. Pending PRs for Pimoroni and Seeed boards.
* Fixed ESP32-S3 startup and then updated to IDF 5.3
* Need to investigate some bugs Dan found in testing.
* Off and on this week due to family visiting starting Wednesday. (Not sure what the plan is.) 
* Out next Friday and Monday after for long Labor Day weekend.


21:50 @danh
* MicroPython v1.22 merge:
   * Very close to done. One more test to fix in CI; works locally.
   * Updated asyncio library (in a branch) with latest changes and fixed various test failures.
   * Will move on to v1.23 merge after that.
* Reviewing and testing various PR’s.
* Following up on various bug reports and getting people to submit them as issues.
* Testing Melissa’s web editor.
* I’ll probably make another 9.2.0 alpha soon.
* Investigating I2C clock-stretching issue with ATTiny Seesaw boards on ESP32-S3.


23:50 @David.Glaude (text only)
* Non CP
   * In recent months I got new solar panel and new Electric Vehicle (and many power meter in plug and in electrical panel) Integrated things in Home Assistant to better understand energy usage in our house.
Created a “follow the sun” system to charge my Tesla with the electricity excess.
Due to the recent API rate limit added by Tesla, the whole landscape was in flux, so I contributed to multiple projects to use BLE to control the car… until I found a stable solution that worked with my setup.
Details not to be read, just say they are available details if anybody is interested…
Software involve:
* evcc (https://evcc.io/en/) that support a lot of charger, car, and electric meter, inverter, …
* Mosquito for MQTT
* Teslamate: track the car, analyze charging, range, status and save in MQTT
* TeslaBleMQTTdocker: the control of charging talking BLE with the car (listen to evcc via MQTT)
                Hardware involved: a new data center in the garage with an Intel NUC and a Raspberry Pi 4 for TeslaBleMQTT
* CP
   * All of my electric consumption, solar panel production and car charging status are available in MQTT… I want to build a monitoring dashboard on a PyPortal (read from MQTT and draw on screen).
      * Maybe I could also control EVCC and the Tesla with the touch screen. (also via MQTT)
   * With the Pico2 and CP Day I got the urge to get some RP2350 hardware and went for Pimoroni, now waiting for the PR to be included and the device page to appear on circuitpython.org.


25:08 @DJDevon3 (text only)
* Wrote a playground note for 24/7 Online Requests with Circuit Python including how to deal with the dreaded gaierror -2 (credited to Deshipu). Suggestions and feedback appreciated.
* Started working on a rechargeable PIR motion activated soap dispenser. 


25:35 @foamyguy
* Livestreams working on rainbow breakout game. It’s coming along nicely, it’s playable and keeps track of score. I’ve got a handful of ideas to add for “power ups” and would like to make separate levels that increase in number of bricks as you advance. Perhaps after a bit more work I’ll make a version that can run on a wider range of hardware and then document this in a learn guide or playground page
* Tracked down an issue with the ImageLoad library that resulted in corrupted image files getting checked in to the repo.
* Looked into an issue that’s causing an exception to get raised while adabot tries to generate the reports for the meeting. Submitted PR with a fix for that, and another to update pylint to a newer version usable on py3.12
* Wrote python implementations for circle / polygon and rectangle / polygon intersection detection and a few of the primitives used by them
* Will submit core PR with math.dist() function


27:12 @jerryn
* Going back to square one on my attempt to add SPIBits to the Adafruit Register Library. Turns out there was an old attempt to do this that also does not appear to have ever actually been implemented. https://github.com/adafruit/Adafruit_CircuitPython_Register_SPI  It is very similar to what I was attempting, but I need to better understand some python fundamentals as well as SPI specifics before proceeding. I’m sure I could make faster progress if I had more hair left to pull out….


28:26 @makermelissa (text only)
* Filmed and Edited CircuitPython Day Video
* Worked on bug fixes for CircuitPython Code Editor
## 28:50 In The Weeds


@elpekenin (may miss meeting)
* After running into this issue in discord I figured it shouldn’t be too hard checking compatibility between Blinka and CircuitPython(-stubs). After a quick googling, found out that there’s indeed a tool for this already: MyPy’s stubtest 
   * Note: Didn’t research any longer after finding it, because I expect MyPy to have the best solution and the biggest community around it, but there might be better (or, in any other way, interesting) alternatives.
* I’ve opened an issue and PR to Blinka’s repo for tracking this goal.
   * Follow-up PRs would be open to fix the small inconsistencies (some renamed argument, int vs float type hints, or the like)
   * Bigger ones should perhaps be discussed on discord/issues.
* Questions before moving any further:
   * Are the stubs actually checked in any way against what the CircuitPython’s VM behaves like, or are they “blindly” created from doc-comments?
     * There is no test for stub vs implementation. The stub is written in the same shared-bindings source file though.
   * For now, the test script only runs against BLINKA_OS_AGNOSTIC, is this good enough or does the code change much between devices? (Didn’t really understand the code’s structure from a quick look over the repo)
     * Assume it is.
   * Do we want 100% compatibility? Sure, functions should have the same signature, but do we also want to mimic stuff like attributes/properties being read-only or allow some freedom on certain aspects?
     * We want enough compatibility that CircuitPython core code will be portable to Blinka. The reverse doesn't need to be true.
    
## 33:31 Wrap-Up
