# CircuitPython Weekly for 24 January 2022

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


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.
## 2:45 Community News
### 3:04 The Raspberry Pi Pico / RP2040 Turns One Year Old


ABout a year ago, Raspberry Pi released a new type of product - their first microcontroller: the RP2040 and a development board which uses it: the Raspberry Pi Pico. Usage by the electronics and hobbyist community has been quick due to great functionality at a great price point (and it has generally remained available during the silicon shortage).


Maker companies were quick to release RP2040 boards of their own, including Adafruit, SparkFun, Pimoroni and many more as well as smaller companies and individuals. Scaores of designs rely on this versitile chip to perform some remarkable tasks. With lots of RAM, Flash, dual cores, and user programmable PIO, this chip packs a punch.


Read an excellent article by Alasdair Allen which discusses MicroPython and CircuitPython - [RaspberryPi.com](https://www.raspberrypi.com/news/multilingual-blink-for-raspberry-pi-pico/).


### 4:05 A Study in the Popularity of the CircuitPython GitHub Repository


An interesting look at the number of GitHub Stars awarded to the Adafruit [CircuitPython GitHub repo](https://github.com/adafruit/circuitpython). Marked increases on the dates that the Adafruit PyPortal (2019) and the Raspberry Pi Pico (2021) were released. CircuitPython enjoys increased usage in many segments of the embedded ecosphere - [Star-History](https://star-history.com/#adafruit/circuitpython&Date).


### 4;31 The Pi Cast Celebrates 10 Years of Raspberry Pi: New Episodes With Ladyada, Eben Upton, and More


[![The Pi Cast](../assets/20220125/20220125tom.jpg)](https://www.tomshardware.com/news/pi-cast-celebrates-10-years-of-raspberry-pi)


The Pi Cast Celebrates 10 Years of Raspberry Pi: New Episodes With Ladyada, Eben Upton, and others. Adafruit's Limor Fried will be on a livecast on February 15, 2022 - [More on Tom's Hardware](https://www.tomshardware.com/news/pi-cast-celebrates-10-years-of-raspberry-pi) and [YouTube](https://www.youtube.com/watch?v=aGV6zZmF8Bs).


### 4:56 CircuitPython2022 Updates


Here is additional CircuitPython 2022 feedback received since last week:


* FoamyGuy wrote a post [on GitHub](https://github.com/FoamyGuy/Foamyguy_CircuitPython_Yearly_Posts/blob/main/CircuitPython_2022.md)
* deshipu wrote a [blog post about keyboards, robots and handheld gaming](http://dopieralski.pl/posts/2022-01-22-circuitpython/)
* mdroberts1243 wrote [a post on the forum](https://forums.adafruit.com/viewtopic.php?f=60&t=187504#p907974)
* MarkKomus has a [Tweet thread](https://twitter.com/MarkKomus/status/1482099374888992774)
* Mark S sent us [an email](https://blog.adafruit.com/2022/01/18/two-marks-circuitpython2022-markkomus/)
* Ken [sent in a tip about circuito](https://blog.adafruit.com/2022/01/19/ken-ws-circuitpython2022/)


There is still time to get your feedback to the CircuitPython team - see [this post](https://blog.adafruit.com/2022/01/01/circuitpython-in-2022-circuitpython2022-circuitpython/) for details.


### 5:50 Yes, MicroPython Works on MS-DOS Too
Thinking that you'd like to program some Python for a retro MS-DOS board or machine? MicroPython has you covered - [Twitter](https://twitter.com/zoomosis/status/1343505245742088197).


> There's a version of MicroPython for DOS that supports Python 3.x syntax. Running here in MS-DOS 5.0


Apparently a floating point coprocessor (or separate emulation software) is needed also. Details - [MicroPython Wiki](https://github.com/micropython/micropython/wiki/Building-micropython-for-FreeDOS).


### 6:30 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:23 State of CircuitPython, Libraries and Blinka
### 7:43 Overall
* 60 pull requests merged
  * 23 authors - dunkmann00, tannewt, weblate, jepler, emmanuelthome, wtuemura, kattni, kevinjwalters, cyx2, bergdahl, tekktrik, sti320a, makermelissa, ladyada, KeithTheEE, 0hotpotman0, electricalgorithm, FoamyGuy, Neradoc, prplz, nlantau, evaherrada, dhalbert
  * 13 reviewers - kmatch98, makermelissa, ladyada, tannewt, FoamyGuy, jepler, microDev1, caternuson, kattni, evaherrada, gamblor21, dhalbert, askpatrickw
* 35 closed issues by 16 people, 25 opened by 24 people


### 9:47 Core
* 25 pull requests merged
  * 13 authors - dunkmann00, bergdahl, ladyada, 0hotpotman0, electricalgorithm, tannewt, weblate, Neradoc, prplz, jepler, wtuemura, kattni, dhalbert
  * 7 reviewers - jepler, microDev1, kattni, dhalbert, ladyada, tannewt, gamblor21
* 13 open pull requests
  * https://github.com/adafruit/circuitpython/pull/5298 (Open 142 days)
  * https://github.com/adafruit/circuitpython/pull/5352 (Open 130 days)
  * https://github.com/adafruit/circuitpython/pull/5491 (Open 94 days)
  * https://github.com/adafruit/circuitpython/pull/5551 (Open 79 days)
  * https://github.com/adafruit/circuitpython/pull/5711 (Open 41 days)
  * https://github.com/adafruit/circuitpython/pull/5726 (Open 40 days)
  * https://github.com/adafruit/circuitpython/pull/5781 (Open 28 days)
  * https://github.com/adafruit/circuitpython/pull/5852 (Open 10 days)
  * https://github.com/adafruit/circuitpython/pull/5862 (Open 9 days)
  * https://github.com/adafruit/circuitpython/pull/5874 (Open 7 days)
  * https://github.com/adafruit/circuitpython/pull/5908 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/5912 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/5911 (Open 0 days)
* 12 closed issues by 7 people, 14 opened by 13 people
* 482 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 7.2.0: 3 open issues
  * 7.x.x: 20 open issues
  * 8.0.0: 8 open issues
  * Libraries: 17 open issues
  * Long term: 421 open issues
  * Support: 7 open issues
  * 6 issues not assigned a milestone


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


### 11:45 Libraries
* 31 pull requests merged
  * 9 authors - tekktrik, sti320a, makermelissa, KeithTheEE, FoamyGuy, emmanuelthome, nlantau, evaherrada, kevinjwalters
  * 10 reviewers - kmatch98, makermelissa, ladyada, tannewt, FoamyGuy, caternuson, kattni, evaherrada, dhalbert, askpatrickw
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/33 (Days open: 237)
    * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/32 (Days open: 237)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/68 (Days open: 15)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/150 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/54 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/120 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/pull/77 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/90 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Button/pull/34 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Simple_Text_Display/pull/10 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LSM6DS/pull/47 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/34 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SCD4X/pull/12 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_CCS811/pull/47 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_asyncio/pull/15 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_24LC32/pull/12 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/97 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_Adafruit/pull/16 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_BroadcastNet/pull/24 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_Eddystone/pull/16 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_MIDI/pull/9 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_iBBQ/pull/7 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_Heart_Rate/pull/15 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE_Cycling_Speed_and_Cadence/pull/8 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_FunHouse/pull/35 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_FunHouse/pull/34 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_FunHouse/pull/33 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_FunHouse/pull/31 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/152 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/151 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_CLUE/pull/54 (Days open: 1)
  * 29 open pull requests (Oldest: 499, Newest: 1)
* 20 closed issues by 12 people, 11 opened by 11 people
  * 634 open issues
  * 236 good first issues
* https://circuitpython.org/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_CursorControl](https://github.com/adafruit/Adafruit_CircuitPython_CursorControl)
 * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
 * [Adafruit_CircuitPython_DRV2605](https://github.com/adafruit/Adafruit_CircuitPython_DRV2605)
 * [Adafruit_CircuitPython_FRAM](https://github.com/adafruit/Adafruit_CircuitPython_FRAM)
 * [Adafruit_CircuitPython_PIOASM](https://github.com/adafruit/Adafruit_CircuitPython_PIOASM)
 * [Adafruit_CircuitPython_ESP32SPI](https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI)
 * [Adafruit_CircuitPython_HT16K33](https://github.com/adafruit/Adafruit_CircuitPython_HT16K33)
 * [Adafruit_CircuitPython_MAX31865](https://github.com/adafruit/Adafruit_CircuitPython_MAX31865)
 * [Adafruit_CircuitPython_Bitmap_Font](https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font)
 * [Adafruit_CircuitPython_PyPortal](https://github.com/adafruit/Adafruit_CircuitPython_PyPortal)
 * [Adafruit_CircuitPython_FunHouse](https://github.com/adafruit/Adafruit_CircuitPython_FunHouse)
 * [Adafruit_Blinka](https://github.com/adafruit/Adafruit_Blinka)
 * [Adafruit_Python_PlatformDetect](https://github.com/adafruit/Adafruit_Python_PlatformDetect)


### 13:30 Blinka
* 4 pull requests merged
  * 3 authors - cyx2, tekktrik, makermelissa
  * 2 reviewers - ladyada, makermelissa
* 5 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 348 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/496 (Open 182 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 108 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/201 (Open 48 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/540 (Open 17 days)
* 3 closed issues by 3 people, 0 opened by 0 people
* 68 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 16656
Number of supported boards: 87


## 14:26 Hug reports
15:01 @tannewt (host)
* Gamblor and microdev for both working through longer review cycles
* New folks Charstring and ajs256 for helping others on Discord


15:47 @anecdata (lurking)
* @tannewt, @microdev, and the whole team for bringing the very capable ESP32-S3 and Broadcom ports to CircuitPython


16:02 @CGrover (text only)
* @jerryn and @foamyguy for quickly reviewing, testing, and approving the update to the adafruit_circuitpython_stmpe610 touchscreen driver for 2.4” and 3.5” TFT FeatherWings.

16:22 @charlesBurnaford (lurking)
* Group Hug


16:28 @danh
* @Neradoc, @Hem, @deshipu, and @jerryn (RFM expert) for helping others in discord


16:46 @jepler
* @foamyguy for agreeing to join the rotation of meeting hosts & generally taking on more duties
* @kattni for taking time out to chat about non-circuitpython stuff, always a pleasure to catch up
* @ladyada for supplying such fun projects to work on.


17:09 @foamyguy
* @CGrover for improvements to the STMPE610 touch driver from the TFT Feather Wings and @jerryn for testing.
* @kattni for showing me the ropes of so many things throughout my involvement with the project.
* Everyone who wrote CircuitPython 2022 posts.
* Group Hug


18:06 @jerryn
* @tannewt for making the C3 File system writable
* @kattni for the great project suggestion
* @CGrover for the improvements to the stmpe610 library
* @danh for rescuing me from a discord chat that I ran out of ideas for


18:46 @kattni
* @jerryn for talking through, and then running with a project idea I have, then providing the code for it, and thoroughly explaining the updates he’s making
* @mark [gamblor] for joining in on the project, adding that the lipoly batteries can handle serious cold, and suggesting solar power
* @Mark [gamblor] for offering to write up a guide page on the IS31 updates
* @foamyguy for agreeing to join us in running this meeting
* @foamyguy for continuing to work through old library PRs.
* @sheehan for the quick fixes to the template setup in the Learn system
* @mattgoff on GitHub for submitting the fix for an issue I filed on the PrettyPins repo a while ago requesting that the title and product URL be centered to each other when the pin labels are generated
* Group hug!


20:08 @MakerMelissa
* Group Hug


20:20 @Mark(gamblor) [ lurking ]
* @tannewt for doing reviews and some great suggestions for the PRs I submitted
* @kattni for listening to an idea for a guide addition I had for the new IS31 code I submitted and helping me start with that
* Group hug!


20:41 @PaulCutler 
* Anne Barela - for being so welcoming as I got active in the community, including sharing some of the projects I’ve worked on in the newsletter and sharing news about the upcoming podcast


@v932z lurking
## 21:02 Status Updates
21:44 @tannewt (host)
* Last week:
   * ESP32-S3 odds and ends
      * Fixed crash when tick happened on other core.
      * Increased heap for S3 and C3 without PSRAM.
      * Add Espressif C3 board def
      * Fixed neopixel weirdness by having unused pins pulled.
      * Fixed follow on bug.
      * C3 file system is now writable from CP
   * A little BLE progress, now compiles.
* This week:
   * Full week, hope to get BLE advertising and scanning going.
   * Will do wrap-up post for #CircuitPython2022 on Friday after my stream.


25:39 @CGrover (text only)
* So that those old TFT FeatherWings in the inventory could be used on new projects, I updated the `adafruit_stmpe610` driver PR including some new examples and a touchscreen calibrator. The new driver provides compatibility with interactive `displayio` widgets/buttons and automatically synchronizes the touchscreen orientation with display rotation. Working on something similar for `adafruit_touchscreen`.
* Three new PCBs arrived and changed project priorities somewhat. The PCBs are for FeatherWing-izing AMG8833 thermal camera breakout boards, a refactored I2C motor controller and power monitor combo wing (DRV8830+INA271), and a refactored NAU7802 dual load cell wing.


26:44 @danh
* Improved error checking for `open()` modes.
* Testing toggle switches (not CircuitPython :) ).
* Debugging I2C problems on ESP32-S2, most notably DS3231.
* Debugging OneWire problems on ESP32-S2.
* Testing multiple LUNs (logical units) for USB Mass Storage. CIRCUITPY would be just one LUN, and any other mounted filesystems (e.g., an SD card) can also be visible. This works fine on Linux, but Windows and macOS have trouble with the drive showing up later. Tried some potential ways around this, without consistent success. Disconnecting and reconnecting USB programmatically is a way around this. Or, we could have a “mount later” feature in `storage`


28:54 @foamyguy
* Still working through open PRs. Tested STMPE610 update to work with displayio widgets this week.
* Updated neko cat to follow your touch points on the display writing the guide this week
* New project in the list to work on is a MagTag or PyPortal app that shows stats pulled from govt. Provided API https://analytics.usa.gov/
* Learn about running this meeting


29:57 @jepler
* Last week: Floppy stuff. Got flux writing working, but only in Arduino so far.
   * Started work on “G64” disk format read/write for greaseweazle. G64 is a format that is good for archival storage of copy protected software for the Commodore 64.
   * Successfully used an archived Mac 800kB floppy image in a Mac emulator, did a short video on Adafruit youtube
   * Partial success using an archived Commodore 1541 disk image in a C64 emulator, but it fails due to the image format not supporting copy protection
   * Implemented a module for rp2040 to drive 8 parallel strands of neopixels from 8 pins
* This week:
   * More floppy disk stuff, finishing up “G64” disk format
   * Implementing a PIO or timer-based flux read/write for RP2040
   * Maybe Implementing .wrap / .wrap_target in adafruit_pioasm and in the core especially if needed by above item
   * Maybe bringing in an implementation from PaintYourDragon for samd51
   * Put neopixel code in a new library to go in the bundle, second priority since the product won’t land in the store for a while yet
* Non-CP:
   * Would love a working example for the ESP32-S2 TFT Feather’s TFT display in Arduino, didn’t get it going so far


33:09 @jerryn
* Mostly just poking/prodding some of the new builds
   * With new writable file system on C3 verified that I can use ampy to upload files
* Having fun reviewing some old code for a rfm9x “remote switch” for a new application suggested by Kattni. 




33:58 @kattni
* Last week:
   * Finished the QT Py ESP guide
   * Found a bug in the QT Py ESP pins.c for CircuitPython, fixed it
   * Started back in on the Feather TFT guide
   * Tested a PR to PrettyPins to center the title with the product URL
* This week:
   * Spin foamyguy up on running this meeting
   * Add Arduino templates to all the RP2040 board guides
   * Update circuitpython.org/trademarks
   * Finish the Feather TFT guide
   * Arcade STEMMA QT guide
   * MCP4725 STEMMA QT rev guide update
   * DotStar LED Essentials template
   * Check on Factory Reset templates for RP2040
   * asyncio Essentials template
* Personal:
   * Mailbox project


36:51 @MakerMelissa
* Last Week:
   * Worked on porting LittleFS over to JavaScript and making good progress
* This Week:
   * Continue porting over LittleFS. Getting into the debugging stages now, but still more to convert.
   * Test out a PR for the ST7789 display in Arduino soon.


@v923z lurking
## 37:38 In The Weeds
38:04 @danh - timeout PR for I2C scanning: https://github.com/adafruit/circuitpython/pull/5908
* Background: Some ESP32-?? pins don’t have builtin pulls, so we can’t use the regular way of testing for missing pullups on the bus. This causes the bus scanning to timeout for about a second for each tried device. Some people are using these pins for I2C. This is not an inherent problem.
* The PR puts a cap on the scan time for the whole bus.
* We have other outstanding issues for shorter clock-stretching timeouts for I2C. E.g. nRF currently has no timeout whatsoever. There is nothing in the I2C spec that puts an upper limit on clock stretching.


44:25 @foamyguy
Does anyone have a Feather M0 Bluefruit and interested in testing this PR https://github.com/adafruit/Adafruit_CircuitPython_BluefruitSPI/pull/20 


@jerryn I do have one and will try to test – I know nothing about kmk so not sure how much I need to learn to test it. Won’t get to it until tomorrow morning.
## 47:48 Wrap-Up
