# CircuitPython Weekly for March 14, 2022


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


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.
## 03:48 Community News


### CircuitPython 7.2.1 Released
CircuitPython 7.2.1, the latest bugfix revision of CircuitPython, was released Monday and it's the new stable release - [GitHub](https://github.com/adafruit/circuitpython/releases).
**Notable fixes to 7.2.1 since 7.2.0**
* Espressif I2C pull-up detection fix.
* SAMD21 auto-reload reliability. In addition, for auto-reloads on any board, the program will stop more quickly, and will wait 0.75 seconds (was 0.5 seconds) after the last filesystem write before restarting.
* Update known certificates.
* Fix `countio` problems when used outside of code.py.
* Add `from __future__ import` annotations to allow program compatibility with CPython.
### 05:04 New Arduino Nicla Vision
The new Arduino Nicla Vision is a ready-to-use 2MP standalone camera that lets you analyze and process images on the edge for advanced machine vision and edge computing applications. It is listed as Python and Arduino compatible. It integrates with OpenMV, supports MicroPython and features WiFi and Bluetooth Low Energy connectivity - [Arduino Article](https://blog.arduino.cc/2022/03/08/meet-the-nicla-vision-love-at-first-sight/) and [Store](https://store-usa.arduino.cc/products/nicla-vision), via [Twitter](https://twitter.com/mbanzi/status/1501244685452558342).
### 05:48 Forth on Raspberry Pi Pico
Forth is certainly not one of the most modern programming languages, but it takes limited resources into account. Here is an implementation for the Raspberry Pi Pico.


Mecrisp Forth on the Raspberry Pico - [Twitter](https://twitter.com/shieladixon/status/1503128398000009222), [heise online](https://www-heise-de.translate.goog/hintergrund/Programmierung-fuer-Mikrocontroller-Mecrisp-Forth-auf-dem-Raspberry-Pico-6544522.html?_x_tr_sl=de&_x_tr_tl=en&_x_tr_hl=en-US&_x_tr_pto=wapp) and more on FORTH - [Hackaday](https://hackaday.com/2017/01/27/forth-the-hackers-language/).
### 06:16 The Tom's Hardware Pi Cast with Special Guest Paul Cutler, Host of the CircuitPython Show
The Pi Cast (3/15/22): The CircuitPython Show with Paul Cutler - [YouTube](https://www.youtube.com/watch?v=LyTVLbNNpO4) via [Twitter](https://twitter.com/biglesp/status/1503382851890331653).


> For this episode we are joined by Paul Cutler, host of [The CircuitPython Show podcast](https://circuitpythonshow.com/) to talk about the rise of [CircuitPython](https://circuitpython.org/), the RP2040 and of course, the Raspberry Pi.
### 06:42 Anne Barela on the Python Bytes Stream
Python Bytes Episode #274: 12 Questions You Should Be Asking of Your Dependencies features CircuitPython team member Anne Barela (*note: Anne is editor of this newsletter*). Discussions of this newsletter, CircuitPython, MicroPython, and GitHub in addition to some other wonderful Python topics - [Python Bytes](https://pythonbytes.fm/episodes/show/274/12-questions-you-should-be-asking-of-your-dependencies) and [YouTube](https://www.youtube.com/watch?v=32XHiEhEDkU).
### 07:24 Jeff and Melissa Speak at the Dublin Linux Developers Meetup
As promised last week, here is the video recorded of Adafruit folks Jeff and Melissa discussing CircuitPython, Python, and Linux a few days ago - [YouTube](https://www.youtube.com/watch?v=B7gYtZ1giOc).
### 07:42 Apoca-pi Now
The Apoca-pi Now is a luggable, rugged, EMP-proof Raspberry Pi Portable - [hackster.io](https://www.hackster.io/news/the-apoca-pi-now-is-a-luggable-rugged-emp-proof-raspberry-pi-portable-a7f51b294360) and [Reddit](https://www.reddit.com/r/cyberDeck/comments/t7o4z4/apocapi_now/), via [Twitter](https://twitter.com/Hacksterio/status/1501224131534426115).










### 08:12 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:05 State of CircuitPython, Libraries and Blinka
### Overall
* 44 pull requests merged
  * 21 authors - Neradoc, U47, tekktrik, jerryneedell, fivetide, kevinjwalters, bablokb, FoamyGuy, ezio-melotti, cdwilson, makermelissa, deshipu, fabaff, ricksorensen, dgriswo, dhalbert, CircuitART, whogben, Taxelas, tannewt, prplz
  * 11 reviewers - ladyada, makermelissa, anecdata, jepler, tekktrik, dhalbert, brentru, kattni, caternuson, tannewt, FoamyGuy
* 39 closed issues by 15 people, 13 opened by 10 people


### 10:25 Core
* 21 pull requests merged
  * 9 authors - deshipu, Neradoc, fabaff, ricksorensen, dhalbert, CircuitART, tannewt, FoamyGuy, prplz
  * 4 reviewers - dhalbert, tannewt, jepler, kattni
* 10 open pull requests
  * https://github.com/adafruit/circuitpython/pull/5352 (Open 179 days)
  * https://github.com/adafruit/circuitpython/pull/5491 (Open 143 days)
  * https://github.com/adafruit/circuitpython/pull/5852 (Open 59 days)
  * https://github.com/adafruit/circuitpython/pull/5999 (Open 32 days)
  * https://github.com/adafruit/circuitpython/pull/6029 (Open 28 days)
  * https://github.com/adafruit/circuitpython/pull/6037 (Open 26 days)
  * https://github.com/adafruit/circuitpython/pull/6069 (Open 22 days)
  * https://github.com/adafruit/circuitpython/pull/6119 (Open 8 days)
  * https://github.com/adafruit/circuitpython/pull/6144 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/6143 (Open 2 days)
* 13 closed issues by 5 people, 6 opened by 5 people
* 505 open issues
  * https://github.com/adafruit/circuitpython/issues
* 7 active milestones
  * 7.2.x: 1 open issues
  * 7.3.0: 4 open issues
  * 7.x.x: 24 open issues
  * 8.0.0: 9 open issues
  * Libraries: 19 open issues
  * Long term: 447 open issues
  * Support: 0 open issues
  * 1 issues not assigned a milestone


### 12:09 Libraries
* 17 pull requests merged
  * 11 authors - makermelissa, U47, tekktrik, dhalbert, dgriswo, jerryneedell, whogben, kevinjwalters, Taxelas, tannewt, bablokb
  * 9 reviewers - ladyada, makermelissa, anecdata, tekktrik, dhalbert, brentru, caternuson, tannewt, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_MCP9808/pull/34 (Days open: 28)
    * https://github.com/adafruit/Adafruit_CircuitPython_SI7021/pull/30 (Days open: 11)
    * https://github.com/adafruit/Adafruit_CircuitPython_APDS9960/pull/42 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/60 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/106 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_LSM6DS/pull/52 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/62 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Typing/pull/7 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SCD4X/pull/13 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/159 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MIDI/pull/48 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_VL53L0X/pull/35 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_TT21100/pull/1 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/82 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MagTag/pull/81 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/167 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/372 (Days open: 1)
  * 19 open pull requests (Oldest: 531, Newest: 1)
* 20 closed issues by 11 people, 6 opened by 5 people
  * 614 open issues
  * 207 good first issues
* https://circuitpython.org/contributing
Library updates in the last seven days:
**New Libraries**
 * [Adafruit_CircuitPython_VL53L4CD](https://github.com/adafruit/Adafruit_CircuitPython_VL53L4CD)
 * [Adafruit_CircuitPython_TT21100](https://github.com/adafruit/Adafruit_CircuitPython_TT21100)
**Updated Libraries**
 * [Adafruit_CircuitPython_IS31FL3741](https://github.com/adafruit/Adafruit_CircuitPython_IS31FL3741)
 * [Adafruit_CircuitPython_NeoTrellis](https://github.com/adafruit/Adafruit_CircuitPython_NeoTrellis)
 * [Adafruit_CircuitPython_Debouncer](https://github.com/adafruit/Adafruit_CircuitPython_Debouncer)
 * [Adafruit_CircuitPython_MCP9808](https://github.com/adafruit/Adafruit_CircuitPython_MCP9808)
 * [Adafruit_CircuitPython_PortalBase](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase)
 * [Adafruit_CircuitPython_Typing](https://github.com/adafruit/Adafruit_CircuitPython_Typing)
 * [Adafruit_CircuitPython_SCD4X](https://github.com/adafruit/Adafruit_CircuitPython_SCD4X)
 * [Adafruit_CircuitPython_MIDI](https://github.com/adafruit/Adafruit_CircuitPython_MIDI)
 * [Adafruit_CircuitPython_Display_Text](https://github.com/adafruit/Adafruit_CircuitPython_Display_Text)
 * [Adafruit_CircuitPython_SI7021](https://github.com/adafruit/Adafruit_CircuitPython_SI7021)
 * [Adafruit_Blinka](https://github.com/adafruit/Adafruit_Blinka)
 * [Adafruit_Python_PlatformDetect](https://github.com/adafruit/Adafruit_Python_PlatformDetect)


### 14:09 Blinka
* 6 pull requests merged
  * 5 authors - cdwilson, tekktrik, fivetide, makermelissa, ezio-melotti
  * 3 reviewers - dhalbert, makermelissa, caternuson
* 5 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 397 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/496 (Open 231 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 157 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/201 (Open 97 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/222 (Open 12 days)
* 6 closed issues by 4 people, 1 opened by 1 people
* 69 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 13645
Number of supported boards: 87




## 15:04 Hug reports
@foamyguy (host)
* @BlitzCityDIY Liz  for authoring a fantastic learn guide on MIDI for Makers
* Everyone who tuned in and/or participated in chat during my first Deep Dive and for sticking with me through a bumpy start.
* @josedavid for publishing an initial working version of a displayio slider widget.


@blitzcitydiy (Liz)
* Kattni for all the help with getting up to speed on my first day


16:48 @danh (text only, not at meeting)
* @tannewt for the USB host work
* @deshipu for supporting 9-bit SPI displays


17:00 @jepler
* @kattni for getting the ball rolling on pycon attendance
* @b0rk (Julia Evans) for a recent blog post [“Celebrate Tiny Learning Milestones”](https://jvns.ca/blog/2022/03/13/celebrate-tiny-learning-milestones/). Julia constantly reminds readers that learning is a journey. You should remember to celebrate your advances, even in small increments, rather than see failure if you didn’t reach an arbitrary distant goal. Check out the rest of her blog for a very refreshing & beginner friendly view of Linux and programming topics, even if Python features relatively rarely.
* @danh for not only making the 7.2.1 release but squashing an irritating and subtle bug along the way.
* @liz happy to be seeing more of you. I hope we can find a chance to do a collab project sometime!


18:01 @jerryn (missing meeting)
* Group Hug!


18:07 @kattni
* @Liz (@BlitzCityDIY) for joining Adafruit full time!
* @cater for help with Yet Another Arduino Issue.
* @foamyguy for the starter code for a CircuitPython time-stamper.
* @danh for the 7.2.1 release.


18:48 @kmatch
* @kevinjwalters for improvements for displayio labels with possibilities to reduce memory fragmentation
* @foamyguy for the displayio and widget livestream with lots of slidey switches
* @wirehead, @CGrover for tips on I2C pullups with Stemma QT and for Carter’s awesome I2C guide


20:08 @makermelissa
* @Liz (BlitzCityDIY) for her first full time day with Adafruti and joining the team
* Group Hug


20:24 @Mark(gamblor) [lurking]
* @Kattni for noticed I had my hug reports in status updates last week (oops!)
* @Foamyguy for his first deep dive and continuing weekend streams
* Group Hug


20:47 @tammymakesthings
* @Foamyguy for a great deep dive last week
* @BlitzCityDIY for joining Adafruit full-time!
* Group hug to the community!


21:07 @tannewt
* Foamyguy for the deep dive and everyone who joined to watch
* Kmatch for working on the RGB LCD displays
* 

## Status Updates
22:17 @foamyguy (host)
* Not much CP last week due to a small, but much enjoyed pleasant vacation
* This week
   * Typing learn guide page discussed last meeting
   * Update the displayio slider widget for newest versions of CircuitPython, extend the functionality a bit and refactor some things inside then publish in the CircuitPython Org
   * PR to add another new async displayio example once the slider widget is updated and published in bundle. This example combines together different displayio widgets, sliders, round switches, and labels along with reading data from external and on-board I2C sensors.
   * Getting back into PR reviews across libraries. If you have an open library PR and are unsure of what next steps needed are please feel free to ping me in discord or in a comment on the PR.


24:13 @danh (text only, not at meeting)
* Released CircuitPython 7.2.1 today. Fixed auto-reload issues (took two PR’s), and perhaps made it a little less likely there is filesystem damage. Now a write to the filesystem causes the program to stop immediately, and then it waits 0.75 seconds before restarting, instead of 0.5 seconds, which was not quite enough in some cases. Backported some other changes.
* Will be working on making wifi HTTP operations more robust, by catching errors in our example scripts.


25:08 @jepler
* Last week:
   * Found the “last problem” reading and writing Apple II floppies with Adafruit_Floppy, fluxengine, and a PC 5.25 disk drive. It was a commandline usage error, and the fluxengine author intends to make it better. (two settings didn’t match, and it caused problems)
   * Got Adafruit_Floppy, fluxengine, and an Apple “disk ][“ reading flux. This offers the possibility of doing full archiving of copy protected Apple disks including “quarter tracks” in the future
* This week:
   * Get floppy writing using the Apple “disk ][“ working, or figure out why it’s not. There’s the possibility that an IC on the drive is damaged, or that there’s a wiring or coding problem.
   * Subsequent to that, get the related pull requests in Adafruit_Floppy and fluxengine finished. This involves coordinate with maker of the Greaseweazle devices and greaseweazle host computer software to allocate some numbers to identify Apple-style floppy drives before it can be called “finished”
   * Work on implementing the .woz raw flux format in fluxengine host software
   * Get photos & text for the disk ii revolution sensor modification to go in an upcoming guide
   * Investigate whether the recently added fluxengine GUI can substitute for some commandline usage in our upcoming guide


27:45 @jerryn (missing meeting)
* Implemented “Machine Learning Core”  capability for the LSM6DSOX IMU to the Adafruit_CircuitPython_LSM6DS Library.
   * Added an example for usage.


28:08 @kattni
* Last week:
   * Finally finished the TFT Feather guide
   * Added the new templates to the Feather ESP32-S2 guide
   * Finished the Feather ESP32 V2 guide which was held up by issues, but not as bad as the Feather TFT guide.
   * Submitted my first PR to MicroPython to expose pin 20 on the ESP32.
* This week:
   * Begin working with Liz on creating new breakout guides, and updating guides for STEMMA QT breakout revisions.
      * Went over a new breakout guide and provided my documentation on creating a new guide already today!
   * New guides for: VL53VCD, MCP23017, 1.47” TFT breakout, 1.9” TFT breakout
   * Updated guides for: ADXL343
   * Meeting this afternoon with Eva to learn how to do Adabot patches
   * Misc.
   * Essentials template for asyncio
   * Eventually look into getting pre-commit going on the Learning Guides repo


30:11 @kmatch
* Ordered my first PCB design to interface the ESP32-S3 Devkit to a repurposed touchscreen (primarily to eliminate all the rats nest of jumper wiring)
* Explored the ESP-IDF for bitmap drawing screen updates to RGB displays, made a few discoveries on how it might integrate with CircuitPython
* This week:
   * Keep exploring ESP32-S3 graphics
   * Need to finalize Cartesian widget updates for multiple lines


32:00 @MakerMelissa
* Last Week:
   * Updated WebSerial ESPTool to work with ESP32-C3.
      * Only tested on the DevKit and not the new QT-
Py C3 since I don’t have one
   * Tested out trying to get python working with libcamera on Bullseye, but it’s still quite a process at this point and doesn’t work too well
   * Tested out a bunch of Pull Requests.
   * Created a new example for the MagTag library
   * This Week:
   * Working on a potential workaround for Requests not working on the MatrixPortal in certain situations
   * I may start a new guide since it’s been awhile


32:53 @tammymakesthings 
   * Last week: Worked on some technology issues with my Twitch streaming, streamed CircuitPython stuff twice (Wednesday and Sunday). Figured out the source of the issue I was having with Piku on RP2040.
   * This week: More streams on Twitch, finish fixing the Piku issue and submit a PR. If i have time (the next 3 weeks or so are a bit slammed for me work-wise) I’d like to tackle a few more of the outstanding type annotation issues in the libraries.


34:00 @tannewt
   * USB Host API is merged in! Can list devices but not talk to them yet.
   * Add TT21100 touch screen driver that is used on the ESP32-S3 Box.
   * Made PR to update IDF but need to double check it doesn’t re-introduce Wifi/USB concurrency issue.
   * Baby is due a week from Friday so i’m trying to keep things small.
## In The Weeds
37:19 @foamyguy
Do we want to revert the content reduction from https://github.com/adafruit/circuitpython-org/pull/884 ? More generally do we have published somewhere or want guidelines around the editing of device info shown on circuitpython.org download pages?


@Mark(Gamblor) [ here for this part ] 
Zip PR https://github.com/adafruit/circuitpython/pull/6069. I did some research and seeing the CPython gzip is both native python and uses the zlib module and learning what wbits are I have an idea on how I can get that PR moving. I would suggest I get 1) zlib.decompress going in a zlib module 2) move the parts of the gzip from CPython over for file access. 3) Eventually look at zlib decompressobj which I have to dig into a bit more. Those are in order of how the work could be done.
Alternative is to just do the decompression right in gzip.
## 45:49 Wrap-Up
Next weeks’ meeting is at the usual time: March 21, 2022 at 2PM EDT (UTC-4)