# CircuitPython Weekly Meeting for June 3, 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/JaiyppX3hg4).


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.
## 03:38 Community News
### 03:42 MicroPython v1.23 Released
A new major release of MicroPython has gone out with several major feature upgrades - GitHub Full Release Notes and Downloads.


> "This release of MicroPython adds support for dynamic USB devices defined in Python, adds new openamp, tls and vfs modules, completely revamps the webassembly port to add proxying between JavaScript and Python, and implements significant code size optimisations for frozen modules. There are also many other enhancements and bug fixes."


### 04:35 Running Arduino and MicroPython Side-by-Side on Multi-Core Microcontrollers
With MicroPython v1.23, there is now support for Asymmetric Multiprocessing (AMP) on multi-core microcontrollers, based on the industry standard OpenAMP framework.
This enables Arduino users to run both an Arduino sketch and a MicroPython program simultaneously on multi-core modules and to communicate between the two - Arduino.
> "The communication between Arduino and MicroPython is facilitated by using Remote Procedure Calls (RPC). This allows us to benefit from the simplicity of using MicroPython while unlocking access to all of Arduino’s rich libraries from MicroPython."


### 05:37 Project of the Week: Building Alan Wake's Angel Lamp
Stargirl builds a fantastic Alan Wake Angel Lamp cosplay prop using CircuitPython. A fantastic 3D print is crowned by an Adafruit Trinket M0 and nOOds filament LEDs - Thea.codes.
### 06:06 Tutorial: Getting Started with CircuitPython on XIAO RP2040
A new step by step tutorial on how to download and install CircuitPython on the SeeedStudio XIAO RP2040. This is a module by Seeed Studio with a Raspberry Pi RP2040 microcontroller - @LeonAnavi YouTube.


### 06:45 Web Serial Bookmarklet
SerialFruit Connect - A bookmarklet to replace Adafruit BlueFruit Connect apps + Add WiFi/USB/BLE for all! - Adafruit Playground and GitHub.
### 07:34 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),.
## 08:29 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.**
### 08:56 Overall
* 18 pull requests merged
  * 17 authors - jersu11, kbsriram, timchinowsky, fetsnleds, bablokb, justmobilize, jerryneedell, tannewt, sc-bin, Grippy98, brentpicasso, nopnop2002, mateusznowakdev, chungsoftvn-tuannguyen, dhalbert, bill88t, brentru
  * 6 reviewers - makermelissa, dhalbert, tannewt, justmobilize, brentru, jepler
* 14 closed issues by 10 people, 8 opened by 6 people


### 10:30 Core
* 8 pull requests merged
  * 8 authors - timchinowsky, fetsnleds, bablokb, tannewt, brentpicasso, chungsoftvn-tuannguyen, dhalbert, bill88t
  * 3 reviewers - dhalbert, tannewt, jepler
* 27 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 699 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 509 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 469 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 457 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 431 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 374 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 347 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 309 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 277 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 244 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 194 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 174 days)
  * https://github.com/adafruit/circuitpython/pull/8798 (Open 140 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8991 (Open 94 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9009 (Open 89 days)
  * https://github.com/adafruit/circuitpython/pull/9094 (Open 68 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9118 (Open 65 days)
  * https://github.com/adafruit/circuitpython/pull/9238 (Open 22 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9245 (Open 19 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9274 (Open 9 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9277 (Open 7 days)
  * https://github.com/adafruit/circuitpython/pull/9284 (Open 3 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/9290 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/9293 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/9292 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/9296 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/9295 (Open 0 days)
* 4 closed issues by 3 people, 2 opened by 2 people
* 676 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: 4 open issues
 * 9.x.x: 25 open issues
 * Libraries: 22 open issues
 * Long term: 603 open issues
 * Support: 8 open issues
 * Third-party: 14 open issues
 * 0 issues not assigned a milestone


### 12:23 Libraries
* 6 pull requests merged
  * 6 authors - jersu11, kbsriram, dhalbert, justmobilize, jerryneedell, mateusznowakdev
  * 5 reviewers - dhalbert, tannewt, justmobilize, brentru, jepler
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_AWS_IOT/pull/27 (Days open: 10)
    * https://github.com/adafruit/Adafruit_CircuitPython_MatrixPortal/pull/97 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_OV5640/pull/32 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/164 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_PIOASM/pull/64 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/214 (Days open: 1)
  * 58 open pull requests (Oldest: 655, Newest: 1)
* 8 closed issues by 7 people, 3 opened by 2 people
  * 849 open issues
  * 102 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 91601 PyPI downloads over 326 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7543
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 7148
  * Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 6348
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 1859
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 898
  * Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 897
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 891
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 802
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 790
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 783


#### Library updates in the last seven days:
* **New Libraries**
  * [mateusznowakdev/CircuitPython_DisplayIO_ST7565](https://github.com/mateusznowakdev/CircuitPython_DisplayIO_ST7565)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_AWS_IOT](https://github.com/adafruit/Adafruit_CircuitPython_AWS_IOT)
  * [adafruit/Adafruit_CircuitPython_OV5640](https://github.com/adafruit/Adafruit_CircuitPython_OV5640)
  * [adafruit/Adafruit_CircuitPython_MatrixPortal](https://github.com/adafruit/Adafruit_CircuitPython_MatrixPortal)
  * [elpekenin/circuitpython_toml](https://github.com/elpekenin/circuitpython_toml)
  * [rgrizzell/CircuitPython_GT911](https://github.com/rgrizzell/CircuitPython_GT911)


### 16:45 Blinka
* 4 pull requests merged
  * 4 authors - sc-bin, brentru, Grippy98, nopnop2002
  * 1 reviewers - makermelissa
* 10 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 969 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 180 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 157 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 157 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/817 (Open 41 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/830 (Open 12 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/831 (Open 9 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/356 (Open 2 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/835 (Open 1 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/357 (Open 1 days)
* 2 closed issues by 2 people, 3 opened by 2 people
* 97 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 11092
* Piwheels Downloads in the last month: 13353
Number of supported boards: 133






## 17:32 Hug reports
@foamyguy
* @danh for discussing and looking into a deprecation warning that was sent by RTD
* @xarnlen, @bear, and @Tyeth all for asking good questions, and offering help to me during stream
* @Gallaugher for asking many good questions about using PyCharm for Circuitpython development and working on instructional content covering it (and loads of other neat stuff).
* Group hug


18:36 @CGrover (text only)
* @DJDevon3 for the exceptionally helpful API guide published on Learn:Playground. The hints and tricks therein will be very useful as I transform some weather app APIs from openweathermap.org to a new “truly free” provider.
* Hug Group


19:04 @danh
* @tannewt for completing Espressif BLE implementation
* @Sola85 for working on espulp


19:47 @DJDevon3 (text only)
* Group hug


19:51 @makermelissa
* Group Hug


20:33 @SamBlenny (text only)
* @todbot for mentioning MIDI beat clock and documenting USB MIDI stuff in circuitpython-tricks


20:47 @tannewt
* @Sola85 for re-enabling ULP support in 9.x.
* @bill88t for pointing out the adafruit esp-idf repo to @sola85
* Tyeth for testing BLE on ESP
* Bablokb for removing unused display stuff.


@tyeth (Text Only)
* @tannewt for stretching the BLE work on Fridays stream, it made for a great weekend of testing.
* @makerMelissa for the Web Bluetooth Dashboard and other such gems, I always seem to be finding new ones just when I need them (like now when I’m trying to recreate BlueFruit apps in the web)
* Dan for a quick review, docs suggestion, and merging of the updated github action for building a Custom (or normal) Build for a single board. It now supports forks+branches instead of just tags.
* Group Hug - You lot are always coming up with wonderful things, help, code, ideas, all appreciated
## 22:12 Status Updates
22:40 @foamyguy
* Reviewing PR to change circup to pyproject.toml, which for me involves lots of learning about python packaging and various configuration options. Doing test installs locally and trying to figure out how to fix an issue with the version that gets put into the packaged copy. Looking into our actions tasks to figure out which ones will need updating to go along with the removal of setup.py
* Submitted PR for initial wwshell implementation to circup repo
* Very beginning steps of adding BLE workflow support to circup / wwshell. Successfully loaded Bleak module and found the CircuitPython device with a scan. 
* Looking into RTD deprecation of redirects.


24:58 @danh
* Fixed an nRF bluetooth event handler gc problem, which was long-standing and might have caused various confusing problems.
* Updating the Building CircuitPython Learn Guide to discuss Ubuntu 24.04 differences. I will also make a generic “Installing Python” page for mirroring, I think.
* Four issues left on 9.1.0 milestone. I merged Scott’s bonding/pairing BLE Espressif PR.


26:45 @DJDevon3 (text only)
* Finished a PR for the RA8875 driver for reading pixels from the display.  Also added a screensaver and other minor updates to the library. Because the device only allows 1 hardware layer while in 800x480 with 16-bit color a lot of tricks will need to happen for software layers. This is a step in that direction.


27:12 @jepler
* Mp3 streaming on esp32s3 metro:
   * Playing a 128kbit/s mp3 file served from local computer: works fine, nice and reliable
   * Playing a 128kbit/s stream from soma.fm: glitches. I notice the packets are smaller (not the full 1500 byte MTU or whatever it is)
      * Also streaming sometimes says: “ValueError: The sample's sample rate does not match the mixer's”, not sure why
   * Will Try streaming a podcast
   * Will be doing GPIO profiling to find out what is (presumably) taking too much time
   * Getting this put to bed is my priority, hopefully I find something I can fix
   * Also a problem hitting ctrl-c, makes the device hard fault. Probably need to clean up better to avoid accessing a socket that is being closed during interpreter shutdown? But that’s just a guess, don’t have any hard info yet.
* Personal stuff: 3 choir performances pride week/week-end, will probably cut into work time some


28:42 @Justin
* Tried my best to spend some time helping discord users.
* Updated the MatrixPortal library to not force WiFi, allowing it to be used with Bluetooth
* Started working on a repo to run a large set of networking tests to build out a “does it work” table for different methods (like client, server, mqtt, ssl, udp, ntp, etc) across different networking chips (esp32s3, esp32s2, esp32spi, wiznet, etc) and circutpython versions (starting with 9.1.0)


29:52 @makermelissa
* Continued working on the CircuitPython Code Editor and updated the code for Raw Paste Mode to make it much more reliable
* Adding a feature so that certain code interactions are hidden from the user such as file listing by not outputting to the serial terminal component


30:23 @SamBlenny (text only)
* Released beta version of a plaintext MIDI sequencer module which might be a useful source of ideas for people thinking about how to do sequencing with synthio
* Wrote up a Playground guide about the MIDI sequencer thing


30:45 @tannewt
* ESP BLE changes were merged in.
* Following up with enabling BLE workflow and more testing.
* Going to enable alarm on ESP32-CX.
* Got close to finishing Stemma G0 tooling and want to figure out what is wrong with it.
* Out next Friday.


## 32:22 In The Weeds
32:53 @foamyguy - Older python version support. Is there any consensus on when we want to drop support for old versions of Python? Circup was the specific instance I came across, but there may be other repos with similar versions listed. Right now circup supports back to 3.6 https://github.com/adafruit/circup/blob/main/setup.py#L89 

The latest security release of 3.6 was 3.6.15 in Sept. 2021 (eol 23 Dec 2021)
The latest security release of 3.7 was 3.7.17 in June  2023, about 1 year ago. (3.7 is EOL since June 2023)

The switch to pyproject.toml in circup repo might make a good opportunity to switch if we are looking to drop support for EOL versions. I'd be happy to go around to others if there are more and make similar changes to remove listings of old versions if we do opt for it. 
* @jepler: debian “oldstable” is on 3.9. Ubuntu 22.04 (old LTS) is on 3.10. I don’t see much reason to support older than 3.9. However, technically, 3.8 gets security support for *5* more months. [source](https://endoflife.date/python)


## 38:00 Wrap-Up