# CircuitPython Weekly Meeting for March 27, 2023

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


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.
## Community News
### 2:33 100 CircuitPython Community Libraries!
 100 CircuitPython Community Libraries!

The CircuitPython community reached a big milestone together! There are now 100 libraries in the CircuitPython Community Bundle! CircuitPython libraries are separate files designed to work with CircuitPython code.


The CircuitPython Community Bundle contains all the available libraries for CircuitPython that have been submitted by the CircuitPython community at large. These libraries are updated and maintained by their community authors. A huge thanks to all the authors and the folks that make CircuitPython easy and friendly for everyone. A special thanks to [CedarGroveStudios](https://github.com/CedarGroveStudios) for [submitting](https://github.com/CedarGroveStudios) the 100th library: [CircuitPython_AD5293](https://github.com/CedarGroveStudios/CircuitPython_AD5293) – a CircuitPython driver for the AD5293 digital potentiometer.


The full list of all the CircuitPython libraries contained in the library bundles (Adafruit + Community) can be found on the [circuitpython.org libraries](https://circuitpython.org/libraries) page - [Adafruit Blog](https://blog.adafruit.com/2023/03/22/100-circuitpython-community-libraries-circuitpython-python-circuitpython/).
### 37,000 thanks!
 37,000 THANKS

 Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,000 humans - thank you! Adafruit believes Discord offers a unique way for Python on hardware folks to connect. Join today at https://adafru.it/discord
### 4:13 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.
## 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.**
### 5:12 Overall
* 45 pull requests merged
  * 18 authors - microdev1, bergdahl, wtuemura, Neradoc, dhalbert, tannewt, weblate, FoamyGuy, jepler, gamblor21, tekktrik, ozgurbostan, Saentis, CedarGroveStudios, isacben, hathach, BiffoBear, jposada202020
  * 8 reviewers - FoamyGuy, microdev1, tekktrik, BlitzCityDIY, dhalbert, kattni, jepler, tannewt
* 26 closed issues by 10 people, 12 opened by 12 people
### 6:00 Core
* 33 pull requests merged
  * 15 authors - tannewt, FoamyGuy, microdev1, bergdahl, wtuemura, gamblor21, Neradoc, ozgurbostan, dhalbert, Saentis, hathach, jepler, isacben, jposada202020, weblate
  * 5 reviewers - BlitzCityDIY, dhalbert, microdev1, jepler, tannewt
* 20 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6037 (Open 404 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 265 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 191 days)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 146 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7221 (Open 129 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 129 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7282 (Open 116 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 115 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7430 (Open 78 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 75 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7548 (Open 50 days)
  * https://github.com/adafruit/circuitpython/pull/7592 (Open 39 days)
  * https://github.com/adafruit/circuitpython/pull/7591 (Open 39 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 35 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 23 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7711 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/7718 (Open 14 days)
  * https://github.com/adafruit/circuitpython/pull/7782 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/7785 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/7791 (Open 1 days)
* 17 closed issues by 6 people, 4 opened by 4 people
* 629 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 8.0.x: 0 open issues
 * 8.1.0: 11 open issues
 * 8.x.x: 70 open issues
 * 9.0.0: 21 open issues
 * Libraries: 20 open issues
 * Long term: 500 open issues
 * Support: 7 open issues
 * Third-party: 4 open issues
 * 2 issues not assigned a milestone


### 9:30 Libraries
* 12 pull requests merged
  * 6 authors - dhalbert, CedarGroveStudios, isacben, BiffoBear, jposada202020, tekktrik
  * 5 reviewers - dhalbert, kattni, tannewt, FoamyGuy, tekktrik
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/97 (Days open: 33)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/101 (Days open: 31)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/99 (Days open: 31)
    * https://github.com/adafruit/Adafruit_CircuitPython_HID/pull/113 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/32 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_BusDevice/pull/93 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Typing/pull/30 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_VL53L1X/pull/15 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/189 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1675/pull/15 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Pastebin/pull/1 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/147 (Days open: 1)
  * 39 open pull requests (Oldest: 909, Newest: 1)
* 9 closed issues by 6 people, 5 opened by 5 people
  * 600 open issues
  * 74 good first issues
* https://circuitpython.org/contributing
#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 103970 PyPI downloads over 309 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7233
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6589
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2095
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1726
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1363
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1140
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1086
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 951
  * Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 893
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 827
#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_Display_Text](https://github.com/adafruit/Adafruit_CircuitPython_Display_Text)
  * [adafruit/Adafruit_CircuitPython_HID](https://github.com/adafruit/Adafruit_CircuitPython_HID)
  * [adafruit/Adafruit_CircuitPython_Pastebin](https://github.com/adafruit/Adafruit_CircuitPython_Pastebin)
  * [adafruit/Adafruit_CircuitPython_GFX](https://github.com/adafruit/Adafruit_CircuitPython_GFX)


### 12:23 Blinka
* 0 pull requests merged
  * 0 authors -
  * 0 reviewers -
* 7 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 775 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 535 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/267 (Open 117 days)
  * https://github.com/adafruit/Adafruit_Python_PureIO/pull/33 (Open 46 days) (draft)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/284 (Open 4 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/665 (Open 3 days)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/107 (Open 1 days)
* 0 closed issues by 0 people, 3 opened by 3 people
* 97 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 14391
* Piwheels Downloads in the last month: 12308
Number of supported boards: 101
## 13:16 Hug reports
13:38 @danh (hosting)
* @foamyguy and @Neradoc for noticing that the fetch-submodules change doesn’t work for many current distributions


14:14 @CGrover (missing meeting)
* To the team and community members who concentrated on improving CircuitPython support for ESP boards. Reliability and performance have improved dramatically.


14:25 @DJDevon3 (not in meeting)
* @kattni @anecdata & @Neradoc for helping me figure out a simple reed switch issue for my mailbox project. If you use both digitalio switch.direction & switch.pull in the wrong order of operation the pin will remain floating which causes random erratic behavior. There was a consensus that learn guide should be rewritten.
* @Sker & @Hem & CGrover for help with a new custom board for my mailbox project. I was making it more complicated than it needed to be. Thank you for the great advice.
* @Kattni for the excellent mailbox guide. Haven’t even started on the low power portion of the project but it’s great knowing the next step is already documented.


15:15 @foamyguy
* @Neradoc for identifying the cause of a fetch-submodules issue I ran into. Also for adding and pointing me toward some Built-in I2CDisplay board definitions in the core.
* @Danh for adding fallback logic to fetch-submodules and pointing me to a way to update git to a newer version with latest capabilities. And for keeping the release train rolling
* @BiffoBear on Github for making many improvements to wiznet ethernet library and working through feedback and testing with me during the process.
* @JoseDavid for PRing new circle functionality for bitmaptools in the core.
* Group hug


16:22 @jepler
* @danh for testing and pointing out 2 important bugs in the PWMAudioOut implementation for imxrt
* @kattni for chatting & listening to me lecture about MOSFETs when they were totally irrelevant to the matter at hand
* Group hug


16:47 @Jose David(Text Only)
* @S-ol for submitting a PR for fixing the Tilegrid Flip direction in Blinka_displayio


17:00 @kattni
* @DJDevon3 and @Paul Cutler for joining the brand new 3D Printing Helpers role on Discord
* @skerr for suggesting the new role and those that would be a good fit
* @danh and @Neradoc for attempting to help me with an issue updating my local CircuitPython repo - it turned into a fresh clone, but I left the other one in place in case we can figure out how to fix it
* @Mr. Certainly for helping out with a talk proposal and talk content for an upcoming presentation for the PyCon Education Summit
* @todbot, @tammymakesthings, @tekktrik, and @johnpark for contributing a personal moment each to my talk
* @makermelissa for adding the Feather RP2040 DVI to circuitpython.org/downloads
* Group hug!


18:53 @MakerMelissa
* @s-ol for fixing a Tilegrid issue in Blinka Displayio
* Group Hug


19:14 @Mark[Gamblor] (missing)
* @danh for helping me with git when I (yet again) broke a PR by trying a rebase.


19:35 @tammymakesthings (text only)
* @kattni for wonderful conversations and support lately.
* @group hug to everyone for being awesome - this community is amazing and I’m glad to be a part of it.


19:51 @tannewt (Out today)
* @danh for swapping meetings with me due to Ari being sick.
## 20:05 Status Updates
@danh (hosting)
* Updated tinyusb in CircuitPython again, to get latest additions and changes, including host improvements, and to remove submodules.
* Changed `make fetch-submodules` in CircuitPython Makefile to use “partial clones”, which have full metadata but fetch commits and changes lazily. This solves some problems when using shallow clones and is also somewhat faster. It does require a fairly recent version of git. Some people don’t have that version, so I revised this to fall back to the old way. I also added a `make remove-submodules` target, which cleans out all the fetch submodules so you can do a clean `make fetch-submodules`.
* Wrangling, testing, and approving a bunch of `main` changes to get an 8.1.0-beta.1 out soon.
* Shrank overflowing builds to make animated gif fixes work.
* Fix AirLift serial pin designations on Metro M7 1011 board.
* Working on i.MX issues, starting with bitbangio not working.
* Debugging raw HID support, to help support a user. It was not working, due to not handling reports with no report ID properly. I think I have a heuristic to make it work.


24:07 @CGrover (missing meeting)
* To improve some recent wi-fi reliability issues, refactored the foundational AIO modules for a new version of the workshop Corrosion Monitor. The latest version of CircuitPython greatly simplified wi-fi connectivity and appears to be efficient enough to incorporate OpenWeatherMap conditions along with the local sensor data to improve corrosion prediction and response. The new core modules are running a week-long reliability test, so now there’s time to pick up the…
* Precision VCO project, PCB assembly. Pulled out the stencil, solder paste, and tweezers.


24:53 @DJDevon3
* I’ve come to the conclusion there’s either a problem with my Feather M4 express or there’s a bug with how it handles pull UP or DOWN with a switch. It works with the Feather RP2040 & Feather ESP32-S2 no problem. The same code on a Feather M4 express simply does not work. It’s as if the GND is permanently floating on all pins. If anyone has a Feather M4 Express they can help test a basic digitalio switch script on the latest stable release I would appreciate it. Very likely user error but could use a confirmation.
* Started on a duplicate 100W mail boombox for a family member. The amplifier has built-in bluetooth classic and 2x 40W 4” speakers. I’ve already tested the speakers and 100W amp together running I2S out from an RP2040 feather with LORA featherwing, the sound is excellent and loud.
* Scrapped the idea of using a distance sensor for the mailbox trigger and instead going with reed switches. Keeping it simple for mailboxes which might get the random baseball bat treatment or drunk driver is more appealing in the worst case scenario of having to redo all the electronics. Distance sensors, sonic sensors, infrared beam sensors, etc..  for mailboxes sounds cool but just not as practical as a simple reed switch trigger especially where power consumption is a major factor. Even though I’m dealing with LORA, Kattni’s WiFi mailbox guide has been an excellent source of reference material.
* Gathering components to attempt a small image transmission from a 320x240 TTL/UART JPEG camera from inside the mailbox via RFM.  Because the RFM is only capable of about 250 bytes per packet. Even if converting the image to black & white it still means splitting a ton of packets and combining them in sequence on the receiver end. It’s an ambitious project but one with a ton of real world applications. I know it’s been done on Python & Micropython but those examples are using much larger libraries that will not fit in Circuit Python. If anyone has advice or ideas how to achieve this in circuit python I would be grateful.


27:40 @foamyguy
* Lots of ethernet library testing and PR reviews. Capturing logs from wireshark to try to help work through any remaining issues with changes to the state machine logic within.
* Still fighting a little bit with random PC issues during builds, but also still not freezing anymore. And maybe more progress getting back to normal after good cleaning of the case and air inputs.
* Learning how to make device definitions inside the core, then how to initialize the display to make it available as board.DISPLAY by practicing by making builds for existing device + external display as though it were built-in.
* Test out the bitmaptools PR


29:40 @jepler
* Last week, finally got I2SOut to work on the Metro M7. Quickly followed up with support for PWMAudioOut (which uses a peripheral called Medium Quality Sound, MQS). Can mix at least 12 voices simultaneously using audiomixer (at 22kHz, 16-bit mono)
* Changed some error checking in struct.pack to better match core python. Now some incorrect use of struct.pack (too many / too few arguments) is detected, when it wasn’t before.
* Fixed one socket problem on pico that was affecting 8.1 but not 8.0
* Working on a 2nd guide using OpenAI’s chatgpt, I teased it on mastodon. It’ll be a guide as soon as later this week. https://octodon.social/@stylus/110074416223448861


31:27 @Jose David (Text Only)
* Made a PR to make a circle with bitmaptools in the core
* Made some Library documentations
* PR Reviews
* Create a new sensor library for the Magnetometer QMC5883L sensor
* Took a look at https://github.com/tox-dev/sphinx-autodoc-typehints project, This extension will take the typehints and automatically include the information in RTD.


32:00 @kattni
* Last week:
   * Started the Feather RP2040 DVI guide.
   * Brought in a new Community Helper on Discord
   * Created the 3D Printing Helpers role on Discord, added two folks
   * Tweaked the circuitpython.org/libraries page a bit
   * Fought with updating my local copy of CircuitPython, did not figure out solution, left it in place in case one comes up
   * Cloned circuitpython fresh
* This week:
   * Finish Feather RP2040 DVI guide. What’s left:
      * Pinouts needs one item updated, does not require the board
      * CircuitPython Essentials Template Pages - prepare them to be shared among the upcoming Feather boards
      * Arduino Blink and I2C Scan require the board
      * Power Management
      * Factory Reset
   * Start on Feather RP2040 RFM whatnot
      * CircuitPython board definition
      * Fritzing object
      * PrettyPins
      * Eventual guide
      * Eventual mailbox project
   * Finalise updates for circuitpython.org/libraries and PR
   * Document growlight and timelapse projects as time permits
* In other news…
   * I’m confirmed to do a talk at the PyCon Education Summit. Time to get writing!


34:26 @MakerMelissa
* Last week:
   * Finished ChatGPT powered bear enough to show a demo on S&T
   * Worked on testing various TTS software to find an improved voice
   * Fixed some issues with my code and circuitry which had resulted in some overheating and damaged parts
   * Added the DVI Feather to circuitpython.org
* This Week
   * Work on writing guide for the ChatGPT Bear
   * Hack another bear and update photos as I write the guide


35:20 @tammymakesthings (text only)
* Last week:
   * Started reworking my Web site to focus on project write-ups for projects I’ve done/am doing, and started writing up some of those things.
   * Working through some KiCAD tutorials
   * Designing a small audio amplifier circuit for an upcoming project for my nephew (“making a map of sound” with an oscilloscope, since he’s very into maps right now).
* This week:
   * Trying to get more of the stuff I’m working on documented on my Web site.
   * I’m hoping to jump off from the KiCAD tutorials I’ve been working on to create my own minimal RP2040 board as a learning exercise.
   * Building the audio amplifier I’m designing.
   * Hopefully more, but I’m not sure.
* In other news…
   * I want to give a hearty thanks to the community for your support and understanding as I’ve been AWOL recently. I”m dealing with some pretty challenging medical stuff right now, but we finally have a hopeful path forward. I’m hoping that in the next couple weeks we’ll pin down what the path back to health is and I’ll soon be able to return to doing all the things I love.


36:40 @tannewt (Out today. Ari is sick.)
* Working on supporting the rest of the iMX RT EVKs. 1020 and 1050 work. 1040 is weird. I’ve made a script for generating pins and pin muxing arrays for chips.
* Looked briefly into speeding up flash reads and there is room for improvement there. Will need to add a way for reconfiguring flash after bootup because TinyUF2 will use conservative settings.
## In The Weeds
@danh
* Arduino R4 (next generation after R3 Atmega328P) releasing in May. It has a 5V Renesas Cortex-M4 chip with 256kB of flash, but only 32kB of RAM and no external flash, so not a great CircuitPython board. Optional ESP32-S3 Wifi co-processor (!).
## Wrap-Up
