 Okay, hello everybody. This is the CircuitPython Weekly Meeting for July the 5th. This is the time of the week where we get together to talk about all things CircuitPython. My name is Tim, and I am sponsored by Adafruit to work on CircuitPython. CircuitPython is a version of Python that's designed to run on tiny computers called microcontrollers. CircuitPython development is primarily sponsored by Adafruit. So if you want to support them and CircuitPython, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join any time by going to adafruit.com. We hold a meeting in the CircuitPython Dev text channel, as well as the CircuitPython voice channel. The meeting typically happens on Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except when it coincides with a U.S. holiday such as this week. We're having the meeting on Tuesdays, generally if there is a U.S. holiday on a Monday, then we will bounce it over to the Tuesday, but keep the same time of 2 p.m. Eastern, 11 a.m. Pacific. There's a notes document that accompanies the meeting and recording. The notes document contains time stamps to go along with the video. So you can use the dock to view only the parts that you are most interested in. The meeting tends to run 60 to 90 minutes, depending on how many folks are around. So you can skip around to the parts that you are most interested in using the time stamps in the notes dock. After each meeting, we'll post a link to the next meeting's notes document inside that CircuitPython Dev channel on Discord. Click the pinned messages there to find the latest notes dock throughout the week. And you can always add status updates, hard reports, and in the weeds topics throughout the week, if you think of them. So the meeting will be held in five parts. The first part is community news. This is going to be a look at the CircuitPython and Python on hardware in the community. It's a review of the Python on microcontrollers newsletter, or typically it's a preview of the Python on microcontrollers newsletter. This week it has of course come out because we're doing the meeting on a Tuesday, so we'll be looking at some of the goodies from that newsletter this morning. The second part is the state of CircuitPython, the libraries in Blinka. This is a statistical overview of the entire project, a chance to look at the project by the numbers separate from what we're all working on. The third part and the first of our round robins is the hug report section. This is an opportunity to highlight good things that folks in the community are doing. Take time to recognize awesome folks in our community and beyond. The next part is status updates. This is the second of our two round robins. Status updates is an opportunity to sync up on what you've been working on. Take a couple of minutes to tell us about what you worked on in the last week and what you intend to work on until the next meeting next week. And then the fifth and final part is in the weeds section. In the weeds is an opportunity for more long form discussions. These discussions can come out of status updates or they can be identified ahead of time and listed down in that in the weeds section in the notes document. All right with that we will get going with community news. Let me get the first timestamp here. Here we are. So first up in news this week is the Raspberry Pi Pico W. On June the 30th Raspberry Pi launched three new members of the Pico family. The Raspberry Pi Pico W is priced at six dollars and brings 802.11n wireless networking to the Pico platform while retaining complete pin compatibility and adding an Infineon CYW43439 wireless chip onto that Raspberry Pi Pico. So check out the Raspberry Pi blog. I believe there was an Adafruit blog post as well about the Raspberry Pi Pico. Next up is a project that was shared in the newsletter this week that caught my eye. This is a RGB hexagonal keyboard powered by CircuitPython. Let me get a timestamp in there. This is a beautiful custom keyboard with colored hexagonal keys. The key switches are Kale Chocks. The key caps are Custom Resin. And it's powered by a solder party RP2040 stamp with a custom CircuitPython build. And there are links here to Twitter as well as the firmware that runs that keyboard. Next up is this week on the Tom's Hardware piecast. We'll feature CircuitPythonista Deborah Ansel. So Tom's Hardware piecast video cast week has a special guest, Deborah Ansel, at GeekMom projects to talk about her fantastic range of LED infused projects from bags, wearables, robots, blogs, and more. Chances are GeekMom projects has found clever ways to add RGB LEDs to it all. So check out links there to Twitter and YouTube. So that is it for the review this week. And just a reminder, these items came from the CircuitPython Weekly newsletter. This is a community run newsletter that is emailed every Tuesday. The complete archives are available on AdafruitDaily.com. It highlights the latest Python on hardware related news from around the web, including CircuitPython, Python, and MicroPython developments. You can contribute your own news or projects. There's a couple of ways to do it. Probably the best is to go ahead and go to GitHub and submit a pull request if you're familiar with that process. If you aren't, that's fine as well. You can also tag Ann on Twitter or with, excuse me, using the hashtag CircuitPython on Twitter. And then if you're not using Twitter, you can also just email to cpnewsatadafruit.com to send those news items in for inclusion in the newsletter. Okay. So next up is the state of CircuitPython, the libraries, and Blinka. So I will read the overall section. This week we had 22 pull requests merged across the whole project from 14 authors. Let's see. I did not go through and highlight ahead of time, but a couple of names just skimming through here that don't look familiar to me are Lisa Apple, let's see, Julian Ortiel, Klox, RTYLA, XUHOW, XUHOW, and TC Franks. Those are folks that are perhaps newer or maybe less frequent contributors. So thank you to all of those folks as well as all of our standard contributors ongoing. We had eight reviewers this week. Looks like the usual suspects there. So thank you again to all of our reviewers. This week we had 18 closed issues by eight people with 27 opened issues by 21 people. Again, that's overall. So next up, we will hear about the core. Scott, are you available to tell us about the core this week? Sure. Happy to you. Thanks for hosting, Tim. So for the numbers for the core, we have 14 pull requests merged from eight different authors, Lisa Apple and XUHOW are new. So thank you to them. We had five reviewers. So thank you to all of our reviewers as well. You make it possible to support eight authors and more. We have 16 open pull requests. Four of those are 100 days or older. So please take a look and try. If you're involved in any of those pull requests, please take a look. There's a number that are for specific boards. So maybe if you want to start contributing to circuit Python, take a look at those boards and see if you can do any testing to get those in. Issues wise, we had six closed issues by two people, 11 open by 10. So we're up five for a total of 536 open issues. As we get issues in, what we do is we kind of triage them into milestones. And that gives kind of prioritization for eight fruit funded folks within circuit Python, the circuit by the community. We have two open issues for 73X. Those are kind of urgent stable fixes. We have 50 open issues for 8.0, which is pretty large and we need to go through them. At some point when we're close to releasing 8.0, what we'll do is we'll go through that list and then fix the ones that we decide to leave there. We also have 459 long-term issues. Those are things that are not a priority, but would be nice to have at some point. We also have two issues not assigned to milestones. So we'll take a look at those. And that's it for the core. Awesome. Thank you, Scott. No problem. Next up, we will send it over to Katnay to tell us about the libraries. Hello. All right. So this section applies to all of the eight fruit circuit Python libraries, which is everything that starts with eight fruit underscore, circuit Python underscore, as well as a couple extras. Across all of those repositories, we had eight pull requests merged from six authors. I missed actually which ones Tim wrote off, but there are four names in here I don't recognize, so that's great to see new contributors and six reviewers. The oldest pull request merge was 19 days old, so it's good to see we're still keeping up with older ones and the rest were more recent. That leaves us with 31 open pull requests, which is up from last week, but that's good to see that people are still contributing and I think at least six of those are waiting for me. We had 11 issues closed by seven people and 16 opened by 11 people, leaving us with 645 open issues. 175 of those are good first issues. If you're interested in contributing to circuit Python on the Python side of things, check out circuitpython.org slash contributing. It'll have all this information and more. If you're new to everything and you want to contribute code or documentation, check out the good first issues. And don't worry about learning Git and GitHub. We have a guide and also we're always available on Discord to help out. We want to make sure you can contribute in a way that works for you. If you're looking to get started reviewing, there is a list of open pull requests. You can check those out, leave a comment, test it if you have the hardware. Let us know if you find any issues or if it looks good to you. This is always helpful and we will, once you're comfortable with that, we can talk about leveling you up to our review team. In terms of library updates in the last seven days, there were no new libraries, a short list of updated libraries in the notes that I will not read off, but those are available there if you're interested. And that's what I've got. Awesome. Thanks, Kenny. Next up, we will hear from maker Melissa about the state of Blinka. Hello. So Blinka is our circuit Python compatibility layer for micro Python, Raspberry Pi and other single board computers. And this week we had zero pull request merged. There are currently four open pull requests amongst other repositories. And there was one closed issue by one person in zero open by zero people leaving a net of 76 open issues. There were 8,000 and 63 Pi wheels downloads in the last month and we are currently supporting 89 boards. And that's it. Thanks, Melissa. Right. So that gets us through the state of circuit Python, the libraries in Blinka's. So the next up will be the hug reports section. And again, hug reports is a chance to highlight folks in the circuit Python community and beyond for doing awesome things. As mentioned, this section is held as a round robin where I will start and then we'll go down the list alphabetically. If you haven't already, please do go ahead and add your notes to the document. And if you have your notes in there but can't speak or would prefer not to speak, just put a note that says text only and then I will read yours when we get to you in the list. So I'll start it out this week. Let me take a time stamp. Hug reports this week to Scott. Thank you for working on the web workflow. I'm super excited about the possibilities that this brings and also helping me get it up and running on my end the other day on the deep dive. Next up, thank you to Neridoc and Tectric who both put in some fixes for CERCUP in the past day or so. So thank you to both of those folks. And next up, I will send it over to Dan. Okay. Thanks. Repeating. Thanks to Neridoc for the quick fix to CERCUP. Thanks to TAC who's working on multiple LUNs so that for instance, if you plug in a Pi portal, you can see both the SD card and circuit Pi. I tested it. It works okay on Linux and macOS. On Windows, it doesn't work that well and I'm considering what to do, what we might do about that. But that would be very nice if you could see more than one file system when you plug in a board. You have to mount the files. And thanks to Scott for working on the web workflow. I tried it out and approved it and it's under debugging right now. Okay. Awesome. Thanks, Dan. Lots of exciting stuff in the works. Sounds like. Next up, we will send it over to Jeff. Hello. I'm still not really back in the swing of things yet. So all I'll have is a group hug. Thank you. All right. Thanks, Jeff. Next up is Katny. Hello. So first up a hug for Tectric for working through the process to move from setup.pi to pyproject.toml. To Todd Bot for explaining a Python concept in a way that I was able to understand and for Neridoc for helping explain the same concept. To you, Tim, for writing and continuing to help with the GitHub Action status late code. To Rose for designing a 3D printed stand for the tricolor USB tower light. To Tectric again for putting in quick fixes for bugs. To my dad for agreeing to take the lead on building a room in my basement for stopping by to measure everything. Get an idea what we're looking for and putting together a parts list for the project. To Rose again for putting so much effort into the mailbox project receiver code and persevering in the face of multiple obstacles. To Jeff for a lovely chat and a great hug. All right. Thank you, Katny. Next up we will send it over to Kmatch. Thanks, Tim. I've got one hug this week to BablockB, a user on GitHub, for a pull request performance update to the Display Shape Sparkline library which improves how it redraws the performance of that and it's more flexible. Thanks a lot. Nice. Thanks, Kmatch. I'll have to look into that when I saw that go by, but I haven't had a chance to see it yet, but that's great to see. Next up is Liz, BlitzCityDIY. I'll hug her for this week for Melissa for adding multiple display support for the HT16K33 LED matrix driver. Currently using two of them as a GUI for a project and it's working really well. And a group hug. Awesome. Thanks, Liz. Next up is Maker Melissa. Hi. A group hug to everyone who kept things going while it's out for the last few weeks. And that's it. Thanks, Melissa, and welcome back. Next up is Mark, who is missing the meeting today. So I'll read Mark's. Mark has hug report for Toddbot and Paint Your Dragon for examples and tutorials that were used to make the Google EIs project work. I haven't seen that one yet, but that certainly sounds like a lot of fun. And then next up, a group hug. Mark says he's sure that he's missed thinking some people over the last couple of weeks. And so then next up is Neridoc, who's also text-only. Neridoc has a group hug for all the group hugs I didn't give in the past, to FOMIGUYME for interactive streams, to TechTrick for the PRs and reviews on CIRCUP and other things, to DanH for all the discussion and responsiveness on CP issues and PRs, Qcatny, Scott, and PT, et cetera, for the opportunities to work with Adafruit. Excellent. Thank you, Neridoc, for your hug reports. And then next up is Tammy Makes Things, who's also text-only today. Tammy has hug report for DanH for a speedy response to async.io import error that Tammy ran into last week and a group hug for everybody else. And then next up is Scott. Hello. For me, a hug report to Neridoc, DanH, RetiredWizard, and FOMIGUYME for testing the web workflow. Awesome. Thank you, Scott. And then rounding out hug reports this week is TechTrick, who's text-only. TechTrick has a hug report for the team behind Dependabot for neat code that was used for parsing arguments to setup function inside setuppy files so that TechTrick can automate building the new pyproject.toml files and then a group hug as well. All right. So thank you to TechTrick, as well as everybody else who participated in hug reports. Getting into our next section here, status updates. Let's take a timestamp for that one. Status updates is our time to sync up with what we're doing. The section is also held as a round robin where I will start and we'll go through the list alphabetically. Everyone will have a chance to participate. When I call on you, take a couple of minutes to talk about what you've been doing since the last meeting and what you'll be up to until the next meeting. This is also an opportunity to provide tips and tricks relevant to what people are working on. And if a discussion does start to become too long, we can always move it down to in the weeds section at the end. So I will get us started here on status updates. Last week I tried out the newest version of the web workflow and I got the edit page that I began working on much earlier in development back up in Functional again. So playing with that was a lot of fun. I still have a couple of tweaks I want to make before I get a PR in with the edit page. The other basically main thing that I spent time on this week is the octopus game and watch game that I'm building for PyGamer. So at this point the all the core objects inside the code that control the more complex aspects of the game are completed. I have those classes functional and the most basic game mode is implemented. The stuff that I'll be continuing on to this week is actually rounding out the second game mode. All of these game and watch games had two modes in addition to the watch as well. So I'll be working on the second game mode and just fleshing out all of the specific behaviors and interactions with the different ways that those modes work. And then also I need to get the first draft of the learn guide out of my head and down onto the pages. So that's what I've got in the works this week. And next up I will pass it over to Dan. Okay thank you. So this week I tested and reviewed the web workflow from Scott and I've been working on ESP importing sort of Python to play in ESP32 chips. Those suffix and specifically targeting the ESP32 v2 feather. And so I have the REPL working. I'm debugging because there's no native USB on this. You have we have to use something like THANI or other utility programs to upload files to this board. And when I try to do that I have all kinds of problems. So I'm debugging that right now. It probably reflects some other problem with the port and I haven't narrowed it down yet. But I'm doing all kinds of things like logging to an alternate UR port and things like that. So I hope to get that working at some point enough so that we can do a pull request and then have people try this out. Okay that's it. Thanks Dan. Exciting news in the world of ESP32 for sure. Next up we will hear from Jeff. All right. So last week I was still getting over being sick so I wasn't particularly productive. I did a couple of small pull requests, one of which was merged. It changes the way we install the compiler tool chain for the ARM targets. It doesn't make a real difference. It just simplifies the GitHub workflow as a tiny bit. And then I did a small amount of work on the RGB matrix for the ESP32 S3. And because I was under the weather I wouldn't read too much into anything exactly that I discovered. But it looks like right now the support appears to be built into Serger Python but it just crashes. Paint Your Dragon made a new driver that uses the LCD peripheral of the ESP32 S3 to drive an RGB matrix. And I tried to convert that code into Serger Python and I got weird results. So this week I will be continuing to look into that and under the heading of Not Serger Python I've been looking at the recently landed RP2040 support in QMK which makes it easier to make keyboards out of RP2040 boards like the KB2040. Looks really cool. No Serger Python inside so not exactly relevant unless you like keyboards. Anyway that's what I got. Awesome thank you Jeff. Next up we will hear from Katny. So last week began working on the GitHub Action Status Light Guide completed most of the text content. Assembled the tower light and stand. The tower light used in this in the status light guide has a USB cable coming out of the bottom but the base has no clearance for the cable so as is it sits on an angle and it's wobbly. Rose designed a bolt-on stand with a track for the USB cable and now it sits super solidly on a flat surface. This week I need to finish this guide. It needs a few more screenshots and images. There are five PRs outstanding for the first five libraries that we want to move to the pyproject.toml for testing. I need to go through and approve those. There's a new feature in learn I need to test. I'm going to be setting up discord auto mod this week and then also go there's a few PRs that are open that I'm tagged on that are waiting for me that I need to do some things to move them forward. This past weekend reduced the mailbox project Laura receiver py code down to only making the LED blink and showing you got mail and the bonnet OLED and traded SD cards with my dad so now he has a simple working version of the mailbox notifier. He's very excited and will sort out sending him phone notifications when we have time. There were a ton of obstacles that was some of them were very obscure things that we had to figure out and so we've had to change up how we were going to do that multiple times now. Hopefully we can sort something out soon and begin emptying the majority of the basement into the garage or into other parts of the basement to prep for partitioning off a section into a room and that's what I've got. All right. Thank you, Kenny. Next up is K match. Good. Thanks, Tim. Continue work on touch screens and considering what is required and actually what makes sense to add into the circuit circuit Python core for touch screen or reading touch screen events with the particular objective of how to reduce latency between touch and how you can respond to it. I reviewed the event queue that's used in the keypad module so that looks like a good framework to use and so the next steps towards understanding whether this makes sense is to see whether adding an event queue using a touch screen interrupt pin and then a subsequent I2C call to get the touch data makes sense and then in typing this it reminded me of some discussion related to the request for interrupt or async operation was a generic question whether a generic capability of including or defining an interrupt pin to trigger grabbing some I2C data into an event queue makes sense as I think Dan proposed quite some time ago related. I may raise an issue just to get feedback on that generic capability and get feedback of whether this makes sense. So that's the first item. The second one is somewhat related but towards assessing whether this latency can be improved by adding an interrupt is also related to the display performance and a generic question feel free to add feedback in the discord if you have an answer but I can't see a way to measure the display IO refresh rate so if anybody has any hints on how best to do that and sort of Python I'm all ears. Those are my two items. Thanks. All right thanks Kimmich. Next up we will hear from maker Melissa. Hello. Last few weeks I updated the HT16K33 library to accommodate spanning text and graphics across multiple displays by only passing in multiple I2C addresses and a list of tuple and recovering from foot surgery. This week I am back and I'm going to finish I'm finishing up on catching up on emails and then I'm figuring exactly what I'm going to work on but likely will be on the web work flow and code.circuitpython.org enhancements and that's it. Awesome thank you maker Melissa. Next up is Neridoc whose text only so I'll read. Last week Neridoc made a library manager think Circa but for the web workflow maybe next on show and tell. Also last week worked on a fix for Circa crashing on unidentifiable MPY files. Moving into this week add a property to .mf to change the BLE default name for the BLE workflow. User code can set it itself so this would allow like a configuration to set it from a file it sounds like. Next item this week a PR fixes to the web workflow cross origin cross origin restriction preflight implementation and then adopt a cat. It's been almost two years without a cat in the house so that's definitely going to be a lot of fun. I imagine cats are a lot of fun to have around for sure so that sounds cool. Thank you Neridoc. Next up is Tammy makes things who's also text only. Tammy says last week she started working on a project to display CI and CD status for work and that's continuous integration and continuous deployment systems. On a matrix portal in for the code currently is not functional because of a problem I ran into with a sync IO on that hardware but most of the code is written preparing to give a circuit python demo at the desert pie meetup on Saturday July 9th. This week still hoping to get back to a regular streaming cadence work and other considerations permitting and then the circuit python demo at that desert pie python meetup. So thank you Tammy and then next up we'll send it over to Scott. Hello okay so not a lot of details but the web workflow is checked in. If you want to try it an s2 or an s3 with the auto wi-fi credential set plus the circuit pi web API key will get you going with that. It's not perfect for sure so if you find issues please either fix them like Neridoc sounds like they're doing or file issues. I know for a fact that I have some like task socket management stuff that I still need to work on and thank you to retired wizard for talking or filing some issues about that. But mainly what I'm working on is adding serial access by allowing web sockets. So web sockets are the way of doing serial over it starts as an HTTP request and then switches to web socket. So I've got all of that handshake stuff working and now like I've just got a manage like holding on to the socket and like writing stuff to it and reading from it that sort of stuff. So yeah mainly working on the serial via web sockets. Nice exciting stuff for sure thanks Scott. Next up is Tektrick who is text only so I'll read them. So last week Tektrick fixed documentation issue in the DPS 310 library that had wrong units fixed an issue with circup where the latest version of setup tools was incompatible with a version of append dependency working on moving the libraries from setup.py over to use pyproject.toml instead created pyproject.toml files for a few libraries to begin testing their use make sure that users aren't affected when they use pip to install those libraries parsed consolidated and cleaned the requirements for each library built prototype pyproject.toml files or pyproject.toml.disabled files for each library to prepare and test automating the transition for the libraries when it comes time to do the conversion on them next week this week for Tektrick is going to be deploying the pyproject.toml test libraries accounting for possible optional dependencies for libraries if we choose to use them inside the pyproject toml's finalizing the PR to make touchpads iterable inside of the circuit play ground library late hug yeah late hug report group hug to dan for making those pins hashable for making pins hashable generally speaking and hopefully some more circuit python core documentation additions this week as well for Tektrick all right so that rounds out the status updates so the fifth and final section of the meetings meeting is the in the weeds section this is an opportunity for more long-form discussions that either come out of status updates or have been identified ahead of time if you have any in the weeds topics and you have not already added them down at the bottom please do so well we have one in here now so we'll discuss that one but if anybody knows of another please go ahead and throw it in so it looks like our first in the weeds topic is from catney catney do you want to tell us what you got yeah so i wanted to talk about circuit python day it is august 19th this year it will be a virtual event if you're interested in joining in hosting something or being involved in any way please reach out to me by sending an email to circuit python day at adafruit.com we have had other people host a show and tell in a different language for example you can send in short videos of you know projects you've worked on or we may actually host a show and tell on that day as well this is still early days in planning so we don't know yet you know what exactly is going to be going on but we want to hear from other folks as to what they might like to see or what they might like to do or how they might like to contribute so i wanted to put that out there i will probably be bringing it up every every meeting until it happens just as a reminder and for folks who maybe miss individual meetings so that they also know so yeah if you if you have any ideas or or ways you want to contribute and we can try and figure out a way to make it work like i said send an email to circuit python day at adafruit.com and that's pretty much what i've got awesome thanks catney it's cool to see it come up on the calendar and definitely looking forward to it i'm sure i will stream at some point but i'll have to work out the details later on yes you will you're already on my list okay it looks like we have no other topics that popped up for in the weeds so we will go ahead and move on to the wrap up uh so let's see this has been the circuit python weekly meeting for july the fifth 2022 thank you to everyone who participated if you want to support adafruit and circuit python and those of us that are paid to work on circuit python please consider purchasing from the adafruit shop at adafruit.com the video of this uh meeting will be made available on youtube at youtube.com slash adafruit and the podcast will be available on major podcast services it'll also be featured in the python for microcontrollers newsletter uh go to head over to adafruitdaily.com to subscribe to that um the next meeting will be held on monday as usual at 2 p.m eastern 11 a.m pacific and that is on the 12th uh no that is on the 11th excuse me the 11th of july um the meeting is held on the adafruit discord which you can join by going to adafruit.it slash discord to be notified of meetings and any changes to the day or time you can also ask to be added to the circuit python easter's roll on discord and you'll get a ping uh any time that those meetings do change um so that's it for today thanks again to everybody and we hope to see you all next week thanks everyone