# CircuitPython Weekly for June 15th, 2020


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


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 using the following link: https://raw.githubusercontent.com/adafruit/adafruit-circuitpython-weekly-meeting/master/meeting.ical


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.

## 4:50 Community News

CircuitPython Bluetooth BLE Library Support for Desktop Python
Ladyada has been trying out the NEW BLE CircuitPython library support for desktop (video). Having easy, cross-platform python support for wireless BLE has been a challenge for many years. Thanks to Dan Halbert’s great work on CircuitPython bleio and the Python bleak library, we now have many of our CircuitPython BLE examples working on desktop Python! Finally, heart rate monitors, bike cadence sensors, thermometers, and more, can be connected to Python! - YouTube and the Adafruit Blog.

A CircuitPython-powered Bracelet
Geek Mom Projects presents a stunning new wearable: a NeoPixel bracelet powered by an Adafruit Gemma M0 using CircuitPython.
Still experimenting with blending LED colors in semi-translucent resin. Now trying the technique in wearables (of course). The cuff bracelet contains two side emitting LED strips facing opposite directions.
The electronics are cast in resin from a mold off Amazon - Twitter.

The CircuitPython plug-in for the Atom editor has been updated with some awesome new features! - Joseph Banks and Atom.

From CedarGroveStudios: A repair of a damaged heirloom clock using the original acoustic whistles and chime. Sound components are activated by servos and a solenoid. It uses an Adafruit Cricket + PyBadge + RTC FeatherWing, and custom I2C host PCB from Oshpark. Coding with CircuitPython - YouTube and Twitter.

Web Scraping in Python: Tools, Techniques, and Legality. Kimberly Fessel discusses her excellent tutorial created for PyCon 2020 online titled "It's Officially Legal so Let's Scrape the Web" - Real Python and Twitter.

Have any Python on Hardware related stories or projects to share? Submit it to the Python for Microcontrollers newsletter:
https://github.com/adafruit/circuitpython-weekly-newsletter/blob/gh-pages/_drafts/2020-06-16-draft.md
## 7:47 State of CircuitPython, Libraries and Blinka


### 8:26 Overall
* 31 pull requests merged
  * 16 authors - DavePutz, FoamyGuy, brentru, hierophect, makermelissa, kattni, tannewt, nnja, rhooper, fvzeppelin, jimbobbennett, dhalbert, siddacious, kmatch98, JanHBade, xorbit
  * 12 reviewers - brentru, FoamyGuy, ladyada, makermelissa, kattni, tannewt, jimbobbennett, dhalbert, k0d, jepler, theacodes, dherrada
* 14 closed issues by 9 people, 19 opened by 14 people


Overall (kattni): 5.4.0 beta was just released and feel free to download and test it.  It has been fairly stable, and there are a lot of new features in it.  The best thing you can do is download it, try it with your current projects, and let us know how it goes.  Just testing this way and filing issues is a great way to help out.  In terms of the libraries, we’ve been finally seeing some new libraries again now that there’s new hardware being manufactured again.  That's been good to see.  It was also nice to have some time to go through and do some house cleaning as well since we had time to do that.  More boards are being added all the time to blinka (our circuitpython compatibility layer for single board computers like raspberry pi).  We also added Blinka support for displayio recently which is a huge project.


### 11:21 Core


* 6 pull requests merged
  * 4 authors - tannewt, dhalbert, hierophect, DavePutz
  * 5 reviewers - jepler, dhalbert, k0d, ladyada, tannewt
* 13 open pull requests
  * https://github.com/adafruit/circuitpython/pull/2780 (Open 58 days)
  * https://github.com/adafruit/circuitpython/pull/2863 (Open 39 days)
  * https://github.com/adafruit/circuitpython/pull/2879 (Open 34 days)
  * https://github.com/adafruit/circuitpython/pull/2918 (Open 29 days)
  * https://github.com/adafruit/circuitpython/pull/2914 (Open 29 days)
  * https://github.com/adafruit/circuitpython/pull/2966 (Open 18 days)
  * https://github.com/adafruit/circuitpython/pull/2985 (Open 14 days)
  * https://github.com/adafruit/circuitpython/pull/3003 (Open 11 days)
  * https://github.com/adafruit/circuitpython/pull/3026 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/3035 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/3034 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/3033 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/3031 (Open 0 days)
* 2 closed issues by 1 people, 6 opened by 6 people
* 311 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 5.x.0 - Features: 11 open issues
  * 5.x.x - Bug Fixes: 35 open issues
  * 6.0.0: 17 open issues
  * Libraries: 11 open issues
  * Long term: 221 open issues
  * Support: 4 open issues
  * 12 issues not assigned a milestone


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


### 12:30 Libraries


* 25 pull requests merged
  * 12 authors - FoamyGuy, brentru, makermelissa, kattni, nnja, rhooper, fvzeppelin, jimbobbennett, siddacious, kmatch98, JanHBade, xorbit
  * 11 reviewers - brentru, FoamyGuy, ladyada, makermelissa, kattni, tannewt, jimbobbennett, dhalbert, jepler, theacodes, dherrada
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/48 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/20 (Days open: 3)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Text/pull/49 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/38 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_ICM20X/pull/9 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ICM20X/pull/8 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/39 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/38 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/40 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ILI9341/pull/23 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ILI9341/pull/22 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_HX8357/pull/13 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_HX8357/pull/12 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT/pull/18 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT/pull/19 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT/pull/16 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_GPS/pull/47 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ST7735R/pull/19 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ST7735/pull/13 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1351/pull/14 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ST7789/pull/18 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_SSD1331/pull/12 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/252 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/90 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BME280/pull/38 (Days open: 1)
* 10 closed issues by 7 people, 12 opened by 8 people
* https://circuitpython.org/contributing
  * 178 open issues
  * 37 open pull requests (Oldest: 525, Newest: 1)
Library updates in the last seven days:
**New Libraries**
 * [Adafruit_CircuitPython_SHTC3](https://github.com/adafruit/Adafruit_CircuitPython_SHTC3)
**Updated Libraries**
 * [Adafruit_CircuitPython_BLE_BerryMed_Pulse_Oximeter](https://github.com/adafruit/Adafruit_CircuitPython_BLE_BerryMed_Pulse_Oximeter)
 * [Adafruit_CircuitPython_AHTx0](https://github.com/adafruit/Adafruit_CircuitPython_AHTx0)
 * [Adafruit_CircuitPython_LPS2X](https://github.com/adafruit/Adafruit_CircuitPython_LPS2X)
 * [Adafruit_CircuitPython_ESP32SPI](https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI)
 * [Adafruit_CircuitPython_Display_Text](https://github.com/adafruit/Adafruit_CircuitPython_Display_Text)
 * [Adafruit_CircuitPython_Wiznet5k](https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k)
 * [Adafruit_CircuitPython_ICM20X](https://github.com/adafruit/Adafruit_CircuitPython_ICM20X)
 * [Adafruit_CircuitPython_MiniMQTT](https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT)
 * [Adafruit_CircuitPython_LED_Animation](https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation)
 * [Adafruit_CircuitPython_ILI9341](https://github.com/adafruit/Adafruit_CircuitPython_ILI9341)
 * [Adafruit_CircuitPython_HX8357](https://github.com/adafruit/Adafruit_CircuitPython_HX8357)
 * [Adafruit_CircuitPython_AzureIoT](https://github.com/adafruit/Adafruit_CircuitPython_AzureIoT)
 * [Adafruit_CircuitPython_GPS](https://github.com/adafruit/Adafruit_CircuitPython_GPS)
 * [Adafruit_CircuitPython_ST7735R](https://github.com/adafruit/Adafruit_CircuitPython_ST7735R)
 * [Adafruit_CircuitPython_ST7735](https://github.com/adafruit/Adafruit_CircuitPython_ST7735)
 * [Adafruit_CircuitPython_SSD1351](https://github.com/adafruit/Adafruit_CircuitPython_SSD1351)
 * [Adafruit_CircuitPython_ST7789](https://github.com/adafruit/Adafruit_CircuitPython_ST7789)
 * [Adafruit_CircuitPython_SSD1331](https://github.com/adafruit/Adafruit_CircuitPython_SSD1331)


### 14:16 Blinka


* 0 pull requests merged
  * 0 authors - 
  * 0 reviewers - 
* 2 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/304 (Open 7 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/307 (Open 3 days)
* 2 closed issues by 2 people, 1 opened by 1 people
* 24 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI Downloads in the last week: 2068
Number of supported boards: 52




## 15:02 Hug reports
15:51 @kattni
* @stargirl for becoming a community moderator on Discord
* Everyone involved with the move to `main` branch, and in removing loaded language from the CircuitPython project
* @Jeff E for taking notes today and running status updates
* PT for being really supportive last week and for an important conversation last week
* @community moderators for handling a situation last week.
* Adafruit for continuing to be vocal and active in support of Black Lives Matter and trans rights.


@kjw (lurking)


16:46 @MakerMelissa
* @stargirl for becoming a community moderator
* Group Hug


@Mark(Gamblor) lurking
*  
17:10 @sommersoft
* I've been a bit lurky the last couple weeks, so a big ol' Group Hug from me.


17:25 @stargirl (offline)
* @tannewt for being a guest on Python Tea.
* The moderators for allowing me into their gang.


17:42 @tannewt
* @jepler for a PR #3034 replacing more master/slave terminology.
* @nnja for having me on PythonTea
* @stargirl for joining the moderation team.
* @arturo182 for sharing his implementation of busio.SPI for the ESP32-S2.


@anecdata (lurking)


@anneb (lurkling)


19:07 @brentru (text only)
* @jerryn for looking into reducing the size of feather m0 radio build 
* A warm welcome to @stargirl to the community moderators
* Group hug to all


@cater (lurking)


19:29 @CGrover (text only)
* To the Adafruit team and leadership for their visible commitment to and demonstrated examples of thoughtful and energetic social responsibility.


19:47 @danh
* Welcome @stargirl to moderator land.


@danybd (assumed lurking)


@davep (lurking)


20:07 @DavidGlaude (lurking)
* To @danh for the bleio on Raspberry Pi and other Blinka board
* To @MakerMelissa and @danh for the Web Bluetooth learn guide


@dherrada (lurking)


20:28 @foamyguy
* @jepler for feedback and ideas on circuitplayground library PR
* @jepler for looking into the ‘latest’ link in the docs being broken on some page when I asked about it
* @Jerryn for feedback on PyPortal pybadger support PR
* @fede2cr for the idea of pybadger working on PyPortal and testing out my implementation and offering feedback
* The Adafruit team working in NY to fill orders
* The Learn Guide Review team.
* Group hug to all working on renaming repo branches to main. I would be happy to help out in the effort to rename branches on the libraries if we are going to do that.


22:05 @hierophect
* @tannewt, @markOlsson and @jepler for reviews and discussions, 
* Group hug


@JacobT (lurking)


@jasonp (lurking)


22:24 @jepler
* Group hug
* Extra hug to anyone dealing with pushback about renaming things
* @ladyada for offering helpful advice about my current project, where I’m feeling a bit stuck


23:06 @jerryn
* All involved in renaming the CP repo from master to main
* @jepler for the major renaming effort at all levels.
* Group Hug
## 23:43 (0:00 - recording restarted) Status Updates
0:45 @jepler
* Right now:
   * Explain what status updates are
* Last week:
   * Worked on SDIO, but did not make any visible progress.
   * Worked on renaming things in the CircuitPython core -- particularly around I2C and SPI bus names
   * Worked on improving the documentation so that readthedocs would work better when going from 5.0.x or older versions to “latest” version (fewer 404s)
* This week:
   * Continuing on SDIO.  I have some additional approaches I will be trying to figure out why I can’t communicate with the SD card.
   * From last week, I still need to revive the “add weblate to circuitpython.org” pull request
* Fun stuff:
   * I made a little clock with CircuitPython, an RTC, and 4 charlieplex wings.  The basics work, but I want to add time-of-day based dimming to the code and create a 3d-printed enclosure
   * About to put in an order for a bunch of shelving to store my growing collection of electronics, my “office” clutter is getting way out of hand.


2:16 @jerryn
* Tried to find a way to “freeze” rfm9x and bus_device into feather_m0_rfm9x build but not successful. Not sure it’s feasible any more.
* Worked on reducing size of rfm9x lib -- found  a few hundred bytes, but it is >15K in memory.  
* Am trying to get more involved in reviews.
* The baby birds all left the nest this morning-- I’m so proud of them!


4:45 @kattni
* Last week:
   * Started on guide for ST 9-DoF combo boards - guide is nearly done, need to do lib install and code examples on code pages for Arduino/Python & CircuitPython
      * Downloads page populated, two pinouts pages completed, overview done.
      * Fritzing diagrams for both Arduino and CircuitPython already in place
   * Newsletter vid
   * Brought Dylan up to speed on creating a project guide for his first full project
* This week:
   * Library Monday
   * Newsletter vid
   * Finish guide
   * Go through tagged PRs
   * Misc


6:05 @kjw (lurking)
* Last and This Week: working on a game for an Adafruit Guide using BLE Advertisements.


6:17 @MakerMelissa
* Last Week:
   * Focused on displayio for Blinka
   * Tested out the drivers on all of the color displays and updated repos to publish on PyPI
   * Added Rotation and some basic Backlight support
   * Added some changes to work with certain “odd” displays such as the SSD1351 and SSD1331
* This Week:
   * Working on creating a calibration script for the 9-DoF featherwing that runs on the raspberry Pi but connected using the stemma connector.
   * Probably working on some github PRs/issues after that
* Fun Stuff
   * Working on an animated RGB Message board with RGB Matrix Panels and powered by a Raspberry Pi running over Python
   * Currently doing lots of 3D printing for it


@Mark (Gamblor) (lurking)


7:46 @stargirl (offline)
* Oops I’m a moderator.
* Got Hostess’s SPI up to 8MHz with a little DMA magic. Looks like it might actually be viable after all. I’ll be open sourcing everything once I have a chance to clean it up a bit, and will consider some sort of production run.
* Had a really good conversation with a very popular YouTuber about Winterbloom’s CircuitPython-powered Eurorack modules. :)
* Started prototyping a new synth module inspired by the Roland Juno-60.


8:24 @sommersoft
* Last 2 Weeks:
   * RosiePi:
      * Finished cleaning up and syncing the various repositories, and moving them to the physaCI organization.
      * Got a pytest plugin written to allow RosiePi to run tests written as standard pytest functions, and receive test result information (logs). With the plugin done, I wrote about 6 basic tests in a matter of minutes (after factoring out dev exploration).
   * Worked out some possible enhancements to the docs when the “you’re viewing outdated version”, per @foamyguy’s issue #3022 and collaboration. Nothing is concrete yet, but static file referencing will need to likely be fixed for older versions of the documentation.
   * Did some research on how to automate changing default branches from 'master' to 'main', as @kattni had asked about it. It's fairly straightforward up to setting a new default branch with git and the GitHub API. However, it doesn't seem that there is currently an API endpoint to delete a branch. With GitHub at least mentioning that they're looking to switch default branch naming as well, this API endpoint may become available?
   * Non-Code related: had some family in over the weekend for sun, sand, and food. Good to get a recharge, and some patchy sunburn. I'm done with the spray-on sunblock; sure it's less messy...but it's just too impossible to get good coverage. :D
* This Week:
   * RosiePi:
      * Get the new pytest-based system pushed to the repository, so I can move to using it on a Raspberry Pi node.
      * Work out some apparent errors with my CSS on physaCI website, when viewed with Safari.
   * Get some working code down for automated branch name switching.
   * A couple Adabot things I’ve been not giving any attention to.
   * Whatever comes up.


14:26 @tannewt
* Added ESP32-S2 UART support.
* Released Beta.1
* Took a look at SH1107 driver but it’ll need core work.
* Streamed Friday and was also on PythonTea w/Nina
* Distracted by ElectionCal.US stuff.
* Focused on SPI this week.
* Need to finish testing RC circuit for double tap reset.
* Fun stuff: Age of Empires II
* Impactful stuff: electioncal.us




@anecdata (lurking)


@anneb (lurkling)


17:07 @brentru (text only)
* Nothing CP-related last week or this week.


@cater (lurking)


17:32 @CGrover: (text only)
* Completed the wooden enclosure for the hybrid cuckoo clock project (Musique Concrete Clock), powered by CircuitPython and two custom code libraries. There’s also a special OSH Park PCB in there that powers a PyBadge from the Crickit FeatherWing whilst providing the I2C link. After a few timing adjustments, I hid it on top of the bookshelf in the library in order for it to be heard and not seen. If you recall, the acoustic components came from a damaged heirloom clock. The original clock was a consistent and soothing presence in my spouse’s childhood home and now has brought that lost past into the present. Video:  https://youtu.be/t7I-2vPSn_E
* The demand within the family for the Clock_Minima (MiniM4) large LED clock project increased to the point that a custom PCB is needed to streamline the build. The first boards arrive from OSH Park tomorrow and if working will leave for their new homes by the end of the week. I’ll post project photos after that. This project was inspired by JP’s Metro Mininalist Clock.
* Hoping to stop making clocks at some point and get back to some music projects.
* Non CP:  Replacing the Windows box with an iMAC, the final step to reduce the recording studio’s footprint and complexity. A mostly wonderful experience. Using the transition to weed out what was once important. Re-ripping the CD library, as well. Do I really need to keep that version of “Song of the Barefoot Mailman”?


19:08 @danh
* Finished bleak re-implementation of _bleio for host computers. Tested by @ladyada and me on various BLE peripherals, and now under review. Works well on Windows and Linux, including Raspberry Pi. Working on MacOS awaits some fixes on the bleak side.
* Fixing a small number (maybe one?) of _bleio nits discovered during the bleak work.
* Next major look: _bleio implementation for an ESP32 co-processor: might be Python or might be native C.


@davep (lurking)


21:17 @DavidGlaude (lurking)
* Tested FeatherWing EnviroPlus from Pimoroni for compatibility with CP 5.x. Seems to work for most examples, except maybe two.
* Wrote a “jiggle the mouse” (to keep the PC awake) that does it simultaneously in BLE and USB as I use two computer to telework (but failed to appear as a mouse twice in BLE). @danh gave some hints on how to do that.
* Tested CLUE <> Micro:bit communication (code found in the newsletter).
* Non CP related:
   * Tried Citrix VDI on a Pi4, I could do teleworking with a Pi.
   * Mandatory physical back to office once a week starting tomorrow. :-(


@dherrada (lurking)


22:08 @foamyguy
        Last week
* Tilemap  Game Guide finished review and was published!
* Adafruit order arrived
* Working on pybadger library to add support for  PyPortal.
* Adding play_mp3() functionality to circuitplayground library for CPB
        Next week
* Look into modifying the circuitplayground library to release the SPEAKER_ENABLE pin so user code can use it.
* Working on adding pybadger support for Pew Pew M4 and possibly Hallowing M4, and CPB + TFT Gizmo
* Look into possibility of Tensor Flow Lite yes / no listener with external MAX9814 microphone


24:47 @hierophect
* Last week
   * Added TCM support to the H7 and F7
   * Fixed I2C speed on the H7 and F7
   * Got a control working for the RGB Matrix, but unfortunately I’m already having some trouble even on the F405 feather so that’s going to take some more investment
   * Got started on taking over the i.mx 1050
* This week
   * Log and fix issues with the RGB Matrix in STM32
   * Wrap up the 1050 additions
   * Add pulseIO to the i.mx port


@JacobT (lurking)


@jasonp (lurking)




## 27:18 In The Weeds
27:50 @kjw
* 28:00 Occasional BLE Advertisement reception problems - 20 seconds listening (start_scan()) where another device is transmitting (start_advertising()) with an interval of 0.026875s but zero packets received. Only occurs approximately 1 in 15 runs. Devices sitting on a desk in a triangle 8in from each other. The packets are heard on another device so transmission is fine. One of the other devices only hears 11 and none of those are scan response data. Rx buffer at 1536. One of the “deaf” boards does pick up other BLE chitchat from non-Adafruit devices nearby. Some data from experiments with some short example code backing up what I’ve seen: https://forums.adafruit.com/viewtopic.php?f=60&t=166440
* 40:18 Cut-down libraries for M0 boards. Some libraries are relatively large and can on their own together with one or two other libraries exhaust the memory available on the 32k SAMD21 M0. A recent example of this is adafruit_rfm9x and adafruit_bme280 which would fit together when https://learn.adafruit.com/multi-device-lora-temperature-network/using-with-adafruitio was written but this no longer works. For references, CircuitPython 5.3.0 on a CPX shows gc.mem_free() of 20880 available from REPL. Has there been any prior discussion/work on the benefits and costs of producing multiple versions of libraries for “small” and “big” boards?


43:05 @jerryn - Perhaps a broader discussion of the future support for boards like the m0_rfm9x and other specialized non-express boards.
## 55:48 Wrap-Up
