# CircuitPython Weekly for September 7th, 2021

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


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://raw.githubusercontent.com/adafruit/adafruit-circuitpython-weekly-meeting/master/meeting.ical)


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:06 Community News
### 3:20 9,000 Subscribers to the Python on Microcontrollers Newsletter!
The newsletter just hit 9,000 subscribers today. Please let folks know that the Python for Microcontrollers Newsletter is free, easy to leave, no spam, and you can sign up for the weekly email at https://www.adafruitdaily.com/ and you can send news in to cpnews(at)adafruit(dot)com.
### 4:32 CircuitPython 7.0.0 Release Candidate 1
CircuitPython 7.0.0-rc1, is now available. Release candidate builds mark the final testing of CircuitPython 7 for stable release. It contains only a few issues still to be addressed for 7.0.0. The Python API’s it presents are not expected to change compatibility before the final 7.0.0 release, though they may be augmented.


### 5:04 MicroPython 1.17 Released
The 1.17 release of MicroPython adds support for f-strings (PEP-498), with a few limitations compared to normal Python. F-strings are essentially syntactic sugar for "".format() and make formatting strings a lot more convenient. Other improvements to the core runtime include pretty printing OSError when it has two arguments (an errno code and a string), scheduling of KeyboardInterrupt on the main thread, and support for a single argument to the optimised form of StopIteration.


In the machine module a new I2S class has been added, with support for esp32 and stm32 ports. This provides a consistent API for transmit and receive of audio data in blocking, non-blocking and asyncio-based operation. Also, the json module has support for the "separators" argument in the dump and dumps functions, and framebuf now includes a way to blit between frame buffers of different formats using a palette. A new, portable machine.bitstream function is also added which can output a stream of bits with configurable timing, and is used as the basis for driving WS2812 LEDs in a common way across ports.


There has been some restructuring of the repository directory layout, with all third-party code now in the lib/ directory. And a new top-level directory shared/ has been added with first-party code that was previously in lib/ moved there.


The docs have seen further improvement with enhancements and additions to the rp2 parts, as well as a new quick reference for the zephyr port. The terms master/slave have been replaced with controller/peripheral, mainly relating to I2C and SPI usage. And u-module references have been replaced with just the module name without the u-prefix to help clear up the intended usage of modules in MicroPython.


Read More - [GitHub](https://github.com/micropython/micropython/releases/tag/v1.17).


### 7:25 Play MP3s on Raspberry Pi Pico with CircuitPython 7
Adafruit's Kattni Rembor shows how easy it is to play MP3s on a Raspberry Pi Pico via CircuitPython - [hackster.io](https://www.hackster.io/news/adafruit-s-kattni-rembor-shows-how-easy-it-is-to-play-mp3s-on-a-raspberry-pi-pico-via-circuitpython-f93e7b02956c) and [Adafruit Learning System](https://learn.adafruit.com/mp3-playback-rp2040).
### 7:50 Halloween Hackfest
Join Hackaday, Digi-Key, and Adafruit for a Halloween-themed contest! They want to see your crazy, creepy, ghostly, spooky, and awesome projects.


If costumes are your favorite part of Halloween, then why not dress up your outfit with some hacked upgrades? You could even design a ghoulish prop to add to your home’s Halloween decor or light up a Jack-o-lantern with LEDs. Whether it’s technical, artistic, or just plain terrifying, Hackaday wants to see your projects!


Check out the Halloween Show & Tell with Hackaday, Friday, October 29th at 1pm PT, to show off your awesome projects entered in the contest. Don't forget to also share your projects on social media and use the #HalloweenHackfest!


Hackaday and Digi-Key have partnered on this Halloween-themed contest to offer three winners an online shopping spree to the Digi-Key warehouse! - [Hackaday](https://hackaday.com/2021/08/10/new-contest-halloween-hackfest/) and [hackaday.io](https://hackaday.io/contest/180664-halloween-hackfest).


### 8:50 Python Software Foundation News


Volunteer Opportunities for PyCon US - [Python Software Foundation](https://www.python.org/psf/volunteer/pycon/).


Python 3.9.7 and 3.8.12 are now available - [Python Insider](https://pythoninsider.blogspot.com/2021/08/python-397-and-3812-are-now-available.html).


Python 3.7.12 and 3.6.15 security updates now available - [Python Insider](https://pythoninsider.blogspot.com/2021/09/python-3712-and-3615-security-updates.html).
### 9: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.
## 10:24 State of CircuitPython, Libraries and Blinka
### 10:34 Overall
* 40 pull requests merged
  * 18 authors - microDev1, tannewt, capellini, deshipu, hexthat, makermelissa, weblate, hathach, UnexpectedMaker, kattni, AVanVlack, jepler, Neradoc, skieast, durapensa, kamtom480, lesamouraipourpre, FoamyGuy
  * 12 reviewers - microDev1, tannewt, deshipu, makermelissa, ladyada, jepler, gamblor21, caternuson, TheKitty, hathach, dhalbert, kattni
* 22 closed issues by 8 people, 11 opened by 9 people


### 11:35 Core
* 33 pull requests merged
  * 15 authors - hathach, microDev1, tannewt, capellini, deshipu, hexthat, jepler, Neradoc, skieast, weblate, durapensa, kamtom480, UnexpectedMaker, lesamouraipourpre, FoamyGuy
  * 8 reviewers - microDev1, tannewt, deshipu, jepler, ladyada, gamblor21, hathach, dhalbert
* 3 open pull requests
  * https://github.com/adafruit/circuitpython/pull/5298 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/5297 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/5302 (Open 1 days)
* 17 closed issues by 5 people, 3 opened by 3 people
* 406 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 7.0.0: 1 open issues
  * 7.x.x: 7 open issues
  * 8.0.0: 3 open issues
  * Libraries: 15 open issues
  * Long term: 375 open issues
  * Support: 5 open issues
  * 0 issues not assigned a milestone


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


### 13:32 Libraries
* 7 pull requests merged
  * 4 authors - makermelissa, kattni, AVanVlack, FoamyGuy
  * 6 reviewers - caternuson, makermelissa, ladyada, jepler, kattni, TheKitty
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_SGP40/pull/9 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/48 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/29 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ST7789/pull/25 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ST7789/pull/24 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/341 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_turtle/pull/26 (Days open: 1)
* 4 closed issues by 4 people, 8 opened by 7 people
* https://circuitpython.org/contributing
  * 346 open issues
  * 3 good first issues
  * 56 open pull requests (Oldest: 626, Newest: 1)
Library updates in the last seven days:
**New Libraries**
 * [Adafruit_CircuitPython_BLE_Creation](https://github.com/adafruit/Adafruit_CircuitPython_BLE_Creation)
**Updated Libraries**
 * [Adafruit_CircuitPython_DisplayIO_Layout](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout)
 * [Adafruit_CircuitPython_SGP40](https://github.com/adafruit/Adafruit_CircuitPython_SGP40)
 * [Adafruit_CircuitPython_MacroPad](https://github.com/adafruit/Adafruit_CircuitPython_MacroPad)


Overall: We’re continuing to see improvements. We’ve gotten through all of the breaking changes we created with the move towards CircuitPython 7.0.0 stable - thanks again to @foamyguy and @lesamouraipoupre for all their work on that.
### 16:20 Blinka
* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 3 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 208 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/496 (Open 42 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/501 (Open 21 days)
* 1 closed issues by 1 people, 0 opened by 0 people
* 61 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 9364
Number of supported boards: 76
## 17:13 Hug reports


17:46 @tannewt
   * @capellini for the REGISTER_MODULE cleanup and pending name for board tip.
   * @gamblor21 for core reviews.
   * @anneb for doing version numbers in the newsletter

18:17 @anecdata (lurking)
* @Neradoc for helping troubleshoot an issue with boot.py


18:42 @anneb
* Lurking
* Group Hug

18:49 @CGrover (text only)
   * @effiksmusic for CO2 monitor beta testing and the German translation.
   * Group hug.


19:05 @danh
   * @tannewt for doing the RC releases and fielding issues while @jepler and I were on vacation
   * @microdev for reviews, making our review cycle a 24-hour-a-day process
   * @kattni for audio testing indicating a new problem with I2S audio


@DaveP (lurking)


19:45 @dherrada
   * @brent for all the wippersnapper troubleshooting help
   * Group hug


20:08 @foamyguy
   * @askpatrickw for working on generalizing the bundle configuration inside of circup
   * @lesamouripourpre for catching some additional possible valid types in a docstring update I made this week.
   * Group hug


20:39 @jepler
   * @tannewt for finishing some PRs while I went on vacation
   * @hierophect for getting together for dinner, nice to finally meet you
   * @brent for trying to meet, sorry it didn't work out
   * @ladyada and @pt for making me welcome in NYC, nice to meet you finally


21:06 @jerryn
   * @jepler for the featherwing test jig guide. Finally got around to building one. Nice project.


21:23 @kattni
   * Moderators on Discord for keeping up with a busy weekend while I was away
   * @jepler for his first visit to Adafruit and for keeping me posted with some fun pictures of his trip
   * @justin for adding support to Learn for all three bundles for the Project Bundler
   * @tannewt for running this week’s meeting for me - so greatly appreciated. My neighbor apparently appreciates it too because he’s currently using a weedwhacker a couple of feet from my window.
   * Group hug


22:38 @MakerMelissa
   * Group Hug


22:47 @Neradoc (no mic)
   * @askpatrickw for more PRs closing circup issues
   * @Nico7885, @Skeleton022, @NadSeries, @ezy and others who helped with the keyboard layouts

## 23:17 Status Updates

23:51 @tannewt
Last Week:
   * Got the release candidate out last week after some tweaks and bug fixes.
   * Started working on partial CI runs.
   * Started bluetooth file transfer API tweaks.
This week:
   * Will finish CI partial runs this week.
   * Will then finish BLE File Transfer library changes
   * Next step is bringing the changes to CP core then

25:00 @CGrover (text only)
   * Finished the Indoor Air Quality monitor (PyBadge + SCD-30 sensor). Code is compatible with a variety of boards such as Clue, FunHouse, PyGamer, EdgeBadge, and PyPortals. [Indoor Air Quality Repo](https://github.com/CedarGroveStudios/Indoor_Air_Quality)
   * Completed the CircuitPython driver for the custom DRV8830 motor controller FeatherWing. The DRV8830 is a traditional single DC motor controller with a couple of twists. First, it communicates via I2C. Second, output speed is set by a voltage parameter -- the chip does all the PWM for you while monitoring the motor voltage, closed-loop -ish. Could be an advantage for projects like the StringCar racer. The chip package is much smaller than the currently used driver, as well.  [DRV8830 FeatherWing Repo](https://github.com/CedarGroveStudios/DRV8830_I2C_Motor_Controller_Wing)
   * Designing a ruggedized portable indoor/outdoor air quality monitor for my asthmatic grandson to take on camping trips. It’s an expanded version of the indoor CO2 monitor recently completed with the addition of a PMSA003i particulate sensor, larger battery, and a waterproof case. Most of the coding is done, just need to conduct some final testing.


26:23 @danh
   * Was on vacation: did very minor things.
   * Looking at I2S audio problems now that I have returned.


27:11 @dherrada
   * Last week
   * Finished moving CircuitPython code in Learn repo to code.py for bundlefly (if anyone runs into a broken link for something in the learn repo please send me a message and I’ll fix it.
   * This week
   * (not sure when they’ll be published) A few guides on WipperSnapper


27:54 @foamyguy
   * Last week
   * Working almost exclusively in PyCharm in order to finalize some suggested best practices for using it with CircuitPython. Found a few places where stub type hints could be improved in the process.
   * Began working on a 3rd bundle option in cookiecutter. Hit a snag due to a cap on the length of a filename, we are limited in how much logic we can include in the templated project name due to this. But I think I found a workable solution using post-gen hooks. Need to validate and do more testing this week
   * Wrote some HID hotkey code to use a Pico to replace the main board inside of some foot petals that my wife got which originally needed some ancient software to configure.https://hackaday.io/project/181510-revving-up-a-kinesis-foot-pedal
   * Began work on a digital etch-a-sketch like gadget built with a PyPortal and some stemma rotary encoder breakouts.
   * This week
   * Adding accelerometer logic for “shake to clear” behavior.
   * Print the back panel and see if it fits or needs any adjustments
   * Look into the recent board IDs that were added to boot_out.txt. Is there a place to easily grab a list of all of the valid values for these?


30:28 @jepler
   * Likely to be seen during ask an engineer this week
   * No other activity


30:43 @jerryn
   * Ran some tests to help diagnose nRF52840 SPI issue. https://github.com/adafruit/circuitpython/issues/5233 
   * Not much progress but gleaned some information. Still baffled.  
31:39 @kattni
   * Last week:
   * Published the SCD-4x guide
   * Published the MP3 playback on RP2040 guide
   * Started the INA219 STEMMA QT rev guide update
   * Helped Melissa with parts of the 1.69” Round Rectangle TFT guide
   * Started on an I2S template for CircuitPython
   * Found a CircuitPython bug with audio on RP2040
   * This week:
   * Follow up on the bug
   * Once bug is sorted out, continue I2S template
   * Finish INA219 STEMMA QT rev guide update
   * Start the IS31FL3741 guide
   * PAM8302 quick guide
   * Proximity Trinkey guide
   * Order up some new parts
   * All The Misc.


33:35 @MakerMelissa
   * Last Week:
   * Finished up code.circuitpython.org interface updates for now and made live
   * Finished up guide for new 1.69” TFT which should hopefully be published soon
   * Started looking into the Raspberry Pi TFT/BrainCraft issues as there seems to be quite a few of them lately
   * This Week:
   * Fix some of the Raspberry Pi issues
   * Currently working on some issues that appear to be related to the backlight not turning on
   * Need to dive into the black magic (meaning  poorly documented) of Device Tree Overlays
   * Get back to e-Ink guide updates


35:30 @Neradoc (no mic)
   * Last week
   * Finished the new release of the keyboard layouts repo, a few new languages and a generator to automate making new ones
   * A little circup PR to link to the board download page if there’s a CP update
   * This week
   * PR the keyboard_layout module to adafruit_hid
   * Dig into mac layouts, and further tests, maybe pytest, and better documentation
   * Finish and publish a macro library, trying a syntax to easily mix keys, consumer controls, midi, and others (audio ?) in a macro file

## 36:17 In The Weeds
36:38 @kattni - CircuitPython I2S audio bug. https://github.com/adafruit/circuitpython/issues/5283

## 44:53 Wrap-Up
