# CircuitPython Weekly for July 19, 2021

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


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:18 The ReadME Podcast: Changing the hardware development game at Adafruit
The ReadME Podcast presents: Changing the hardware development game at Adafruit - How Limor Fried paves the way for millions of makers - GitHub.
### 3:41 CircuitPython Day is August 6th, Set Your Calendars!
8-6-2021 is the Snakiest day of the year and it's also this year's CircuitPython Day! The day highlights all things CircuitPython and Python on Hardware.

Working with CircuitPython? Tag your projects #CircuitPythonDay2021 on social media and Adafruit will look to highlight them.

Tentative Activities
* 1 pm US Eastern Time: Jeff, Dan and Kattni Discuss CircuitPython
* 3 pm US Eastern Time: A CircuitPython Board Tour with Ladyada
* 5 PM US Eastern: Time: Scott’s Deep Dive, special edition

Community Participation

If you have a project – plan on being on Adafruit Show & Tell on Wednesday 8-4-2021 or post them on social media tagging #CircuitPythonDay2021.

Let us know what you have planned and we’ll help and promote. Tag your social media post #CircuitPythonDay2021 and email to cpnews@adafruit.com so we can see it.
### 4:50 Adafruit IO Wippersnapper - We're looking for beta testers!

Adafruit is starting to expand the beta program for Adafruit.io WipperSnapper. If you don't know already - Adafruit.io WipperSnapper is a no-code IoT interface for Adafruit.IO – it lets you turn any WiFi-capable board into an IoT device without any programming. Simply select what devices are connected to which pins on the hardware and it will auto-configure the firmware and even create an IO feed for visualization. The service is 100% free, all you need is an Adafruit.com account.

For information about how to get invited, see the post on the Adafruit Blog.
### 5:35 The CircuitPython GitHub Repo Exceeds 2,500 Stargazers
The CircuitPython GitHub repo exceededs 2,500 Stargazers this week! Thank you to all the people who have chosen to star the CircuitPython code repository - Adafruit Blog.
### 5:55 Hack Chat with Adafruit's Ladyada July 21st
The Adafruit crew will host the Hack Chat on Wednesday, July 21 at noon Pacific / 3pm EDT.

Especially over the last year and a half, most of us have gotten the feeling that there's little distinction between our computers and ourselves. We seem welded together, inseparable even, attached as we are day and night to our machines as work life and home life blend into one gray, featureless landscape where time passes unmarked except by the accumulation of food wrappers and drink cans around our work areas. Or maybe it just seems that way.

Regardless, there actually is a fine line between machine and operator, and in most instances it's that electromechanical accessory that we all love to hate: the keyboard. If you buy off the shelf, it's never quite right -- too clicky, not clicky enough, wrong spacing, bad ergonomics, or just plain ugly design. The only real way around these limitations is to join the DIY keyboard crowd and roll your own, specifically customized to your fingers and your needs -- at least until you realize that it's not quite perfect, and need to modify it again.

Hitting this moving target is often as much a software problem as it is a hardware issue, but as is increasingly the case these days, Python is ready to help. To go into depth on how Python can be leveraged for the custom keyboard builder, our good friends at Adafruit, including Limor "Ladyada" Fried, Phillip Torrone, Dan Halbert, Kattni Rembor, and Scott Shawcroft will stop by the Hack Chat. We suspect they'll have some cool stuff to show off, in addition to sharing their tips and tricks for making DIY keyboards just right. If you're building custom keebs, or even if you're just "keyboard curious", you won't want to miss this one - Hackaday and YouTube.
### 7:44 New Book: Visual Studio Code for Python Programmers
A new book, just out, is a huge boon to Python developers looking to use the free Visual Studio Code (VSC) editor, aptly named: Visual Studio Code for Python Programmers, by April Speight - Adafruit Blog with review and Amazon.
### 8:11 Projects Using the New GitHub Copilot AI Knowledgebase
Users continue to test the technical preview of GitHub Copilot to see what it can do. Here are a couple of examples of note:
* Copilot writes a text-based game in Python - sandyuraz.com.
* Copilot Importer: why write code when you can import it directly from GitHub Copilot? - PyPI.org.
### 8:50 30,000 thanks for the Adafruit Discord Community!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 30,000 humans, thank you! Adafruit believes Discord offers a unique way for CircuitPython folks to connect. Join today at https://adafru.it/discord.
### 9:20 CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott and guest @jim_mussared talk about MicroPython and debugging the native emitter.

You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist - YouTube.
### 10:05 The TalkPython Podcast - MicroPython + CircuitPython - Now Online
The TalkPython Podcast Episode #325: MicroPython + CircuitPython, featuring Damien George from MicroPython along with Scott Shawcroft from CircuitPython and Adafruit is now online - talkpython.fm and YouTube.
### 10:38 Newsletter
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.
## 11:35 State of CircuitPython, Libraries and Blinka
### 11:48 Overall
* 50 pull requests merged
  * 16 authors - lesamouraipourpre, kattni, FoamyGuy, hierophect, weblate, DavePutz, makermelissa, AdamCummick, tannewt, Neradoc, hathach, dhalbert, deshipu, jepler, bobthechemist, dunkmann00
  * 11 reviewers - makermelissa, lesamouraipourpre, kattni, FoamyGuy, microDev1, hierophect, tannewt, jedgarpark, ladyada, dhalbert, jepler
* 44 closed issues by 13 people, 15 opened by 13 people


### 12:40 Core
* 20 pull requests merged
  * 12 authors - jepler, AdamCummick, kattni, weblate, hierophect, tannewt, Neradoc, hathach, dhalbert, deshipu, DavePutz, bobthechemist
  * 6 reviewers - hierophect, tannewt, dhalbert, kattni, jepler, microDev1
* 6 open pull requests
  * https://github.com/adafruit/circuitpython/pull/3696 (Open 245 days)
  * https://github.com/adafruit/circuitpython/pull/4131 (Open 164 days)
  * https://github.com/adafruit/circuitpython/pull/4793 (Open 59 days)
  * https://github.com/adafruit/circuitpython/pull/4925 (Open 23 days)
  * https://github.com/adafruit/circuitpython/pull/4940 (Open 20 days)
  * https://github.com/adafruit/circuitpython/pull/4961 (Open 16 days)
* 35 closed issues by 6 people, 9 opened by 7 people
* 452 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 7.0.0: 37 open issues
  * 7.x.x: 6 open issues
  * 8.0.0: 1 open issues
  * Libraries: 16 open issues
  * Long term: 386 open issues
  * Support: 5 open issues
  * 1 issues not assigned a milestone


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


Overall: Dan, Jeff, Kattni and I went over the 7.0.0 milestone list and decided which things we wanted to finish for 7.0.0. We’ll continue doing pre-releases as we work through those issues. Please let us know if there are things you think that should be done for 7.0.0 that aren’t marked with that milestone.
### 15:25 Libraries
* 23 pull requests merged
  * 6 authors - makermelissa, lesamouraipourpre, kattni, FoamyGuy, jepler, dunkmann00
  * 8 reviewers - makermelissa, lesamouraipourpre, kattni, FoamyGuy, tannewt, jedgarpark, ladyada, jepler
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_Pypixelbuf/pull/32 (Days open: 37)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/154 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/41 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1675/pull/10 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_MIDI/pull/36 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_IL91874/pull/11 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1681/pull/5 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1680/pull/2 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_IL0373/pull/22 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Gizmo/pull/20 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1608/pull/11 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_IL0398/pull/11 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/46 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_OV2640/pull/4 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/8 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/7 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/6 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/4 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/5 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/3 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MacroPad/pull/1 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/330 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/328 (Days open: 1)
* 7 closed issues by 7 people, 6 opened by 6 people
* https://circuitpython.org/contributing
  * 319 open issues
  * 3 good first issues
  * 50 open pull requests (Oldest: 577, Newest: 1)
Library updates in the last seven days:

#### New Libraries
 * [Adafruit_CircuitPython_Pixelbuf](https://github.com/adafruit/Adafruit_CircuitPython_Pixelbuf)
 * [Adafruit_CircuitPython_MacroPad](https://github.com/adafruit/Adafruit_CircuitPython_MacroPad)

#### Updated Libraries
 * [Adafruit_CircuitPython_DisplayIO_SSD1306](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306)
 * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
 * [Adafruit_CircuitPython_DisplayIO_SSD1305](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1305)
 * [Adafruit_CircuitPython_SSD1327](https://github.com/adafruit/Adafruit_CircuitPython_SSD1327)
 * [Adafruit_CircuitPython_SSD1331](https://github.com/adafruit/Adafruit_CircuitPython_SSD1331)
 * [Adafruit_CircuitPython_SSD1351](https://github.com/adafruit/Adafruit_CircuitPython_SSD1351)
 * [Adafruit_CircuitPython_ST7789](https://github.com/adafruit/Adafruit_CircuitPython_ST7789)
 * [Adafruit_CircuitPython_ST7735](https://github.com/adafruit/Adafruit_CircuitPython_ST7735)
 * [Adafruit_CircuitPython_HX8357](https://github.com/adafruit/Adafruit_CircuitPython_HX8357)
 * [Adafruit_CircuitPython_ILI9341](https://github.com/adafruit/Adafruit_CircuitPython_ILI9341)
 * [Adafruit_CircuitPython_PyBadger](https://github.com/adafruit/Adafruit_CircuitPython_PyBadger)
 * [Adafruit_CircuitPython_turtle](https://github.com/adafruit/Adafruit_CircuitPython_turtle)
 * [Adafruit_CircuitPython_PYOA](https://github.com/adafruit/Adafruit_CircuitPython_PYOA)
 * [Adafruit_CircuitPython_DisplayIO_SH1107](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1107)
 * [Adafruit_CircuitPython_Pypixelbuf](https://github.com/adafruit/Adafruit_CircuitPython_Pypixelbuf)
 * [Adafruit_CircuitPython_MIDI](https://github.com/adafruit/Adafruit_CircuitPython_MIDI)
 * [Adafruit_CircuitPython_IL91874](https://github.com/adafruit/Adafruit_CircuitPython_IL91874)
 * [Adafruit_CircuitPython_SSD1681](https://github.com/adafruit/Adafruit_CircuitPython_SSD1681)
 * [Adafruit_CircuitPython_SSD1680](https://github.com/adafruit/Adafruit_CircuitPython_SSD1680)
 * [Adafruit_CircuitPython_IL0373](https://github.com/adafruit/Adafruit_CircuitPython_IL0373)
 * [Adafruit_CircuitPython_Gizmo](https://github.com/adafruit/Adafruit_CircuitPython_Gizmo)
 * [Adafruit_CircuitPython_SSD1608](https://github.com/adafruit/Adafruit_CircuitPython_SSD1608)
 * [Adafruit_CircuitPython_IL0398](https://github.com/adafruit/Adafruit_CircuitPython_IL0398)
 * [Adafruit_CircuitPython_PortalBase](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase)
 * [Adafruit_CircuitPython_SSD1675](https://github.com/adafruit/Adafruit_CircuitPython_SSD1675)
 * [Adafruit_CircuitPython_Display_Text](https://github.com/adafruit/Adafruit_CircuitPython_Display_Text)
 * [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)


Overall: We’re working through updating libraries and example code to work with breaking changes to both CircuitPython and the libraries - thanks to @lesamouraipourpre and @foamyguy for handling a lot of this. Expect to see further updates in the near future, including to Learn guides.
### 18:08 Blinka
* 7 pull requests merged
  * 3 authors - kattni, makermelissa, lesamouraipourpre
  * 2 reviewers - makermelissa, ladyada
* 1 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 159 days)
* 2 closed issues by 2 people, 0 opened by 0 people
* 58 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* Piwheels Downloads in the last month: 11366
Number of supported boards: 75
## 19:04 Hug reports

19:31 @tannewt
* Thanks to our community for holding us to a high standard
* Thanks to Dan, Jeff and Kattni for going over the 7.0.0 backlog
* Thanks to @jimmo for joining my livestream last week and everyone watching for having patience while I got it going.

20:15 @charlesburnaford (lurking) group Hug


20:22 @danh
* @tannewt, @jepler, and @kattni for slogging through a CircuitPython 7.0.0 open issues review meeting.
* @cmora111 for finding a CPy 7 displayio bug and helping out with diagnosis.
* @microDev1 and @DavePutz for reviews and fixes.


@DaveP (lurking)


21:09 @foamyguy
* @kattni for creating the MacroPad library and @danh for the underlying key scanning ability. These made it very easy to work on a project this week.
* @jepler and original author: GH user @rsheldiii for their work on 3D printed keycaps, in particular ones with bezel cutouts for the numerals and other characters. 


21:49 @hierophect
* @tannewt for fixing cleaning up the sleep code in the NRF port
* @maholli and @pranav for having a crack at low power on the SAMD
* @brandon statrom for having a crack at the STM32 L4 port
* @everyone who has made this community an awesome place to work for the last two years. Looking forward to continuing to contribute.
* @tannewt, ladyada and the adafruit team for their understanding and help with my upcoming job transition


23:10 @jepler
* @jerryn for testing as always
* @kattni we are going to start using the phrase “level up” to talk about your work in the core
* @danh, @kattni, and @tannewt for going through the bug list together on Friday
* @hierophect all the best wishes for what you’re doing next!




23:53 @jerryn
* @jepler for the OV2640 JPEG mode demo
* @tannewt for all the work on getting the microbit_v2 build added. 


24:19 @kattni
* @danh for helping me through the `_pixelbuf` rename. 
* @jepler for a quick question answered ahead of the `_pixelbuf` rename.
* @danh for the helper code needed to remove `gamepad` from the CircuitPlayground library, while still maintaining the current API.
* @jepler, @danh and @tannewt for reorganising the 7.0.0 CircuitPython issues
* @foamyguy for addressing an issue with the MacroPad library that was causing it to fail to work with the LED Animation library.
* @Mr. Certainly (Bruce) for helping us track our Discord member numbers each week, and keeping us apprised on milestones


25:04 @makermelissa
* @kattni for her first Blinka contribution with adding rainbowio
* @fede2 for the initial work on adding the BeagleV StarLight Beta Prototype to PlatformDetect
* @pdp7 for getting a lot of great things into the latest Fedora image
* Group Hug


@microDev (lurking)


25:41 @Silvia (just lurking)   Group Hug

## 25:48 Status Updates

26:13 @tannewt
* Merged in micro:bit v2 support. Still kinda rough.
* Switched to knocking out issues for 7.0.0. It’s a nice change of pace.
* Made a PR for all_matches for ScanEntry.match
* Made a PR to remove MICROPY_PORT never reset-ish defines for atmel-samd. It’s much clearer to use never_reset everywhere.
* More issues this week and continuing to push the BLE app side of things. iOS will pick up next month as Antonio has more availability.

27:53 @danh
* Fixed a build issue re uploading stubs.
* Fix some typos in `keypad`.
* Wrote a small library for @kattni to convert keypad events into states.
* Still working on audio issues on RP2040. Narrowing it down.


29:37 @foamyguy
* Last week
   * Created a basic math practice problem application for the macropad
   * Made some tweaks inside the MacroPad library to make it’s pixels object compatible with the LED_Animation library
   * Swept through Learn Guide repo to make some fixes based on new behavior with OnDiskBitmap
   * Learned about the cycle_complete callback from LED_Animations and figured out how to use it to run a single cycle of the comet animation.
* This week
   * Begin a larger effort to fix things that result from breaking changes with 7.x across many libraries and learn guides.
   * Learn more from “under the hood” in LED_Animation and try to create some custom animations that I have in mind.
   * Record an updated video about installing and using CircuitPython stubs now that it is much easier to do.


31:43 @hierophect
* Last week:
   * Mayhem with moving, family, and job transition stuff
   * Resolved a timer leak in the ESP32S2 PWM module, along with a number of other unseen issues, making it an mild refactor overall.
   * Rebasing the exception storage PR, which has taken me longer than I’d like to catch up with given all the heap stuff it’s working with.
   * Last couple weeks, implementing the SleepMemory modules on STM32, RP2040 and revisiting/double checking ESP32S2 and NRF52 for use with the next file system
* This week:
   * Finish the exception storage rebase, and fit it in alongside the low power code so it works with the new next file changes
   * Wrap up the sleep memory stuff for Next File
   * See how much SAMD deep sleep help I can fit in before starting my new position


35:13 @jepler
* Last week:
   * Calculator guide went live last week!
   * JPEG mode for OV2640, tested on ESP32-S2.  You can save a 2 megapixel jpeg to an SD card, wow!  There are problems carrying over the correct exposure value from the preview mode, though.
   * Flash savings PRs all got merged (I have some more space savings ideas cooking but won’t PR them yet)
* This week:
   * 7.0.0 milestone issues (one PR in for review this morning; I need to grab more from the list because I only got a light load on Friday)
   * Working on camera exposure settings carryover
   * Maybe adding the adafruit_ticks library
   * Participating in the Keyboard Hack Chat on Wednesday -- https://hackaday.io/event/180454-python-your-keyboard-hack-chat-with-adafruit


36:50 @jerryn
* Submitted PR to enable CRC by default for RFM9x
   * Minimal impact on exiting CP deployments due to the use of “explicit header”
      * Header overrides the CRC setting anyway. Radiohead has an additional check. 
* Tried to test microbit-v2 but could not get it working via Mac/Chrome




39:12 @kattni
* Last week:
   * Updated MacroPad guide to not have warnings about using “Absolute newest” CircuitPython after 7.0-alpha.4 was released.
   * Replaced code elements with embedded code from GitHub (there was an issue with CI on the Learn repo that needed to be dealt with, and wasn’t handled until the weekend, so code embeds were updated during the week.)
   * Added MacroPad library to the bundle
   * Continued updating the MacroPad library to address bugs/feature requests
   * Tested a PR on pypixelbuf and merged.
   * Tried adding color constants to `rainbowio` per Limor’s request, but determined it’s not worth the bytes for now.
   * Published the TCA4307 guide - I2C hot-swappable buffer
   * Wrote up a MacroPad HID demo for Noe and Pedro that lights up each key when pressed and plays a different tone for each key pressed.
   * Started the NeoKey Ortho Snap guide
   * Started a spreadsheet to track the 7.0.0 CircuitPython API breaking changes and current library breaking changes
   * Created a new Python library called `adafruit_pixelbuf`, and migrated code from `adafruit_pypixelbuf` minus the `colorwheel()` code.
   * Renamed `_pixelbuf` to `adafruit_pixelbuf` and aliased back to `_pixelbuf` for now to maintain backwards compatibility.
   * Put in PRs to update NeoPixel and DotStar to use `adafruit_pixelbuf` if available, and if not, fall back to `_pixelbuf` or `adafruit_pypixelbuf` for backwards compatibility.
   * Added `rainbowio` to Blinka.
* This week:
   * Continue the NeoKey Ortho Snap guide
   * Go over breaking changes spreadsheet with @foamyguy
   * Look into why the CircuitPlayground library PR is failing Sphinx
   * Hackchat Wednesday
   * Once `alpha.5` is released, update any code examples using `_pixelbuf.colorwheel()` to use `rainbowio`


45:16 @MakerMelissa
* Last Week:
   * Finished up my Cat Detector guide
   * Added BeagleV Starlight Beta Prototype support to Blinka
   * Fixed an issue with the MagTag’s NeoPixels and CircuitPython 7
* This Week
   * Working on GitHub issues I had put off
   * Look into a possible SPI issue/fix with Blinka
   * Continuing on the WebSerial ESPTool fixes for the ESP32


@microDev (lurking)

## In The Weeds

## 46:10 Wrap-Up
