# CircuitPython Weekly Meeting for December 12th, 2022


Welcome to the CircuitPython Weekly meeting notes! Feel free to add your Hug Reports and Status Updates early. During the meeting, we go through them as a round robin sorted by username. 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/5apcfE8LpjI).


Join here for the chat all week: http://adafru.it/discord.


The CircuitPython Weekly happens normally at 2pm 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.herokuapp.com/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 one 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.
## 04:09 Community News


### 04:12 CircuitPython 8.0.0 Beta 5 Released
CircuitPython 8.0.0-beta.5 has been released. It is relatively stable, but there will be further additions, fixes, and changes before final release - Adafruit Blog and GitHub.


### 05:01 Video Interview - Guido van Rossum: Python and the Future of Programming
A recent interview by Lex Fridman: "Guido van Rossum: Python and the Future of Programming" - YouTube.


### 05:23 Korg Synthesizer Uses Raspberry Pi
With the Wavestate Synthesizer, Korg showed a spiritual successor to the legendary Wavestation Synthesizer from 1990 at NAMM last month. According to information from Sonicstate.com, the WT hardware is based on a Raspberry Pi. This video shows it more precisely- Synth Anatomy.
### 06:13 Tutorial Pages by Joey Castillo on Adafruit User Pages
Adafruit Learn User Pages is the new way to add your own content for making using the same technology as the Adafruit Learning System, free. Joey Castillo has written two tutorial pages this week.
Build a NeoPixel-powered Christmas tree with an Adafruit LCD FeatherWing, and implement a one-button UI for scheduling it to turn on and off. Also use CircuitPython's deep sleep feature to save as much power as possible when the tree is in its off state - Mastodon and Learn System
### 07:17 The ultimate Unicode input device
  

Adafruit Blog via Hackaday.
### 08:01 A barcode clock using a Pimoroni Badger 2040 and MicroPython 
  

Twitter thread.


### 08:46 Newsletter Details
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Tuesday. 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 tag a tweet with #CircuitPython on Twitter, or email cpnews@adafruit.com.
## 09: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.**
### 09:57 Overall
* 23 pull requests merged
  * 17 authors - RetiredWizard, FoamyGuy, tannewt, deshipu, s-ol, evildave666, dhalbert, bergdahl, PontusO, boranroni, MicroDev1, casainho, BooleanMattock, jepler, tekktrik, wtuemura, vladak
  * 7 reviewers - tannewt, dhalbert, jepler, tekktrik, brentru, Neradoc, kattni
* 18 closed issues by 9 people, 18 opened by 14 people


### 11:20 Core
* 16 pull requests merged
  * 13 authors - RetiredWizard, MicroDev1, tannewt, deshipu, s-ol, evildave666, dhalbert, BooleanMattock, bergdahl, jepler, PontusO, wtuemura, boranroni
  * 3 reviewers - jepler, dhalbert, tannewt
* 19 open pull requests, 8 are drafts
  * https://github.com/adafruit/circuitpython/pull/5999 (Open 305 days)
  * https://github.com/adafruit/circuitpython/pull/6037 (Open 299 days)
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 160 days)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 86 days, draft)
  * https://github.com/adafruit/circuitpython/pull/7114 (Open 48 days)
  * https://github.com/adafruit/circuitpython/pull/7141 (Open 45 days)
  * https://github.com/adafruit/circuitpython/pull/7153 (Open 43 days, draft)
  * https://github.com/adafruit/circuitpython/pull/7151 (Open 43 days, draft)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 41 days, draft)
  * https://github.com/adafruit/circuitpython/pull/7216 (Open 26 days, draft)
  * https://github.com/adafruit/circuitpython/pull/7221 (Open 24 days)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 24 days, draft)
  * https://github.com/adafruit/circuitpython/pull/7237 (Open 22 days)
  * https://github.com/adafruit/circuitpython/pull/7232 (Open 22 days)
  * https://github.com/adafruit/circuitpython/pull/7258 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/7282 (Open 11 days, draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 10 days, draft)
  * https://github.com/adafruit/circuitpython/pull/7321 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/7332 (Open 0 days)
* 13 closed issues by 5 people, 11 opened by 10 people
* 578 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 7.3.x: 0 open issues
 * 8.0.0: 13 open issues
 * 8.x.x: 24 open issues
 * 9.0.0: 1 open issues
 * Libraries: 20 open issues
 * Long term: 508 open issues
 * Support: 9 open issues
 * Third-party: 2 open issues
  * 3 issues not assigned a milestone


* Core download stats available at https://circuitpython.org/stats


### Libraries 
* 7 pull requests merged
  * 5 authors - FoamyGuy, tekktrik, casainho, dhalbert, vladak
  * 6 reviewers - tekktrik, tannewt, brentru, Neradoc, dhalbert, kattni
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_MCP2515/pull/15 (Days open: 14)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/132 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Register/pull/49 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_TestRepo/pull/48 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/78 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/416 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/417 (Days open: 1)
  * 42 open pull requests (Oldest: 804, Newest: 1)
* 5 closed issues by 4 people, 6 opened by 4 people
  * 589 open issues
  * 97 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 121295 PyPI downloads over 306 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 17800
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 17305
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 1630
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1136
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1095
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 861
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 836
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 775
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 717
  * Adafruit CircuitPython SSD1306 (adafruit-circuitpython-ssd1306): 687


#### Library updates in the last seven days:
* **Updated Libraries**
  * [Adafruit_CircuitPython_Nunchuk](https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk)
  * [Adafruit_CircuitPython_Typing](https://github.com/adafruit/Adafruit_CircuitPython_Typing)
  * [Adafruit_CircuitPython_PixelMap](https://github.com/adafruit/Adafruit_CircuitPython_PixelMap)
  * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
  * [Adafruit_CircuitPython_Register](https://github.com/adafruit/Adafruit_CircuitPython_Register)
  * [Adafruit_CircuitPython_TestRepo](https://github.com/adafruit/Adafruit_CircuitPython_TestRepo)
  * [Adafruit_CircuitPython_MCP2515](https://github.com/adafruit/Adafruit_CircuitPython_MCP2515)
  * [Adafruit_CircuitPython_DisplayIO_Layout](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout)
  * [CircuitPython_Community_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)


### 16:18 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 10 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 670 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/496 (Open 504 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 430 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/634 (Open 12 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/267 (Open 12 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/635 (Open 11 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/637 (Open 7 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/638 (Open 2 days)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/102 (Open 2 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/269 (Open 2 days)
* 0 closed issues by 0 people, 1 opened by 1 people
* 87 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 22598
* Piwheels Downloads in the last month: 7327
Number of supported boards: 100


## Hug reports
17:57 @foamyguy
* @CGrover for publishing some color utilities in the community bundle a while back and sharing some examples that generate neat gradients from them with vectorio shapes
* Dan, Jeff  and any others putting hard work into the getenv effort
* Group hug


18:52 @CGrover 
* @kattni and @foamyguy for recommending PyCharm and documenting setup and usage help. Took me about a week to get used to it. My workflow has already improved!
* @DJDevon for openly discussing and documenting their approach to project designs and builds. The project designs are innovative and artistic.
* @foamyguy for the thought-provoking session to build gradient color fills for displayio shapes. A side benefit was that it helped remove a couple of conceptual log-jams for my palette slice wrapper project.


20:00 @danh
* @MicroDev and @jepler for debugging a CI problem over the weekend
* @jepler for patience with my suggestions for os.getenv()
* @kattni for working on a security issue together


20:55 @DJDevon3 (text only)
* @Kattni for an excellent Mastodon API guide.
* @Liz for hosting Show & Tell and for her awesome vlog on the modular midi music melody maker
* @FoamyGuy for teaching me new things every week. The learning never stops.
* @Jepler for an excellent ChatGPT demo in Circuit Python on last weeks Show & Tell


21:48 @david.glaude (text only)
* Group hug


21:54 @jepler
* Group hug
* @danh for patiently working through the getenv changes with me


22:17 @kattni (missing meeting)
* @makermelissa for helping with a really difficult Pinouts page in an upcoming product guide - helped out with initial info, went over it, and made further edits as needed to make it solid.
* @Liz for being a great partner in crime Learn, and for always being available to answer questions and for me to bounce things off of
* As always, I’m certain I’m forgetting folks.
* Group hug for everyone!


23:04 @tannewt
* @microdev for the help getting the ULP going.
* @jepler for tomlifying the environment.
* @anecdata for further mdns testing


24:13 @tekktrik (text only)
* @pcutler for having me on the CircuitPython show to talking about continuous integration and my CircuitPythonukiah project, and a second thanks for letting me re-record part of the podcast for accuracy
* Group hug!


## 25:01 Status Updates


25:33 @foamyguy
* Mpy build and test PR for the ethernet wiznet library
* Implement the set root group functionality for Blinka_Displayio to match recent API change from the core
* Learning about color theory a bit and adapting some CPython gradient palette generators I found to work with circuitpython and displayio. Linear and Polylinear gradients are implemented and working, the last type in the resource that I found is a bezier curve gradient, I’ll attempt that one this week. Also intend to tinker some more and figure out the most generic and easy to re-use way of sharing the gradient helpers is, it can potentially apply to things beyond displayio like neopixels as well.


27:35 @CGrover 
* The palette slice wrapper class code is working nicely for carving out and replacing slices of a displayio.Palette object’s color and transparency contents, just like can be done with list objects. Working through a To-Do list of additional attributes that may be needed to round out the functionality such as append, insert, extend, sort, reverse, etc. Just about ready to make the alpha repo public but want to perform some additional tests to be certain that it’s ready. Video demo: https://youtu.be/1r3lI-4O5YA
* Having fun with a side project to duplicate a family heirloom wind chime that was damaged in a windstorm, using new, stronger materials. The best part will be the task of selecting and tuning the six chime tubes. Classical melody? Major key? Nah, let’s unbalance the neighborhood with something in a minor key.


29:58 @danh
* Released CircuitPython 8.0.0-beta.5 last Wednesday. Expect to do a beta.6 soon, with new incompatible `.env` -> `settings.toml` changes.
* Investigated several 8.0.0 bugs: Some were no longer problems. Pushed some to 8.x.x or later.  Fixed a couple of minor ones. Still working on some others. We are down to 13!
* Reviewed some PR’s, made some suggestions, and wrote up a CI issue, which MicroDev and Jeff may be fixing.


31:52 @DJDevon3 (text only)
* Showed off the Qt Py Parent BFF on Show & Tell. It’s a great little grounding board for LED projects.
* Found some more problems with the TR-Cowbell and beta testing shipments delayed. Stemma QT port doesn’t work so not going to bother soldering the connector to the boards. Confirmed I2C works. There is a work around using I2C on pins 10 & 11 only, not what I had in mind when designing it..
* Got an Ender 3 S1 Pro 3D printer. Started designing an orange cap for the Adafruit step switches. Took 7 iterations before getting one that fits and works right. I’m now thinking about designing my own step switches from scratch that are more like the original TR-808 switches. The step switch model I got from cad parts doesn’t have a functional switch mechanism. Specifically it’s missing the center nub that presses the switch so be aware there’s a cosmetic only 3D file floating around which is fine for adding to PCB designs for 3D view but not for 3D printing. Redesigned it into a working version that’s not just cosmetic. Hoping to PR the working STL file in Adafruit’s cad parts github this week. This is the first thing I’ve ever designed for a 3D printer.
*   * Switching back and forth between learning Fusion 360, 3D printing, and designing a modular TR-Cowbell v1.3 using SMD components. It’s been a busy week.




34:09 @david.glaude (text only)
   * This week:
   * Gave a Gemma M0 mouse jiggler to a co-worker (maybe he will try adapt the CP code)
   * Installed CP on all my new LOLIN boards:
   * C3 Mini (V1 and V2.1)
   * S2 Mini
   * S3
   * S2 Pico (with 128x32 OLED).
   * Testing new accessories:
   * 32x64 OLED => Proposing a PR to add support for a 32x64 OLED in DisplayIO_SSD1306 library (see https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306/pull/31 )
   * Making a Lego Dumb Terminal for the 32x64 (see https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306/issues/20 )
   * Next week:
   * Try to apply “Adafruit 5x5 NeoPixel Grid BFF” learn guide to a “8x8 RGB Shield” (to scroll text like Liz and Jepler did)
   * Try to apply “Bluetooth TV Zapper” learn guide to a “IR Controller Shield” (I need to build an IR translator to let my Google TV remote turn off my beamer)


35:44 @jepler
   * Last week:
   * Finished guide for the NeXT keyboard
   * Continued work on os.getenv, which has turned into a bit of a slog
   * Papered over a poorly-understood pico w bug with an extra delay at startup
   * Fixed a bug that could cause crashes at soft-reset time on espressif boards by shutting down SSL sockets in a well-defined manner
   * This week:
   * Wrapping up os.getenv pretty please and handing it off with some instructions on how to update guides
   * Getting back to other 8.0.0 blocking bugs
   * Personal stuff
   * Our 18 year old subaru’s head gasket is failing. It’s been our single car since our “good car” was totaled in 2021. Found out the car we’d like (Prius) has a ~6 month wait, boo. Hoping we don’t end up a zero car family, it’s not easy in this city, but not sure yet what we’re doing in the meantime.


37:38 @kattni (missing meeting)
   * Last week:
   * Put EYESPI guide into moderation
   * Started Event Countdown Timer guide (collab with Noe and Liz)
   * This week:
   * Finish up the Countdown Timer guide
   * Add new board def with `board.BUTTON` for the latest rev of Feather RP2040
   * If this gets finished up, next will be misc or another guide from my list. Or both.


38:14 @Paul Cutler (missing meeting)
   * New episode of The CircuitPython Show out today with tekktrik, who shares how CircuitPython uses continuous integration and his CircuitPythonukiah project.


38:31 @tannewt
   * Out Wednesday to travel. Not working 12/21 - 1/2. Travel 1/6.
   * Wrapping up `espulp` testing and then refining tooling for it. Looking to do StemmaG0 tooling too.
   * Need to test deep sleep with ULP enabled but not used. Currently breaks deep sleep on S3.
   * Fixed web workflow responsiveness on ESP.
   * Personal:
   * Backup computer isn’t happy. Only occasionally powers on and shut down when plugging in a usb drive to boot to.


42:01 @tekktrik (text only)
   * Last week
   * Began some backlogged improvements and fixes for adabout
   * Adding draft PR status to PRs listed
   * Announcing updates to the community bundle
   * Patching  fix for the bundle creation CI (appears to be failing for the Community Bundle)
   * Worked on updates to the composite actions used by the library CI
   * Updating versions of actions like “setup-python” to current versions
   * Addressing deprecation warnings for steps in the CI, will bring those fixes to Blinka and the core as needed
   * Mysteriously still doing okay with the Advent of Code in C - it’s pointers all the way down!
   * This week
   * Beginning to wind down as my grad course comes to an end with the final and the holidays approach.  Please feel free to tag me if the CI breaks and I’ll be happy to spring back and fix it.
   * Working to close out relevant open PRs and leave it in a working state before disconnecting later this month.
   * Beginning to make my CircuitPythonukiahs - everything arrived in time!  Going to build them and ship them so they can arrive before the holiday!




## 43:35 In The Weeds


@MicroDev: (missing meeting / will listen later on YT)
   * Discuss: https://github.com/adafruit/circuitpython/issues/4554 [a suggestion to add “count on alarm” as a replacement for countio]
   * API?
   1. Only add countio.Counter(Alarm)
   2. Add countio.Counter(Alarm) and move sleep functions to sleep.ligth_sleep(Alarm), sleep.deep_sleep(Alarm)
   3. Only add alarm.count_on_alarm(Alarm)




## 46:58  Wrap-Up