# CircuitPython Weekly Meeting for January 9 2023


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


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:52 Community News
### CircuitPython in 2023: Let the Devs Know Your Feelings!
 CircuitPython in 2023 

As the year starts, the CircuitPython development team would like to take some time to share their goals for CircuitPython in 2023 and beyond. Just like past years (full summary [2019](https://blog.adafruit.com/2019/01/28/circuitpython-in-2019/), [2020](https://blog.adafruit.com/2020/02/03/circuitpython2020-recap/), [2021](https://blog.adafruit.com/2021/02/16/circuitpython2021-round-up/), and [2022](https://blog.adafruit.com/2022/02/01/thank-you-for-circuitpython2022/)), they’d like everyone in the Python on hardware community to contribute by posting their thoughts to a public place on the internet by Wednesday January 18th, 2023.
Here are a few ways to post:
* a video on YouTube
* a post on the CircuitPython forum
* a blog post on your site
* a post on Mastodon with tags #CircuitPython and #CircuitPython2023
* a Gist on GitHub
They want to hear from you. When you post, please add #CircuitPython2023 and email circuitpython2023@adafruit.com to let them know about your post so they can post it on the Adafruit Blog.
The post can cover any topic related to CircuitPython. See a suggested list and more in the post on the [Adafruit Blog](https://blog.adafruit.com/2023/01/01/circuitpython-in-2023-circuitpython2023-circuitpython/). This includes any suggestions or comments related to this newsletter.
Posts so far:
* [First #CircuitPython2023 Posts](https://blog.adafruit.com/2023/01/04/first-circuitpython2023-posts/)
### 4:49 Bluetooth Support for Raspberry Pi Pico W Likely Coming in January
Bluetooth Support for Raspberry Pi Pico W is likely coming this month, per a Raspberry Pi team member. It will be in the 1.5.0 release of the Pico C software developer's kit. This should allow for adoption in Python at some point after that - [Twitter](https://twitter.com/aallan/status/1610616300597907456?s=12&t=erdRbaVRnvVnCpDBWD34KA), [Adafruit Blog](https://blog.adafruit.com/2023/01/04/raspberry-pi-pico-w-picow-bluetooth-support-coming-this-month-raspberrypi-aallan-raspberry_pi/) and [hackster.io](https://www.hackster.io/news/raspberry-pi-pico-w-bluetooth-support-is-just-around-the-corner-for-both-c-c-and-micropython-592c42d1170a).


### 5:38 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.
## 6:31 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
* 30 pull requests merged
  * 24 authors - dhalbert, michalpokusa, tcfranks, zaius0930, CDarius, weblate, MicroDev1, PontusO, priestbh, bergdahl, tekktrik, RetiredWizard, jaygreco, wtuemura, matemaciek, bill88t, dsanders11, 2231puppy, fonix232, mmontol, xgpt, jepler, tannewt, furbrain
  * 10 reviewers - dhalbert, tekktrik, tannewt, makermelissa, FoamyGuy, Neradoc, anecdata, gamblor21, MicroDev1, jepler
* 21 closed issues by 9 people, 14 opened by 12 people


### 7:49 Core
* 17 pull requests merged
  * 14 authors - dhalbert, RetiredWizard, jaygreco, zaius0930, CDarius, wtuemura, weblate, 2231puppy, fonix232, MicroDev1, jepler, PontusO, tannewt, bergdahl
  * 4 reviewers - dhalbert, jepler, MicroDev1, tannewt
* 21 open pull requests
  * https://github.com/adafruit/circuitpython/pull/5999 (Open 333 days)
  * https://github.com/adafruit/circuitpython/pull/6037 (Open 327 days)
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 188 days)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 114 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7114 (Open 76 days)
  * https://github.com/adafruit/circuitpython/pull/7141 (Open 73 days)
  * https://github.com/adafruit/circuitpython/pull/7151 (Open 71 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 69 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7216 (Open 54 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7221 (Open 52 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 52 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7237 (Open 50 days)
  * https://github.com/adafruit/circuitpython/pull/7282 (Open 39 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 38 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7343 (Open 25 days)
  * https://github.com/adafruit/circuitpython/pull/7396 (Open 11 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7416 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/7423 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/7422 (Open 3 days)
  * https://github.com/adafruit/circuitpython/pull/7430 (Open 1 days)
  * https://github.com/adafruit/circuitpython/pull/7428 (Open 1 days)
* 10 closed issues by 4 people, 6 opened by 6 people
* 588 open issues
  * https://github.com/adafruit/circuitpython/issues
* 8 active milestones
 * 7.3.x: 0 open issues
 * 8.0.0: 9 open issues
 * 8.x.x: 32 open issues
 * 9.0.0: 2 open issues
 * Libraries: 20 open issues
 * Long term: 513 open issues
 * Support: 12 open issues
 * Third-party: 3 open issues
 * 0 issues not assigned a milestone


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


### 10:33 Libraries
* 12 pull requests merged
  * 11 authors - tekktrik, michalpokusa, tannewt, furbrain, tcfranks, bill88t, dsanders11, xgpt, priestbh, jepler, matemaciek
  * 8 reviewers - dhalbert, tekktrik, tannewt, FoamyGuy, Neradoc, anecdata, gamblor21, jepler
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_PyBadger/pull/64 (Days open: 33)
    * https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/pull/85 (Days open: 16)
    * https://github.com/adafruit/Adafruit_CircuitPython_AW9523/pull/8 (Days open: 15)
    * https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/pull/29 (Days open: 13)
    * https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes/pull/59 (Days open: 9)
    * https://github.com/adafruit/Adafruit_CircuitPython_LED_Animation/pull/107 (Days open: 6)
    * https://github.com/adafruit/Adafruit_CircuitPython_Logging/pull/47 (Days open: 5)
    * https://github.com/adafruit/Adafruit_CircuitPython_Logging/pull/48 (Days open: 4)
    * https://github.com/adafruit/Adafruit_CircuitPython_ST7789/pull/35 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_MAX1704x/pull/10 (Days open: 1)
    * https://github.com/adafruit/Adafruit_CircuitPython_asyncio/pull/38 (Days open: 1)
    * https://github.com/adafruit/CircuitPython_Community_Bundle/pull/124 (Days open: 1)
  * 46 open pull requests (Oldest: 832, Newest: 1)
* 10 closed issues by 5 people, 8 opened by 7 people
  * 601 open issues
  * 92 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 96312 PyPI downloads over 306 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 19697
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 18887
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 1146
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1097
  * Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 742
  * Adafruit CircuitPython MCP230xx (adafruit-circuitpython-mcp230xx): 719
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 700
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 614
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 613
  * Adafruit CircuitPython Logging (adafruit-circuitpython-logging): 608


#### Library updates in the last seven days:
* **Updated Libraries**
  * [Adafruit_CircuitPython_HTTPServer](https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer)
  * [Adafruit_CircuitPython_PyBadger](https://github.com/adafruit/Adafruit_CircuitPython_PyBadger)
  * [Adafruit_CircuitPython_Logging](https://github.com/adafruit/Adafruit_CircuitPython_Logging)
  * [Adafruit_CircuitPython_asyncio](https://github.com/adafruit/Adafruit_CircuitPython_asyncio)
  * [Adafruit_CircuitPython_Wiznet5k](https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k)
  * [Adafruit_CircuitPython_AW9523](https://github.com/adafruit/Adafruit_CircuitPython_AW9523)
  * [Adafruit_CircuitPython_Display_Shapes](https://github.com/adafruit/Adafruit_CircuitPython_Display_Shapes)
  * [Adafruit_Blinka](https://github.com/adafruit/Adafruit_Blinka)
  * [CircuitPython_Community_Bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)
* **New Community Libraries**
  * [furbrain/CircuitPython_mag_cal](https://github.com/furbrain/CircuitPython_mag_cal)


### 13:23 Blinka
* 1 pull requests merged
  * 1 authors - mmontol
  * 1 reviewers - makermelissa
* 4 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 698 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 458 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/267 (Open 40 days)
  * https://github.com/adafruit/Adafruit_Blinka/pull/637 (Open 35 days)
* 1 closed issues by 1 people, 0 opened by 0 people
* 86 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 24008
* Piwheels Downloads in the last month: 6812
Number of supported boards: 100




## 14:28 Hug reports


14:56 @danh (hosting) 
* @jepler for diagnosing the “duplicate volume ID” issue on macOS, and making a fix.
* @yousafs, @anecdata, and @michalpokusa for continued testing and fixing of the HTTPServer library.
* Welcome back @kattni, @BlitzCityDIY, and @tannewt from vacations.


15:55 @2231puppy
* Group hug!
* Melissa & Dan for merging my board


16:25 @anecdata (lurking)
* Also @jepler for realizing USB volume IDs could be colliding, and for adding exception chaining to Requests.


16:42 @CGrover (text only)
* A hug to three community members that defused a problematic issue on Discord while patiently and skillfully answering the underlying question. There are some amazing folks in there.
* Group hug.


16:56 @david.glaude (text only)
* @DJDevon3 as I am on the list for getting one of the last TR-Cowbells
* @FoamyGuy for coding live streaming about the TR-Cowbell
* @Liz and all the other authors of Midi related learn-guide
* @2231puppy for all his Show&Tell projects that are always great, including the latest e-Fidget


17:29 @DJDevon3
* @JP & @ FoamyGuy for coding live streams. 
* @Phil B for an exceptional Scorpio learn guide.
* @Anne B for finding all the neat hot off the press news for the blog & newsletter every day. It’s a daily source of enjoyment and inspiration.
* @All the Circuit Python Developers, PR contributors, Reviewers, and Helpers.
* @LadyAda for all the new hardware and developments coming in 2023. It’s very exciting!


18:14 @foamyguy
* Group Hug
* @Biffobear for submitting many improvements to the ethernet wiznet library
* @matemaciek for submitting a PR with memory efficiency improvements for the Sparkline graph widget in the Display_Shapes library, and additionally for the new multi-line functionality that has been implemented
* @Noe & @Pedro for creating and publishing 3D models for stemma mounts that are LEGO compatible.


19:28 @jepler
* Group hug
* Hug to Anecdata, bill88t, RetiredWizard, and all folks chasing weird bugs
* Hug to @danh for staying on top of issues, and milestone assignment
* Hugs to everyone testing the betas


20:39 @kattni
* Big group hug! Thanks to everyone for keeping everything smooth while I was out!


21:27 @makermelissa
* @tannewt for encouraging me to take some time off for the holidays
* @danh for updating the Web Workflow guide with settings.toml instructions
* @danh for reviewing Brent’s guide last week while I was catching up
* Group Hug for keeping things up while I was out for the holidays


21:58 @mark(gamblor) [ lurking ]
* Group hug to all as I have not been around a lot lately


22:05 @michalpokusa (text only)
* @yousafs for reporting an issue in adafruit_httpserver, testing behavior on ESP32-S3 and insightful discussion on Discord on possible solutions


@tannewt (out today)
## 22:34 Status Updates


23:03 @danh (hosting)
* More bug testing, hunting, and fixing for 8.0.0.
* ESP32-S3 upstream fix for I2C does not fix the issues we have with LC709203F, BNO0555, etc. Needs more investigation.
* May do a beta.7 relatively soon.


24:22 @2231puppy
* Working on case design for my E-Fidget board so I can sell them


24:41 @CGrover (text only)
* After adding two more list-like functions, the current version of PaletteSlice was submitted to the Community Bundle.
* The original reason for PaletteSlice was to allow a displayio.Palette object to be easily modified by a ulab array. Posted a related issue for CircuitPython ulab that apparently generated some interest – and that quickly evolved into a discussion that went completely over my head.
* Found a fun rabbit hole. Replicated a 40-yr-old guitar pedal PCB in KiCAD for the second time, but this time the original hand-drawn copper trace design was preserved. Two of the pedal’s fundamental chips are no longer available (and haven’t been for quite a few years), so the exercise resulted in discovering how to create an accurate restoration. OSH Park now has the gerbers in-hand and is preparing to give the design the AfterDark treatment. I have a nice picture frame waiting for the restored PCB when it arrives.
* So next on the list is to resume the PCB design for the Precision VCO Eurorack module and send it off later this week. Of course there won’t be any distractions.


26:00 @david.glaude (text only)
* Not much…
* Acquired two more bluetooth scales (weighing machines) https://www.action.com/fr-be/p/pese-personne-intelligent/ in the hope to reverse the protocol and make a wifi connected version. I already tried to “sniff” it, but there are too many bluetooth devices at home, so I plan to test at the end of my garden when the weather permits it.


26:33 @DJDevon3
* Documented the hardware I2C bus fix for the TR-Cowbell v1.2 which involves cutting 2 traces & adding bodge wire to 3 places. The fix puts both multiplexers on Bus 0 and frees up Bus 1 for Stemma or general I2C use.
* Started 3D printing a prototype enclosure. Took 16 hours to print 1 of 4 sections. Because my print bed is 8” and the PCB is 12” I have to print it in multiple sections. Just got the 3D printer so I’m still learning Fusion 360 and Cura, quite pleased with the progress so far. Using heat set inserts to connect the 2 lower halves together and mount the PCB, they work great and are very simple to use. The board mounts right into place and fits like a glove.
*   * Getting the parts together for a 2nd batch of TR-Cowbell v1.2’s to go out this month. The list is growing and I’ll have to stop accepting inquiries soon. If you want one DM me, they are completely free kits. Currently the offer is only for well known community members, circuit pythonista’s, or adafruit folks due to an address exchange being involved. To current owners please don’t hesitate to give me feedback. All boards ship with Johnny 5 on the box because all I want is input. 


28:23 @foamyguy
   * Implemented save and load indicators for the display on the MIDI sequencer as well as a pitch bend effect for the knob. 
   * Getting back into the swing of things with PR testing and reviews. Tried out some improvements to Sparkline and have started looking into several improvements in the wiznet library, but had to work through some issues to get my environment to a workable state for testing.
   * Dug into a sphinx / rtd-theme issue that results in older libraries having weird behavior when copying example code (more in the weeds)
   * Tested a proof of concept using a ToF distance sensor embedded in the LEGO Table Football goals to detect when point has been scored. Ultimately hoping to make an automatically updating score board for it.
   * This week: Write my Circuitpython 23 post for real this week.


30:52 @jepler
   * Fixed a couple of small bugs:
   * Exceptions will no longer ‘chain’ to themselves
   * When formatted (on a fresh device or via storage.erase_filesystem) the volume ID will be assigned randomly if possible, or else based on device unique identifier. Before, fresh devices almost always got identical volume IDs, which started causing problems in MacOS when multiple CircuitPython devices were plugged in at the same time.
   * Experimentally tested whether increasing memory allocated to lwip solved a weird problem, but it did not.
   * Offered a PR to adafruit_requests to improve error reporting using exception chaining
   * Non-circuitpython (but would be useful with circuitpython): Started working on a RP2040 firmware that would “understand” ST7789-style LCD instructions and would emulate an LCD. There are some interesting challenges!
   * This week:
   * Update the ‘reverse tft’ draft PR for the psram part and set it to ready for review
   * Continuing with the ST7789 emulator
   * Will try again to reproduce #7346 (mdns stops responding on pico w)
   * Will look into #7427 (exception remains in title bar)
   * May start on the NeXT mouse to USB HID guide text
   * Soon: Out January 16-20, a friend is coming to visit and we plan to spend the week hacking on open source software such as LinuxCNC


33:49 @kattni
   * Been out for two and a half weeks. I’m back!
   * If you reached out about anything in that time, please feel free to ping me again.
   * This week:
   * Getting caught up on email, notifications and messages.
   * Anything related to catching up.
   * Syncing up with Liz to figure out what guides for new products I need to pick up.
   * New product guides!
   * Other things:
   * Huge order of spudgers out for delivery!


36:02 @makermelissa
   * Last 3 weeks:
   * Was out for about a week for the holidays
   * Worked on CircuitPython Installer wizard that can be used directly on the circuitpython.org website
   * This week:
   * Finish up the installer to a working state
   * Write up my CircuitPython 2023 wishlist


@tannewt (out today)


## 36:52 In The Weeds


37:10 @foamyguy - sphinx-rtd-theme version inside of RTD server. Older versions of the theme contain a bug that causes line numbers to get copied along with code inside of literalinclude code blocks which we use for examples.


https://github.com/readthedocs/sphinx_rtd_theme/issues/1168
See neopixel docs for example:
https://docs.circuitpython.org/projects/neopixel/en/latest/examples.html


The good news is this issue is already resolved in sphinx-rtd-theme. So if we can get RTD to use a newer version our pages should be fixed. 


This page states the default version of the theme is based on the project creation date:
https://docs.readthedocs.io/en/stable/build-default-versions.html


Neopixel is one of the older libraries, newer ones use newer defaults and thus do not have the same issue. 


Based on the recommendations here: https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html#don-t-rely-on-implicit-dependencies
I think it will use a newer version if we include sphinx-rtd-theme in the docs/requirements.txt file. We can pin it to a known good version, or leave it unpinned and it would take the newest released version, which matches behavior of newer projects if I understand correctly.


Question: Do we want to attempt to specify the theme inside requirements to see if it will fix this, and if so A) do we do it in all libraries or only ones known to need it i.e. created before X date and B) should we pin the version to something or leave it unpinned and take the newest always.
@jepler – let’s try with sphinx-rtd-theme (not pinned/versioned) in docs/requirements.txt of neopixel. If that solves the problem, yay, add it to other “old” libs. Any way to get a list of libs by add date??
@jepler – I wrote a program to do that :) circuitpython subprojects by creation date: https://gist.github.com/131003efdd36e35a525e58fccbd22299


## 44:45 Wrap-Up
Next meeting is **Tuesday**, January 17, 2023, due to a US holiday on Monday.
