# CircuitPython Weekly for 29 November 2021

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


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:10 Community News
### 3:29 Cooperative Multitasking Added to CircuitPython 7 Beta
Cooperative multitasking is now in CircuitPython, using the `asyncio` library and the `async` and `await` language keywords. The `asyncio` library is included with CPython, the host-computer version of Python. MicroPython also supplies a version of `asyncio`, and that version has been adapted for use in CircuitPython - [Adafruit Learning System](https://learn.adafruit.com/cooperative-multitasking-in-circuitpython/overview).
### 4:12 Gom Jabbar from Dune with Raspberry Pi
Recreate the pivotal Gom Jabbar scene from Dune using a Raspberry Pi, ultrasonic sensor, a servo, and a bit of Python code! - [Instructables](https://www.instructables.com/Gom-Jabbar-From-Dune/), [GitHub](https://github.com/mjdargen/Gom-Jabbar) and [YouTube](https://www.youtube.com/watch?v=v0kx15oTRYM).
### 4:39 A Native, Full-Featured Raspberry Pi Pico BASIC Interpretor
The PicoMite is a Raspberry Pi Pico running the free MMBasic interpreter. MMBasic is a Microsoft BASIC compatible implementation of the BASIC language with floating point, integer and string variables, arrays, long variable names, a built-in program editor and many other features.


MMBasic includes communications protocols such as I2C or SPI to get data from a variety of sensors. Data can be saved to an SD card and displayed on colour LCD displays. Measure voltages, detect digital inputs and drive output pins to turn on lights, relays, etc. All from inside this low cost microcontroller.


The PicoMite firmware is totally free to download and use - [Geoff's Projects](https://geoffg.net/picomite.html), [Hackaday](https://hackaday.com/2021/11/24/picomite-gives-your-pico-a-basic-with-all-the-features/), [GitHub Source](https://github.com/UKTailwind/PicoMite).
### 5:33 Python Developers Survey Last Chance
A heads up that the **Python Developers Survey will be concluding in the coming week**. The more diverse the response base, the better, so please help share the link this week as well to regional communities. The survey takes about 10-15 minutes to fill out - [Survey](https://surveys.jetbrains.com/s3/python-developers-survey-2021).
### 6:00 Give back to Python by pitching in to the PSF’s last fundraiser of 2021.
PSF would love for you to be part of the big plans they have for 2022. You can join their end of 2021 fundraiser in two ways:
* [Buy a discounted PyCharm license!](https://python.us19.list-manage.com/track/click?u=5697f493c3a48994f504d4deb&id=cf0985d287&e=9b20e3624a) JetBrains is supporting the PSF by providing a 30% discount on PyCharm and all proceeds will go to the PSF! You can take advantage of this discount by [using promo code SUPPORTPYTHON21](https://python.us19.list-manage.com/track/click?u=5697f493c3a48994f504d4deb&id=f0c7a13de6&e=9b20e3624a),
* [Donate directly to the PSF!](https://python.us19.list-manage.com/track/click?u=5697f493c3a48994f504d4deb&id=417d0cb845&e=9b20e3624a) Give back to Python, grow the global community of Pythonistas, and make [PyCon US 2022](https://python.us19.list-manage.com/track/click?u=5697f493c3a48994f504d4deb&id=6a77e4a357&e=9b20e3624a) the best yet–in person again, at long last!
[![Donate](../assets/20211130/20211130donate.jpg)](https://python.us19.list-manage.com/track/click?u=5697f493c3a48994f504d4deb&id=d312111615&e=9b20e3624a)
### 6:53 Awesome CircuitPython Updates
With help from Paul C, the community is revitalizing the Awesome CircuitPython repo. Community members are invited to review the Awesome CircuitPython page and suggest additions/changes like articles, podcasts, etc. via Pull Requests or noting in an Issue. - [Awesome CircuitPython](https://github.com/adafruit/awesome-circuitpython/).
### 7:20 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.
## 8:36 State of CircuitPython, Libraries and Blinka
### 9:00 Overall
* 20 pull requests merged
  * 17 authors - Pixel-Clay, ladyada, GingerIndustries, weblate, wtuemura, gamblor21, rsbohn, microDev1, tekktrik, dhalbert, Lisapple, kattni, jepler, FoamyGuy, aivarannamaa, bergdahl, tannewt
  * 10 reviewers - dhalbert, ladyada, jepler, kattni, FoamyGuy, caternuson, gamblor21, kmatch98, microDev1, tannewt
* 15 closed issues by 8 people, 14 opened by 13 people


### 9:48 Core
* 12 pull requests merged
  * 11 authors - Pixel-Clay, ladyada, Lisapple, jepler, weblate, wtuemura, aivarannamaa, bergdahl, gamblor21, microDev1, tannewt
  * 5 reviewers - dhalbert, gamblor21, jepler, microDev1, tannewt
* 11 open pull requests
  * https://github.com/adafruit/circuitpython/pull/5298 (Open 86 days)
  * https://github.com/adafruit/circuitpython/pull/5352 (Open 74 days)
  * https://github.com/adafruit/circuitpython/pull/5422 (Open 57 days)
  * https://github.com/adafruit/circuitpython/pull/5453 (Open 49 days)
  * https://github.com/adafruit/circuitpython/pull/5491 (Open 38 days)
  * https://github.com/adafruit/circuitpython/pull/5519 (Open 33 days)
  * https://github.com/adafruit/circuitpython/pull/5551 (Open 23 days)
  * https://github.com/adafruit/circuitpython/pull/5597 (Open 11 days)
  * https://github.com/adafruit/circuitpython/pull/5613 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/5615 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/5623 (Open 0 days)
* 10 closed issues by 3 people, 4 opened by 4 people
* 453 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 7.1.0: 1 open issues
  * 7.x.x: 22 open issues
  * 8.0.0: 7 open issues
  * Libraries: 17 open issues
  * Long term: 401 open issues
  * Support: 5 open issues
  * 0 issues not assigned a milestone


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


### 11:26 Libraries
* 8 pull requests merged
  * 6 authors - tekktrik, dhalbert, rsbohn, kattni, FoamyGuy, GingerIndustries
  * 6 reviewers - caternuson, dhalbert, ladyada, kmatch98, kattni, FoamyGuy
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/144 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_74HC595/pull/20 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LC709203F/pull/17 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_VL6180X/pull/22 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/53 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/56 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/54 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes/pull/44 (Days open: 1)
  * 67 open pull requests (Oldest: 710, Newest: 1)
* 5 closed issues by 5 people, 9 opened by 8 people
  * 642 open issues
  * 258 good first issues
* https://circuitpython.org/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_PCF8563](https://github.com/adafruit/Adafruit_CircuitPython_PCF8563)
 * [Adafruit_CircuitPython_Ticks](https://github.com/adafruit/Adafruit_CircuitPython_Ticks)
 * [Adafruit_CircuitPython_BLE](https://github.com/adafruit/Adafruit_CircuitPython_BLE)
 * [Adafruit_CircuitPython_DHT](https://github.com/adafruit/Adafruit_CircuitPython_DHT)
 * [Adafruit_CircuitPython_LIS3DH](https://github.com/adafruit/Adafruit_CircuitPython_LIS3DH)
 * [Adafruit_CircuitPython_LC709203F](https://github.com/adafruit/Adafruit_CircuitPython_LC709203F)
 * [Adafruit_CircuitPython_DisplayIO_Layout](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout)
 * [Adafruit_CircuitPython_Display_Shapes](https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes)
 * [CircuitPython_Community_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)


Overall: An issue was found with the RtD (early hug report to Foamyguy for finding and fixing it), but it has been resolved. I’m continuing to see folks contributing updates and fixes to libraries, thanks to everyone who has been contributing. Things may slow for a bit over the holidays, which is expected, but if folks are finding they have more time, please feel free to submit whatever you like!
### 13:27 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 5 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 292 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/496 (Open 126 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 52 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/527 (Open 3 days)
  * https://github.com/adafruit/Adafruit_Blinka_Displayio/pull/73 (Open 0 days)
* 0 closed issues by 0 people, 1 opened by 1 people
* 65 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 14377
Number of supported boards: 77
## 14:20 Hug reports
15:00 @tannewt
* @danh for the broadcom PR review
* @microdev for esp 4.4 update
* @gamblor for pin review


15:25 @charlesburnaford 
* Group Hug


15:50 @danh
* @Anne and @ladyada for quick review of initial asyncio cooperative multitasking guide
* Thanksgiving group hug to all


16:20 @deshipu
* group hug
* @danh for the USB_CDC work, it works great with a stenotype
* @jepler for the camera support


17:01 @foamyguy
* @tbjers for getting interested in displayio widgets and raising some good questions about new use cases. As well as a discussion about some possibilities around the board module in the stubs
* Github user @rsbohn who has left some thoughtful reviews on some of the PRs I have submitted recently
* @deshipu and @ATMakersBill who both provided really helpful guidance to me trying to troubleshoot with GDB for the first time.
* @makermelissa for pointing me in the right direction with something that came up about Blinka_DisplayIO Palette object.
* @FlantasticDan for pointing out some possible improvements in the Awesome Circuitpython page around mobile layouts, reviewing a PR making one of the improvements, and working on / submitting PR for another one of them.
* @gingerinsdustries for adding different color functionality to the divider lines in GridLayout and working through the requests from the review.


19:03 @g3holliday (missing meeting)
* group hug
* hug to Arduino for 10M Unos!


19:21 @jepler
* Group hug
* Hug to various community moderators who helped me understand something that was a harmless pop culture reference
* Hug to @microdev for the esp-idf upgrade. It’s much appreciated, even if I wasn’t ready to merge it right away.


20:07 @jerryn 
* @tannewt for the broadcom port
* Group Hug

20:34 @kattni
* @krayola for helping with organising all of my Adafruit hardware, and designing and 3D printing dividers for my divided containers that didn’t come with enough to fill the entire thing
* @dherrada for learning how to do PrettyPins diagrams, and working through her first set of them
* @ladyada for helping out with reviewing the ATtiny PrettyPins diagrams
* @foamyguy for finding an issue with RtD on the libs and pushing a fix to the bundle
* @PT for being on moderation duty over the holiday weekend
* @jepler for swapping running the meeting with me later in December
* Group hug!


22:05 @makermelissa
* Group Hug


22:15 @mark(gamblor) [lurking]
* @deshipu for some info on python tuples vs lists vs arrays




## 22:29 Status Updates
22:49 @tannewt
* Broadcom port merged in with I2C support added last minute
* Need to do pin in use checking and full pin muxing
* Need to add SPI and UART support
* Add the broadcom builds to circuitpython.org/downloads


23:50 @danh
* Finished initial version of asyncio cooperative multitasking guide. Try out the examples!
* Upcoming:
   * Fix issues with task cancellation and exceptions and write examples for the guide.
   * Write task examples for devices with interrupt pins, e.g. SCD30.
   * Write NeoPixel tasks examples.
   * More 7.x.x bug fixing.


25:18 @deshipu 
* Trying to fix https://github.com/adafruit/circuitpython/issues/5476 but stuck with samd51 PWM
* Experimenting with cameras, no luck so far




26:45 @foamyguy
* Attempted to troubleshoot a problem with nvm on RP2040. First time using GDB. Got some stack traces leading into (I think) assembly code. Not sure what to do with the information I found, but left the information I could on the open issue for this problem.
* Thinking some about possible ways to add pins to board module in the circuitpython stubs.
* Adding a cell_anchor_point feature to GridLayout to allow content to be centered or anchored in other ways within the cells.
* Resolve a difference in the behavior of Palette within Blinka_DisplayIO vs. core displayio.
     This week:
* Try to enhance TileGrid inside the core to add width and height property getters


28:56 @g3holliday (missing meeting)
* Took a little break for Thanksgiving, resuming today


29:06 @jepler
* Time has been spotty, between thanksgiving and travel. This week should be normal, but more travel is in the works.
* Fixed some bugs
* Will continue to fix bugs - #1 and #2 are both SPI bugs
* Will be doing a (no microcontroller) 3d printed lamp project on learn in the coming weeks


30:02 @kattni
* Last week:
   * Updated the PrettyPins README a while ago, it now has more thorough instructions on creating PrettyPins diagrams. If you happen to work through it, and find something missing, please file an issue or let me know!
   * Created a new Analog In template for non-standard AREF boards
   * Adapted and simplified an Adafruit IO example for Feather ESP32-S2
   * Published ESP32-S2 Feather guide, partially completed, but the core was done so folks had a place to start
* This week:
   * Finish Feather ESP32-S2 guide
   * Work with Anne to get her spun up on adding CircuitPython Essentials templates to board guides
   * KB2040 guide
* This past weekend:
   * Ended up with a garbage bin full of Adafruit packaging as I went through nearly everything I have here and organised it into divided containers. Adafruit makes a lot of temperature/humidity/pressure sensors. And I have a lot of Circuit Playground Bluefruits.
   * Wrote a new post on [my site](https://kattni.com) - “How do I get into programming?”


34:06 @makermelissa
* Last Week:
   * Started a guide on a Nunchuk Controlled Laser
* This Week:
   * Finish up guide


34:30 @mark(gamblor) [lurking]
* Dove deep into the core - found a native class cannot be a subclass of another native class (exceptions are an exception - no pun intended)
* Determined how to use PixelBuf with IS31 and going to start work on it
* Need to look at releasing a library with the IS31 LED map(s)


## 35:05 In The Weeds
35:35 meeting on Dec 27th? Probably


36:10 @jepler - whether/when to merge https://github.com/adafruit/circuitpython/pull/5615 -- esp32s3, esp32c3 support, but known regression in rgbmatrix support for esp32s2. The known regression, plus dragon’s early finding that idf 4.4 doesn’t immediately work with protomatter (the base C library of rgbmatrix) makes me reluctant to do it before 7.1.0 goes out.


Internal communication from Phil B:
I’m poking around in the code but unfortunately the Arduino and CircuitPython code each take a different approach to interacting with ESP32 timers. Arduino version never touches timer structs directly, calls convenience functions/macros instead. So it compiles fine, no complaints. But the timer interrupt never triggers, so I wonder if it’s those funcs/macros that are busted.


Can confirm: their own RepeatTimer Arduino example does not work on ESP32-S2, is OK on HUZZAH 32. So I suspect something’s amiss in the esp32-hal-timer API.


39:41 @kattni - Any 7.1 release needs to happen ASAP. The Feather ESP32-S2 `I2C_POWER_INVERTED` pin rename is not in the current beta, and the guide is live with code that uses that pin. 


42:51 @foamyguy + @tbjers - board module in circuitpython stubs. Does anyone else have thoughts about including all possible pins on the board module, so that IDE can suggest pins that exist.
Perhaps also some CLI tool or some way to customize it to a specific device? Interested in anyone's thoughts or concerns.


51:07 @jerryn
* Is there some description of how to build/load the broadcom port?
## 1:00:30 Wrap-Up
