# CircuitPython Weekly Meeting for June 24th, 2024


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


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:49 Community News
### 2:58 Update: Code.circuitpython.org is a Browser-Based CircuitPython Editor and Serial Terminal
Code.circuitpython.org is a Browser-Based CircuitPython Editor and Serial Terminal - [Adafruit Blog](https://blog.adafruit.com/2024/06/20/code-circuitpython-org-is-a-browser-based-circuitpython-editor-and-serial-terminal/).
"Would you like to be able to edit CircuitPython code, upload and download files to and from your CircuitPython board, and connect to its serial terminal, all from inside a browser? Check out code.circuitpython.org!
It runs in Chromium-based browsers like Chrome, Microsoft Edge, and Opera, so you don’t need to install anything. Code.circuitpython.org can connect to boards using the CircuitPython WiFi workflow, or over USB. If the board presents a CIRCUITPY drive, it will access files through that. But it allows you to also read and write files via the CircuitPython serial connection, if you are using a board that does not have native USB storage. And it connects to the CircuitPython board’s REPL through a built-in serial terminal. Additionally you can now upload and download image and sound files for your code, which was previously not an option except with Web Workflow.
MakerMelissa developed this editor some time ago for Adafruit, but it hasn’t been publicized widely. Recently she added support for boards without a CIRCUITPY drive."
### 4:43 How Raspberry Pi Built a Silicon Design Team
For nearly ten years now Raspberry Pi has been building an ASIC (application-specific integrated circuit) team in Cambridge to design and produce custom silicon chips for its products - [Raspberry Pi News](https://www.raspberrypi.com/news/how-raspberry-pi-built-a-silicon-design-team-magpimonday/).
"Raspberry Pi has been designing its own chips, such as the RP2040 microcontroller found in Raspberry Pi Pico and the RP1 I/O controller found in Raspberry Pi 5. These contain smaller blocks, often referred to as IP (intellectual property) designed by Raspberry Pi or bought in from elsewhere and integrated into Raspberry Pi’s chips."
### 5:31 The *Best Python Cheat Sheet
[![The Best Python Cheat Sheet](../assets/20240624/20240624cheat.jpg)](https://github.com/kieranholland/best-python-cheat-sheet?tab=readme-ov-file)
Kieran Holland is the author of a rather good Python cheat sheet as a concise reference for the Python language - [Sheet](https://kieranholland.com/best-python-cheat-sheet/) and [GitHub](https://github.com/kieranholland/best-python-cheat-sheet?tab=readme-ov-file).
### 6:12 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:40 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
* 30 pull requests merged
  * 22 authors - applecuckoo, justmobilize, mmontol, hexthat, johnnohj, timchinowsky, occasional-contributor, 2bndy5, wtuemura, BlitzCityDIY, MatthewJeffson, karlfl, Xfox20, lewinski, FoamyGuy, helgibbons, kylefmohr, tannewt, weblate, bill88t, makermelissa, furbrain
  * 5 reviewers - BlitzCityDIY, FoamyGuy, makermelissa, tannewt, dhalbert
* 20 closed issues by 8 people, 14 opened by 11 people
### 7:50 Core
* 14 pull requests merged
  * 15 authors - wtuemura, applecuckoo, MatthewJeffson, karlfl, Xfox20, lewinski, FoamyGuy, kylefmohr, tannewt, weblate, bill88t, hexthat, johnnohj, timchinowsky, occasional-contributor
  * 2 reviewers - tannewt, dhalbert
* 25 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 720 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 530 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 490 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 478 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 452 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 395 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 368 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 330 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 298 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 265 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 215 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 195 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 161 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 115 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 110 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 89 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 86 days)
  * https://github.com/adafruit/circuitpython/pull/9238 (Open 43 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9245 (Open 40 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9315 (Open 17 days)
  * https://github.com/adafruit/circuitpython/pull/9342 (Open 7 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9350 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/9349 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/9353 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/9366 (Open 0 days)
* 10 closed issues by 3 people, 7 opened by 5 people
* 693 open issues
  * https://github.com/adafruit/circuitpython/issues
* 9 active milestones
 * 10.0.0: 2 open issues
 * 8.2.x: 0 open issues
 * 9.0.x: 0 open issues
 * 9.1.0: 10 open issues
 * 9.x.x: 27 open issues
 * Libraries: 22 open issues
 * Long term: 608 open issues
 * Support: 12 open issues
 * Third-party: 14 open issues
 * 0 issues not assigned a milestone
### 10:05 Libraries
* 6 pull requests merged
  * 4 authors - helgibbons, BlitzCityDIY, furbrain, justmobilize
  * 3 reviewers - BlitzCityDIY, dhalbert, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_ST7789/pull/38 (Days open: 66)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/165 (Days open: 16)
    * https://github.com/adafruit/Adafruit_CircuitPython_ConnectionManager/pull/21 (Days open: 12)
    * https://github.com/adafruit/Adafruit_CircuitPython_Logging/pull/60 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_DS248x/pull/1 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/465 (Days open: 1)
  * 52 open pull requests (Oldest: 676, Newest: 1)
* 5 closed issues by 4 people, 5 opened by 5 people
  * 858 open issues
  * 103 good first issues
* https://circuitpython.org/contributing
#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 138696 PyPI downloads over 328 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 12029
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 11279
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 10275
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2692
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1665
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1373
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1129
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1046
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1031
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1008
####  Library updates in the last seven days:
* **New Libraries**
  * [adafruit/Adafruit_CircuitPython_DS248x](https://github.com/adafruit/Adafruit_CircuitPython_DS248x)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_Logging](https://github.com/adafruit/Adafruit_CircuitPython_Logging)
  * [adafruit/Adafruit_CircuitPython_ST7789](https://github.com/adafruit/Adafruit_CircuitPython_ST7789)
### 13:40 Blinka
* 10 pull requests merged
  * 3 authors - mmontol, makermelissa, 2bndy5
  * 2 reviewers - tannewt, makermelissa
* 6 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 990 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 178 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 178 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/360 (Open 6 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/857 (Open 5 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/864 (Open 2 days)
* 5 closed issues by 2 people, 2 opened by 2 people
* 100 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 17280
* Piwheels Downloads in the last month: 18364
Number of supported boards: 133
## 14:37 Hug reports
15:02 @danh (hosting)
* 9.1.0 beta testers
* @karlfl, @bill88t, @bablokb for testing max usable wifi power on various wifi boards
* @tannewt for deep sleep on all Espressif chips
* @jepler for adding stream protocol to SSL sockets


16:24 @DJDevon3 (text only)
* @Justin and everyone who worked on Connection Manager.  Writing API examples from existing boilerplate examples is a breeze now.
* @FoamyGuy for all the work on the examples directory in the bundle. Started working on a new project and was up and running in seconds without having to search online for an example in a github repo. Another hug for the quick review of a recent PR.
* @Tannewt & @FoamyGuy for all their hard work on BLE related projects lately.
* Group Hug


17:00 @foamyguy
* @jepler for figuring out and sharing the root cause of an error raised by the board specific stubs command.
* @Tannewt for help with and pointers to documentation on BLE file transfer
* Group hug


17:35 @jepler
* Hug for @blitzcitydiy for collaborating on a PR in the Learning System github repo


18:12 @Justin (text only)
* Hug for @Tyeth for answering all my Adafruit IO questions
* Hug for @danh for working through all my PRs


18:29 @tannewt
* @mildmojo for suggesting better greetings to someone in #general-tech
* @MakerMelissa for code.circuitpython.org updates!
## 18:25 Status Updates


19:54 @danh (hosting)
* Debugging Espressif BLE. Making progress.
* Lots of reviews.


20:35 @DJDevon3 (text only)
* Submitted an Adafruit_Requests API example for the Rachio Irrigation controller. The Rachio 3 is currently one of the most popular residential irrigation controllers on the market today. The Rachio API documentation is unfortunately anemic. The amount of data pulled doesn’t take much ram so it would probably work with something like an M0 with an airlift. You can retrieve data with GET’s and can push changes like turning on the sprinklers with POST. Their API also has MQTT for subscription based webhook notifications which I have yet to play with.
* I’m working on integrating a touch screen into the Rachio irrigation controller. To my knowledge hacking a touch screen into the Rachio has never been done before.
* I’ve been spending more time in the garden and redesigning my irrigation system. Digging in the dirt and getting back into nature is a wonderful way to take a mental vacation from computers and coding.


21:36 @foamyguy
* BLE workflow integration. Got listdir functional and then readfile as well after having trouble figuring out the way the chunking of larger files worked for a bit. Now working on a BLEBackend in the Circup repo to utilize this functionality from circup and wwshell. Next will implement the remaining functions
* Dove into docker a bit more to figure out how to use it to make testing environments with different versions of python in them. Used it to test an issue affecting python 3.9 for users trying to use the device specific stubs and narrow down the different behavior between versions of python, and test a potential fix to it.
* Testing requests file uploading and comparing CPython requests to CircuitPython requests behavior.


24:02 @jepler
* Last week: non-circuitpython mostly
   * Working on adding detection of compatible devices by the “gw-compat” product description in greaseweazle, which allows the prototype Floppsy to be detected & used without a –port flag
   * Worked on various problems in the Learn github repo that stem from an undiagnosed mistake in a Github Actions file meaning that no Arduino examples were built over approximately the last 13 months
* This week:
   * CircuitPython: back to trying to make a basic zigbee demo work
   * Non-circuitpython: finishing the Learn github actions problems


25:00 @Justin
* Continuing my work on Network test code. Have opened up a small handful of PRs to get the different Network libraries closer to the same
* Worked with a user on Discord who was trying to use the birdfeeder guide on a Pico W + OV5640 PiCowbell and running out of memory. Opening PRs to build support for sending files without needing to load the whole file into memory and encoding it all


26:12 @tannewt
* Getting back into things. Likely out tomorrow though and around the rest of the week. Out next Thursday and Friday.
* Fixed BLE start up even when not doing the workflow.
* PR for deep sleep on ESP32-Cx series is in.
* Picking up issues as needed. (Need to get through email before I know exactly what.)
## 27:37 In The Weeds
@danh
* Very specific use case examples in adafruit libraries: I appreciate them very much. However, I suggest not adding them to the libraries themselves:
   * Additions cause library version churn.
   * Library examples are meant to be sample code, adaptable for a wide variety of uses.
   * Adafruit takes responsibility for maintaining the libraries in its repos.
   * Finding the examples depends on search engines.
* If these were in Learn Guides, the examples would be in the Learn System repo.
* They could be inline in Playground guides, but then they’re harder to maintain.
* They could each be in their own repo, owned by the contributor, and added to the community bundle.
* There could be one circuitpython-organization community repo for examples, with subdirectories for each library (like the Learn Guide repo).
* There could be circuitpython-organization example repos, with one repo per library or per category (e.g. networking). These repos would not necessarily have releases, but would run CI to do checks.


@jepler:
* Strength of using Playground: clear ownership of the example/project by one user
* Weakness: only one user can update/change the project, and may no longer be actively involved or interested in the example/project


* Strength of using circuitpython organization: community can maintain the example/project
* Weakness: requires adequate community involvement on an ongoing basis


* Right now things that aren’t on learn can’t use bundlefly to get a complete package of code.py & needed libraries
* It’d be great if playground python embeds got bundlefly treatment but that requires adafruit to develop the feature


* Cookie cutter for a circuitpython example would be neat. It could use github actions to build a project bundle, which you could then link to from a playground. Someone not adafruit could develop this independently, it wouldn’t require a new feature in the adafruit playground
* ## 37:43 Wrap-Up
Next meeting at usual time Monday July 1st 2024
