# CircuitPython Weekly Meeting for April 24, 2023

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

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.
## 2:51 Community News
### PyCon US This Week: Python on Hardware Related Activities
[PyCon US 2023](https://us.pycon.org/2023/) is happening in Salt Lake City, Utah USA April 21 - 23 with Development Sprints April 24 - 27. Adafruit CircuitPython team members have been there hosting events! Kattni Rembor and Jeff Epler will be present, along with a few well-known community members.

Kattni and Jeff managed Open Spaces during the conference. These Open Spaces have given folks an introduction to CircuitPython via the Circuit Playground Express.

**Kattni will be hosting three days of Development Sprints from 8am-5pm on Monday April 24 through Wednesday April 26.** The location will be determined during the conference. The Sprints are an opportunity to contribute to the CircuitPython project, on the Python side of things, through code and documentation on CircuitPython Libraries. Everyone is welcome; there will still be all of the introduction to CircuitPython hardware, so there will be opportunities for folks at any level to participate.

Kattni states: "If you're attending, please let me know in the `#circuitpython-dev` channel on the [Adafruit Discord](https://adafru.it/discord), or come find us around the conference. We'd love to meet up! We're looking forward to PyCon US 2023, and we hope you are too! See you there!" - [PyCon US 2023](https://us.pycon.org/2023/).

### Next PyCon US: 2024 and 2025
PyCon US 2024 will be held in Pittsburgh, PA from May 15-23, 2024 and also in Pittsburgh May 14-22, 2025.

### 5:07 Work Progresses on Using an Adafruit Feather DVI with CircuitPython
Turtle LOGO running nicely on the Feather DVI with CircuitPython. Ladyada rummaged through CircuitPython project-lead tannewt's GitHub branches to find this build of CircuitPython with DVI output support. Now you can treat any HDMI monitor as a display for CircuitPython! For example, above she is running ["turtle" demos](https://docs.python.org/3/library/turtle.html) that show making cool graphical shapes, but to a display on the desk, via the [Feather RP2040 with DVI](https://adafruit.com/product/5710). The REPL also appears on the screen - how fun is that!? - [Twitter](https://twitter.com/adafruit/status/1648738649637371909).
### 6:03 Awesome MIDI and Game Controller with CircuitPython


[![MIDI and Game Controller](../assets/20230425/20230425game.gif)](https://twitter.com/owntheweb/status/1650273862293262336)
Christopher Stevens had built a most remarkable MIDI controller. Based on an [Adafruit tutorial by John Park](https://learn.adafruit.com/neocontroller-color-grading-input-box), Christopher has taken this from a 4 to a 77 out of ten!  - [Twitter](https://twitter.com/owntheweb/status/1650273862293262336).
He writes:
> This dual 3-axis joystick (HOSAS) features two microcontrollers: an Adafruit Metro Grand Central M4 for all the buttons and joysticks with exception of the NeoSliders and NeoKeys managed by a Feather RP2040 (pink!). Grand Central was great for all the inputs and timers for LED fades.<br> <br>Feather RP2040 managed I2C reads separately as it offered the cool factor, yet was a bit slower in reads per second than direct inputs handled the Grand Central. This turned out well for gaming purposes for fast controls with upper controls not needing that speed (less used).<br> <br> The game controller sends out low latency MIDI signals, which can be converted to joystick controls with an app like midi2vjoy. This is TBD, still exploring, rocking as a MIDI controller so far! Maybe I'll make a flight sim demo while also performing music at the same time?!!<br> <br>Both boards communicate with each other via UART at a basic level, syncing when that center ship power button is pressed (cool pulse in video) and to sync the continuous rainbow color rotation in all NeoPixels. It does utilize CircuitPython, super fun in this project!
### 7:44 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.
## 8:40 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.**
### 9:12 Overall
* 31 pull requests merged
  * 20 authors - furbrain, milindmovasha, dhalbert, Neradoc, EthChil, CanyonCasa, thess, RetiredWizard, jepler, rich123, tannewt, CDarius, FoamyGuy, dgnuff, MathijsNL, DJDevon3, BiffoBear, weblate, silabs-BelaV, 2bndy5
  * 9 reviewers - FoamyGuy, jposada202020, KeithTheEE, dhalbert, microdev1, jepler, makermelissa, tannewt, anecdata
* 13 closed issues by 10 people, 24 opened by 21 people
### 10:11 Core
* 15 pull requests merged
  * 11 authors - milindmovasha, dhalbert, CanyonCasa, rich123, thess, weblate, RetiredWizard, jepler, tannewt, silabs-BelaV, CDarius
  * 4 reviewers - microdev1, tannewt, dhalbert, jepler
* 30 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6037 (Open 432 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 293 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 219 days)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 174 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7221 (Open 157 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 157 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7282 (Open 144 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 143 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7430 (Open 106 days)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 103 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7592 (Open 67 days)
  * https://github.com/adafruit/circuitpython/pull/7591 (Open 67 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 63 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 51 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7711 (Open 44 days)
  * https://github.com/adafruit/circuitpython/pull/7718 (Open 42 days)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 25 days)
  * https://github.com/adafruit/circuitpython/pull/7862 (Open 10 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7878 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/7877 (Open 5 days)
  * https://github.com/adafruit/circuitpython/pull/7893 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/7892 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/7891 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/7890 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/7889 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/7886 (Open 2 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7899 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/7897 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/7895 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/7900 (Open 0 days)
* 8 closed issues by 6 people, 11 opened by 10 people
* 630 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 8.0.x: 0 open issues
 * 8.1.0: 8 open issues
 * 8.x.x: 27 open issues
 * 9.0.0: 25 open issues
 * Libraries: 20 open issues
 * Long term: 534 open issues
 * Support: 8 open issues
 * Third-party: 6 open issues
  * 8 issues not assigned a milestone
### 12:44 Libraries (Tim can read)
* 15 pull requests merged
  * 8 authors - FoamyGuy, furbrain, dgnuff, Neradoc, EthChil, DJDevon3, BiffoBear, 2bndy5
  * 5 reviewers - FoamyGuy, jposada202020, KeithTheEE, dhalbert, anecdata
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_BNO08x/pull/40 (Days open: 16)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/107 (Days open: 12)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/110 (Days open: 9)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/47 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/48 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_IS31FL3741/pull/25 (Days open: 2)
    * https://github.com/adafruit/Adafruit_CircuitPython_SI7021/pull/36 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_Requests/pull/131 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/161 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/162 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/160 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/159 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/158 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/155 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/154 (Days open: 1)
  * 45 open pull requests (Oldest: 937, Newest: 1)
* 4 closed issues by 4 people, 10 opened by 9 people
  * 618 open issues
  * 73 good first issues
* https://circuitpython.org/contributing
#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 99301 PyPI downloads over 310 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6372
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 5908
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 2061
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1622
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1110
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1049
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1001
  * Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 964
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 828
  * Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 791
#### Library updates in the last seven days:
* **New Libraries**
  * [Neradoc/CircuitPython_Multi_Ke](https://github.com/Neradoc/CircuitPython_Multi_Ke)
  * [furbrain/CircuitPython_laser_egismos](https://github.com/furbrain/CircuitPython_laser_egismos)
  * [2bndy5/CircuitPython_Cirque_Pinnacle](https://github.com/2bndy5/CircuitPython_Cirque_Pinnacle)
* **Updated Libraries**
  * [adafruit/Adafruit_CircuitPython_BNO08X](https://github.com/adafruit/Adafruit_CircuitPython_BNO08X)
  * [adafruit/Adafruit_CircuitPython_SI7021](https://github.com/adafruit/Adafruit_CircuitPython_SI7021)
  * [adafruit/Adafruit_CircuitPython_HTTPServer](https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer)
  * [adafruit/Adafruit_CircuitPython_Requests](https://github.com/adafruit/Adafruit_CircuitPython_Requests)
  * [ricardoquesada/bluepad32-circuitpython](https://github.com/ricardoquesada/bluepad32-circuitpython)
  * [furbrain/CircuitPython_mag_cal](https://github.com/furbrain/CircuitPython_mag_cal)
  * [jposada202020/CircuitPython_qmc5883l](https://github.com/jposada202020/CircuitPython_qmc5883l)


### 16:10 Blinka
* 1 pull requests merged
  * 1 authors - MathijsNL
  * 1 reviewers - makermelissa
* 7 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 803 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 563 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/267 (Open 145 days)
  * https://github.com/adafruit/Adafruit_Python_PureIO/pull/33 (Open 74 days) (draft)
  * https://github.com/adafruit/Adafruit_Blinka/pull/678 (Open 4 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/677 (Open 4 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/62 (Open 3 days)
* 1 closed issues by 1 people, 3 opened by 3 people
* 95 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 13968
* Piwheels Downloads in the last month: 15945
Number of supported boards: 101
## 17:19 Hug reports


18:00 @tannewt (Host):
* @david.glaude and jposada202020 for testing DVI output
* @dquadros for the detailed issue pointing out we didn’t support little endian addresses used on some e-paper display ICs. 
* @wtuemura, @bergdahl, @andibing and @jposada202020 for the prompt translations of a new error message. Very cool to see translations being maintained.


18:55 @danh
* @michalpokusa for security fixes and other fixes to HTTPServer library. @deshipu for discord commentary on fixes, @anecdata for testing and @FoamyGuy for reviewing those fixes.
* @tannewt for Pico DVI (woot!)
* @jepler, @kattni, and @tekktrik for representing CircuitPython at PyCon.


19:43 @david.glaude (present but speechless):
* @tannewt for bringing DVI output to CP
* @neradoc for turning my Absolute Mouse experiment into a community library https://github.com/Neradoc/CircuitPython_Absolute_Mouse


20:06 @DJDevon3
* @FoamyGuy for responding to a time sensitive issue. 
* @TammyMakes for advice using kevlar string as a failsafe for my sewer bot
* @EdKeyes, @Spovlot, @Kattni & @Danh for helping with GIT CLI
* @Anecdata & @Neradoc for the positive encouragement and help in discord.
* @JohnG for his educational Circuit Python videos.
* @madbodger for hardware design advice 
* @Melissa dealing with a move this week. Hope everything goes smoothly.
* @Kattni, @Jepler, @KeithTheEE, @Tekktrik for representing Adafruit & Circuit Pythonistas at PyCon this year.
* @Tannewt HDMI out whaaat! Can’t wait to play with it.


21:43 @foamyguy
* @retiredwizard and @danh for pointing me in the right direction to figure out how to replicate a specific warning during building
* @michalpokusa for enhancing the security of the HTTPServer library by making it not serve static files from the root of CIRCUITPY by default, and everyone else involved with the discussion around it on discord.
* @josedavid for verifying in the datasheet the particulars of delay after reset timing for si7021 and @KeithTheEE for reviewing the PR for this change that allowed the sensor to be used with Raspberry Pi / Blinka
* @markgamblor for enhancements to GIF support in displayio
* @kvc0 for reviewing some tweaks in vectorio and explaining another proposal to me that I was unsure about the details of.
* Group Hug


23:10 @jepler (via discord
* we are at circuitpython sprints day 1 and the number of people here is amazing. all of us here are working to get everybody going, whether that's extending the open spaces and letting them learn on circuitplayground expresses, or starting to work on issues in the libraries. Group hug from us here at pycon!


23:39 @Jose David (text only)
* @Scott for the work on DVI. Amazing work!
* @Scott and @david.glaude for helping me better understand DVI implementation and figure out what I was doing wrong
* @furbrain, @2bndy5 @neradoc For adding new libraries to the community bundle
* @2bndy5 for helping maintain the Sphinx_immaterial theme. A gorgeous theme, that now I am starting to use. https://github.com/jbms/sphinx-immaterial
* @Neradoc for finding a bug in My slider library


24:19 @Neradoc (text/probably absent)
* @Jose David for the community bundle PR mergings
* Group hug to the discord helpers crew
* Group hug to the great community


24:32 @tekktrik (text/not on chat)
* @kattni, @jepler, and @KeithTheEE for an amazing time at PyCon this year.  It has been an absolute blast hanging out with you!
* Everyone sprinting with CircuitPython this year - I’m thrilled to be helping out in person today!
* Scott Gustafson for hosting an Intro to CircuitPython event for the Boston Python working group next month.  I had just joined when I saw a notification go out!
 
## 25:28 Status Updates


26:31 @tannewt (Host):
* PicoDVI support is merged into CP.
* DVI PR also included bug fix for cstack limit checking.
* Polished up community member’s PR for adding frequency setting on RP2040 and it is ready for re-review.
* PR out to add little endian support for LE addresses on SSD1675, SSD1680 and SSD1681 e-paper displays.
* PR out to fix RP2040 idle timing when off USB.
* Will get iMX RT PR out in the next few days too.


29:02 @danh
* Merged SiLabs port, then had to undo it because there were some large binary .zip files included. Got SiLabs folks to redo the PR and put the files in a submodule.
* Tested new I2C patch for ESP32-S3 and various ESP-Cx. Doesn’t fix BNO055 or LC709203F problems, but may make other I2C more reliable. Will wait for v5.0 and v4.4.3 ESP-iDF backports.
* Made board definition for A New Board.
* Doing reviews and bug fixes.
* Maybe do an 8.1.0-beta.2 this week.


31:07 @david.glaude (present but speechless):
* Feather RP2040 DVI:
   * Testing on as many screen as possible (checking for overscan and resolution detection)
   * Helping @Jose David with the true resolution of picodvi in issue #7894
   * Testing Turtle graphic => OK
   * Testing adafruit_frame buffer => KO => issue #7898 to try to understand
   * PR to fix a typo in the picodvi code
   * Understood how to change picodvi resolution by not using board.DISPLAY (this should be in a guide as it is non obvious)
* TR-Cowbell: Failure to remix the working example… because I don’t master asyncio yet… so I need to read a learn guide from @danh and watch @foamyguy stream on the topic.
* Non CP:
   * Feather RP2040 USB Host: nothing yet, waiting for my Intellikey from ebay.
   * Got some non COVID virus, that made me sleep most of the week-end, and prevent me from talking too much for the moment.


32:35 @DJDevon3
* Made a short youtube demo video of the Whizz-Bang sewer bot. Figured out a way to pipe the first person camera view to OBS using a cheap composite (AV to USB2.0) product. It looks like 1980 VCR quality with horrible scan lines, I do not recommend it. Will look into better methods.
* Started designing a 250mm ring shaped PCB with WS2812B LED’s as a replacement for my workshop lamp that started to flicker and now puts out half the light it used to. It will have a feather as the lighting controller & a relay featherwing to turn on/off the 12v fume extractor making the project 100% Circuit Python.
* Started 3D modeling a custom water tight shell for the 3” x 2” sewer bot.
* Ordered a professional RC transmitter/receiver kit that has a range of about 1/2 mile. Not interested in the range, I want the additional signal strength bouncing around plumbing pipes to minimize risk of losing signal with the bot. 
* Tried and failed to write my first Circuit Python library subclass using the IS31FL3741 library. Will take another shot at it this week.


34:33 @foamyguy
* Library reviews and testing, mostly centered around web things, Ethernet and HTTPServer with a few others sprinkled in
* Tested out and submitted a fix for si7021 sensor that was needed for it to work on RasPi
* Refined further the RasPi IoT Data Server project that I begun last week, added all necessary functionality to the front end, implemented POST handlers for sending data to the server, made a basic and hardcoded dashboard, brainstorming the best way to make user definable dashboards without too much complexity
* A few fixes inside displayio core: 
   * Removed an unnecessary operation in vectorio that raised warnings on some versions of GCC. 
   * Adding minimum grid size validation to terminalio.Terminal. Also learning how to use it in general from user code.


36:59 @Jose David (Text Only)
* Testing DVI support mostly. Need to go back and test DVI with the display_text library.


37:17 @Mark[gamblor21] (missing)
* PR for OnDiskGif palette support out. Almost halves memory usage but refresh rate can be slower.


37:31 @Neradoc (text/away)
* Published some of the libraries that I’ve been making to the Community Bundle
   * The Absolute Mouse for adafruit_hid (thanks to @david.glaude).
   * A driver for the I2C M5Stack Unit 8-angle and 8-encoder devices, nice breakouts with rotating stuff and RGB leds (no I2C pullups though).
   * A driver for a TM1637 7-segment 6-digits display, from a bit-banged arduino driver, probably generalizable to other displays using that chip.
   * The MCP23017 Scanner that scans direct pins or a keyboard matrix using bulk write and reads and exposing an event queue like the keypad module.
   * The Multi Keypad module that abstracts multiple keypad instances (or compatible as above) into a single event queue.


38:44 @tekktrik (text; at PyCon)
* Last week
   * PyCon 2023!  So excited to have returned this year, and very excited for Pittsburgh next year!
   * Helping out with the dev sprints onsite today and then flying back to Boston to continue assisting remotely.
* This week
   * Helping out with the dev sprints onsite today and then flying back to Boston to continue assisting remotely.
   * Planning out some possible changes that Kattni and I discussed at PyCon regarding the Learn Guide repo
## 39:27 In The Weeds
39:43 @foamyguy
Acceptance of a portion of code licensed under BSD-3. https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/61

## 42:46 Wrap-Up
