# CircuitPython Weekly for 8 November 2021



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


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:47 Community News


CircuitPython Course: Connecting a Robot Cat to the Internet
 CircuitPython Course 

In a new LinkedIn Learning course, Charlyn Gonda shows you how to use CircuitPython — a version of Python specifically for microcontrollers — to program a robot cat that reacts to events while connected to the internet. Charlyn shows how to code for common hardware devices like LEDs and servos, and explains a common messaging protocol for IoT projects called message queue telemetry transport, or MQTT. If you’re looking for an internet cat video that actually teaches you something useful, join Charlyn as she shows how to program this robot cat.
Main Course Page - LinkedIn.
The course is $34.99 after the intro chapters. But, Charlyn notes "I found a way to share it for free! If anyone with a linked in account clicks the link inside this post, they'll be able to access it for 24 hours from the time that they click the link".
Meet the Maker: Liz Clark from BlitzCityDIY

SMARS Meet the Maker: Liz Clark from BlitzCityDIY - YouTube.
ZDnet Top Programming Languages
 Top programming languages 

SlashData's latest Developer Nation report looks at the popularity of programming languages and trends from the global developer community. They rank JavaScript #1 (including CoffeeScript and TypeScript in that number). Python is a solid #2 ahead of Java - ZDnet and Slashdot.
Python added 2.3m developers to its community in the past 12 months. "That's a 25% growth rate, one of the highest across all the large programming language communities of more than 7M users," the report noted.
“Bare metal” CircuitPython on a Raspberry Pi, HDMI, and e-ink
 CircuitPython on a Raspberry Pi 

Scott is working on a port of CircuitPython that runs on “bare metal” on the Raspberry Pi (i.e. runs on the Pi without the Linux operating system). So of course Ladyada wanted to see what works with HDMI since the REPL is available… and she happen to have an e-ink HDMI display. It’s AWESOME.
One of the plans is to make a little computer with a keyboard, that is just CircuitPython. Write code, make art … with HDMI, have the output go to a little portable projector… kids could make cool kaleidoscopes, or make a Haiku computer that shows the last one made when the power is off since this one is e-ink - Adafruit Blog and YouTube.
 Gesture Sensors 

CircuitPython School - There's a Jedi in my microcontroller! Sensing gestures w/an Adafruit APDS9960 - YouTube via Twitter.


### 6:39 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:18 State of CircuitPython, Libraries and Blinka
### 7:35 Overall
* 81 pull requests merged
  * 16 authors - ericrosenbaum, tekktrik, bergdahl, hexthat, ladyada, DavePutz, makermelissa, waiweng83, wtuemura, FoamyGuy, fivesixzero, dherrada, weblate, kattni, BLIII, jepler
  * 11 reviewers - makermelissa, KeithTheEE, askpatrickw, gamblor21, dhalbert, tannewt, microDev1, dherrada, ladyada, kattni, jepler
* 24 closed issues by 11 people, 15 opened by 14 people
* Removed Hacktoberfest label from 22 issues.


### 9:16 Core
* 12 pull requests merged
  * 9 authors - waiweng83, wtuemura, bergdahl, hexthat, ladyada, weblate, DavePutz, kattni, jepler
  * 4 reviewers - dhalbert, tannewt, jepler, microDev1
* 10 open pull requests
  * https://github.com/adafruit/circuitpython/pull/5298 (Open 65 days)
  * https://github.com/adafruit/circuitpython/pull/5352 (Open 53 days)
  * https://github.com/adafruit/circuitpython/pull/5422 (Open 36 days)
  * https://github.com/adafruit/circuitpython/pull/5453 (Open 28 days)
  * https://github.com/adafruit/circuitpython/pull/5491 (Open 17 days)
  * https://github.com/adafruit/circuitpython/pull/5519 (Open 12 days)
  * https://github.com/adafruit/circuitpython/pull/5537 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/5544 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/5551 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/5553 (Open 0 days)
* 5 closed issues by 3 people, 4 opened by 4 people
* 447 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 7.1.0: 0 open issues
  * 7.x.x: 21 open issues
  * 8.0.0: 7 open issues
  * Libraries: 17 open issues
  * Long term: 396 open issues
  * Support: 5 open issues
  * 1 issues not assigned a milestone


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


### 12:05 Libraries
* 68 pull requests merged
  * 7 authors - ericrosenbaum, dherrada, tekktrik, kattni, FoamyGuy, fivesixzero, BLIII
  * 7 reviewers - dherrada, ladyada, KeithTheEE, askpatrickw, gamblor21, kattni, tannewt
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing/pull/74 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_VS1053/pull/16 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_MachXO/pull/3 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MachXO/pull/1 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/86 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT/pull/35 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_TestRepo/pull/39 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_TestRepo/pull/38 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/88 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/87 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/86 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/85 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_CLUE/pull/50 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Notification/pull/9 (Days open: 1)
[...] (The full list can be found [here](https://adafruit-circuit-python.s3.amazonaws.com/adabot/bin/reports/circuitpython_library_report_20211108.txt) )
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/88 (Days open: 1)
    * https://github.com/adafruit/cookiecutter-adafruit-circuitpython/pull/159 (Days open: 1)
  * 58 open pull requests (Oldest: 689, Newest: 1)
* 14 closed issues by 8 people, 9 opened by 8 people
  * 627 open issues
  * 260 good first issues
* https://circuitpython.org/contributing
Library updates in the last seven days:

#### **Updated Libraries**
 * [Adafruit_CircuitPython_LED_Animation](https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation)
 * [Adafruit_CircuitPython_DHT](https://github.com/adafruit/Adafruit_CircuitPython_DHT)
 * [Adafruit_CircuitPython_ST7735R](https://github.com/adafruit/Adafruit_CircuitPython_ST7735R)
 * [Adafruit_CircuitPython_WSGI](https://github.com/adafruit/Adafruit_CircuitPython_WSGI)
 * [Adafruit_CircuitPython_74HC595](https://github.com/adafruit/Adafruit_CircuitPython_74HC595)
 * [Adafruit_CircuitPython_SSD1305](https://github.com/adafruit/Adafruit_CircuitPython_SSD1305)
 * [Adafruit_CircuitPython_Waveform](https://github.com/adafruit/Adafruit_CircuitPython_Waveform)
 * [Adafruit_CircuitPython_AM2320](https://github.com/adafruit/Adafruit_CircuitPython_AM2320)
 * [Adafruit_CircuitPython_Display_Notification](https://github.com/adafruit/Adafruit_CircuitPython_Display_Notification)
 * [Adafruit_CircuitPython_WS2801](https://github.com/adafruit/Adafruit_CircuitPython_WS2801)
 * [Adafruit_CircuitPython_HT16K33](https://github.com/adafruit/Adafruit_CircuitPython_HT16K33)
 * [Adafruit_CircuitPython_Logging](https://github.com/adafruit/Adafruit_CircuitPython_Logging)
 * [Adafruit_CircuitPython_PM25](https://github.com/adafruit/Adafruit_CircuitPython_PM25)
 * [CircuitPython_Community_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)


### 15:48 Blinka
* 1 pull requests merged
  * 1 authors - makermelissa
  * 2 reviewers - makermelissa, ladyada
* 4 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 271 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/496 (Open 105 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 31 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/199 (Open 4 days)
* 5 closed issues by 2 people, 2 opened by 2 people
* 64 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 13232
Number of supported boards: 77


## 16:52 Hug reports

17:23 @jepler
* @kattni for coming to me about the pre-commit stuff
* @dherrada, @keithTheEE, and @mark[gamblor] (among others) for work on all those pylint PRs that were one of the results of this
* @tannewt for swapping meetings with me while I’ll be unavailable


17:55 @kattni
* @danh and @rhooper for a lovely video chat about the LED Animation library
* @foamyguy for cleaning up after Hacktoberfest when Adabot failed to do so
* @foamyguy for updating the PyCharm page in the Welcome to CP guide to be useful
* @jepler for going over the pre-commit-config.yaml update with me
* @dherrada for working through the Pylint update
* @KeithTheEE and @mark[gamblor] for picking up some of the Pylint PRs
* @KeithTheEE for looking into an import style difference and reporting back that they were the same thing, and making suggestions as to which one to go with


19:34 @KeithTheEE (Text only)
* @dherrada for getting the circuit python libraries working with the pylint update
* @kattni for getting pylint working and helping review the pull requests
* @ the everyone for continuing to be awesome


19:55 @makermelissa
* @cater for testing out the Pi Zero 2 W
* @kattni for a nice chat
* Everyone who wished me well while I was out
* Group Hug to everyone else


20:24 @tannewt
* @igrr for writing a nice SD library and being open to collaboration.
* @keiththeee, @kattni and @dherrada for dealing with the pylint upgrade.
* @gamblor for displayio on the LED glasses
* @anecdata and @microdev for the wifi monitor code
* @tekktrik and @fivesixzero for typing work


21:35 @carter
* @foamyguy for taking a look at updating Text Label guide to cover common mistake


21:50 @CGrover (text only)
* @foamyguy for the detailed descriptions of the fundamental concepts and design of displayio layout and widgets.


22:01 @danh
* @jepler for improving boot_out.txt updating
* @DavePutz for fixing more hard-to-fix bugs

22:39 @David.Glaude (lurking)
* @tannewt for continuous effort to make the Pi SBC working with CircuitPython
* @danh for the “Custom HID Devices” learn guide
* @jepler for the “BLE Cat thermal printer” learn guide
* @kattni for the “ATtiny817 seesaw” learn guide


23:04 @foamyguy
* Github user @klardotsh for publishing KMK keyboard firmware based on circuitpython
* @carter for discussing some ways to improve the display_text guide with me
* @tekktrick for adding type info and many other PRs recently




## 23:43 Status Updates
24:34 @jepler
* Last week:
   * Had amassed a bunch of work in progress branches. Getting as many of them PR’d as possible makes this list look long
   * Improved boot_out.txt writing, but broke safe mode. Second pull request will fix safe mode
   * Wrote a PR to allow MP3Decoder to accept a_filename_ instead of _an open file_, needs to be tested
   * Samd: fixed an arithmetic error calculating watchdog timeouts
   * ParallelImageCapture: now supports continuous capture on espressif microcontroller
   * Alphablend: pull requested a new bitmaptools routine
   * Dither: pull requested a new bitmaptools routine
   * Rainbowio: enabled on one of the 3 boards where it was disabled
   * Found some potential size savings, no pull request yet
   * Helped with a problem in nvm.toml and reported a bug in cascadetoml
* This week
   * With dither working, I can work on completing the camera to thermal printer project idea
   * Several of the above PRs will probably need revision before they can be merged
* Following
   * Missing meetings on  November 15 and 22.


30:08 @kattni
* Last week:
   * Finished the Welcome to CircuitPython! guide update - update is in moderation, but most of the guide is already live, so you can check it out now!
      * New pages include CircuitPython Documentation (live) and How Do I Learn Python? (not yet live)
   * Updated the Welcome to the Community! Guide as well to include circuitpython.org, reference the libraries more, and link to the new CircuitPython Documentation page in the Welcome to CP! Guide
   * Our New Products and Photo team is working on new sets of CircuitPython-compatible board images based on my (and Dan’s) suggestions - two are done, and they look amazing! I’m really excited about this.
   * Ended up down a when-you-give-a-mouse-a-cookie hole with a documentation build failure on the LED Animation library, which turned out to be related to Read the Docs using an ancient version of Sphinx remotely, versus the latest version we were running locally (all newly created projects use latest on RtD, so we do not need to be concerned about this issue on anything created after 20 October 2020 [I think that date is right, doesn't matter]), so I spent a couple of hours looking into forcing RtD to use the latest Sphinx, which involved adding a new file and changing an existing one, and then I remembered that the way were running Pylint on the example code was, for some reason, running it multiple times on the same file (doing more work than necessary, but also making it slow, which I was running into trying to fix this RtD issue), and figured since I was already going to need an Adabot patch, I should fix that issue as well, and then remembered a user running into an issue with Pylint locally being a different version than pre-commit, and figured if we were going to update the pre-commit-config.yml file anyway, I might as well update Pylint……….. So I ran Pylint across the bundle in a crude way, and it didn’t come back super terrible, so I figured we were in a good place to do it, and went ahead with it.
   * Short story made very long-winded: We’re upgrading Pylint on the libraries to 2.11.1, so make sure you’ve pulled the latest code before working on a library, and also have updated your Pylint if you’re running it separately.
   * So, I’ve been merging PRs, and did a few myself as well.
* This week:
   * Merge any PRs left for me
   * Welp, I broke the docs with my fix, but I know why, so now we have to fix.
   * Start guide for Adafruit Monochrome 1.12" 128x128 OLED Graphic Display
   * Go through existing PrettyPins files (starting with RP2040) and make sure they’re uploaded to the guides and PCB repos where they need to be (PhilB made a bunch that never ended up in their homes)
   * Continue working on adding page to LED Animation lib guide about loading part of a library - pseudo on-hold because AnimationSequence no longer works on M0 at all, and it should really be fixed so it does again, and I’m not sure I want to write this page with the caveat that Sequence doesn’t even work. Still want the page regardless because it will be super helpful to folks, and I have started it, but testing made me pause.
   * Various misc.
   * More PrettyPins


34:19 @MakerMelissa
* Last Week:
   * Out for a few days due to an adverse booster shot reaction, but feeling better now.
   * Tested out the CircuitPython SSD1681 eInk driver
   * Fixed readthedocs from failing on PlatformDetect
   * Added PinAlarm and TouchAlarm support to PortalBase
* This Week:
   * Test out Raspberry Pi with new OS
   * Fix any issues I come across
   * Possibly start learn guide for CircuitPython code Editor


35:44 @tannewt
* Last week:
   * Not a ton of progress due to USB troubles. Put in a new motherboard yesterday so hopefully this week will go smoothly.
   * Got CP compiling for the Zero 2W and the UART output working. Input isn’t working because it depends on interrupts.
   * Put out a call for a TinyUSB-like library for SD/MMC cards. Turns out @igrr wrote the IDF version based on OpenBSD and is open to splitting it out into a separate library. So I’ve started tweaking it for CP and will collaborate with @igrr so future versions of the IDF can use it too.
* This week I want to:
   * Get everything going on the Zero 2W.
   * Joining Tuesday’s Tom’s Hardware Pi Cast. (11:30 Pacific)
   * Get SD card reading and writing working from CP C.
   * Connect up SD to CP as a filesystem
   * Expose the SD card over USB.
39:37 @CGrover (text only)
* Working feverishly on a set of retro graphic widgets for displayio. The project is heavily inspired by the work of @foamyguy, but the CedarGrove approach uses a “normalized” screen addressing scheme rather than pixel counting in hopes of achieving some screen size independence. Have completed two widgets, a “Magic Eye” tuning indicator and an animated kitchen scale -like object. Had some fun with polar to rectangular conversions in the process.
* Starting to examine how to create some new displayio graphics primitives to help with arcs and doughnut circles. Also looking at issues with accuracy of polygon shapes when compared to display_shapes.Rect. I’m expecting that it will be an intense and useful learning opportunity.
 
40:34 @charlesburnaford
* Working on a midi sequencer on a raspi 3b+ under blinka.   Can’t wait for baremetal HID Midi support and busio I2C support.


41:50 @danh
* Continuing to work on asyncio. I made a demo with two servos operating in synchrony, but without needing to know about each other.
* Next steps:
   * PR the changes needed to CircuitPython to run the asyncio library.
   * Publish our modified version of the MicroPython asyncio Python library.
   * Write a guide with examples. Emphasize this is experimental.
   * Come up with a simple async API for monitoring pin transitions.
   * Look at simple TaskGroup implementations for asyncio, to reduce the possibility of errors when using asyncio.


44:51 @David.Glaude (lurking)
* Past:
   * Printed my COVID-pass QR code with a CLUE on the BLE Cat thermal printer https://twitter.com/DavidGlaude/status/1456073321993449478 (and it worked flawlessly with the security guard and his scanner)
* Work in progress:
   * Adapt cPyBasic that was made for the Titano to work on the normal size PyPortal:  https://github.com/dglaude/cpybasic/tree/dglaude-titano-detect 
   * Trying to adapt Radial Controller to build a Joystic USB-HID https://github.com/dglaude/CircuitPython_Joystic_Controller the goal is to use a QT-Py to transform a Wii super Nintendo SNES Classic Mini Controller (CLV-202) into a USB controller
* Future:
   * I have a PiZero2W waiting to be used with CP
   * I have the new ATtiny817 seesaw, I never did anything with the old seesaw, but the new one has a great guide and stemma connector, so I have great hope to use it.


45:52 @foamyguy
* Last week
   * Release nvm_helper library that uses msgpack to give a simple API that can store and retrieve arbitrary objects with nvm storage.
   * Created a ListSelect widget for displayio. Shows a list of strings with a selection indicator and allows the user to move up/down and select.
   * First time loading KMK on a device, made a PoC 2 key breadboard test. Learned how to configure keys, layers and macros.
* This week
   * Work on a new page for display_text guide to show examples of updating a label over time and explain the most common problem with it that we see from users.
   * Still need to look into stubs-generator and making pyi files for libraries not on pypi.


   * ## 48:18 In The Weeds
@kattni - Hacktoberfest still on 22 issues, primarily CircuitPython core - do you want them removed or left? Remove.


@kattni - Do we care about adding Sphinx to `requirements.txt` in the libraries? It means it will install on the computers of everyone using Blinka, and it’s not needed for them. But, for reasons, it would make things a lot easier for me, and avoid essentially duplicating `requirements.txt` in every existing library repo. (It is not needed for any new libraries, so `cookiecutter` will not require an update.)
* @jepler readthedocs documented the automatic version choosing here: https://docs.readthedocs.io/en/stable/builds.html?highlight=1.8.x#python
## 1:01:52 Wrap-Up

Next week’s meeting: November 15, 2021
