# CircuitPython Weekly Meeting for July 17, 2023

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

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.
## 3:00 Community News
πCalc Kickstarter
 PiCalc Calculator 

The πCalc is a fully featured programmable Python calculator powered by a rp2040 with a color touchscreen, sound output, and microphone.
The πCalc includes an interactive MicroPython mode which allows you to solve complex mathematical tasks and programming in Python without any delay. You can also control hardware components including the I/O ports, RGB LEDs, and the integrated speaker for sound output.
The πCalc is compatible with MicroPython or CircuitPython - Kickstarter.
Robot Picking Guitar
 Guitar Picking Robot 

Olav Martin Kvern modified a Squier Telecaster guitar using a Pimoroni Servo 2040, digital servos, and CircuitPython to create a guitar picking robot.
He shares his design goals, tools, and how he overcame power challenges to show how he plays with the guitar robot. - Make.
 Synthio prototype board 

todbot has created a new prototype board to use with CircuitPython's new synthio module. - Mastodon.
### Newsletter Details
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed on Monday mornings. 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.
## 4:55 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
* 17 pull requests merged
  * 16 authors - wtuemura, jepler, DatanoiseTV, weblate, dhalbert, ladyada, makermelissa, hexthat, anecdata, piit79, bergdahl, leah-splitkb, Saentis, jposada202020, FoamyGuy, tannewt
  * 9 reviewers - jepler, dhalbert, ladyada, kattni, makermelissa, BlitzCityDIY, gamblor21, tekktrik, tannewt
* 10 closed issues by 8 people, 13 opened by 12 people


### 5:38 Core
* 14 pull requests merged
  * 13 authors - wtuemura, jepler, DatanoiseTV, weblate, dhalbert, hexthat, anecdata, piit79, bergdahl, leah-splitkb, Saentis, jposada202020, tannewt
  * 6 reviewers - jepler, BlitzCityDIY, gamblor21, dhalbert, ladyada, tannewt
* 30 open pull requests
  * https://github.com/adafruit/circuitpython/pull/6555 (Open 377 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/6913 (Open 303 days)
  * https://github.com/adafruit/circuitpython/pull/7161 (Open 258 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7220 (Open 241 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7293 (Open 227 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7440 (Open 187 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7591 (Open 151 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7618 (Open 147 days)
  * https://github.com/adafruit/circuitpython/pull/7675 (Open 135 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7711 (Open 128 days)
  * https://github.com/adafruit/circuitpython/pull/7718 (Open 126 days)
  * https://github.com/adafruit/circuitpython/pull/7811 (Open 109 days)
  * https://github.com/adafruit/circuitpython/pull/7886 (Open 86 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7984 (Open 62 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/7997 (Open 59 days)
  * https://github.com/adafruit/circuitpython/pull/7996 (Open 59 days)
  * https://github.com/adafruit/circuitpython/pull/8033 (Open 52 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8095 (Open 27 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8091 (Open 27 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8100 (Open 25 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8101 (Open 24 days) (draft)
  * https://github.com/adafruit/circuitpython/pull/8126 (Open 19 days)
  * https://github.com/adafruit/circuitpython/pull/8133 (Open 16 days)
  * https://github.com/adafruit/circuitpython/pull/8136 (Open 15 days)
  * https://github.com/adafruit/circuitpython/pull/8143 (Open 10 days)
  * https://github.com/adafruit/circuitpython/pull/8165 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/8164 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/8161 (Open 4 days)
  * https://github.com/adafruit/circuitpython/pull/8175 (Open 2 days)
  * https://github.com/adafruit/circuitpython/pull/8174 (Open 2 days)
* 4 closed issues by 3 people, 9 opened by 8 people
* 678 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
 * 8.2.x: 2 open issues
 * 9.0.0: 47 open issues
 * Libraries: 21 open issues
 * Long term: 591 open issues
 * Support: 14 open issues
 * Third-party: 8 open issues
 * 3 issues not assigned a milestone


### 8:02 Libraries
* 2 pull requests merged
  * 2 authors - ladyada, makermelissa
  * 2 reviewers - tekktrik, kattni
  * Merged pull requests:
    * https://github.com/adafruit/Adafruit_CircuitPython_FocalTouch/pull/26 (Days open: 8)
    * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/433 (Days open: 4)
  * 60 open pull requests (Oldest: 1021, Newest: 3)
* 6 closed issues by 5 people, 3 opened by 3 people
  * 634 open issues
  * 46 good first issues
* https://circuitpython.org/contributing


#### Library PyPI Weekly Download Stats
* **Total Library Stats**
  * 92017 PyPI downloads over 311 libraries
* **Top 10 Libraries by PyPI Downloads**
  * Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6788
  * Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6205
  * Adafruit CircuitPython Register (adafruit-circuitpython-register): 1778
  * Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1068
  * Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 999
  * Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 873
  * Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 870
  * Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 859
  * Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 646
  * Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 624


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


### 9:12 Blinka
* 1 pull requests merged
  * 1 authors - FoamyGuy
  * 1 reviewers - makermelissa
* 3 open pull requests
  * https://github.com/adafruit/Adafruit_Blinka/pull/417 (Open 887 days)
  * https://github.com/adafruit/Adafruit_Blinka_bleio/pull/40 (Open 647 days)
  * https://github.com/adafruit/Adafruit_Python_PlatformDetect/pull/299 (Open 50 days)
* 0 closed issues by 0 people, 1 opened by 1 people
* 99 open issues
  * https://github.com/adafruit/Adafruit_Blinka/issues
* PyPI downloads in the last week: 10992
* Piwheels Downloads in the last month: 7698
Number of supported boards: 119






## 9:56 Hug reports
9:56 @Paul (hosting)
* @kattni for all her help with the newsletter
* @danh for giving the newsletter a final read through and fixing any mistakes every week
* Group hug


10:41 @danh 
* @tannewt and @jepler for USB host work, which has been a long time coming


10:480@DJDevon3
* @skerr, @elpekenin, & @Whimsee for advice on how to decipher a displayio hex init sequence.
* @skerr & @KevinT for helping with converting parsed json data to an array.
* @jposada for writing an excellent uplot library for graphing data.
* @anecdata for troubleshooting a display issue


11:27 @foamyguy
* @fasteddy516 and @BiffoBear for submitting several improvements to the ethernet Wiznet5k library
* @MichaelPokusa for improved documentation and new functionality in the HTTPServer library
* Group hug


11:54 @jepler
* Hug to a number of folks who offered supportive words on mastodon about a family member’s health situation
* Group hug


12:10 @kattni
* @paul for doing an amazing job with this week’s newsletter! And for all the help on last week’s! And all the help on the upcoming issue! Basically….. Thank you for All the Help.
* @danh for always doing the final proof on the newsletter, even on vacation!
* @foamyguy for agreeing to help with some PR shenanigans I need for screenshots for a guide update and for suggesting a good issue topic to search through to find a library to update
* @foamyguy for going a quick CP lib release sweep - a few got missed along the way
* @tekktrik for submitting a few fixes to various infrastructure situations
* Group hug for everyone!


12:50 @mark(gamblor) [missing]
* Group hug to all as work and life have kept me from contributing much lately.


13:05 @tannewt
* Everyone for being flexible while I’m out off and on taking care of Ari.
* @kattni and @paul for putting the newsletter together while anne is out.


@tekktrik (not present)
* Group hug!


13:52 @tyeth (text / not-present)
* @hopkapi on discord, the first user to knowingly test my SEN5x driver, and found an untested function had a bug. Related to booleans and struct.unpack(“<?”) which micropython doesnt support. Fixed and now feel ready to release the library




## 13:55 Status Updates
@Paul (hosting)
* Guest edited the second of three Python on Hardware newsletters with Kattni.  I have even more respect and appreciation for all of Anne’s work every single week.  It’s our last week editing the newsletter before Anne gets back - send us your projects and stories!


14:46 @danh
* Making another pass over MicroPython merge to double-check the choices. I’ll annotate our code with “CircuitPython” markers of some kind so the origin of certain changes is clearer in the future, especially in places like the core interpreter (py/ directory).
* Looks like we’ll do an 8.2.1 soon to fix some regressions and maybe some easy bugs.


15:10 @DJDevon3
* Wrote my first display driver! Adafruit has a ST7796 driver for Arduino but not Circuit Python. Attempted to port the Arduino init sequence with no success. Instead used the ST7789 Circuit Python driver by Melissa as a basis. Figured out how to flip and invert the the display hex init sequence using ST’s datasheet to produce a working Circuit Python ST7796 driver. I make no claims that it’s 100% correct. It’s my first init sequence driver and will note that in the code. I intend to submit it to the community bundle when I figure out how to use cookie cutter.
* Finished an adafruit_requests Fitbit API example. It will likely require a lot of documentation on how to use it with a microcontroller as it’s not as straightforward as any other API. If you don’t make a request to their server at least once every 8 hours you must generate a new token using their website (or an https server of your own to capture the callback Authorization Code).


16:46 @foamyguy
* Less CircuitPython activity than usual due to a storm that knocked out power for myself, and loads of other people around town over the past weekend. (Hug report for utility workers, and response crews)
* Getting back into the swing of things today in CircuitPythonland. Still working through PR reviews, and following up on older inactive PRs. 
* Searching outward from esp32spi to find more instances of secrets.py that can be changed to settings.toml to go along with the changes in that library.
* Release sweep on libraries with new commits since their latest release.




18:22 @jepler
* Interacting on an issue & PR about Ulab build problems. An 8+ year old gcc bug causes a spurious warning in some ulab code I wrote recently depending on other compiler flags, but a workaround has been offered (yay!)
* Moving usb host keyboard maps forward. Addressed scott’s PR review this morning.
* Working on sdio for rp2040, just finished removing the last NotImplemented so tomorrow can start testing on HW
   * Capacity check is still missing but was returning a bogus value instead of raising NotImplemented
* This week/ish
   * Out friday, next monday
   * Sdio is focus. If I don’t have it working by EOD tuesday it may be time to put it aside for now though.
   * Todbot has a seemingly-simple but tricky to implement request (get info about playing note’s Envelope state), I may look at implementing it.




20:54 @kattni
* Last week:
   * Guide feedback.
   * Newsletter.
* This week:
   * Guide feedback.
   * Newsletter.
* FYI - I’m around for a couple of hours on Thursday for the newsletter, and Friday to get the newsletter published, but otherwise I am “out” those two days.


21:38 @tannewt
* Ari has his first ear infection so he’s home today at least. Will keep posted on the rest of the week.
* Almost done with PR for usb host port singleton. Works on rp2040 but still running down a nasty bug on iMX. (Where registers seem to be changed/loaded incorrectly.) One more idea to try when I have time and then PR it regardless.
* Fixed rp2040 double click reset for safe mode.
* Found host memory alignment issue in tinyusb and made PR: https://github.com/hathach/tinyusb/pull/2146
* Was playing with switching CP to unifont or cozette. Unifont is 8x16 so it’s a bit big. Cozette is 5x13 *mostly*. 4 and q are one more pixel wider. Emoji are also larger. Unifont could be cool because it would support ko, ja and others too.
* Need to assemble toy hacker board and then sync up on web workflow polish changes.


@tekktrik (not present)
* Break from grad school for this half of the summer!
* Last week
   * Started a few pull requests to allow the CI to print out the versions used by pre-commit, which should help in specific cases where the information is needed for debugging CI issues
   * Submitting a couple pull requests that would enable certain bundles to be skipped from being built.  For example, circuitpython_typing doesn’t need an mpy bundle, so building it and attaching to releases can be skipped.
   * Worked on a couple PR reviews.
* This week & upcoming
   * Looking into fixing and improving the CI for the Learn Guide repo, with the goal of allowing the CI to only check updated guides when triggered via PR.
   * Relooking at using rp2040js for CI purposes.  I’ve been keeping the repos I started up to date, and I’m hoping to come up with a proposal u


26:40 @fede2 (chat only)
* Last week
   * I built RISCV-lab for submission as an official RISCV-org lab. This means that anyone who needs to compile test on riscv64 hardware, they can contact me and I can set them up with dedicated hardware for running things like a github remote runner, so it’s useful for running actions. I have also started compiling and testing python3 modules. Feel free to contact me in discord if you think you’ll need hardware, or if you think there is a python module that you want me to work on.
* This week & upcoming
   * I’ll build a circuitpython keyboard (kmk) with native Costarrincan languages like bribri and cabécar, which need special chars to write them.


## 27:35 In The Weeds




## Wrap-Up