# CircuitPython Weekly Meeting for March 6th, 2023
Here is the notes document for next Monday’s CircuitPython Weekly meeting. It is at the normal time of 11am Pacific / 2pm Eastern here on Discord. Everyone is encouraged to attend! Please add your hug reports and status updates even if you’ll be attending the meeting - it’s super helpful! If you are unable to attend but would still like to include updates, feel free to include them in the 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 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/x37FIinQ-gA).


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.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 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.
## 03:06 Community News
### 03:09 CircuitPython 8.1.0-beta.0 Released
CircuitPython 8.1.0-beta.0 is the new CircuitPython unstable release. - Adafruit Blog and full Release Notes.
Notable changes to 8.1.0 since 8.0.0
* Add animated GIF support: gifio.OnDiskGif.
* Add safemode.py, for programmatic handling of safe mode.
* Add 7-color e-ink display support.
* Allow setting pystack size in settings.toml.
* Add dither support to Palette.
* Support array.extend(iterable).
### 04:18 New Documentation for Raspberry Pi Pico, Pico W and RP2040
Raspberry Pi had released new set of RP2040, Pico & Pico W documentation - Documentation, Datasheets and Adafruit Blog.


### 04:48 Making Animated GIF Floppies
Your editor has been kicking the tires on the new animated GIF support in CircuitPython 8.1.0-beta.0. Taking the Floppy with a Display hardware, I loaded the beta and a test GIF player. It worked out of the gate! First was a Max Headroom demo, initially posted to Twitter. About 10 different iterations were made with memes, computer and software startup screens and more. Likely when 8.1.0 is released, there will be an Adafruit guide on using animated GIFs as we are still working out subtle bugs and performance. A huge shout out to CircuitPython community member Mark Komus for adding this capability, it was my top #CircuitPython2023 request - Twitter initial post, Adafruit Blog video medley, and Adafruit Show and Tell.


### 06:09 Project of the Week: VT2040 - A MicroPython-based Portable Terminal
VT2040 is a portable serial terminal, based on an RP2040 dev board, with a Gherkin keyboard and an ILI9488 480x320 LCD screen. The prototype gets about 18 hours out of 3 AA batteries and runs MicroPython - GitHub.
  ### 06:48 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.
## 07:31 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
* 34 pull requests merged
  * 19 authors - glenrobertson, foxy82, FoamyGuy, Atalanttore, startup-potech, dhalbert, tannewt, jepler, titimoby, vladak, Neradoc, rtwfroody, jposada202020, gamblor21, jerryneedell, hexthat, m-mcgowan, jedahan, caternuson
  * 9 reviewers - jepler, FoamyGuy, tekktrik, jposada202020, gamblor21, dhalbert, tannewt, TheKitty, caternuson
* 19 closed issues by 10 people, 29 opened by 25 people


### 09:10 Core
* 14 pull requests merged
  * 10 authors - jepler, titimoby, Atalanttore, Neradoc, startup-potech, gamblor21, dhalbert, tannewt, hexthat, m-mcgowan
  * 5 reviewers - jepler, gamblor21, dhalbert, tannewt, TheKitty
* 29 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6037 (Open 383 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 244 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 170 days)
  * https://github.com/adafruit/circuitpython/pull/7114 (Open 132 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7141 (Open 129 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7151 (Open 127 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 125 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7221 (Open 108 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 108 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7237 (Open 106 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7282 (Open 95 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 94 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7343 (Open 81 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7430 (Open 57 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 54 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7471 (Open 44 days)
  * https://github.com/adafruit/circuitpython/pull/7470 (Open 44 days)
  * https://github.com/adafruit/circuitpython/pull/7548 (Open 29 days)
  * https://github.com/adafruit/circuitpython/pull/7551 (Open 28 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7554 (Open 26 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7573 (Open 21 days)
  * https://github.com/adafruit/circuitpython/pull/7592 (Open 18 days)
  * https://github.com/adafruit/circuitpython/pull/7591 (Open 18 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 14 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/7678 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/7676 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/7686 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/7684 (Open 0 days)
* 7 closed issues by 4 people, 15 opened by 12 people
* 634 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 8.0.x: 1 open issues
 * 8.1.0: 12 open issues
 * 8.x.x: 67 open issues
 * 9.0.0: 24 open issues
 * Libraries: 20 open issues
 * Long term: 500 open issues
 * Support: 8 open issues
 * Third-party: 4 open issues
  * 5 issues not assigned a milestone


### 11:30 Libraries
* 20 pull requests merged
  * 11 authors - glenrobertson, foxy82, FoamyGuy, vladak, Neradoc, rtwfroody, jposada202020, jerryneedell, tannewt, jedahan, caternuson
  * 6 reviewers - jposada202020, dhalbert, tannewt, caternuson, FoamyGuy, tekktrik
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/105 (Days open: 71)
    * https://github.com/adafruit/Adafruit_CircuitPython_AirLift/pull/8 (Days open: 55)
    * https://github.com/adafruit/Adafruit_CircuitPython_ACeP7In/pull/1 (Days open: 27)
    * https://github.com/adafruit/Adafruit_CircuitPython_SPD1656/pull/1 (Days open: 27)
    * https://github.com/adafruit/Adafruit_CircuitPython_framebuf/pull/50 (Days open: 27)
    * https://github.com/adafruit/Adafruit_CircuitPython_Touchscreen/pull/23 (Days open: 17)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/153 (Days open: 12)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/156 (Days open: 10)
    * https://github.com/adafruit/Adafruit_CircuitPython_PN532/pull/63 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1680/pull/12 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_RFM69/pull/44 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/40 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ACeP7In/pull/4 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ACeP7In/pull/3 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SPD1656/pull/4 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SPD1656/pull/3 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SPD1656/pull/2 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MPL3115A2/pull/26 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/63 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/423 (Days open: 1)
  * 40 open pull requests (Oldest: 888, Newest: 2)
* 12 closed issues by 7 people, 10 opened by 10 people
  * 597 open issues
  * 76 good first issues
* https://circuitpython.org/contributing


#### 13:35 Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 151776 PyPI downloads over 308 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7655
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 7197
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 1817
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1740
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1613
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1330
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1293
  * Adafruit CircuitPython LED Animation (adafruit-circuitpython-led-animation): 1194
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1190
  * Adafruit CircuitPython PN532 (adafruit-circuitpython-pn532): 1141


#### Library updates in the last seven days:
* **New Libraries**
  * [adafruit/Adafruit_CircuitPython_SPD1656](https://github.com/adafruit/Adafruit_CircuitPython_SPD1656)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
  * [adafruit/Adafruit_CircuitPython_framebuf](https://github.com/adafruit/Adafruit_CircuitPython_framebuf)
  * [adafruit/Adafruit_CircuitPython_SPD1656](https://github.com/adafruit/Adafruit_CircuitPython_SPD1656)
  * [adafruit/Adafruit_CircuitPython_HTTPServer](https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer)
  * [adafruit/Adafruit_CircuitPython_MPL3115A2](https://github.com/adafruit/Adafruit_CircuitPython_MPL3115A2)
  * [furbrain/CircuitPython_mag_cal](https://github.com/furbrain/CircuitPython_mag_cal)


### 14:28 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 5 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 754 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 514 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/267 (Open 96 days)
  * https://github.com/adafruit/Adafruit_Python_PureIO/pull/33 (Open 25 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/658 (Open 2 days)
* 0 closed issues by 0 people, 4 opened by 4 people
* 96 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 14600
* Piwheels Downloads in the last month: 8488
Number of supported boards: 101






## 15:27 Hug reports


@foamyguy (hosting)
* @danh for pointing me toward examples in the core for handling background tasks and interrupted logic
* @makermelissa for installer functionality
* @MarkGamblor for discussions around Colors and displayio


16:27 @danh
* @MicroDev for continued GItHub CI improvements.
* @gamblor21 and @RetiredWizard for testing a socket fix. @tannewt for pointing out code problem which zeroed in on the appropriate fix.
* @jepler for pinpointing animated gif delay issue.
* @gamblor21 for fixing long SPI writes on atmel-samd.


17:46 @DJDevon3 
* @Neradoc for helping troubleshoot why my Unexpected Maker Feather S3 firmware wasn’t working during last week’s meeting. I posted a picture of the wiring and his keen eyes observed it was not a UM Feather S3, it was an Adafruit Feather S3. I didn’t notice even though I was holding it in my hand. Oops.
* @CGrover for excellent audio related advice. Thankfully I didn’t have to go with a transformer and ended up figuring it out with a different method. Your advice put me on the right track.
* @Kyoshi for the excellent feedback and ideas on the TR-Cowbell v1.2 They kept me updated throughout the build process and had ideas I never considered which will be implemented in the next revision. Your feedback was excellent and very much appreciated.
* @Skerr for getting his IcyBlue FPGA feather to do a thing in the real world. It’s been wonderful watching his progress with FPGA stuff.
* @LadyAda for the new launch of the iMX Metro M7. Very excited to get my hands on one.
* @Jepler for the TinyUF2 learn guide for the Metro M7.


19:16 @dglaude (not present)
* Group hug


19:24 @jepler
* Group hug – the community inspires me with their projects & how kind we are to each other
* Hug to Liz for running Show & Tell
* Hug to Gamblor & Anne for gifio & the very engaging projects done with it already.
* Hug to PT & Limor for enabling me to do fun projects
* Hug to Phil B & Anne for very fruitful guide reviews


20:13 @jerryn
* @tannewt for the bangle2.js port and for patiently helping me get it working with the Glider and Bluefruit Connect apps.


20:39 @Jose David(Text only)
* @foxy82. For correcting a reference in the documentation for the HTTPServer library


20:51 @KeithTheEE (text only) 
* @Kattni for a lovely conversation and advice ahead of a presentation I’ll be giving this coming saturday 


21:02 @Mark[gamblor] (Missing or late)
* @danh and @jepler for documentation and answering questions from others about GIF support


21:20 @tannewt
* @isacben for the AES fixes.
* @foamyguy for many library reviews and improvements including the 7-color display IC libraries.
* ## 22:00 Status Updates
22:33 @foamyguy (hosting)
* Reviewed Framebuf library PR to add support for bi-color matrices and test what I can on the hardware I have for regressions.
* Assessing the scope of example code changes for new displayio API. Lots to change, but they’re mostly similar enough in code that a few variations of find/replace sweeps can knock out some sizable portions of it.
* Trying to resolve an issue in bitmaptools.boundary_fill causing the USB activity to be unresponsive while it’s working. Also starting to explore options for more efficient filling algorithms than the current implementation.
* Out for vacation the latter part of this week, and weekend. No Deep Dive, or Saturday morning streams from me this week.


24:37 @danh
* Released CircuitPython 8.1.0-beta.0 on Tuesday.
* Fixed animated GIF delays for long frame delays. Will be in 8.1.0-beta.1.
* Fixed socket code error. Will go into an 8.0.4 release, which could be soon.
* Catching up on issues and PR’s, and looking at what to do next.


26:03 @DJDevon3 
* Spent a couple hours iterating through different configurations to figure out how to almost completely remove the pop & click from the Adafruit I2S sound modules. The modules have either no capacitor or an insufficient one that introduces a very loud pop when a song begins or ends, as most of you are well aware of. This is easily remedied with a large 1000 micro Farad coupling capacitor across the positive & negative speaker outputs. It’s similar to the way Adafruit recommends adding a capacitor at the beginning of any long Neopixel strip. Tried adding up to 3 capacitors with no effect, at a point there is a law of diminishing return. 1000uF works best with the 3W Class-D amplifiers. Adding a 100K resistor bridging GAIN & VIN also helps as it lowers the initial gain to be amplified. It’s better to amplify a 3db signal than a 12db signal. The pop from the initial current inrush is now practically imperceptible and will make all audio projects much more enjoyable to experiment with. 
*   * The Mail Boombox audio clarity is now much improved at high amplification levels. Adafruit warns not to use the 3W I2S module as a pre-amp but I found a way to do it and solved 2 design flaws in their I2S module designs in the process. No more clicking and popping.
* Sunday pushed a minor PR for the TR-Cowbell v1.2 simpletest code to my repo. There are separate examples for those who are using it with or without a display. The default code now assumes you’ve done the bodge fix as the starting point. If you haven’t done the bodge fix yet please do. Everyone will now be on the same page with their hardware.
* Might have just gotten my first electronics freelance job thanks to my work on my 7-segment social media tracker project. The order is for 50x 14-segment displays showing numbers from an online API and 3D printed enclosures which is right up my alley. All 50 devices will require wifi connectivity.


29:13 @dglaude (not present)
   * Fixing a cable to go from Stemma QT to LOLIN similar but not equal connector: https://hostux.social/@NOeVoting/109977704234160492
   * Testing one more time that the driver for that tiny screen works with CP.
   * Will be off for two weeks (one week of Ski and two days in Disneyland Paris)
   * Wondering if @tannewt could take the Deep Dive spot of this Friday (not that I will see it LIVE since I will be on the road for ski ressort… but I could watch it in VOD later)


29:56 @gneverov
   * Working on refactoring the audio stack to support async programming and more flexibility. As a proof-of-concept I can stream standard MP3s (44.1 kHz, 16-bit, stereo) over network. I’ll publish a draft PR this week for discussion.
   * The above audio code is not fully async because the network stack is not async. So next I’m going to look into, first enabling dynamic memory allocation in lwip to remove static socket limits (and I think there are other latent timer bugs like #7333), and then making the socket api async.


31:26 @jepler
   * SNES mouse guide
   * Floppy featherwing product guide
   * Have some working openai chat api stuff running on CP & on host
   * Endless zorque
   * Make a story based on choice of emoji
   * Made some changes to the adafruit_mcp2515 library, need to re-test on hardware and merge it
   * Started rotaryio on mimxrt, uses pin change interrupts & same quadrature state machine as rp2040, nrf and samd, will get it compiling soon and then have to set up debugger
   * Next imx should be i2s
   * Appears to be no sdio on 1011, so skipping that for now (but do have 1060 evk so I can debug it)
   * Next breather project is /help/ keyboard but also that finally tests the riscv ulp


34:23 @Jose David(text only)
   * Worked on an PR for a mpl3115a2 issue
   * Some PR reviews
   * Not CircuitPython: Refactored an old knitting pattern software from PyQt4. It was “FUN”


34:55 @tannewt
   * Deep in the iMX RT weeds. Looking at memory layout and performance.
   * USB unreliability may be due to not running interrupts during erase.
   * Also looking into full function tracing.
## 37:33 In The Weeds


@foamyguy - example code updates for new displayio API: replace `.show()` with `.root_group =`
https://github.com/adafruit/Adafruit_Learning_System_Guides/pull/2429




## 41:34 Wrap-Up