 Hello and welcome to the CircuitPython Weekly for April 24, 2023. This is the time of the week where we get together and talk about all things CircuitPython. I'm Scott, and I'm sponsored by Adafruit to work on CircuitPython. CircuitPython is a version of Python designed to run on tiny computers called microcontrollers. CircuitPython development is primarily sponsored by Adafruit, so if you want to support Adafruit and CircuitPython, consider purchasing hardware for Adafruit.com. This meeting is open to everyone and hosted on the Adafruit Discord server. You can join the server anytime by going to the URL adafru.it-slash-discord. We hold the meeting in the CircuitPython Dev Text Channel and the CircuitPython Voice Channel, and there are many other channels around electronics as well there. This meeting typically happens Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except when it coincides with a U.S. holiday. In the Note Stock there's a link to a calendar you can view online or add to your favorite calendar app. We also send notifications about upcoming meetings via Discord. If you'd like to receive those notifications, ask us to add you to the CircuitPython Nista's Discord role. There's a Note Stock to accompany the meeting and the recording. The final notes document includes timestamps to go along with the video, so you can use the doc to skip around and view parts of the video that interest you most. The meeting tends to run 45 to 60 minutes. After each meeting, we post a link to the next meeting's notes document in the CircuitPython Dev Channel on the Adafruit Discord. Check the pinned messages to find the latest doc so that you can add your notes for the following meeting. If you wish to participate but cannot attend, you can leave hard reports and status updates in the document for us to read during the meeting. This meeting is held in five parts. The first is community news. This is a brief overview of all things CircuitPython and Python on hardware in the community. This preview of our Python on microcontrollers newsletter. The second part is the state of CircuitPython libraries in Blinka. This is a quantitative overview of the entire project. It's a chance to look at the project by the numbers separate from our status updates. Third part is hug reports. Hug reports is an opportunity to highlight the good things folks are doing, taking time to recognize the awesome folks in our community. Fourth part is status updates. Status update is an opportunity to report what you've been up to, take a couple minutes and talk about what you've been doing in the last week and what you plan on doing in the coming week. The fifth part and the final part is in the weeds. This is a chance to just have any discussion that we need to have more longer form stuff. These discussions can come out of status updates or be something that you've got to do the note stock ahead of time. That covers how the meeting will go. I'll move on to community news and switch my document and take a time stand. Okay. I got my radio voice today. 251, community news. First up, Picon US happened the previous weekend, like over the weekend, is happening in Salt Lake City, Utah, April 21st to the 23rd, and development spirits are today through Wednesday. A different circuit by the team members have been there hosting events. Catney and Jeff will be present along with a few well-known community members. They did open spaces over the weekend during the conference. It's a chance for people to play around with Circuit Python via the Circuit Playground Express. Starting today, Catney will be hosting three days of development sprints from 8 a.m. to 5 p.m. today through Wednesday. The location will be determined during the conference. The sprints are an opportunity to contribute to the Circuit Python project and the Python side of things through code and documentation on the Circuit Python libraries. Everyone is welcome. There will still be all of the introduction to Circuit Python hardware, so there will be opportunities for folks at any level to participate. And Catney says, if you're attending, please let us know in the Circuit Python Dev channel on the ATFord Discord or come find us around the conference. We'd love to meet up. We're looking forward to Picon US 2023, and we hope you are too. See you there. And if you are not there, just be aware that there was a number of folks that made comments on issues for the sprints. So it looks like they're going and they're going well, so please be responsive to those folks if they add you as a reviewer. And then some news about Picon US 2024 and 25. They'll be held in Pittsburgh, Pennsylvania from May 15th to the 23rd in 2024. And also in Pittsburgh, May 14th through 22nd in 2025, which is mind-boggling. That's a year. For those of you paying, well, that have followed Picon US, Pittsburgh was actually supposed to be, I think, 2020 and 2021. But the pandemic threw a wrench in those plans. So they're going back to Pittsburgh for that, which will be great. All right. Next time code. Work progresses on using an Adafruit Feather DVI with CircuitPython. In the, yep, thank you for the link. There's a video of Turtle logo running nicely on the Feather DVI with CircuitPython. Lady Aida rummaged through CircuitPython project led 10 leaders. My GitHub repository branches to find this build with CircuitPython with DVI output support. Now you can treat any HDMI monitor as a display for CircuitPython. For example, above she is running the Turtle demo and showing me that shows making cool graphical shapes, but to display on your desk via the Feather RP2040 with DVI. The ripple also appears on the screen. How fun is that? And that's actually merged into main so you can get it from absolute newest now as well. Okay, another time code. Awesome MIDI and Game Controller with CircuitPython. Christopher Stevens has built the most remarkable MIDI controller based on an Adafruit tutorial by John Park. Christopher has taken this from a 4 to a 77 out of 10. He writes, this dual three-axis joystick hostess features two microcontrollers, an Adafruit Metro Grand Central M4 for all the buttons and joysticks, with the exception of the Neosliders and Neokies managed by a Feather RP2040, which is pink. Grand Central was great for all the inputs and timers for LED fades. Feather RP2040 manages the IceGridZ reads separately as it offered the cool factor, yet was a bit slower in reads per second than direct inputs handled by the Grand Central. This turned out well for gaming purposes for fast controls with the upper controls not needing the speed less used. The game control sends out low latency MIDI signals, which can be converted to joystick controls with an app like MIDI to VJoy. 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. Both boards communicate with each other via UART at a basic level, syncing when the center ship power button is pressed, the cool pulse in the video, and distinct the continuous rainbow color rotations in all Neopixels. It does utilize CircuitPython super fun in this project. That's the third day. I'll have to watch that. I haven't actually watched it. Okay, so the newsletter details. The CircuitPython Weekly newsletter is a CircuitPython community-run newsletter emailed every Tuesday. The complete archives are available at www.eaterfruitdaily.com slash category slash 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. It's the github.com slash www.eaterfruit slash circuitpython-weekly-newsletter repository, and there's a draft folder in there. You can submit a pull request, but you can also tag a tweet with hashtag CircuitPython on Twitter, post on Mastodon with hashtag CircuitPython, or email cpnews at www.eaterfruit.com. And we love links and hints and tips and tricks for that, so please feel free to do that. Okay. Next up we have the state of CircuitPython libraries in Blinka. This is a statistical overview of the health of the project and its subparts. So we'll start with overall numbers and then we'll go kind of through the core libraries in Blinka. And I think if anybody wants to volunteer to read libraries in or Blinka, please drop in the note stock, because I think both Catney and Melissa are out. But I'll start with overall in the core. So overall, we had 31 pull requests merged from 20 different authors. So new names for me are FurBrain, EthChill, Ken and Casa, Rich123, Cdarius, DgNuff, are all new names to me there. So thank you to all of our authors for those pull requests. We had nine reviewers, which is awesome and more than I think we normally have. So thank you to them. As always, we need more reviewers to support more authors. So thank you to both our reviewers and authors. We had 13 closed issues by 10 people and 24 opened by 21 people. So we're definitely up 11. We're up 11. And we've had a lot of people involved. 21 seems like a lot, so that's great too. OK, I'm going to read the core. And then we'll go to FomyGuy for the libraries. So for the core, we had 15 pull requests merged from 11 different authors. This is a pretty good number too. So thank you to all of our authors. We had DJ Devon3 says, 20 authors, is that a new record? That's a lot of new contributors. It's definitely up there. Well, 21 people doing issues is a lot to me too. We should go back and parse all these stats and graph them. Oh, and I should say that these stats are for the previous week. And we do actually capture them every night. OK, so for the core, 11 authors, four reviewers on the core. So thank you to all those folks. We have 30 open pull requests, which is a bit more than I like to see. Because I tend to like to keep it on to a single page, which is 25. A number of those are draft, and a number of those have to do with development boards. So if you happen to have particular boards, take a look at those and see if you can't help test and get this checked in. Reviewing's awesome and testing's awesome. Issues-wise for the core, we had eight closed issues by six people and 11 opened by 10 people for a total of 630 open issues, which we've been pretty stable at. Dan and I, not last week, but the week before, went through and did some triaging. We used milestones to inform the Adafruit-funded folks' priorities. So if there are other issues that you'd like to pick up as a community member, we're happy to support you doing that. But these milestones are meant to inform our work prioritization for those of us that are paid by Adafruit to work on Sacramento. We have zero open issues for 8.0.x, which is the most urgent stuff. 8.05 has been pretty stable, which has been great. Our next feature release will be 8.1. It has eight open issues. And then we have 27 open issues for 8.xx, which are somewhat urgent things that we'd like to get to. 9.0 is going to be our major releases, also Maybreak APIs. And we have 25 open issues for that. And we'll get there once 8.1 is done. We have eight issues not assigned to milestone when the script ran. So we'll have to take a look at those and triage those as well. And with that, I'm going to ask Tim to read the library section. All right. So this section is about the CircuitPython libraries. That's going to be all the repos that start with Adafruit underscores CircuitPython underscore. These libraries are the Python code that allows you to interact with various different sensors and devices and things of that nature. Across those libraries for the past week, we had 15 pull requests merged. There were eight authors for those 15 pull requests. A couple of the names that were newer to me were DJ Nuff, ETHChill, and two BNDY5, thanks to those folks who are perhaps either new or less frequent contributors. There were five reviewers across those pull requests. So thank you to the reviewers. Thank you. I'll say in particular, it's nice to see Keith DE's name pop up in the review list here. Thanks to him and as well as everyone else who reviewed in the past week, I should say. Of the merged pull requests, the oldest was 16 days old, and the newest was just one day old. So keeping up mostly with newer PRs this week. There were 45 open pull requests. I should say there are currently 45 open pull requests remaining. Of those, the oldest is 937 days, and the newest is down to just one. So if you perhaps do have one of the older open PRs and if you are in need of help or anything like that, feel free to leave a comment or ping anybody on one of those if you've got it open. There were four closed issues by four people and 10 open issues by nine people. There are remaining open 618 issues currently. Of those, 73 of them are marked as good first issues. If you'd like to get started contributing to CircuitPython, you can head over to circuitpython.org slash contributing. That page is going to list out all of the open issues as well as pull requests. The ones that are labeled good first issue, there is a filter at the top of the page you can use to find those. Those are the ones that have been identified as not necessarily needing a whole lot of prior experience for folks to get started on. So if you're newer and wanting to get started with contributing, that's a good way to do it. As far as the PyPI weekly download stats for libraries, in the past week we had 99,301 PyPI downloads of over 310 libraries. The top 10 list is looking pretty standard. I would say the ones that stand out to me as maybe not on there every single week are the Ethernet library, Wisnet, maybe PCA 9685. I think the rest of those tend to hover pretty close to the top of the list fairly typically. There is a list of the libraries that were updated in the last seven days. You can see those in the note stock if you'd like to check in on what those latest updates were, and that is all for the libraries. Thanks. Thanks, swimming guy. All right, next up we're gonna ask Dan to read Blinka stats. Okay, thanks, okay. So Blinka is a compatibility layer library for CircuitPython so that CircuitPython code can run on single board computers like the Raspberry Pi and also on top of MicroPython and also sometimes on host computers. So in the past week, we had a single pull request merge by one author, MathjusNL, reviewed by maker Melissa. There are seven open pull requests right now. If you were really old and some are really new, like about half and half, there was one issue closed by one person and three opened by three people. There are currently 95 open issues on Adafruit Blinka. There were 13,968 Pi Pi downloads in the last week, which is kind of amazing. And there were 15,945 Pi Wheels downloads in the last month. We are now supporting 101 boards under Blinka. And that's it for Blinka. Thanks, Dan. All right, next up, we have Hug Reports. Hug Reports is a chance for us to say thank you to folks in our community for the awesome work that they're doing and also to functions as a way for us to reinforce the things that we value as a community. So I will start and then we'll go down the list of folks that are listed in the note stock. As always, if you're unable or if you would not like to speak or unable to speak, feel free to put notes in the note stock. Just make a comment there that says that you'd like them read out or they're text only. I'm happy to do that and that way we can have more people participate, which is always good. So I'll start and then we'll go down the list. So my Hug Reports this week are one to David Glogg and Jay Pasada 2020-20 for testing the DVI output on the feather. Thank you to D. Quadros for a detailed issue pointing out that we didn't support little endian addresses that are used on some ePaper display ICs. And lastly, Hug Report to W. Tamura, Bergdahl, Andy Bing and Jay Pasada-Pasada 2020 for their prompt translations of a new error message. I saw this PR come in today and I think it's just very, very cool that we have a number of translators that are very responsive to us adding new strings, error strings in particular to CircuitPython and making sure that they're available in people's languages. So thanks to them. Next up, let's go to Dan. Okay, thanks. So thanks to Mikhaal Pakusa for some security fixes and other fixes to the HTTP server library. Thanks to Deshipu who sort of instigated some particular aspects of those security changes. Thanks to AnikData who tested them and thanks to FoamyGuy for reviewing those changes. And thanks to you, Scott, for the Pico DVI work which looks really great, great demo and useful. And thanks to Jeff, Cadney and Tektrick for representing sort of PyCon at PyCon. Okay. Thanks, Dan. All right, next up I have notes from David who says a hug report to myself for bringing DVI output to CircuitPython and a hug report to Naridoc for turning my absolute mouse experiment into a community library which is github.com slash naridoc slash circuitpython underscore absolute underscore mouse. Now everybody can use it. Thank you both for that. And next up is DJ Devin. I can't hear. Can other people hear DJ Devin? No, no, sorry. Okay, I usually can wait until we get a, right. Well, I'll start reading in if DJ Devin three wants to interrupt me. That's cool. So DJ Devin three says, they say apparently my mic isn't working. Okay, I'll read it off. DJ Devin three says hugs to FoamyGuy for responding to a time sensitive issue. Hug report to Tammy Makes for advice for using Kevlar string as a fail safe for my sewer bot. Hug report to Ed Keys, Spovla, Katnien, Dan H for helping with Git CLI. Hug report to Anikdata and Naridoc for the positive encouragement and help and discord. Hug to John G for his educational CircuitPython videos. Hug report to Mad Budger for hardware design advice. Melissa dealing with a move this week. Hope everything goes smoothly. Hugs to Katnien Jepler, Keith E-Tectric for representing Adeptor Root and CircuitPythonistas at Pac-on this year. And hug report to myself to a new HDMI out. What? Can't wait to play with it. Thanks. I hope I read that off right. Thanks DJ Devin three. Next up is FoamyGuy. All right, thanks Scott. Hug reports for me this week. Thank you to Retired Wizard and Dan who both helped point me in the right direction to figure out how to replicate a specific warning I was trying to get during a build. Echoing what Dan mentioned before, Mikhail Pakusa has implemented some great security enhancements to the HTTP server library around which files it will and won't serve. So hug report to them as well as everybody who was part of that discussion on Discord a week or so ago. Hug report to Jose David for verifying the data sheet, verifying in the data sheet some specific information about the delay needed after resetting on a SI 7021, I think it's a temperature sensor yet. And thank you also to Keith the EE for reviewing the PR with those changes once it was in. Thank you to Mark Gambler, hug report this week for working on the enhancements to GIF support with the addition of pallet. I'm excited to try that out. Hug report to KVC0, the primary author of VectorIO. They popped up to answer some questions in recent PR in the core and help explain some things that I was not understanding. So thanks to them and a group hug to everybody. Thanks, foamy guy. All right, next up we've got notes from Jebbler. Hot off the press, I should say. Jebbler says we are at Circuit Python Sprints day one 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 Circuit Playground Expresses or starting to work on issues in the libraries. Group hug from us here at PyCon. Thanks, Jeff. Next up I've got notes from Jose Davi who says a hug report to Scott myself for the work on DVI, amazing work. Hugs to myself and David Globb for helping me better understand the DVI implementation and figure out what I was doing wrong. Hug report to FurBrain, two BNDY5 Nerodoc for adding new libraries to the community bundle. Hug to two BND5 for helping me maintain the Sphinx immaterial theme, a gorgeous theme that now I am starting to use. And lastly, hug to Nerodoc for finding a bug in my slider library. Next up, I've got notes from Nerodoc who says hug to Jose Davi for the community bundle PR mergings, group hug to the Discord Helper's crew and group hug to the great community. And last up, we've got hugs from Tectric who says hug report to Catney, Jeppler, and Keith E. for an amazing time at PyCon this year. It's been an absolute blast hanging out with you. Everyone sprinting with Circuit PyCon this year I'm thrilled to be helping out in person today. And Tanute for hosting an intro to Circuit PyCon event for the Boston Python Working Group next month. That's not me, somebody else's. I, maybe Dan is. I just joined when I saw a notification go out, so. Not me either, right? First time I've heard, okay. Yeah, I will not be in Boston next month. Sorry to break it to you. But I'm sure it's somebody enthusiastic about Circuit PyCon. Okay, that's it for hug reports. Apparently I'm going to Boston. Status updates, status updates is the next section we've got going on here. It works just like hug reports where I'll start and we'll go around the room, the folks that are in the Discord chat and who have put notes in the note stock. This is a chance to talk about what you've been working on in the past week and what you're planning on working on in the coming week. It's a great way to just have a, that might be John G. Yeah, that'd be cool. John G is also in the Boston area. I think Dan corrected it to Scott Gustafson, which is not me, somebody else. Okay, so yeah, status updates around the room. They're great for collaborating, so somebody's working on something that you may have been working on previously. It's really good to give tips and tricks and also just be like, hey, I'm interested in that too. So I will start and we'll go through the list. So I'm, the Pico DVI support is merged into Circuit PyCon. I already looked into Jose Davids bug, he only figured it out. The DVI PR also included a bug fix for the C-stack limit checking. This has to do with, the C-stack limit checking causes the recursion errors that you see and it's meant to make sure that your C-stack doesn't overwrite a memory that's being used by other stuff or for other stuff. And so I found an issue with that and that's also in that DVI PR. I've polished up a community members PR for adding frequency setting on the RP2040. It's ready for review and I think we'll get reviewed by Jeff when he's back from PyCon. The DVI stuff already changes the frequency setting on the CPU. So this is just a way to do it without doing DVI. I have a PR out to add little Indian support for little Indian addresses on the SSD 1675, 1680 and the 1681 ePaper displays. A year or two back, we updated all of, a lot of the displays we could buy had these newer controllers. Turns out they have little Indian addresses which we weren't doing properly. So we had people not being able to correctly render on the ePaper displays. Yeah, and this frequency setting will both do underclocking and overclocking on the RP2040. For the Pico DVI, it is overclocked for sure. I have a PR out which I think might have gotten merged but I haven't checked to fix the RP2040 idle timing when off USB. I think Neradoc filed this issue where if you're not, I found it when it was, when you weren't on USB, the five second delay between blinks wasn't working correctly. And so I had a PR to fix that. And then next on my list is I have a good chunk of IMX RT related work that I need to get pull requested so that it doesn't get any more stale than it already is. So that's kind of like my main thing this week. And with that, we'll go to Dan. Okay, so last week, some folks from SILabs merged a major, like a whole new directory under the ports directory for SILabs chips. And that was a great amount of work. It turned out that they ended up merging in a bunch of zip files of some binaries from their IDE tools. And so I had to undo that and perform a little surgery on the Adafruit Circuit Python repo. But basically it was, we did it, I did a push minus F at the last, right away so that it wouldn't get too messed up in terms of what people were pulling and mess up the history. So thanks to the people in Discord who helped me out think through that. There was an I2C patch in ESP IDF for ESP32 S3 and various C something boards like C3. And I had hoped that maybe you would fix some of the problems we saw with the weird, the chips that have trouble with I2C on ESP32 S3, but it did not. So we'll just, too bad, every few weeks there's one of these hopeful fixes and it doesn't work necessarily. So we'll just incorporate this the next time we update our, which version of ESP IDF we're doing. I made a board definition for a new board, which will be very interesting and you can look at the PRs to see which board that might be. But it's top, it's not even top secret yet, it's no secret. So I'm doing a bunch of reviews and bug fixes and maybe I will do an 810 beta.2 this week to catch up on all the new stuff that we, since beta one, which is now several weeks old. Okay. Thanks, Dan. Next up, I have notes from David. Who says I should take a timecode? David says, for the Feather RP2040 DVI, testing on as many screens as possible, checking for over scan and resolution detection, helping Jose David with the true resolution of Pico DVI in issue 7894. Testing turtle graphics, okay. Testing a different frame buffer, KO. There's an issue 7898 trying to understand. Think this is the first time that a different frame buffer has been tried to be used with a native frame buffers. So I replied there. PR to fix typo in the Pico DVI code and understood how to change the Pico DVI resolution by not using board.display. This should be in a guide as it is non-obvious. And then regarding the TR cowbell, failure to remix the working example because I don't master async IO yet. So I need to read a learn guide for Dan and monitor phomy guy stream on the topic. Unrelated to circuit python, got the Feather RP2040 USB host, nothing yet waiting for my IntelliQ key from eBay. Got some non-COVID virus that made me sleep most of the weekend and prevented me from talking too much for the moment. And I hope you feel better. I understand how getting COVID and non-COVID stuff is being sick, no fun. Okay, next up we'll see if DJ Devon 3's mic is working and still don't hear you. So again, feel free to interrupt me if you figured out, otherwise I'm happy to read it off. Okay, so DJ Devon 3 made a short YouTube video demo of the WhizBank sewer bot. No, you're still marked as circuit pythonistas. I don't think that's it. Maybe check your input setting. Figured out a way to pipe the first person camera view to OBS using a cheap composite AV to USB 2.0 product. Looks like 1980 VCR quality with horrible scan lines. I do not recommend it. We'll look into better methods. Started designing a 250 millimeter ring-shaped PCB with WS2812B LEDs, aka neopixels, as a replacement for my workshop lamp that started to flicker and now puts out half the light it used to. I will, it will have a feather as a lighting controller and a relay feather ring to turn off and on the 12 volt fume extractor making the project 100% circuit python. Started 3D modeling a custom watertight shell for the three inch by two inch sewer bot. Ordered a professional RC transmitter slash receiver kit that has a range of about a half 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. We'll take a shot, take another shot at it this week. And do you have any other comments, DJ Devon three? I think you got your mic working. Nope, that's it. Yay, we can hear you. Glad you figured it out. All right, next up is foamy guy. All right, thank you Scott. Last week I was doing some library reviews and testing mostly sent around web stuff for the past week or so. Went back through another round on the ethernet PR that's open and did some testing there and uploaded some new logs and things. The other major one was in the HTTP server library. There were a couple of different PRs in there including the one mentioned before. And then a couple other smaller like type annotations and things like that sprinkled throughout a few other libraries. I tested and submitted a fix for the SI7021 sensor so that it will work on Raspberry Pi using Blinka. In that same context on the Raspberry Pi with Blinka I have been working on this data server project that is a web application that can store kind of arbitrary readings like from sensors and things like that and then show it back to the user with some basic dashboards. I made some good progress on that this week by getting all of the necessary functionality into the front end as well as a way to post data into the server from other sensors and I've even made successful posts from a separate feather at this point so that's coming along nicely. I have a super basic hard-coded dashboard and I've been brainstorming and tinkering and trying to think of how I want to try to change the dashboard to be user definable but not introduce too much complexity so that's on my plate for the upcoming week. A couple of fixes inside display IO and the core that I worked on, one was removing some unnecessary operation inside vector IO that raised a warning if you have new enough, I assume new enough version of GCC and then another one was a minimum size check on the size of the terminal which was also interesting because I had never actually just used terminal IO, terminal class before. I know it's used by like serial console output in REPL but I've never seen user code that does that so that was interesting to get a chance to play around with as well and that's what I've got, thanks. Thanks for me guy. Next up, I have notes from Jose Davide. Who says, where's my, where's my cursor? Jose Davide says, testing DVI support mostly. I need to go back and test DVI with a display text library. Next up we have notes from Mark aka Gameblur21. Who says, PR for on-disk GIF pallet support out. Almost halves memory usage but refresh rate can be slower. Next up we have Nerodox notes who says, publish some of the libraries I've been making to the community bundle. The absolute mouse for a different head thanks to David Cloud. Driver for the iSquared C M5 stack unit eight angle, eight encoder devices. Nice breakouts with rotating stuff and RGB LEDs. No iSquared C pull ups though. Driver for a TM1637 seven segment six digit 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. And yes, I think on-disk GIF pallet is new which means that the buffer of your GIF frame is smaller than it used to be. It can be eight bits instead of 16 bits. All right, last up we have notes from Tech Trick. Who's at PyCon? Tech Trick writes, last week, PyCon 2023, so excited to have returned this year and very excited for Pittsburgh next year, helping out with the Dev Sprints on site today and then flying back to Boston to continue assisting remotely. This week, helping out with Dev Sprints on site today and then flying back to Boston, the same thing you just said. And then planning on some possible changes that Catney and I discussed at PyCon regarding the Learn Guide repo. And with that, we're done with status reports. So thank you to everybody. Really appreciate to hear what everyone's working on. So last up we have an in the weeds section. This is a chance for us to have any longer form sorts of discussions and make some decisions generally or figure out what to do next. So we have one topic in here and I'm gonna hand it over to Filmy Guy to introduce it. Yeah, thanks Scott. This is a PR, I'll drop a link over in the chat as well that's open in one of the libraries. This person has basically submitted some code that they adapted from a pre-existing, I think C++ example that was released by the manufacturer of this device. And that code was licensed under BSD3, I think it was. But the general kind of question here is essentially like, is that okay for us to accept code with that license? And then if so, is there anything kind of special that needs to be done around reuse? I know it's like add the license file inside the directory for it and then put the header that has the right syntax that tells it which one it is. But I don't know if there's anything beyond that because I've never dealt with anything that added code that would need a separate license than what was already there. I haven't either. So I think you're on the right track. I mean, I think the BSD license, the Bosch license is just a derivative of the BSD license. So it's very permissive license. So I don't think there should be any problem as long as you just add another SPDX license identifier. I will work on getting that bit straightened out and getting reuse happy with the actions and all of that. I just didn't want to jump in and start on it before checking in to see if that was, I think we could accept. The problem was really with GPL dial licenses, usually. I'll keep that one in mind. Thank you. That was a quick one. Thank you all for in the weeds. And now I will take time code for wrap up and then switch over to the info that we need for the wrap up. This has been the circuit Python weekly meeting for April 24th, 2023. Thank you all to everyone who participated, whether in person or through the no stock. Really appreciate it. If you want to support Adafruit and Circuit Python and those of us that work on Circuit Python, consider purchasing from the Adafruit shop at adafruit.com. The video of this meeting will be released on YouTube at youtube.com.adafruit and the podcast will be available on major podcast services. It will also be featured in the Python for microcontrollers newsletter. The cat wants to be let out. Visit adafruitdaily.com to subscribe. The next meeting, let me just double check, is next week at 11 a.m. So that's May 1st at the normal time. I don't know if you can hear. Yep, so next week is Monday, usual at 2 p.m. Eastern 11 a.m. Pacific. This meeting is held on the Adafruit Discord which you can join by going to the URL adafru.it slash discord. To be notified about the meeting and any changes to the time or day, you can ask to be added to the Circuit Python for a free CIS role on Discord. We hope to see y'all next week. Thanks everybody for joining. Have a great week.