# CircuitPython Weekly Meeting for August 7, 2023

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


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.
## Community News

### 3:35 CircuitPython Day 2023
CircuitPython Day 2023 is August 18th and a slate of events is being developed to celebrate the "Snakiest Day of the Year" - [Adafruit Blog](https://blog.adafruit.com/2023/08/04/circuitpython-day-2023-is-august-18th-circuitpython-circuitpythonday-python/).
* Paul Cutler will be hosting a panel about CircuitPython’s new synthio.
* Tim (@foamyguy) will be hosting a CircuitPython code jam.
* Melissa (@MakerMelissa) will be hosting a project livestream.
* Jeff, Dan, and Kattni will be having a CircuitPython chat.
Stay tuned to the Adafruit Blog for updates on details, specific events, and their timing! Working with CircuitPython? Tag your projects #CircuitPythonDay2023 on social media and Adafruit will look to highlight them. Do you have events you’d like folks to attend or have projects in the works? Email your thoughts to circuitpythonday(at)adafruit(dot)com.
### 5:10 Damien George, MicroPython Lead, on the Embedded.fm Podcast
Damien George spoke with embedded.fm about developing with and for MicroPython while Elecia White tries not to spill all the secrets about her client.
To start at the beginning, you probably will want to check out [micropython.org](https://micropython.org/). Before listening to the show, you might read the [Wikipedia MicroPython entry](https://en.wikipedia.org/wiki/MicroPython) because they kind of start in the middle in the show.
### 5:50 MicroPython - Discontinuation of the In-house Library Prefix
As if in agreement, there is an [adjustment to MicroPython's naming structure](https://github.com/orgs/micropython/discussions/12078). The goal of the modification is better commonality with CPython  - [mikrocontroller.net](https://www.mikrocontroller.net/topic/557892).
- So in v1.21 (which will be released soon), all built-in modules have been renamed to match their CPython name -- os, sys, json, etc. The only exception is uctypes which is completely different to CPython's ctypes so it will keep its uctypes name. Additionally uasyncio and urequests have been renamed to asyncio and requests.
- There is a lot of existing code out there that use the u-prefix, e.g. import uos or import urequests so this will continue to work (for both C and Python modules). But please prefer to use just the non-u-prefixed name from now on.
### 7:27 The New CircuitPython_IcePython Library Programs FPGAs
Usually to program an [iCE40 FPGA](https://www.crowdsupply.com/oak-dev-tech/icyblue-fpga-feather) from Lattice Semiconductor you need an FTDI chip or some other tool like OpenOCD and a device capable of communicating over SPI. This has changed now with IcePython, a driver library for CircuitPython which allows programming any iCE40 FPGA with a simple command.
Simply instantiate the IcePython class with a SPI object, a pin for chip select, a pin for FPGA reset, and a filename. Calling program_fpga() then programs the FPGA with the bin file provided - [GitHub](https://github.com/skerr92/Oakdevtech_CircuitPython_IcePython).
### 8:15 Newsletter Details
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Monday. 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:49 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
* 32 pull requests merged
  * 20 authors - michalpokusa, gamblor21, weblate, samatjain, wtuemura, jgdempsey, jposada202020, BrainBoardz, hexthat, lynt-smitka, kbsriram, BiffoBear, elpekenin, jepler, tannewt, dronecz, makermelissa, bergdahl, ForgottenProgramme, EAGrahamJr
  * 5 reviewers - jepler, tannewt, makermelissa, FoamyGuy, dhalbert
* 13 closed issues by 5 people, 13 opened by 12 people


### 9:36 Core
* 20 pull requests merged
  * 12 authors - lynt-smitka, kbsriram, weblate, elpekenin, jepler, tannewt, wtuemura, dronecz, makermelissa, bergdahl, BrainBoardz, hexthat
  * 3 reviewers - tannewt, jepler, dhalbert
* 25 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 398 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 324 days)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 262 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 208 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 168 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 156 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7711 (Open 149 days)
  * https://github.com/adafruit/circuitpython/pull/7718 (Open 147 days)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 130 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 80 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 80 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 73 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8095 (Open 48 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8091 (Open 48 days)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 46 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8190 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/8188 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/8220 (Open 11 days)
  * https://github.com/adafruit/circuitpython/pull/8223 (Open 10 days)
  * https://github.com/adafruit/circuitpython/pull/8234 (Open 8 days)
  * https://github.com/adafruit/circuitpython/pull/8233 (Open 8 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8258 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8262 (Open 1 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8265 (Open 0 days)
  * https://github.com/adafruit/circuitpython/pull/8264 (Open 0 days)
* 3 closed issues by 2 people, 6 opened by 6 people
* 681 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
 * 8.2.x: 0 open issues
 * 9.0.0: 49 open issues
 * Libraries: 22 open issues
 * Long term: 590 open issues
 * Support: 15 open issues
 * Third-party: 8 open issues
 * 3 issues not assigned a milestone


### 11:19 Libraries
* 11 pull requests merged
  * 10 authors - michalpokusa, gamblor21, BiffoBear, samatjain, jepler, tannewt, makermelissa, jposada202020, ForgottenProgramme, EAGrahamJr
  * 4 reviewers - makermelissa, jepler, FoamyGuy, tannewt
  * Merged pull requests:
        * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/67 (Days open: 1042)
        * https://github.com/adafruit/Adafruit_CircuitPython_RGBLED/pull/23 (Days open: 133)
        * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/98 (Days open: 97)
        * https://github.com/adafruit/Adafruit_CircuitPython_TinyLoRa/pull/50 (Days open: 97)
        * https://github.com/adafruit/Adafruit_CircuitPython_NeoKey/pull/11 (Days open: 44)
        * https://github.com/adafruit/Adafruit_CircuitPython_MCP9808/pull/37 (Days open: 42)
        * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/63 (Days open: 18)
        * https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/93 (Days open: 5)
        * https://github.com/adafruit/Adafruit_CircuitPython_PortalBase/pull/94 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_PyCamera/pull/1 (Days open: 1)
        * https://github.com/adafruit/Adafruit_CircuitPython_USB_Host_Descriptors/pull/1 (Days open: 1)
  * 51 open pull requests (Oldest: 433, Newest: 1)
* 9 closed issues by 2 people, 7 opened by 6 people
  * 628 open issues
  * 19 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 164880 PyPI downloads over 311 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7245
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6877
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2029
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1602
  * Adafruit CircuitPython PortalBase (adafruit-circuitpython-portalbase): 1594
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1544
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1530
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1502
  * Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1499
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1474


#### Library updates in the last seven days:
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_LED_Animation](https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation)
  * [adafruit/Adafruit_CircuitPython_TinyLoRa](https://github.com/adafruit/Adafruit_CircuitPython_TinyLoRa)
  * [adafruit/Adafruit_CircuitPython_PortalBase](https://github.com/adafruit/Adafruit_CircuitPython_PortalBase)
  * [jposada202020/CircuitPython_uplot](https://github.com/jposada202020/CircuitPython_uplot)


### 13:47 Blinka
* 1 pull requests merged
  * 1 authors - jgdempsey
  * 1 reviewers - makermelissa
* 4 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 908 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 668 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/299 (Open 71 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/694 (Open 2 days)
* 1 closed issues by 1 people, 0 opened by 0 people
* 100 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 12256
* Piwheels Downloads in the last month: 10214
Number of supported boards: 119




## 14:40 Hug reports
15:14 @danh (hosting)
* @elpekenin for working on several CIrcuitPython issues over the past few weeks.
* @brent and @jepler for a quick update of the expired certificate that Adafruit IO depended on.
* @deshipu for triaging “good first issues” which were not.


16:34 @CGrover (text only)
* Group hug


16:42 @DJDevon3
* @Anecdata & @elpekenin for help with ideas & sample NVM code to allow API tokens to persist even after a hard reset.


17:00 @David.Glaude (text only)
* Group Hug


17:10 @foamyguy
* @makermelissa for implementing support for RGB bitmaps in the ImageLoad library, and linking to some resources for me to better understand how the different formats work.
* @EdKeyes community helper on discord for a point in the right direction and guidance on analyzing audio data
* Group Hug


17:45 @jepler
* Group hug
* Hug to kmatch98 for implementing dot clock displays 1+ year ago, looking forward to learning from your code
* Hug to Tekktrik for popping up right away when I ran into trouble building a CircuitPython library in github actions


18:34 @kattni
* @todbot for helping me get started with synthio
* @foamyguy for going through older PRs, and merging the oldest open PR
* @deshipu for cleaning up some of the Good First Issue labels
* Group hug!


19:30 @makermelissa
* @jepler for some helpful suggestions with using bitmaptools
* @jepler for adding the blit function to bitmaptools
* @foamyguy for talking through some ideas for getting alphablend working better in bitmaptools
* @foamyguy and @matt-land for reviewing my imageload PR
* Group hug


20:00 @Paul Cutler
* @jepler, @kattni, @todbot, and JP for all agreeing to be on the synthio panel for CircuitPython Day
* Group hug


20:20 @tannewt
* @foamyguy for adding my descriptor library to the bundle for me.
* Greg steiert for helping with iMX RT id question.
* @dcd for timecodes during deep dive.
## 20:51 Status Updates
21:25  @danh (hosting)
* Working out the compilation problems with the MicroPython v1.19.1. Making good progress, now figuring out what to do about major changes that affect the long-lived storage allocation code. May defer that to get more stuff working.
* Added a more prominent warning to circuitpython.org that >= 8.2.0 on nRF needs a newer bootloader.
* A week ago, released CircuitPython 8.2.2 with updated certificates.


23:30 @CGrover (text only)
* Took a break from technology projects to comprehensively upgrade workshop storage (overhead shelving, french-cleat tool and cabinet system). That also meant uncovering and completing an overwhelming collection of delayed carpentry and yard art projects.
* Just started working on a few PCB projects; two are “art” projects using @OSHPark AfterDark colors, the other is a universal version of the transformerless class-D amplifier output to audio line level circuit, The Reintegrator. The new version will sport a 3.5mm TRS-style audio jack for the single-ended output and two PicoBlade connectors for the balanced input and speaker thru signals.


24:19 @DJDevon3
* Finally found a way to get Fitbit tokens to persist after a hard reset using 64 bytes of NVM storage. My goal with adafruit_requests examples is to make them beginner friendly. Adding the token to NVM is an acceptable workaround for persistent storage. No need for boot.py and file writes or server callback. It works wonderfully and can still be considered beginner friendly. 
* Submitted a small basic Fitbit API example to the adafruit_requests library this week.


25:42 @David.Glaude (text only)
* PicoPad week: ( https://picopad.eu/en/ )
   * Soldered my PicoPad (it is a kind of a PyGamer powered by a pico and comes as a solder kit. It is made in the Czech Republic and all the software is open source).
   * Tested the many build in games.
   * Tested the CP firmware and various hello world and demos.
   * Adapted CP code from learn guides for two extensions: “Picopad DS18x20” and “Picopad photocell”.
   * Ordered another PicoPad and all the available extensions for my niece (after checking with her father that the soldering part would be ok).
* Upgraded a few boards to 8.2.2 and/or latest Nina-Fw and/or to new UF2 bootloader.


26:32 @foamyguy
* Submitted OSHWA cert requests for the remaining items on the new items page. This week will work on scripts to compare a full list of PIDs against what is currently in OSHWA system.
* Testing out RGB support in ImageLoad
* Continuing to work through older PRs
* Look into adding a ‘most recent release is not marked as “latest” in github’ check to the infrastructure issue pages. I’ve seen a couple of repos get into this state, they do eventually pop-up in other sections of the existing reports but I’m curious to see if they can be listed directly and shown earlier than the existing checks do.
* For CircuitPython day I’ll be hosting (and participating in) a CircuitPython themed Game Jam. I’ll be streaming some work on the game that I create. Anyone else who is interested in participating may do so and if you share your creation we can showcase them in a recap stream after the Jam’s conclusion.
* Outside of CircuitPython (for now): I got a Leap Frog Smart Paws toy on clearance at a store recently. It allows child’s parent to customize some of the things that it can say or sing about. The configuration process uses a web application that sends encoded data over audio out of the 3.5mm jack which the toy has a little wire that plugs in with this. I am attempting to reverse engineer how it works and see if it is possible to put more customized audio samples into it. If it turns out their system is locked down too well I’ll probably opt for a surgical approach and implant a CircuitPython brain inside of it.


29:40 @jepler
* Lots of misc & PyCamera
   * Improvements to PIO: need to respond to review comments
   * PyCamera hardware is still a ways out but this board is a lot of fun so keep an eye out for it.
* Planning for circuitpython day, I’ll be on a panel discussion in all likelyhood
* Next:
   * Dot clock displays on esp32s3
   * I have some boards from tindie
   * Will be looking at kmatch’s code but probably starting with a fresh implementation
* Soon, but not circuitpython: porting DOOM to the PyCamera prototype. This has 6 buttons so maybe it’ll even be playable?


32:30 @kattni
* Working on Metro RP2040 guide


33:58 @makermelissa
* Last Week:
   * Worked on code for a messageboard guide
   * Learning how to use bitmap tools in the process
   * Added 16, 24, and 32-bit bitmap support to the imageload library
   * Worked on improving alphablend function in CircuitPython core for better handling darker bitmaps
* This Week:
   * Finish updating alphablend improvements
   * Look into adding compression type 3 support for truecolor bitmaps in the imageload library
   * Continue working on the code for the messageboard
   * Finish up updating my CircuitPython PR for the Arduino Nano ESP32


35:00 @tannewt
* Made libraries for USB_Host_Descriptors and USB_Host_Mass_Storage.
* Need to update TinyUSB because Thach added port reset. USB host isn’t resilient across reloads yet.
* Will pair with Dan on merge and IDF 5.1 update.
* Started expanding blackmagic support for imx rt 1011. Detection relies on fingerprinting known memory locations.
## 37:00 In The Weeds
37:25 @dexter
* What if we set up a ‘community project’: something everyone could build using in-stock products. It would need a bill of materials and instructions, these could be on github. Maybe we could build a useful gadget with a screen and some keyboard switches.


## 44: 10 Wrap-Up

Next meeting is Monday, August 14, 2023 at the usual time of 2pm US Eastern / 11am US Pacific.
