# CircuitPython Weekly for March 7, 2022


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


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.
## 3:20 Community News
### Dublin Linux Developer meetup with Adafruit March 5th
Dublin Linux Developers met online with Jeff Epler and Melissa LeBlanc-Williams from Adafruit on March 5th - Meetup and Adafruit Blog.
Jeff's presentation will be on "From Zero to CircuitPython". CircuitPython is an embedded implementation of the Python language, a friendly fork of MicroPython primarily developed by Adafruit and designed to simplify experimenting and learning to code on low-cost microcontroller boards. Jeff will demo the process from receiving a factory fresh Adafruit board to showing the Dublin broadcast downloaded over WiFi on the board's built-in TFT display. Some prior familiarity with Python and JSON is helpful, but not essential. Github gist of the code written during the session and other links will be provided via chat.
Melissa's presentation is “Getting to Blinky with Blinka” and will include be an overview of how easy it is to get up and running with Adafruit Blinka on a Raspberry Pi. She will also be showing off a couple of her other projects including a scrolling message board that can easily be scripted using Python and TI calculator with a fully working Raspberry Pi Zero inside. Both projects are running Linux as the base OS.
Note: apologies this wasn't in last week's issue.
### 5:20 The CircuitPython Show
The CircuitPython Show is a new independent podcast, hosted by Paul Cutler, focused on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a twenty to thirty minute interview – CircuitPythonShow, Blog Post and Twitter.
The first episode aired on March 1st featuring an interview with Kattni Rembor. The second episode airs today March 8th with maker Les Pounder - Show List.
### 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.
## 7:00 State of CircuitPython, Libraries and Blinka
### Overall
* 25 pull requests merged
  * 20 authors - makermelissa, rimwolf-redux, deshipu, sidikalamini, ladyada, jepler, dhalbert, muranyia, weblate, caternuson, prplz, DavePutz, flom84, sgauche, fivetide, Neradoc, t-ikegami, FoamyGuy, tekktrik, fabaff
  * 9 reviewers - makermelissa, kattni, ladyada, jepler, tannewt, dhalbert, FoamyGuy, tekktrik, jerryneedell
* 29 closed issues by 11 people, 19 opened by 16 people


### 8:08 Core
* 11 pull requests merged
  * 11 authors - prplz, DavePutz, rimwolf-redux, deshipu, sgauche, ladyada, t-ikegami, FoamyGuy, weblate, tekktrik, fabaff
  * 4 reviewers - ladyada, jepler, tannewt, dhalbert
* 17 open pull requests
  * https://github.com/adafruit/circuitpython/pull/5298 (Open 184 days)
  * https://github.com/adafruit/circuitpython/pull/5352 (Open 172 days)
  * https://github.com/adafruit/circuitpython/pull/5491 (Open 136 days)
  * https://github.com/adafruit/circuitpython/pull/5852 (Open 52 days)
  * https://github.com/adafruit/circuitpython/pull/5908 (Open 43 days)
  * https://github.com/adafruit/circuitpython/pull/5999 (Open 25 days)
  * https://github.com/adafruit/circuitpython/pull/6029 (Open 21 days)
  * https://github.com/adafruit/circuitpython/pull/6037 (Open 19 days)
  * https://github.com/adafruit/circuitpython/pull/6069 (Open 15 days)
  * https://github.com/adafruit/circuitpython/pull/6079 (Open 13 days)
  * https://github.com/adafruit/circuitpython/pull/6084 (Open 11 days)
  * https://github.com/adafruit/circuitpython/pull/6104 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/6107 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/6117 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/6119 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/6118 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/6121 (Open 0 days)
* 10 closed issues by 4 people, 7 opened by 7 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: 22 open issues
  * 8.0.0: 9 open issues
  * Libraries: 19 open issues
  * Long term: 448 open issues
  * Support: 3 open issues
  * -1 issues not assigned a milestone


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


### 11:20 Libraries
* 10 pull requests merged
  * 8 authors - flom84, sidikalamini, ladyada, jepler, dhalbert, Neradoc, muranyia, tekktrik
  * 6 reviewers - ladyada, tannewt, dhalbert, FoamyGuy, tekktrik, jerryneedell
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_CursorControl/pull/34 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_Typing/pull/6 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_VL6180X/pull/27 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ESP_ATcontrol/pull/53 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SI7021/pull/29 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_24LC32/pull/17 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/98 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_IS31FL3741/pull/15 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_NeoTrellis/pull/16 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/37 (Days open: 1)
  * 18 open pull requests (Oldest: 524, Newest: 1)
* 16 closed issues by 8 people, 11 opened by 8 people
  * 625 open issues
  * 209 good first issues
* https://circuitpython.org/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_asyncio](https://github.com/adafruit/Adafruit_CircuitPython_asyncio)
 * [Adafruit_CircuitPython_INA219](https://github.com/adafruit/Adafruit_CircuitPython_INA219)
 * [Adafruit_CircuitPython_LSM6DS](https://github.com/adafruit/Adafruit_CircuitPython_LSM6DS)
 * [Adafruit_CircuitPython_seesaw](https://github.com/adafruit/Adafruit_CircuitPython_seesaw)
 * [Adafruit_CircuitPython_MacroPad](https://github.com/adafruit/Adafruit_CircuitPython_MacroPad)
 * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
 * [Adafruit_CircuitPython_Typing](https://github.com/adafruit/Adafruit_CircuitPython_Typing)
 * [Adafruit_CircuitPython_VL6180X](https://github.com/adafruit/Adafruit_CircuitPython_VL6180X)
 * [Adafruit_CircuitPython_ESP_ATcontrol](https://github.com/adafruit/Adafruit_CircuitPython_ESP_ATcontrol)
 * [Adafruit_CircuitPython_SI7021](https://github.com/adafruit/Adafruit_CircuitPython_SI7021)
 * [Adafruit_CircuitPython_24LC32](https://github.com/adafruit/Adafruit_CircuitPython_24LC32)
 * [Adafruit_CircuitPython_CursorControl](https://github.com/adafruit/Adafruit_CircuitPython_CursorControl)
 * [Adafruit_CircuitPython_BNO055](https://github.com/adafruit/Adafruit_CircuitPython_BNO055)
 * [Adafruit_Blinka](https://github.com/adafruit/Adafruit_Blinka)
 * [Adafruit_Python_PlatformDetect](https://github.com/adafruit/Adafruit_Python_PlatformDetect)
 * [CircuitPython_Community_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)


### 13:25 Blinka
* 4 pull requests merged
  * 3 authors - caternuson, makermelissa, fivetide
  * 3 reviewers - kattni, ladyada, makermelissa
* 8 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 390 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/496 (Open 224 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 150 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/201 (Open 90 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/540 (Open 59 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/222 (Open 5 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/224 (Open 2 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/223 (Open 2 days)
* 3 closed issues by 2 people, 1 opened by 1 people
* 71 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 14588
Number of supported boards: 87




## 14:30 Hug reports


@danh
* @ricksorensen for first PR to fix Seeeduino XIAO SAMD21 pin names
* @DavePutz for continued fixes.
* @foamyguy, @tekktrik, @Neradoc, @jepler for typing annotation work and discussion.


15:50 @deshipu
* @gamblor21, @danh and @tannewt for reviews
* @jepler for paralleldisplay and camera work


16:33 @foamyguy
* @tannewt for having me on Deep Dive and generally for having the show. It’s been fascinating and inspirational.
* @dexter for a PR review and good suggestions 
* @danh for great examples and explanations in the cooperative multitasking guide


17:08 @jepler
* @ladyada for perfecting some camera code I started way back last fall
* @pt for always doing things thoughtfully and revising your approach when it’s necessary
* @tannewt for all the deep dives .. we expect you back at some point!
* @makermelissa thanks for presenting with me to the Dublin Linux group on Saturday, and the organizer Neil for inviting us


17:43 @jerryn
* Group Hug


17:50 @kattni
* @ntoll for the latest Mu stable release (which might have been last week, but still!)
* @danh for all the help with a not-exactly-CircuitPython bug I found
* @cater for explaining pullups and pulldowns, and internal vs. external.
* @KeithTheEE for showing an excellent example of self-care by taking time out for himself
* @pt for beginning discussions about PyCon 2022


19:00 @kmatch (text only)
* @tannewt for the livestream and for the good conversation with @foamyguy
* @ladyada for making available all the helpful schematics and board layouts for me to learn from 


19:37 @makermelissa
* @fivetide for adding usb_hid to Blinka
* @jepler for for presenting with me at the Dublin Linux Developers group Saturday and to Neil, the organizer who invited us to talk
* @kattni for organizing PyCon
* Group Hug


20:03 @tammymakesthings
* Group hug

20:15 @tekktrik (lurking, text only)
* @jerryn, @anecdata, and @kattni for help in reviewing, testing, and fixing my SI7021 PR
* @foamyguy for always being a pleasure to work with on PRs and issues
* @paulcutler and @kattni for  an awesome CircuitPython show podcast episode last week
* Group hug to all the contributors and maintainers - my "PR" to grad school was recently "merged" and this community played a pivotal part in my decision to apply.


21:05 @paulcutler (not in meeting)
* Group hug to everyone who listened to and supported The CircuitPython Show’s first episode last week


21:22 @tannewt
* @foamyguy for joining my stream for a chat and keeping the deep dive going while I’m on leave.
* @hathach and @sekigon-gonnoc for creating PIO USB, open sourcing it and being responsive to Thach.
* @anecdata for helping with Requests issues
## 22:00 Status Updates


22:52 @danh
* Still working on auto-reload issue for SAMD21. Better, but not fixed yet. Looking at other bugs as well.
* Keep an eye on asyncio things, still working on async HTTP client.
* Will finish some more `circuitpython_typing` fixes.


24:35 @deshipu
* made another attempt at camera code, this time getting i2c device not found
* added 9-bit mode to fourwire, got RH-112 display working
* trying to add support for Makerfabs ESP32-S2 Parallel TFT board
* option for removing the Blinka logo
* made an ESP32-S2 handheld with a big display
   * https://hackaday.io/project/178061-pewpew-s3 
* made an ESP32-S3-based keyboard, for now only wired
   * https://hackaday.io/project/184163-vegemite-sandwich-keyboard 
* want to help with SAML22 port, but nothing done yet


29:04 @foamyguy
* Last week
   * Updated webb telescope project for new data source
   * Testing and work on a few smaller core PRs
   * Experimenting with asyncio library cooperative multi-tasking with displayio GUI elements. New example for PyPortal submitted here: https://github.com/adafruit/Adafruit_CircuitPython_asyncio/pull/21
* Next week
   * Couple days of vacation and limited involvement. Back toward the later half of the week.


30:08 @jepler
* Last week:
   * Presented to Dublin Linux Developers Meetup. Attendance was small but it was great practice for me as I’m not a confident presenter. Hopefully, we’ll be able to make the video available within the next week, watch the newsletter for a link.
   * Floppy drives! I gained a deep understanding of the Apple ][ floppy disk formats, but still haven’t managed to write an image which reads reliably on my Apple ][. 
   * I also have a hardware interface from an RP2040 Feather to an Apple ][ floppy drive done.
* This week:
   * I learned about some software that allows disk images to be transmitted to the Apple over an audio cable, and then the apple writes its own disk. (ADT Pro, open source software in Java). I’ll be trying that software out soon.
   * Adapt Adafruit_Floppy until it can use an Apple ][ floppy drive with my hardware interface. May have to modify the hardware (reversibly!) to add an index sensor.
   * Just generally trying to complete the circle 
* Other news:
   * I made marshmallows from scratch on Saturday and .. it was not bad! I’ll probably try again and see if I can get them fluffier.




32:10 @jerryn
* Found some really nice “machine learning” examples for the lsm6dsox accelerometer in the MicroPython Drivers.  https://github.com/micropython/micropython/blob/master/drivers/lsm6dsox/lsm6dsox_mlc.py They allow for very simple code to detect pre-defined events (e.g. door opening/closing, head nod/shake, orientation (x-up, y-up ….). I’m working on porting it to the CP library.
* Ran into an issue with the MicroPython pin definitions for the Feather ESP32 V2 (SCL cannot be assigned to Pin 20).  Looks like the pin definitions are not for the ESP32-PICO-MINI-02 module. 


35:25 @kattni
* Last week:
   * Got hung up on repeated bugs while trying to finish a guide. I usually love bug hunting, but this was getting old.
   * After a lot of troubleshooting, sorted out that a `microcontroller.cpu.temperature` + WiFi bug is beyond CircuitPython (it’s in the ESP-IDF), and updated a template to use a random number generator instead of CPU temp.
   * Filed an issue on the core for the above bug, with a link to the ESP-IDF issue for tracking purposes.
   * Created a few new templates - CP: LC709203 data, Adafruit IO send/receive. Arduino: Built-in TFT, LC709203 data.
   * Consolidated some ESP32-S2 template code to simplify the guide templates.
   * Ran into a failed Feather TFT board - super weird failure, and apparently I barely missed out on destroying the USB port that the board was plugged into. (belated hug report to deshipu for helping troubleshoot that and teaching me not to bridge the ground and USB pins directly.)
   * FINALLY finished the Feather TFT guide.
   * Started PyCon 2022 planning
* This week:
   * Add the new templates to the Feather ESP32-S2 guide.
   * Feather ESP32 V2 guide.
   * Various misc.
   * Product guides: MCP23017, 2 x new TFTs, VL53VCD
   * STEMMA guide update: ADXL343
   * Essentials template for asyncio
   * Continue PyCon 2022 planning
* Off-time:
   * Didn’t get any further than last week on it, but working on a Discord bot for the Adafruit Discord server. First major feature is flagging unformatted code, and providing info on how to format it.


38:15 @kmatch (text only)
* Last week
   * Studying KiCAD to make a board to simplify my display wiring, and learning a lot from ladyada’s schematics and layouts
   * Finalized pinout selection for ESP32-S3 to touch display panel
   * Minor progress on adding multiple lines to the Cartesian widget updates, hope to pick this back up in several weeks
* This week
   * Add backlight driver and battery charger to my display driver schematic and finalize board layout
   * Experiment with ESP32-S3 IDF demo code for RGB displays
* Other: Slower progress last week and the next few weeks -> some home construction projects bubbled to the top of my list


39:10 @makermelissa
* Last Week:
   * Added pre-commit support to Blinka which involved cleaning up a bunch of items that needed linting
   * Worked on preparing for my talk
   * Worked on helping Loren with some WipperSnapper Firmware Uploader improvements
   * Fixed an issue with PlatformDetect on the BeagleBone on recent firmware versions
* This Week:
   * Finish catching up on a few more GitHub issues
   * Possibly work on adding ESP32-C3 Support to the WebSerial ESPTool


40:00 @tammymakesthings
* Last week:
   * Refactored and re-planned the design for my DisplayIO card deck library
   * Fixed my video hardware for Twitch streaming
   * First two successful electronics/CircuitPython Twitch streams <https://twitch.tv/tammymakesthings>
* This week:
   * Continue working on the card deck library
   * Twitch streams - Tuesday at 7PM Arizona time, Sunday at 10AM Arizona time
   * Tackle a few more of the open issues for type annotations in the libraries
   * I ran into a problem yesterday with @mraleson’s “piku” tool with a MacroPad. The “piku deploy” command failed because it said the board memory was too large. I want to figure out what the problem is and submit a PR to fix it.
* Other news:
   * I got an offer for a fabulous new job doing data engineering with Python! (I’m very excited.)


42:30 @tekktrik
* Last week:
   * Added suspend power functionality to the BNO055
   * Added heater control functionality to the SI7021
   * Some miscellaneous documentation updates
* This week
   * More typing PRs
   * Picking back up my self-lighting menorah project, now using the TinyS2
   * Looking for more issues across the libraries to start
   * Starting to prepare and plan for grad school this fall


43:19 @tannewt
* Last week
   * Made progress on USB host. On iMX can now listed connected devices and their VID, PID, product name, manufacturer name and serial number.
   * Added USB specific exceptions that PyUSB uses.
   * Created two simple examples. One for mouse and one for keyboard.
   * Did my last Deep Dive before I go on leave. (<3 weeks until the baby’s due date.)
* This week
   * Check in with Thach’s TinyUSB work. He’s adding a “raw” API for the reading and writing that we’ll need to do.
   * May add an example for the IntelliKeys that ATMakers often uses.
   * May start experimenting with PIO DVI output.
## 45:05 In The Weeds


@danh
* Canonical wifi error handling: making our scripts more robust:
   * Surround a `main()` function with try-except.
   * Inventory and regularize the thrown exceptions.
   * Use `supervisor.set_next_code_file(..., reload_on_error=...)` as a kind of watchdog.
   * Use `atexit`.
   * Use hardware watchdog; errors in ESP-IDF?
   * Redo the Learn examples


52:10 @kattni - @danh, can you clarify where we’re at with the type hints PRs and so on?
Response:
* PR that isn’t finished for `from __future__ import annotations`
* If we need to add more types, or fix any infrastructure things, we may need to put them on hold.
* CPython infrastructure, the annotation libs are pyi files that are not directly importable, but they’re used to generate stubs and use tools like mypy. Perhaps circuitpython_typing is there for the type-checkers, but is not importable directly.
* Fixes have led to how we’re going to tackle other issues
* Some PRs we may not merge right away, but we’re not suggesting folks stop working on them entirely yet.
## 58:23 Wrap-Up
Next week’s meeting is on Monday at 2PM as usual. However, take note: The US changes to Daylight Saving Time (“summer time”) between now and the next meeting, making the time 2PM in UTC-4. Use our online calendar with your favorite calendar app so you always see the meeting in your local time.
