 Hello, everyone. This is the Circuit Python Weekly for October 25, 2021. This is the time of the week where we get together to talk about all things Circuit Python. I'm Scott, and I'm sponsored by Adafruit to work on Circuit Python. Circuit Python is a version of Python designed to run on tiny microcontrollers, tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit. So if you want to support them in Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to the URL adafru.it slash discord. We hold the meeting in the hashtag CircuitPython-DevTextChannel and the Circuit Python Voice Channel. This meeting typically happens on Mondays at 2 PM Eastern, 11 AM Pacific, except when it coincides with the US holiday. The meeting time is changed. We'll notify you via Discord. If you wish to be notified about changes to the meeting, we can add you to the Circuit Pythonista's Discord role. There's also a calendar available that we try to keep updated if you'd like to subscribe to that. This meeting is recorded. We record audio from the Voice Channel, a video of the Text Channel. If you'd rather not have your voice recorded, you are still welcome to participate. The video of this meeting will be posted on YouTube, and the audio is released as a podcast. If you find this podcast is not available on your favorite podcast servers, please let us know. There's a note stock to accompany the meeting and recording. If you wish to participate but can't make it to the meeting, you can leave hug reports and status updates for us in the document, and we'll read them off during the meeting. The notes document also contains timestamps to go along with the video, so you can use the doc to view only the parts of the video that interest you most. The meeting tends to run 60 to 90 minutes, so this gives you the option to skip around. A link to the note stock is posted in the CircuitPython data channel on the Advert Discord every week. Check the pinned messages to find the latest notes. This meeting is held in five parts. The first part is community news. This is a look at all things CircuitPython and Python on hardware in the community. It's a preview of our Python on microcontrollers newsletter. The second part is the state of CircuitPython libraries in Blinka. This is a statistical overview of the entire project. It's a chance to look at the project by the numbers, separate from what we're all up to. The third part is hug reports. Hug reports is an opportunity to highlight the good things folks are doing, taking the time to recognize the awesome folks in our community. The fourth part is status updates. Status updates is an opportunity to sync up on what we've been up to. Take a couple minutes and talk about what you've been doing in the last week since the last meeting and what you'll be up to over the next week until the next meeting. The fifth part is in the weeds. In the weeds is an opportunity for more long form discussions. These discussions can come out of status updates or be something you've identified ahead of time as too long for status updates. And that covers how the meeting will go. With that, we'll get started with community news. Just right after I take a timestamp. All right, so first up in the community news, we have the Python Developer Survey 2021. Join the Python Developer Survey 2021. This year, the PSF is conducting the fifth iteration of the official Python Developer Survey. The goal is to capture the state of the language and the ecosystem around it. By comparing the results with last year's, they can identify and share with everyone the hottest trends in the Python community and the key insights into them. And information, there's a survey link and then there's more information about it via the Python Software Foundation. Also, do you know anyone who should be a Python Software Foundation Fellow but isn't yet? Annominate them before November 20th, 2021. And the PSF will add them to the list for consideration for Q4 2021 Fellows. Next up, the vscode.dev brings vscode to the browser. vscode.dev, which is a URL, bringing vscode to the web with a lightweight version running fully in the browser. Open a folder on your local machine and start coding. There's an announcement post there along with the Adafruit blog post that corresponds to it. Next up, CircuitPython is brought up to date with MicroPython 117. This is thanks to Jeff. Adafruit has brought the CircuitPython core up to date with MicroPython version 117. This brings some low-level optimizations but no major changes visible to users. A big thank you to the approximately 40 contributors to MicroPython's 117 release. And now for a couple of reminders as we get towards the end of October. First, the Halloween Hackfest, hurry. The Hackfest ends October 28th at Midnight Pacific. Join Hackaday, Digikey and Adafruit for a Halloween-themed contest. They want to see your crazy, creepy, googly, spooky and awesome projects. If costumes are your favorite part of Halloween, then why not dress up your outfit with some hacked upgrades? You can even design a ghoulish prop to add to your home's Halloween decor or light up a jack-o'-lantern with LEDs. Whether it's technical, artistic or just plain terrifying, Hackaday wants to see your projects. Check out the Halloween Show and Tell with Hackaday, Friday, October 29th at 1 p.m. Pacific, right before my stream at 2 Pacific to show off your awesome projects entered in the contest. Don't forget to also share your projects on social media and use the hashtag Halloween Hackfest. Hackaday and Digikey have partnered on this Halloween-themed contest to offer three winners an online shopping spree to the Digikey warehouse with links to Hackaday and Hackaday.io. Next up, we have, Hacktoberfest begins October 1st, which is long gone by now, but ends at the end of the year, or ended, not the end of the year, the end of the month. Hosted by Digital Ocean for the eighth year in a row, Hacktoberfest encourages participation in giving back to the open-source community by completing pull requests, participating in events and donating to open-source projects. Anyone around the globe who desires to help drive the growth of open-source and make positive contributions to an ever-growing community. All backgrounds and skill levels are encouraged to participate. The first 55,000 participants can earn a t-shirt, learn more at hacktoberfest.digitalocean.com. For Circuit Python, check out the Good First Issues list and open issues. It is anticipated that the number of Circuit Python issues to work on will be higher this year. And note, this is the first year where they are doing rewards for maintainers, which is what I'm betting on. But they don't keep track of us as you go along, they just run the numbers at the end of the month. Okay, also for the end of October, just a reminder, October is also Open Hardware Month. The Open Source Hardware Association is providing resources and asking the community to host small local events in the name of open-source hardware. See more at ohm.oshwa.oshwa.org for more details. And that's it, as always. The Circuit Python Weekly Newsletter is a Circuit Python community-run newsletter emailed every Tuesday. The complete archives are available at adafruitdaily.com slash category slash Circuit Python. It highlights the latest Python on hardware-related news from around the web, including Circuit Python, Python, and MicroPython developments. To contribute your own news or project, edit next week's draft on github, github.com slash adafruit slash circuitpython dash weekly dash newsletter, look for the drafts folder there, and submit a poll request. You can do that all from the website with your changes. You may also tag a tweet with hashtag circuitpython on Twitter or email cpnews at adafruit.com and we'll add it for you. Okay, cruising right along. Next up, we have the state of Circuit Python libraries in Blinka. This is a section where we cover kind of the health of the project and the subprojects from a statistics angle meant to ground us in kind of like the reality of how things are going. So overall, we'll do this in the overall and then three separate parts. Overall, we had 22 poll requests merged from 14 different authors. So thank you to all of the authors, especially the new folks here. We have 11 reviewers. As always, thank you to the reviewers who have helped support all of these authors to contribute to Circuit Python broadly. Issues-wise, we had 11 closed issues by seven people and 15 opened by 13 people. So we're net up four. Next up for the core. In the core, we had 13 poll requests merged from seven different authors and had five reviewers for those. We have 11 open poll requests where the oldest is 51 days old, not too shabby. And we have four of those that are less than a week old or five of those that are less than a week old. So that's all good news. Issues-wise, we had six closed issues by two people and 10 opened by 10 people. So we're the cause for the net up four for a total of 444 issues open. We have five active milestones, including 7XX, which is like bug fixes for the 7.0 branch that we're on. We have 20 open issues there, along with seven open issues for 8.0, things that we would do once we're ready to do 8.0. And then lastly, we have five issues not assigned to milestone, which are the ones that we still need to triage. Overall, for 7.0, it seems to be going pretty well and we're rapidly approaching the point where we're gonna wanna do a 7.1 release as well. So things are all good on the core side. Next up, let's kick it over to Katnay for an update on the libraries. Thanks, Scott. Thank you. So this applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore circuit python underscore, as well as a few extras such as the community bundle and our cookie cutter. So across all of those repos, we had seven pull requests merged by five different authors and seven different reviewers. And I wanna call out one reviewer who is new to the team Keith the EE joined last week. And it's already jumping in to reviewing PR. So that's really great to see. We have 68 open pull requests across again, all those repos. We had four issues closed by four people and five opened by four people, leaving us with 635 open issues. 278 of those are labeled good first issue. If you're looking to contribute to Circuit Python on the Python side of things, check out circuitpython.org slash contributing. You'll find all of this information and more including open pull requests, open issues and library infrastructure issues. You can search the issues by label, check out good first issue if you're new to everything or new to contributing to open source and are looking for some place to start for beginners. You can check out enhancement or bug if you're looking for something a little more complicated. And we have a guide on contributing to Circuit Python using Git and GitHub. So don't let that part intimidate you. And we are always available on Discord to help out and always available on GitHub to help out. So feel free to comment on an issue that you're picking it up and tag one of us if you need some assistance. As for reviewing, you can take a look at the open pull requests. If you have the hardware, give it a test. If you don't, you can check it out for code syntax, that sort of thing and leave a comment saying you did that. And once you're comfortable with that, we can talk about upgrading to joining the review team. We had one new library this week, the VL53L1X and a number of updated libraries that I will not read off. As a quick aside, currently CircuitPython.org slash contributing has no content. The fix has been submitted so the next time the site is built, it should be fixed. So look for that in the next 24 hours or so. And the other thing that was fixed alongside that was adding the Hacktoberfest label to our issues, which is obviously pretty late in the month, but we got there. And it automatically removes them at the end of the month. So we have it set up that it's not gonna stick around. So overall, we're still seeing obviously new libraries every so often, both in the community bundle and the CircuitPython bundle, and that's great to see. I like seeing authors in our list this week that are either not around very often or are new. So thank you to especially our new folks who are joining us. And thank you to the reviewers because we had a lot of folks coming in for Hacktoberfest and those PRs are getting taken care of, they're not sitting around. So thank you so much to everyone who's been keeping on top of that, and that's what I have. Awesome, thank you, Katny. All right, next up, let's kick it over to Melissa for the Blinka update. Hello, Blinka is our CircuitPython compatibility layer for Raspberry Pi and other single board computers. And this week we had also for MicroPython, I forgot to mention it. This week we had two pull requests merged by two authors and one reviewer. And we currently have three open pull requests and one solve the different repositories. There was one closed issue by one person and zero by zero people. We have one, or Hacktober label assigned to one issue, Hacktoberfest. There are 64 open issues remaining and there were 12,871 Pi Wheels demos in last month and we currently are supporting 76 boards. And that's it. Awesome, thank you, Melissa. All right, next up we have a new section, or the next section, which is Hug Reports. Hug Reports is a chance for us to say thank you to folks for the awesome work that they've been doing within our community. This is done as around Robin, so I will start and then go down the list through people who have put their notes in the note stock or their names in the note stock. So first up for me, hug to TAC. Thank you to TAC for getting the USB going on the Raspberry Pi. Super exciting to see that working. Thank you to Maholi for the Sandy 51 sleep work and to Hug Reports, Dan H and Dave Putz for the pulse in fix. And next up, I will circle back to the top and I have notes from Charles. Charles says group hug to everyone. And next up is Dan. Okay, thanks. Thanks to Cadney who's working on a thorough rework of the Welcome to Circuit Python guide. A lot of that is done already and it's cleaner, smaller, some older stuff has been removed. Thanks very much. I saw some things that need to be changed but Cadney has picked up a ball on that and done a wonderful job. Thanks to Scott for the great progress on the Raspberry Pi port. As Scott mentioned, thanks to TAC for getting tiny USB working on the Raspberry Pi bare metal. Thanks to Dave Putz for fixing that pulse in bug. That was great. Thanks to Todd Bot who is tracking down a very tricky MIDI bug that was confusing, particularly to one of our users and has tracked it down to tiny USB and TAC has proposed a fix. And like Scott said, thanks to Maholi for working on the Sanby Sleep Implementation and also Maholi has just fixed. Maholi uses a special kind of RAM. It's on a satellite board called M-RAM and that was not quite working, it broke and he's fixed that as well. Okay. Awesome, thank you, Dan. Next up is FOMI guy. All right, thanks, Scott. First plug report for Katni as well as Dan H and anybody else who did work on the Welcome to Circuit Python guide overhaul. It's great to see that getting cleaned up. To Keith the EE for joining the review team. That's really cool to see new folks joining all the time. In the Discord user Oats and Honey who I've seen offers some really good help in the help with Circuit Python channel to several different people. And then lastly to you, Scott, for your work on the Raspberry Pi. It's really neat to see how that's coming along and I'm excited to play with the HDMI output. So thank you to all those folks. Thanks, FOMI guy. Next up is Jepler. Hi, I have a hug for the moderator team for the way that we're working together on a moderation problem that is a little more complex than ban an obvious spammer and just seeing everybody work and think through the issues is good. Awesome, thanks, Jeff. Next up is Jerry. There's that button. Hi, thanks to Dan and Nierdach for their quick identification and fix to a problem that turned up in their request library. And Jeff for jumping in yesterday to take over a moderation issue and off topic. It was kind of confusing. Awesome, thanks, Jay. Next up is Katnie. So first up is a hug report to Somersoft for submitting the Adabot fixes for the Hacktoberfest labeling and circuitpython.org slash contributing. We had no idea where to start with the circuitpython.org slash contributing issue. We sorted out what the issue was but not in any way, shape or form how to fix it. And I received a PR an hour and a half ago. So I'm really excited about that. To Dan for assisting me with submitting a PR to the core. To Carter for help with a guide late last week. To Dan as well for continued help with updating a guide. To Todd Bot for immense patience. To the community moderators on Discord for thoughtfully and effectively applying our community standards in both obvious and less obvious situations. And finally to Keith the EE for joining the circuitpython librarians review team. Thank you, Katnie. And last up we have maker Melissa. I wanted to give a hug report to Adam Cummick for updating the updating Blinka to split the board definitions for Raspberry Pi 4 and clock module or compute module 4 from the other boards and group hug everyone else. Awesome, thanks Melissa. And that's it for hug reports. Thank you everybody. Next up we have status updates. It's done in a similar way as around Robin. But this time take a couple of minutes to talk about what you've been working on. What you've been working on in the past week and what you plan on working on in the coming week. It's a great way for us to be aware of kind of all the things that are going on and to collaborate with folks that are, you know, maybe doing stuff that you've worked on before or hit issues that you've seen before. So let's dive into that. I will start and say lots of progress on the Raspberry Pi, bare metal circuit Python version last week. USB is working thanks to tech and I also got the HDMI out working as well. So display IO shows the terminal on HDMI displays, which is really neat. The refresh is pretty slow. So I'll be looking into enabling the CPU caches to hopefully speed things up. We'll also, I wrote these last night. I'll PR to TinyUSB to get the USB support in, but I saw tech actually beat me to it and is making it more generic. So that's awesome. Once TinyUSB has support for the Broadcom natively, we'll be able to make a pull request for the Broadcom support into circuit Python. And then that'll make it easier for both people to help make the port do more things and also help test it. So that's where we are with that. And let's go circle around and go to Dan next. Okay. There was a about a week ago, the MySAMD21 PDM in microphone fix was merged in. The kind of, I was still getting bad microphone data and then I kind of simplified the code some more and then it worked. That's good. So it's back to giving good data and not hanging up. Also merged about a week ago where HID boot keyboard and mouse support, it only works on Windows, not on Mac. We'll eventually try to figure that out, but we're not working on that right now. And also I merged in support for feature reports, but I don't have anything to test that on. So if somebody has an HID device that they want to emulate that uses feature reports, please try it. Thank you. I fixed some kind of minor argument checking bugs that cropped up when we fixed some other argument checking things in core circuit Python and then that broke some things in the library that depended on bad behavior or incorrect behavior. And finally, for several days, especially over the weekend I was doing a lot of reading research on cooperative multitasking, which is something that we want to really bring to the fore in circuit Python eight. I'm looking at async IO, which has a micro Python implementation as well. Also libraries called Curio and Trio, which are not based on async IO and event IO and async CP, which are small libraries that were designed to work with circuit Python. And there's this whole idea of something called structured concurrency, which is kind of like structured programming, which is using concurrency in a safer way, which you might be interested in. You can ask me for more details if you want. I think in the meeting just before this, our team meeting, our staff team meeting, I will probably decided that I'll probably start working on just getting async IO up and running. And then we can maybe put some wrappers or front ends on that to make it more structured. Okay. Sounds good. Thanks, Dan. Next up is foamy guy. All right. So this past week is still reviewing more of the type PRs. I also got a review in for a circuit Python.org PR. So that was fun to go back and make sure I still know how to run the way to host that server locally. I put on a new page. It's technically a new page. I think eventually it'll get copied over in the welcome to circuit Python guide with some of the best practices that I've figured out about using PyCharm for circuit Python devices. And then the other thing I did was work on some scripts to add a text link to the documentation, to read the docs page inside of the read me for all of the library repos. So I've did some automation to run a big list of those all at once. That's what I got. Thanks. Awesome. That sounds cool. Thanks foamy guy. Next up is jet blur. Hello again. So I'm having a little more trouble than usual getting my GitHub activity because I now have something automated pushing every hour, 24 hours a day. It's making my GitHub stats look really good. But last week I implemented the watchdog for SAMD 51 and that PR has been merged. I implemented animated GIF writing in a module called GIF IO or GIF IO, which is based on code from OpenMV that pull request is in progress. And I improved the SD card right speed by using command 25 better. And again, there's a PR in progress for that. What is the one sentence summary of what command 25 is? So SD cards have at least two different commands for writing data. There's command 24 for when you wanna write 512 bytes, which is the fundamental block size. And there's command 25 when you want to write more than that and they all happen to be one after the other in the block organization of the SD card. And so it's a kind of caching, I guess you could call it, but basically it allows the rights to each individually go faster by batching them together. So anyway, yeah, I'm gonna continue on looking for more optimizations, trying to figure out where the processing time is going overall. The informal goal is to get to 10 frames per second recording a 320 by 240 GIF. It would be amazing if we could get there. I don't know if we will. And my task, if I need a break is to work on dithering a grayscale image to black and white so we can take pictures and then print them out on a thermal printer such as the one in the Adafruit store. So that'll keep me busy. And, you know, whatever else comes along because I like shiny things. Awesome, thanks, Jeff. Next up is Jerry. Hi, unfortunately not much to report, but I'm hoping that anytime now I may get this project I've been working on done. So there's a light at the end of the tunnel. I don't think it's trained, but we'll see. We're hoping it's not. All right, next up is Katnie. Can't type and talk at the same time. Or at least can't type and unmute anyway. So last week published the AT-Tiny817 breakout guide. That guide was just a product guide, but it's a confusing product. So it took a lot longer to do than normal and also there are way more examples in that guide than your typical product guide, which has one. So finally got through all that and that's been published. So if you picked up one of those new StemaQT-AT-Tiny817 boards, there is a very thorough guide that you can take a look at. Then I started updating the Welcome to Circuit Python guide. This is basically a complete overall of the previous iteration of it. There's already been a lot of reorganization, but there's still more to go and more pages to be updated. My to-do list has a page and a half worth of notes on what I'm doing and what I need to do. And then on Friday, I got most of the VL53L1X guide finished. Thank you again to Carter for help with that. It was held up on the Arduino library, not being in the IDE. So this morning, added the library to the Arduino IDE. Continued work on the Welcome guide and merged in the fix for the circuitpython.org slash contributing issue and the Hacktoberfest labeling. And another thank you to Somersoft for that. So this week, finished the VL53L1X guide. Apparently it takes about a day for a library to show up in the IDE after it's been submitted. So I expect tomorrow morning it will be there. Continue working on the Welcome guide overhaul. A couple of miscellaneous things that were waiting on me having necessary hardware, which I now have. And then doing up some more pretty pins, pinout diagrams as I have time. So we're finally getting to some older boards. We now support the 328. And one other one too, I don't recall exactly which one, but we've added support for a couple new boards to pretty pins, so we're gonna start adding those. And that's what I've got. Awesome, thank you, Katnie. All right, next up is Maker Melissa. Hello. So last week, I finished adding the file functions to the code editor, CircuitPathun code editor that is, and I worked on some bug fixes on the code editor graph for that, and then added some small BLE file transfer bug fixes and got that release updated. And there's a PR in now for the code editor. And then after that, I tested out a different PR for splitting the Raspberry Pi boards in Blinka and got that merged in. And I started working on the mobile UI updates for the code editor. And while I was working on that, I found a bug in CircuitPathun code or in the core I meant to write when connecting it with a mobile device. And this week, I'm gonna continue working on the mobile UI updates and I'm not sure what else after that. Awesome, it sounds like a lot of improvements. So thank you, Melissa. You're welcome. All right, last section for the day is In the Weeds. In the Weeds is a chance for us to talk about any sort of random topics that we think would take longer to discuss. So I'll kick it over. We have one topic today and I'll kick it over to Fomiguy to introduce it. Yeah, so this came up as I was working on some of the type PRs. And essentially I was wondering if there's interest in publishing the PYI stubs for the libraries that aren't deployed to Pi Pi. So there's only a handful of them out there. They're mostly tied to devices that our microcontrollers and so the library doesn't, it's not meant to work with Blinka and so at this time it's not published on Pi Pi. And so I figured maybe we could do something similar to the core where it doesn't have any actual Python code published but it does have the typing information in the stubs so that folks could get it into their IDE and make it easier to write code that uses those libraries. So Jeff mentioned the idea of publish it for the bundle. I think maybe this means publish it into one repo for the entire bundle, which it sounds like maybe Ketney agrees with this idea and then I was gonna throw out, I think, I don't have too much experience with it but I think this other project typeshed is a place where lots of third party projects will put their stubs into and then I think the IDEs and different components know to look there to find stuff so I'm not 100% sure about that but that may be an option as well. I was specifically saying your original idea may be reasonable because of the fact that there are a limited number of libraries that fall into this category. Gotcha. There really aren't that many so it wouldn't be a significant increase in Pi Pi. Publishing stuff. How would you go about, do you have an idea of how to go about doing that? I don't, off the top of my head, I mean the kind of thoughts that I've had so far were basically store the PYI files in the repo alongside the actual library code versus store the PYI files in a separate repo. I don't know too much about how the setup Pi file works but I think it could be made to work either way but that's really all the more that I've thought into it so far. Okay. So I think it's, I get where you're coming from and I think it's an excellent idea because obviously something like the Circuit Playground Library for example is pretty heavily used and having all this stuff available for it would be great. Why don't you give it some thought as to how you would do this and we can discuss it. But I think however we do it, it's an excellent idea. Okay, cool. Yeah, I'll think on it some. Do we know, is there a program we can run over a Python source that strips out the implementation and gives you a PYI file? I do not know. I would guess there is something like that but I don't know. Is it, it's automated somehow in the core, right? It comes from dark strings? Yeah. Oh, it looks like Jeff found one. Stub generator looks promising. In the core it's weird because in the core we just have the stubs kind of in line with the C source but I'm thinking like it would be nice to just have all the type annotations in like the Circuit Playground Library, right? So like we wanna strip out the implementation because it won't work on Blinka but it would be nice to have like one source of truth which is like the actual library still. I gotcha. Yeah, this does, reading the, reading me for this link that Jeff put in here, this looks like it may do. Cool. It may do that. Right. So I'll play around with this a little bit as well and see if we can do that. I do think for what it's worth whenever they do get published I think we definitely need to try to be careful about putting a note that it's obviously just the type information and that it still doesn't support Blinka and it's not meant to be used directly. Right. Cause I would hate for folks to see it on Pipeye and then get the wrong idea about how it could be used. Yeah, maybe have like Stub at the end of the, the name for each package like this. Yeah. And then in terms of typeshed I think that we don't want to do typeshed because that would require us to rely on other people to update it. And I think my impression with typeshed is that it's really for libraries that aren't embracing types. Like if the library itself has types then there's no reason to have typeshed support. So. I see. It's like put in by somebody maybe unaffiliated with the project. That's my understanding of it. So I would, yeah. So I would buy us to this idea of like, well, let's have the main library publish its Stub's to the, to Pipeye instead of its own package. Okay, cool. Yeah, I'll play around with this generator and see what I can come up with. Awesome. Well, thank you so much for doing all this type stuff. It's really cool. Yeah, for sure. And I think we're just like, we're not even to the point of realizing all the awesomeness that this gives us. So thank you for taking the time to polish it up. Yeah, definitely. All right. And that is the end of In the Weeds. Let me wrap up. Oh, I didn't get it right. Sorry, I had to take the time to cope. This has been the Circuit Python Weekly for October 25th, 2021. Thank you to everybody who participated. If you wanna support Adafruit and Circuit Python and those of us that work on Circuit Python for Adafruit, consider purchasing from AdafruitShop at Adafruit.com. The video of this meeting will be released on YouTube at youtube.com slash Adafruit, and the podcast will be available on major podcast services. It will also be featured in the Python for Microcontrollers newsletter. Visit adafruitdaily.com to subscribe and check the Python for Microcontrollers box there. Let me double check the next meeting because I've never managed to look ahead of time. Looks like the next meeting is at the regular scheduled time, so that's November 1st. So the next meeting will be held next Monday, as usual, at 2 p.m. Eastern, 11 a.m. Pacific. And just to heads up, not this meeting, but I think perhaps the next meeting will be at a different time because the U.S. will change time zones. So if you're outside of the U.S., just be aware that that will be shifting for you in a couple weeks. I think it's November 7th is when the U.S. changes times. We're like behind everybody else. So this meeting is held on the Adafruit Discord, which you can join by going to the URL, adafru.it slash discord. If you'd like to be notified about the meeting in any changes to time or day, you can ask to be added to the app, CircuitPython.nisa's role on Discord. We ping that role when we post notes and also with meeting reminders and stuff like that. So with that, we hope to see you all next week. Thanks everyone for taking the time today. To spend with us. Thanks everyone. Thanks Scott. Thanks everyone. Thanks.