# CircuitPython Weekly Meeting for February 7, 2023




Welcome to the CircuitPython Weekly meeting notes! Feel free to add your Hug Reports and Status Updates early. During the meeting, we go through them as a round robin sorted by username. If you can’t make the meeting and would still like to participate, add your notes with a “(missing meeting)” after your username and we’ll read them off for you. 


Add any longer-form discussion topics or general questions you have to the “In the weeds” section. 


Thanks! We hope to see you in the meeting!


Jeff is hosting.


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


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.hosted.quelltext.eu/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.
## 4:15 Community News
CircuitPython 8.0 is Released! (sort of)
 title 

ESP32 Buyer’s Guide: Different Chips, Firmware, Sensors
 ESP32 Buyer’s Guide 

The ESP32 Buyer’s Guide describes the different chips, firmware, capabilities, sensors etc. of this popular microcontroller line - eitherway.io.
Project of the Week: EBike/EScooter modular DIY electronics using VESC and CircuitPython
 EBike/EScooter modular DIY electronics using VESC and CircuitPython 

 EBike/EScooter modular DIY electronics using VESC and CircuitPython 

Over the years, Jorge Pinto owned a few different EBikes / EScooters from different brands, and found limitations with all of them, mainly on the software. Knowing that in general, all EBikes and EScooters are equal, Jorge decided to replace the original motor controller electronics and display, from different EBikes/EScooter vendors, with a modular DIY version and running custom software.
The resulting module uses the popular VESC for the motor controller and an ESP32 board running CircuitPython. It is programmed wirelessly with a phone or a PC (just editing Python text files) - OpenSourceEBike.github.io, YouTube, GitHub.
 Find My Cat 

Find My Cat, the GPS Tracker for Pets. Uses a Raspberry Pi and MicroPython - Instructables
 How I added C-style for-loops to Python 

How I added C-style for-loops to Python (or alternatively: How I made the most cursed Python package of all time) - sadh.life.


### 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:58 State of CircuitPython, Libraries and Blinka
**This report contains information from the previous seven days. Any changes (PRs merged, etc.) made today are not included in this report.**


### Overall
* 34 pull requests merged
  * 19 authors - RetiredWizard, MicroDev1, etrevis, DavePutz, Neradoc, BrainBoardz, wkuranowski, Wind-stormger, gneverov, makermelissa, FoamyGuy, jposada202020, tcfranks, jepler, gpongelli, tekktrik, weblate, dhalbert, wtuemura
  * 10 reviewers - MicroDev1, makermelissa, jposada202020, jepler, ladyada, tekktrik, gamblor21, dhalbert, BlitzCityDIY, tannewt
* 17 closed issues by 11 people, 19 opened by 14 people


### 9:57 Core
* 14 pull requests merged
  * 12 authors - RetiredWizard, Wind-stormger, gneverov, FoamyGuy, MicroDev1, DavePutz, jposada202020, jepler, weblate, BrainBoardz, dhalbert, wtuemura
  * 7 reviewers - gamblor21, MicroDev1, dhalbert, BlitzCityDIY, tannewt, jepler, ladyada
* 25 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6037 (Open 355 days)
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 216 days)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 142 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7114 (Open 104 days)
  * https://github.com/adafruit/circuitpython/pull/7141 (Open 101 days)
  * https://github.com/adafruit/circuitpython/pull/7151 (Open 99 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 97 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7221 (Open 80 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 80 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7237 (Open 78 days)
  * https://github.com/adafruit/circuitpython/pull/7282 (Open 67 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 66 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7343 (Open 53 days)
  * https://github.com/adafruit/circuitpython/pull/7396 (Open 39 days)
  * https://github.com/adafruit/circuitpython/pull/7416 (Open 32 days)
  * https://github.com/adafruit/circuitpython/pull/7430 (Open 29 days)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 26 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7471 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/7470 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/7497 (Open 9 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7547 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/7545 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/7549 (Open 1 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7548 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/7551 (Open 0 days)
* 8 closed issues by 6 people, 13 opened by 10 people
* 610 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 8.0.0: 2 open issues
 * 8.1.0: 8 open issues
 * 8.x.x: 53 open issues
 * 9.0.0: 7 open issues
 * Libraries: 20 open issues
 * Long term: 514 open issues
 * Support: 8 open issues
 * Third-party: 4 open issues
  * 2 issues not assigned a milestone


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


### 11:55 Libraries
* 14 pull requests merged
  * 7 authors - makermelissa, jposada202020, wkuranowski, gpongelli, tcfranks, Neradoc, tekktrik
  * 4 reviewers - tannewt, makermelissa, jposada202020, tekktrik
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_LIS3DH/pull/77 (Days open: 7)
    * https://github.com/adafruit/Adafruit_CircuitPython_NeoPxl8/pull/6 (Days open: 3)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/133 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_HT16K33/pull/112 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_floppy/pull/8 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Colorsys/pull/27 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Motor/pull/70 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/58 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_BluefruitConnect/pull/35 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/pull/110 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_ST7735R/pull/30 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/82 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout/pull/79 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/135 (Days open: 1)
  * 47 open pull requests (Oldest: 860, Newest: 1)
* 7 closed issues by 5 people, 5 opened by 4 people
  * 594 open issues
  * 77 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 142655 PyPI downloads over 306 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 26065
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 25135
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1714
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 1592
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1089
  * Adafruit CircuitPython MCP230xx (adafruit-circuitpython-mcp230xx): 959
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 930
  * Adafruit CircuitPython HT16K33 (adafruit-circuitpython-ht16k33): 922
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 903
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 887


#### Library updates in the last seven days:
* **New Libraries**
  * [gpongelli/CircuitPython_gpio_expander](https://github.com/gpongelli/CircuitPython_gpio_expander)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_Motor](https://github.com/adafruit/Adafruit_CircuitPython_Motor)
  * [adafruit/Adafruit_CircuitPython_NeoPxl8](https://github.com/adafruit/Adafruit_CircuitPython_NeoPxl8)
  * [adafruit/Adafruit_CircuitPython_HT16K33](https://github.com/adafruit/Adafruit_CircuitPython_HT16K33)
  * [adafruit/Adafruit_CircuitPython_DisplayIO_Layout](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout)
  * [CedarGroveStudios/CircuitPython_RangeSlicer](https://github.com/CedarGroveStudios/CircuitPython_RangeSlicer)
  * [jposada202020/CircuitPython_Candlesticks](https://github.com/jposada202020/CircuitPython_Candlesticks)
  * [cedargrovestudios/circuitpython_airqualitytools](https://github.com/cedargrovestudios/circuitpython_airqualitytools)
  * [jposada202020/CircuitPython_st](https://github.com/jposada202020/CircuitPython_st)


### 14:28 Blinka
* 6 pull requests merged
  * 2 authors - etrevis, tekktrik
  * 1 reviewers - makermelissa
* 3 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 726 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 486 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/267 (Open 68 days)
* 2 closed issues by 1 people, 1 opened by 1 people
* 89 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 32445
* Piwheels Downloads in the last month: 8864
Number of supported boards: 101


## 15:25 Hug reports
@jepler (hosting)
* Group hug
* Hug to LadyAda & PT for agreeing to send me to pycon again this year


@CGrover (text only)
* To github user @jposada202020 for the Español air quality index (AQI) translation in CedarGrove/AirQualityTools (also in the Community Bundle).
* @tekktrik for continued help with CGrover’s adventures in GitHubLand. I hope to make an ally of the CI monster and gather the fabled treasures soon.


@danh
* @gneverov for asyncio discussions and first core PR
* @DavePutz for a nice ESP32-C3 fix
* @jepler, @MicroDev, @FoamyGuy, @jposada202020 for last-minute fixes for 8.0.0 final


17:38 @DJDevon3
* @FoamyGuy for coding through some tough issues on stream this week.
* @MarkGamblor for getting an animated gif demo working.
* @Desihipu for a really neat MakerCast showing off some new circuit python cameras on a Pico and Wemos. I learned a lot about bare metal AVR programming too, thanks!
* @JohnGallager for some excellent new videos about circuit python programming.


18:21 @foamyguy
* @Neradoc for linking a good video explaining two’s complement usage for storing negative numbers in binary
* @Markgamblor and @Neradoc for helping me understand a bit better how C is storing number values and the behaviors related to it with negative and large numbers.
* @MicroDev for pointing me toward the argcheck validators in the core repo.
* @Tekktrik, @Bablokb, and @Jose David for submitting improvements to Blinka DisplayIO PyGame Display library.
* Jeff and @gneverov for feedback on core PR for displayio validation


19:38 @gneverov (offline)
* @kattni for the github guide which I followed to submit my first PR


19:54 @Jose David (text only)
* @gpongelli for adding a new community library. CircuitPython helper library for gpio expanders (Texas Instrument PCA95xx and TCA95xx chips).
* @tekktrik big hug report, for helping solve my Github Release action problem with a new library, the household was happier after that.


20:22 @kattni
* @KeithTheEE for some very kind words about my assistance with an upcoming event
* @tammymakesthings for lovely chats and regular check ins 
* @jepler for an excellent last minute chat (that looking, is not even in my calendar so it might not have even been in the last week, but hey, if not, it’s worth an extra hug!)
* @SeanTibor for reaching out about doing a workshop during the Education Summit at PyCon, the discussion around which also led to me agreeing to put together a talk proposal as well
* @todbot for talking eurorack power supplies with me
* @JohnPark for helping with a thing I needed done in Adobe Illustrator, and helping find the exact setting for that feature to make it work perfectly.
* @DJDevon3 for chatting about plants (this was over a week ago, but I don’t think I hugged for it)
* @cater for helping me out with the RPi camera software, and determining what to choose for the timelapse project. And for figuring out why my Pi wouldn’t boot properly during the initial set up.
* @jerryn, @cater, @andyh, @skerr for helping me with Raspberry Pi setup woes.
* Group hug!


@KeithTheEE (text only)
* @Kattni for a helpful conversation about pacing when presenting an electronic build-a-long 
* A group hug


@Liz (missing meeting)
* Jeff for fixing the D0-D2 pins for the buttons on the reverse TFT in CircuitPython


22:10 @makermelissa
* Group Hug


22:21 @Mark(gamblor) [ lurking ]
* @foamyguy for fixing a defect i accidentally introduced
* Larry Bank for the AnimatedGIF arduino library that gave me a huge head start on animated GIF support for CP


22:38 @tannewt
* Dan for releasing 8.0 release candidates.
* Pico-coder for sigrok-pico. Very nice to use RP2040 as a logic analyzer.
* Melissa for all of the CP webserial installer work.


23:34 @tekktrik (not present)
* @danh for clarifying an answer about the CPX
* @kattni for being flexible about a meeting last week
* @Jose David for the help PRs last week fixing a variety of issues
* @foamyguy for all the interesting streams - it’s always a blast to tune into
* @skerr for finally being able to release their Feather-format FPGA-based board, very excited to receive it and try it out
* @JohnG for the awesome CircuitPython tutorial and explanation videos
* @jepler for documenting a bug regarding updating release versions within the Discord so I could find it again months later - many headaches avoided
* Group hug!
## 24:24 Status Updates
24:56 @jepler (hosting)
* Last week:
   * investigated i2s performance on esp32s2/esp32s3. S2 is better than s3. But sometimes either one gets stuck in a mode where there are a lot of very small pops. I filed a PR that improves it on s2. Didn’t find that it improved s3 much.
   * Noticed that espcamera is slow to initialize, filed an issue but didn’t diagnose it yet
   * Pulled in an update of ulab to fix some hardfault bugs
* This week:
   * Taking point on my first product guide, the OV5640 camera module
   * Investigating weird usb repl disconnects observed on scorpio only when using neopxl8 module
* Other:
   * Planning to go to pycon 2023, would love to see anyone else in the adafruit/CP community who is attending


28:02 @CGrover (text only)
* Previous week(s): Completed the design and routing of three PCBs for the Eurorack Precision VCO module. Two of the boards are for the final version; one is for developing a new CircuitPython driver for the VCO’s AD5293 SPI dual-supply 10-bit digital potentiometer. The first board, a universal Eurorack power conditioning sub-module, should arrive from OSH Park this week along with a related DigiKey order.
* Next: 
   * Assemble and test the power sub-module board.
   * Update the workshop PyPortal IoT corrosion monitor with the latest release candidate to see if that restores wireless connection reliability. Will also trim out some unnecessary sensor and display abstractions that may be impacting memory management.


29:03 @danh
* Releasing CircuitPython 8.0.0 final today. We’ll talk about it. Has a small number of independent changes for rc.2. rc.3 may not be worth doing, just jump to final.
* Not directly CircuitPython: working on BOOTPROT fuse and brownout checking issues on SAMD21. I wrote code for BOOTPROT repair on every run of the UF2 bootloader and enabled 2.8Vish BOD. Not tested yet.


30:44 @DJDevon3
* Found out there’s a problem with the MCP23017 multiplexer chips. Microchip put out a product notification change for the MCP23017 which affects the TR-Cowbell (and many other projects out there) going forward. Specifically the chip no longer supports all 8 inputs per side, only 7.  That’s a big deal because my PCB uses all 8 inputs on 2 chips. It’s traced into the physical PCB, I can’t change that for boards already produced. I’m sure others will be affected by this in future design planning.
* Started redesigning the TR-Cowbell v1.2.1 which was supposed to be a minor update and it’s turning into a major one. Pivoted to the PCA9539APW multiplexer. Digikey recommends the NXP chip instead of the TI version, the TI version is EOL. The NXP version is an excellent replacement for the MCP23017 with all the same specs except it’s a small SMD chip. The TR-Cowbell kit will no longer have only through-hole components.


33:36 @foamyguy
* Working on adding argument validation to displayio classes in order for more graceful handling of passing in bad values. Slowly but surely amassing better understanding of C in the process.
* Found the relevant changes in the IS31FL3741 core module. Tested and submitted a PR with the fix 
* Still going on CPython bitmaptools implementation for use with Blinka_DisplayIO
* Library PR reviews - Tested a fix for Dot star “phantom” pixels this morning
* Non CircuitPython: Set up stable diffusion environment to run locally so I can play with generating and manipulating images with it. I am a bit late to the party now that ChatGPT is the new thing, but it’s been very interesting and fun to play with and see what it’s current capabilities are.




35:53 @Jose David (text only)
* Last Week
   * Work on an example for the community library Ansi_escape_codes that allows you to easily change colors in your terminal.
   * Working in a CP library to calculate and graph Boxplot with bitmaptools.draw_line and ulab.  
   * Libraries documentation and others
        Next Week:
   * Continue community libraries discovery
   * Varia


36:30 @kattni
* Last week:
   * Reverse TFT guide work
   * Small amount of work on the timelapse project
* Weekend:
   * Planned to get further with timelapse project - I assembled the mount for the RPi and HQ camera, and that’s about it.
* This week:
   * Wrap up Reverse TFT guide (barring any unforeseen blockers)
   * There’s more on my list, but this is my current focus.
   * Generate the Fritzing object and PrettyPins diagrams for the upcoming ESP32-S3 Reverse TFT (it’s not out yet, don’t ask!)
* Maybe tangentially related:
   * In a moment of weakness, I ordered a bunch more air plants. I have not yet proven I can keep any air plants alive, so why not order more? 
   * I’m not sure if my second original one is going to bloom, or whether perhaps it already did. The second original one is starting to bloom. I evidently should have put more time into getting the timelapse set up this weekend. I’ll see what I can do tonight.
   * So, fingers crossed one of the new ones is close to blooming, so I can get a timelapse of it.
* Totally unrelated:
   * I finally got my (undamaged) new guitar. It’s a “short scale” guitar, which means it’s shorter than a standard guitar, and there is less distance between the frets. I have small hands and am short. When I was learning guitar 20 years ago, small hands were becoming a blocker while progressing with more complicated things. I didn’t know this type of guitar existed until a week and a half ago. Turns out the one I was looking at also comes in sparkly purple, so I was basically obligated to get it. I’m sad to report that I remember 1.5 chords, and that is literally it, lol. Starting over from scratch!


39:02 @makermelissa
* Last Week:
   * Fixed the CORS issues in the CircuitPython Installer
   * Added GitHub Actions on the tinyuf2 repo to upload the ESP32 bootloaders to Amazon S3
   * Added 10 new boards to circuitpython.org
   * Updated Arduino, Displayio, and Python drivers for newer 0.96 inch display
* This Week
   * Finish updating learn guide for the 0.96 inch display
   * Add another new board that came in on the latest CircuitPython release candidate
   * Fix some quick items on the CircuitPython code editor
   * Work on finishing up the CircuitPython Installer


40:09 @Mark(gamblor) [ lurking ]
* Draft PR for animated GIF support has been submitted. Looking for general feedback as I work to clean up my initial proof of concept work.


40:22 @tannewt
* Went heads down on pysigrok last week. Can capture from RP2040 (scorpio) to sigrok file and open in pulseview. Most decoders run with the pdtest as well. (Not hooked up to pysigrok-cli yet.)
* Idea is proven out but needs a bit more polish.
* Will continue circling back on Bangle.js 2/ACeP PR to get it ready for review and 8.1 (hopefully.)


43:00 @tekktrik (not present)
* Last week
   * Continued submitting CI fixes to various libraries
      * Going to added descriptions of issues and fixes to a new repository, per discussion last week
   * Explored wokwi/rp2040js to see if how useful it might be as a CI tool
      * Belated hug to @MicroDev who I believe did the same not too long ago, but with focus on the core
   * Finally connected my desktop since the move and got it fully updated with my development environment
   * Also got VirtualBox running to help with diagnosing CI build issues locally
* Next week
   * Hoping to wrap up CI updates, less than a handful remain I believe
   * Begin documenting common library CI issues so they can be fixed more quickly
   * If there’s still time, some feature additions I haven’t been able to make for the thermal printer library.


## 44:04 In The Weeds




## Wrap-Up
Next meeting will be at the usual time on Monday February 13, 2023, at 2pmET/11amPT.
