# CircuitPython Weekly Meeting for January 2, 2024
Here is the notes document for next Monday’s CircuitPython Weekly Meeting. It is at the normal time of 11am Pacific / 2pm US Eastern here on Discord. Add your hug reports and status updates to the document before the meeting. If you are unable to attend but would still like to contribute, feel free to add your notes and we’ll read them off during the meeting. Hope to see you there! @circuitpythonistas


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!


Jeff is hosting.


Video is available [on YouTube](https://youtu.be/PgvY4-uFFKQ).


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=Circ uitPython%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.
## 3:17 Community News
MicroPython Version 1.22.0 Out Now
 MicroPython Version 1.22.0 

The latest release of MicroPython introduces SSL/TLS support to `asyncio`, for both the client and server sides. The interface matches CPython: `asyncio.open_connection()` and `asyncio.start_serve()` now both accept an SSL argument to supply an `SSLContext` object. As part of this, new methods were added to `SSLContext` to load certificates, and certificate date/time validation was enabled on all ports that use mbedTLS.
Qstr pools are now sorted, which provides a significant performance boost for `qstr_find_strn()`, which is called a lot during parsing and loading of .mpy files, as well as interning of string objects, which happens in most string methods that return new strings. And much more - [GitHub](https://github.com/micropython/micropython/releases).
Note with MicroPython 1.21 and earlier versions, an advisory was released December 28th CVE-2023-7158 · ISSUE 13007 - [VulDB](https://vuldb.com/?id.249180).
[Note that CircuitPython is not affected by CVE-2023-7158 in any of our binary builds, because the related feature is not enabled – jepler]
4:07 CircuitPython Powering Adafruit's MEMENTO Camera Board Makes Programming Vision Apps a Snap
 MEMENTO Camera Board 

Adafruit's latest development platform focuses on camera and vision. The [MEMENTO Camera Board](https://www.adafruit.com/product/5420) lets you experiment with an all-in-one, CircuitPython-enabled five-megapixel camera board with a rich set of peripherals, like those you might find on an IoT device. Plus, it fits in the palm of your hand!
The centerpiece of MEMENTO's 63.6 x 63.3 x 13 millimeter printed circuit board is an OV5640 camera module. This 5MP still image sensor supports manual and auto-focus. An Espressif ESP32-S3 system-on-chip (SoC) module powers the camera board - [hackster.io](https://www.hackster.io/news/circuitpython-powering-adafruit-s-memento-camera-board-makes-programming-vision-apps-a-snap-eaa156ce11b0) and [CNX Software](https://www.cnx-software.com/2023/12/27/memento-esp32-s3-circuitpython-arduino-programmable-diy-camera-module/).
 CT6 

CT6 Is a Raspberry Pi Pico W-powered four-port home energy monitor running on a Raspberry Pi Pico W and MicroPython - [hackster.io](https://www.hackster.io/news/paul-austen-s-ct6-is-a-raspberry-pi-pico-w-powered-four-port-home-energy-monitor-f9dac15770a6) and [GitHub](https://github.com/pjaos/ct6_meter_os/tree/master/software/picow).
### 4:46 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),.
## 5:37 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


* 17 pull requests merged
  * 10 authors - jepler, FoamyGuy, how2flow, makermelissa, CedarGroveStudios, carson-coder, tneish, wtuemura, dhalbert, jins-tkomoda
  * 5 reviewers - jepler, FoamyGuy, tekktrik, makermelissa, dhalbert
* 11 closed issues by 6 people, 19 opened by 17 people


### 6:48  Core
* 4 pull requests merged
  * 4 authors - jepler, carson-coder, dhalbert, wtuemura
  * 2 reviewers - jepler, dhalbert
* 20 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 545 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 355 days)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 315 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 303 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 277 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 227 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 227 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 220 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 193 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 155 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8349 (Open 123 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8457 (Open 90 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8647 (Open 40 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8699 (Open 26 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8713 (Open 20 days)
  * https://github.com/adafruit/circuitpython/pull/8725 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/8749 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/8772 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8769 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8773 (Open 1 days)
* 5 closed issues by 3 people, 13 opened by 12 people
* 690 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 10.0.0: 2 open issues
 * 8.2.x: 0 open issues
 * 9.0.0: 49 open issues
 * 9.x.x: 7 open issues
 * Libraries: 23 open issues
 * Long term: 573 open issues
 * Support: 14 open issues
 * Third-party: 11 open issues
 * 13 issues not assigned a milestone


### 9:12 Libraries
* 8 pull requests merged
  * 4 authors - jins-tkomoda, FoamyGuy, tneish, CedarGroveStudios
  * 2 reviewers - dhalbert, tekktrik
  * Merged pull requests:
        * https://github.com/adafruit/Adafruit_CircuitPython_MAX1704x/pull/12 (Days open: 99)
        * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/195 (Days open: 51)
        * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/37 (Days open: 22)
        * https://github.com/adafruit/Adafruit_CircuitPython_ICM20X/pull/22 (Days open: 22)
        * https://github.com/adafruit/Adafruit_CircuitPython_MAX1704x/pull/13 (Days open: 22)
        * https://github.com/adafruit/Adafruit_CircuitPython_PCA9685/pull/58 (Days open: 22)
        * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/115 (Days open: 11)
        * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/202 (Days open: 1)
  * 57 open pull requests (Oldest: 501, Newest: 1)
* 2 closed issues by 2 people, 6 opened by 5 people
  * 711 open issues
  * 19 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 90423 PyPI downloads over 323 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6898
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 5994
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2107
  * Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 904
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 771
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 769
  * Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 740
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 715
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 688
  * Adafruit CircuitPython BME680 (adafruit-circuitpython-bme680): 656


#### Library updates in the last seven days:
* **New Libraries**
  * [CedarGroveStudios/CircuitPython_WaveBuilder](https://github.com/CedarGroveStudios/CircuitPython_WaveBuilder)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_LED_Animation](https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation)
  * [adafruit/Adafruit_CircuitPython_GFX](https://github.com/adafruit/Adafruit_CircuitPython_GFX)
  * [jins-tkomoda/CircuitPython_MPU6886](https://github.com/jins-tkomoda/CircuitPython_MPU6886)
  * [CedarGroveStudios/CircuitPython_RangeSlicer](https://github.com/CedarGroveStudios/CircuitPython_RangeSlicer)


### 12:35  Blinka
* 5 pull requests merged
  * 2 authors - how2flow, makermelissa
  * 2 reviewers - FoamyGuy, makermelissa
* 8 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 1055 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 815 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/65 (Open 33 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/749 (Open 26 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/766 (Open 3 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/335 (Open 3 days)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/123 (Open 2 days)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/125 (Open 0 days)
* 4 closed issues by 1 people, 0 opened by 0 people
* 80 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 10635
* Piwheels Downloads in the last month: 9225
Number of supported boards: 128


## 13:34 Hug reports
@jepler (host)
* Group hug
* Hug for Paul Cutler for interviewing me last week for his podcast
* Hug for Cedar Grove, your work with waveforms is cool and I also didn’t know about CG35 (spoilers for your updates, sorry)
* Preemptive hug to everyone who will share ideas with Adafruit & the community about their CircuitPython 2024 vision & goals


15:13 @anecdata (text only)
* @jepler for figuring out the proper fix for getting hashlib onto a broader array of boards


@CGrover (text only)
* @mmartinortiz on GitHub for comments and suggestions regarding the RangeSlicer repo. Thank you! 
* Group hug to the team and the community.
15:38 
@DJDevon3 (text only)
* @JPosada for the touch slider library.
* @Delchi for an excellent GUI design of an LCARS themed touch display.
* @Justin for a neat idea for consolidating repeated code across libraries that use sockets.
* @DanH for helping in Discord and doing some last minute holiday bug report reviews.
* @FoamyGuy for streaming work on a grid layout soft keyboard. Because a touch display keyboard requires so many cells it brought up some inefficiencies in the way grids were previously loaded that he tackled as well. It’s been awesome watching him improve grid layout and creating the foundation for touch keyboard related projects.
* @Group Holiday Hug


16:22 @foamyguy(not present)
* @bear, @anecdata, and @DJDevon3 all for helping folks on discord in #help-with channel
* @jepler for the font bundle
* @makermelissa for adding vectorio implementation to Blinka_DisplayIO
* Group Hug 


@makermelissa
* @foamyguy for reviewing my vectorio PR
* Group Hug


16:41 @tannewt (text only. Thanks for reading!)
* @jepler for keeping things going while Dan and I are out.
* @foamyguy for doing the next two deep dives.
## 17:04 Status Updates
17:53 @jepler (host)
* Last week:
   * Fix a footgun doing “make translate” when submodules are not populated
   * Enabled hashlib on a bunch of boards
   * Helped in review of some PRs
   * Merged 8.2.x changes to main
* Previously:
   * JPEG enhancements merged to main
   * Bundler enhancements
* This week:
   * Looking at how to integrate jpeg decoding into portalbase
   * Need to talk to some folks about enabling use of the font bundle in learning system guides. Will also require changes to the screenshot builder, probably.
* Random thoughts:
   * The next generated bundle could be of waveforms .. what if all the waveforms from https://github.com/KristofferKarlAxelEkstrand/AKWF-FREE were importable, for example? Would be cool!


20:24 @CGrover (text only)
* Continued to refine the synthio waveform object tool, WaveBuilder. Updated the Playground notes to include some experimental sounds. Released the class to the Community Bundle.
* Designed a “basement” add-on board for JP’s Faderwave PCB. The add-on provides an I2S amplifier or stereo DAC connection when using the ItsyBitsy RP2040. (I2S isn’t supported by the MCU chip on the ItsyBitsyM4.)
* Next on the list is to prototype a port of the CG-35 reverse polish calculator for use with the new 3.5-inch capacitive touch TFT display. Hoping that it’ll work more reliably with the tiny on-screen keys. The CG-35 emulates the iconic HP-35 calculator. https://github.com/CedarGroveStudios/CG-35_Calculator


21:18 @DJDevon3 (text only)
* Continued integrating touch features into feather weather. Using circuitpython_slider by JPosada for TFT PWM brightness control. Really excited to work with FoamyGuy’s new touch keyboard layout to create a fully self contained device. No need to connect via USB or web workflow to change SSID, password, or preferences. It can be done on the touch display itself. It’s still a work in progress. 
* The change from display.show() to display.root_group = group has created a different syntax to switch between display groups. I’m using it in a way that I haven’t seen as an example in a learn guide yet and is easy enough for absolute beginners to understand. Eventually I’d like to write a touch GUI playground note.
* Updated JP’s Weather Matrix Display (created in 2020 for the Matrix Panel M4) to work with updated 9.x code on the Matrix Portal S3. It uses the newer OpenWeatherMap 2.5 onecall API.  example in my github Obviously not an official thing, just a personal project based on a user support question.


22:23 @fede2 (text only)
* I have ordered the new riscv64 Milk-v duo “linux” microcontroller, there is a new release with a new version of the chip, and they now support Arduino IDE for the smaller core. I’m trying to put circuitpython in these boards, as they are quite powerful, very cheap, and pin compatible with raspberry pico.
* I hope I can get a Memento, so that I can test an Inaturalist library I have working on the portal and other esp32 boards. This allow to download images from iNaturalist (no API key required), and now with the camera it will be interesting to upload images as well.


23:04 @foamyguy
* Confirmed the existence of an issue in adafruit_requests and tested the fix in proposed PR
* Worked on Soft Keyboard helper library
* Worked on PyGameDisplay library for use with Blinka_DisplayIO. Solved the major showstopping issues with the latest versions, but a few smaller quirks remain mostly around manual refresh() calls. Will poke a little further but plan to make a release even if I can’t get it perfect, so that it will be compatible with latest versions of Blinka_DisplayIO.


23:37 @makermelissa
* Added vectorio to Blinka Displayio and removed Pillow as a requirement
* Figure out a workaround for an issue with the Raspberry Pi 5 where the CE0/CE1 pins were “in use”
* Fixed some of the Raspberry Pi installer scripts
* Testing out Speaker Bonnet with Pi 5


24:14 @tannewt (text only)
* My mom passed away peacefully just before Christmas. We are headed on a delayed trip to visit family Jan 4th - 15th. Back in my office on the 16th and picking things up then.
* Kicked off #CircuitPython2024 yesterday and will go all month. https://blog.adafruit.com/2024/01/01/circuitpython-in-2024-circuitpython2024-python-circuitpython/ I’ll try and post updates every few days when I get emails (from circuitpython2024@adafruit.com)
* Submitted a talk proposal to PyCascades about CircuitPython workflows. Deadline is Jan 4th if anyone else wants to apply.
* Got the 13.3 inch eink working with CP but it will need another kwarg in epaperdisplay because it addresses pixels in both directions. https://mastodon.online/@tannewt/111687706804704622
## 25:14 In The Weeds


@Justin
* Continuing the work on the “SocketManager”, from comments on #circuitpython-dev, I have pulled code from “Adafruit_CircuitPython_Requests” and created a new “Adafruit_CircuitPython_ConnectionManager”. There is now an open pull request [here](https://github.com/justmobilize/Adafruit_CircuitPython_ConnectionManager/pull/1) that is ready for review/comments. I have also created draft pull requests (linked in the main one) for both the Request and MiniMQTT libraries
* Someone on #help-with-circuitpython asked about pyCharm stubs for a specific board. I told them I make them myself, which led down a conversation of me making a script to automatically make them for all boards. Snippet [here](https://gist.github.com/justmobilize/1a29481069a7dcf121d0fcc0d91a3121). Would love to auto build all the stubs. So from `circuitpython-stubs` to `circuitpython-stubs-adafruit_feather_esp32s3_tft`(or something like that)


31:26 @jepler
Happy 2024! As the year starts, let’s take some time to share our goals for CircuitPython in 2024 and beyond. Just like past years (full summary [2019](https://blog.adafruit.com/2019/01/28/circuitpython-in-2019/), [2020](https://blog.adafruit.com/2020/02/03/circuitpython2020-recap/), [2021](https://blog.adafruit.com/2021/02/16/circuitpython2021-round-up/), [2022](https://blog.adafruit.com/2022/02/01/thank-you-for-circuitpython2022/), and [2023](https://blog.adafruit.com/2023/01/23/circuitpython2023-wrap-up/)), we’d like everyone in the CircuitPython community to contribute by posting their thoughts to some public place on the internet by Wednesday January 31st, 2024.


https://blog.adafruit.com/2024/01/01/circuitpython-in-2024-circuitpython2024-python-circuitpython/


## Wrap-Up
Next meeting is at the usual time Monday January 8, 2024 at 2PM ET / 11AM PT
