 Hello, everyone. This is the Circuit Python Weekly for July 31st, 2023. 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. If you don't know what Circuit Python is, it's a version of Python designed to run on tidy computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit, so if you want to support Adafruit and Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join any time by going to the URL adafru.id slash discord. We hold the meeting in the Circuit Python Dev Text channel and the Circuit Python Voice channel. This meeting typically happens on Mondays at 2 PM Eastern, 11 Pacific, except when it coincides with the US holiday. In the Note Stock, there's a link to a calendar you can view online or add to your favorite calendar app. We'll also send notifications about upcoming meetings via Discord. If you'd like to receive these notifications, ask us to add you to the Circuit Pythonistas Discord role. There's a Note Stock to accompany the meeting and recording, and the final notes includes timestamps so that you can go skip through the video as you like. The meeting tends to run 45 to 60 minutes, and after each meeting, we post the link for the next meeting's notes document to the Circuit Python Dev channel on the Adafruit Discord. Just check the pinned messages. If you wish to participate but cannot attend or just have things that you want to remember, you can edit that ahead of time. This meeting is held in five parts. The first is community news. This is a look at all things Circuit Python and Python on hardware in the community. It's a chosen set of items from the Python on microcontrollers newsletter that goes out just around this time today. This is new. It's no longer Tuesdays, it's on Mondays. The second part is the state of Circuit Python 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 is Hug Reports. Hug Reports is kind of the opposite of the state of Circuit Python. It is an opportunity to highlight the good things folks are doing, taking the time to recognize the awesome folks in our community. This is how we feel about how everything's going on. Fourth is status updates. It's an opportunity to report on what we've been up to. Take a couple of minutes and talk about what you've been doing in the last week since the last meeting and what you'll be doing over the coming week. Lastly is in the weeds. It's an opportunity for more long form discussions. These discussions can come out of status updates or be something you've identified ahead of time is too long for status updates. And that covers how the meeting will go. With that, I'll take a timestamp and switch tabs to the community news. So community news is a snippet slash tease of the newsletter that goes out on Mondays for Python on hardware related news. The first up, the headline article here is that CircuitPython821 was released. CircuitPython821 is now the latest bug fix version of CircuitPython and is the new stable release. And there's a link to the Adafruit blog and the release notes. Primarily, this is a continued enhancement of SynthIO and it also fixes, I think it also fixes the double click or the safe mode entry on RP2040. This is alarm sleep memory, which I guess we might have added as well. Note for NRF52 boards only, if your board has an old UF2 bootloader before 0.61, you won't be able to load CircuitPython821 later because it's too big. There was a bug in versions before that that you may hit. Okay, next up. Is CircuitPython hack chat, Hackaday IO and Adafruit cosponsor to hack chat with key Adafruit folks about CircuitPython. If you missed the live broadcast, you can see it on YouTube. And that was the more Phil and I and the YouTube's the best way to go about it. They have a transcript of the chat, but a lot of the questions were just answered on the video. All right, next up is Adafruit IO whippersnapper now supports 20 boards. Whippersnapper is the no-code firmware for building internet connected electronics projects. It now supports 20 development boards with more to come. And it's also, I should say, a huge inspiration for the Wi-Fi workflow on CircuitPython, just how easy it is to get everything going. Next up, CircuitPython day kind of snuck up on us, but we wanted to start reminding folks that, or let folks know that we chose to make August 18th of 2023 as CircuitPython day. The annual CircuitPython day celebrations have been scheduled for August 18th. Keep an eye on the Adafruit blog for announcements as well as next week's newsletter. And if you have ideas, I should say, just feel free to drop those in CircuitPython day as well. That's a Friday, I believe. I dropped them in CircuitPython dev. We don't have a separate channel. Okay, newsletter details. The CircuitPython weekly newsletter is a CircuitPython community run newsletter emailed every Monday. The complete archives are available at adafruitdaily.com slash category slash CircuitPython. It highlights the latest Python on hardware related news from around the web, including CircuitPython, Python and MicroPython developments. So to contribute your own news or project, edit next week's draft on GitHub. Yeah, and submit a poll request there with changes. You may also tag a tweet with hashtag CircuitPython on Twitter or email cpnews at adafruit.com. And two more notes and thank you to Katnien and Ann and Paul for doing newsletter-y stuff. And then also thank you to Katnien for getting everything organized for CircuitPython day. If you have stuff you'd like us to advertise and catalog for CircuitPython day, you can email circuitpythonday at adafruit.com. All right. Next up, State of CircuitPython Libraries in Blinka. This is a statistical report that only includes what's happened in the last seven days. So I will start overall and then we'll go to the individual pieces of the larger project. So overall we had 43 poll requests merged from 21 different authors, that's awesome. There's a lot of names that I don't recognize and then I'm definitely gonna butcher pronunciation wise, but I'll try to say them out loud anyway because this is an audio thing. First, Sdomos Las I-13, Xenocrates, Andy Bing, KB Sriram, Gawang, Eric Apschen, Atomic Master, El Pekinin, Mad City Geek, Lint, Smitka are all names that I have not seen before and obviously not pronounced as well. Those are our new authors, so thank you to them. We had six reviewers, so thank you to all of our reviewers. As always, we're looking for more people to review. So if you wanna do that, let us know. We're happy to get you polished up. So issues-wise overall, we had 12 closed issues by seven people and 11 opened by 11 people, so good number of people involved and we're still net down one as well, which is great. So I will roll right into the core stats. 33 poll requests merged to the core. I won't highlight the new authors again, but we had 14 different authors, so thank you to them. We had five reviewers, which is a good chunk for us as well. We have 31 open poll requests, which is over my gut check of a single page's worth, which is 25, so we'll need to take a look at that and see what we can whittle down. That's a great, super helpful thing and I think the easiest poll requests to get started with are the ones that are for specific boards, so keep an eye out for those. They should have a label that's on the board. So that's where we are with poll requests in the core. Issues-wise in the core, we had seven closed issues by four people and eight opened by eight people, so we're net up one. For a total of 677 open issues, which is kind of about stable and Micah's volunteering to help review, so yes, we can do that after the meeting. Thank you, Micah. All right, we organize issues using milestones. Generally, this is intended for Adafruit-funded development prioritization, so let me just quickly read off numbers to that. We have zero open issues for 8.2x, which is great. We have 48 open issues for 9.0. That's totally okay because we've got long time before 9.0 is stable and then we have four issues not assigned to milestones, so those will need to be triaged. And with that, let's ask Katny to give us an update on the libraries. Absolutely. So this section applies to all of the circuit python libraries which includes the Adafruit circuit python libraries and everything that has been contributed by our community. Across all of those repositories, we had seven poll requests merged by seven different authors and three different reviewers. I'm really excited about those seven. Five of them are over 20 days old. The oldest one was 701 days old. It's really great to see that we're getting through those older PRs. It was obviously all interesting stuff, but we let a lot of it slip and so it's good to see that we are finally able to go back and get things merged. And that leaves us with 55 open poll requests. We had four issues closed by four people and two opened by two people, leaving us with 630. 46 of those are labeled good first issue. If you're interested in contributing to circuit python on the Python side of things, check out circuitpiphone.org slash contributing. You'll find all of this information and more, including the list of open poll requests and the list of open issues. If you're interested in reviewing, check out the open poll requests. If you have the hardware, test it. If you don't, take a look at the code. Let us know what you think. Check it for syntax spelling, that sort of thing. Or if you have any suggestions, go ahead and leave those in a comment. And once you're comfortable with that, we can talk about leveling you up to the review team. If you're interested in contributing documentation or code, check out the open issues. Find something that interests you, leave a comment, let us know you're working on it. If you're new to everything, we have a guide on contributing to circuit python using git and github, which is recently updated. And actually, if you're not new to everything, it's still great to check out so you know what our workflow is. Take a look at that, and we are always available on Discord to help you get started. In terms of library, PyPI weekly download stats, we had 103,359 downloads over 311 libraries. The top 10 libraries are listed in the notes if you're interested. And library updates in the last seven days, we had no new libraries, but a short list of updated libraries. Again, I will not read them off. If you're interested in them, check it out. It's both Adafruit and community libraries that are being updated, which is great to see. That's what I've got. Awesome, thank you, Katnie. And I think Melissa's out today, so I will read them. Blinka is the circuit python API compatibility layer that allows you to run circuit python code on top, on CPython, Linux, single board computers, and also MicroPython. So this is the status of that. It had three pull requests merged from three different authors. One reviewer, maker Melissa. There are four open pull requests, some on platform detect, and some one on BLEIO and one on Blinka. There's one closed issues by one person and one open by one person for a total of 100 open issues. Stats-wise, there were 13,060 Pi PI downloads in the last week, and there were 9,723 Pi wheels downloads in the last month. And there are currently 119 supported boards by Blinka, not including all of the MicroPython ones, I don't think. I think that's all single board computers. Okay, and that's it for the status circuit python libraries in Blinka. Let's move on. Two hug reports. Hug reports is a chance for us to say thank you to folks in our community for doing awesome stuff. I will start and then we'll go down the list through the folks that have added notes in the note stock. I will read off the notes if they are marked as text only or something similar. Otherwise, I will yield the audio to you. So just unmute and let us know. Okay, so for myself, time code, sorry. First, I wanted to just have a huge hug to FOMI guy for hosting deep dive while I was out and getting going again, and then also allowing me to resume in the normal spot and offering to cover when I'm out. Thanks for keeping it going and backing me up so much, FOMI guy, thank you so much. And then also another hug similar to last week, but I still really appreciate it for attack for continued USB host collaboration, trying to get the USB host stack and tiny USB as solid as the device stack. All right, next up is two, two, three, one puppy. I just want to give a group hug to everyone here because y'all are awesome. Awesome, thank you. Next up is Dan. Thanks to Brent. So we, on Friday, we were trying to figure out why a certain update to the NINA firmware for boards that use the ESP32 co-processor didn't work. And so we worked on that together in the afternoon. That was very helpful. And then thanks to Katny, this is a belated hug report, but she did a lot of revisions on, deep revisions on the GitHub guides. It was mentioned last week and I just want to thank her for that. It was really necessary. Okay. All right, thank you, Dan. Next up is David. I have a report to you for the deep dive we're starting. I may have felt asleep somewhere at the end when I was not asking questions and it was too deep, but that's the time don't know. It's usual. I've report to John for the weed ramp inclusion into the weed shack library. And there are a lot for helping me on help with circuit Python. I had a question and yeah, quickly got the right solution and Mark Gambler for something I might use to make Cynthia Trump sound with my Trump thing. Awesome. Thank you, David. All right, next up I have notes from DJ Devon three. DJ Devon says, I have a report to SuperHack for finding and reporting to ESP32 as to hard fault bugs in their first week of being an eight of root discord member. Hug to Carter for spotting an issue with some code I posted. Reconcalibrated the BME 280 altitude sensor by moving sea level pressure compensation inside the while true loop. A mistake I never caught in more than a year running my feather weather station. Thank you, Carter. Hug report to the core developers for the A21 release, S3 matrix portal guide, pin fixes, backfording and bug fixes this week. Hugs to Scotty P, Human, I think, and Tyeth for spotting the SSL cert disparity in the airlift ports and beta testing Nina 1.75. They provided valuable feedback to help narrow down the eight of fruit IO issues. And lastly, a hug to Brent R and Dan H for sorting out the eight of fruit IO SSL cert issue that affected all whipper snapper boards and circuit Python boards with an ESP32 airlift coprocessor running Nina 1.75 or earlier. That, let's go to foamy guy. All right, thanks, Scott. Hug reports for me this week. Thanks to Dan for keeping the releases moving with 821 last week. Thanks to you, Scott for streaming on Friday. It was great fun to watch along. Thank you to Michael Pocusa for some additional improvements into the HTTP server library. A couple of the ones I was most excited about were the WebSocket server as well as a similar technology called server side event, which I actually hadn't heard of before. So that one was new to me, but it's also pretty cool. And then Michael also reviewed some contributions that I made in that library as well. So thank you to them for that. And then I have a hug report also for maker Melissa for adding support for settings.toml into the portal based library this week. Thanks. Thanks foamy guy. Next up is Jepler. Hey folks. It's good you got to me because I just keep adding more hugs as we go. That's okay. And it would turn into an infinite list. So I guess I'd better start with the group hug because y'all are great. To Dan and Brent for behind the scenes sleuthing about trouble updating Nina firmware with the USB pass through sketch. And I think the good news is Dan cracked that part of the problem over the weekend. So we won't be wringing our hands over the difficulty of upgrading those Nina firmwares. To Ketney and Paul Cutler for testing the new day for the newsletter publishing and for adopting it. I was just thinking about when I run the meeting I often just need a little bit to decompress and relax because being on like that for the whole meeting time can be a lot. And what this does is it removes that person as a bottleneck for updating the newsletter with details about the meeting like the YouTube link. And so next time I run the meeting I will just be able to relax when it's done and that's wonderful. So thank you, Ann. And the last one that I thought of was for Dan for continuing to chip away at the Micro Python 1.19 merge along with everything else you do which is a lot of things. That's what I got. Thanks, Jepler. I had the same realization just earlier. I was like, oh, I don't have to like stay in this hot room and get that done immediately. So yeah, happy about it. Okay, next up is Ketney. I got a group hug. And last up, I have notes from Michael Pacusa who says, a hug to FOMI guy for reviewing and testing PRs for the Adafruit HTTP server library and Adafruit support for help with an order. All right, next up is status updates. This is done similarly as we're under Robin but this time we wanna hear about what you've been working on in the past week and what you plan on working on in the coming week. This is a great way to collaborate on topics that people may have overlap on and just have a broader idea of what everyone's working on. So I will start. I streamed on Friday. There's a YouTube link there if you missed it and want to watch two hours of me debugging, answering questions and doing USB host debugging. I'm currently in the weeds of USB host and debugging why I had a demo where an IMX host worked with circuit Python device but when I moved to that over to an RP2040 host, it doesn't work, it both crashes the host and the device. So it's pretty gnarly. So I'll be working on that later today. I need to figure out what my plan is for Friday. I may stream for just an hour rather than two because I am camping this weekend and I'm not sure exactly when we're gonna leave. So keep an eye out for the blog for that and I will sort of that soon. So that's the world I live. Oh, the last thing is that the Metro M7 trace that I remixed is coming today. So I'm excited to test that and see if it works. All right, next up is 2231 Puppy. So I'm continuing to design the PCB for my circuit Python powered desktop game controller. I'm anxiously awaiting the arrival of the next e-fidget which is version five if you're keeping track and I'm hoping to finally finish up a kit that DJ Devon three sent me for testing and I'm sorry it's taken so long. Awesome, thank you for the update. Next up is Dan H. Okay, so last Tuesday I released circuit Python 821 and in the process of doing that I ended up with draft release notes for the first 9.0.0 alpha. But we decided because there's gonna be a lot of churn in the MPY versions, there's gonna be incompatible MPY version file changes in the process of moving to 9.0.0. So we probably will not release alphas that have different MPY versions. We may tag them, but we won't necessarily publish them on circuitpython.org. So I'll just keep this draft release note and keep adding to it. I mean, there's a lot of duplication between the 821 and the 9.0.0 release notes which is why I ended up with both easily. Okay, I'm still working on the micropython v1.19.1 merge. I have two more files to look at and update that have to do with the build process and then I can start compiling and of course that won't work and I'll have to start debugging after that. Okay. And then finally, as was mentioned, so we had to update the, Brent had to update, well, there was an Adafruit I.O. certificate that expired and that made talking to Adafruit I.O. with sort of Python or with anything that uses the Nina firmware not work anymore. And so we had to update that quickly. So Brent made a new version of firmware very quickly but then it wouldn't upload. So we could not understand why and we tried a lot of things having to do with the firmware file itself and various other things. And then over the weekend, I narrowed it down to something very obscure which is the USB stack on the pass-through program on the matrix portal M4 and the PyPortal and similar boards. And so by recompiling that pass-through program so that it uses tiny USB which is an option in Arduino, it works fine. And so the pass-through program UF2s in the update guide have been updated and you are free to update to version Nina firmware 1.7.5. And go ahead and do so if you want to use Adafruit I.O. And that will be an 822 circuit Python very, very soon that also contains this updated certificate because it's a blocker for those of you who are using Adafruit I.O. Okay, that's it. Awesome, thanks Dan for getting that going. And yay for tiny USB. All right, next up is David. Okay, so I've got three stuff one from the past, one for the present and one for the future. So the past I've been playing before my vacation on most jiggler basically a friend came to my home it's a mighty guy and I did show him and gave him a Trinket M0 then we spend one or two or maybe three hours to make the most jiggler he wanted and trying all the feature available on the Trinket M0. Okay, I've updated that code and I've shared that it's feature complete but I wanted to support more boards but yeah, maybe it's not gonna move. Let's say it's finished. Recently I've got a Wii drum for 17 euro I got the Wii drum and two Wii guitar and that was missing in my collection of Wii devices. So I made a PR to include that in the Wii Chuck library which is part of the community bundle but that library, the last time I've been working on it was two years ago and the Github action were not accepting it. So with some help I've upgraded the cookie cutter part and then both stuff were merged and there is also a game pad library that is forming drums or the guitar or some other stuff into joystick. So I've put my PR for that too. Of course the ultimate goal of that drum machine is to make the drum noise. So I'm gonna try to put all of my test code together into a Github and make some with MIDI or Wavefile or maybe with SynthIO and the code from Mark Gambler. And then when I've finished with that I've got quite a few micro dots from Pimaroni they made sales and they've sell all of their old stock and it's a very tiny five by seven LED display that is dried by a chip for which we don't have a library for circuit fighter. We've got the library for the IS-31FL-37-31 but that Pimaroni stuff used the 30% so I need to try to make it work with the current library or make ad hoc stuff so that I can just stay nice and easy with that. Sounds good, thank you for the update and it did get me, all of those we interfacing things are really interesting because I imagine they're pretty easy to find given that they're past their prime and lots of people will probably have them so that's great reuse for it. Thanks for the update. Next up, we have notes from DJ Devin 3 who says, helps beta test and replicate a hard fault bug issue 8146 setting wifi radio enabled equals false a hard faults on the ESP32S2 requires a dev to investigate more. Still working on semi-automating the Fitbit API example without requiring a local server slash browser callback. Their documentation says the SHA-256 API token expires every eight hours. It is undocumented, the API token will stay alive indefinitely if provided refresh tokens. After the SHA-256 token and initial refresh token are copy pasted into settings Tamil the API example runs forever. Refresh tokens act as a keep alive token. The only caveat is that you must make a request at least once every eight hours otherwise you must start over and generate a new SHA-256 token from their developer tutorial. Fitbit designed their API in such a way to require your microcontroller to always be online. Got an S3 matrix portal and some matrix panels to play with this week. Next up, let's hear from FOMI guy. All right, I have been working on some library PR reviews a couple of the ones that stood out to me this week were in the Turtle portal based in HTTP server libraries but there were a few more spread around mostly typing and other small things. I am also still working through the oldest PRs. So I got a few more of those wrapped up this week and I have a couple more with my eye on them to take a look at this week. I also started making a pass through the library good first issues to start removing labels for many of them that are too big. We have a couple of gnarly ones that are still left in there with quite a lot of typing annotations needed. So I'm removing those and also ones that have been begun but are just awaiting work or have more complexities than we really want for good first issues. So I'll be back at that this afternoon and throughout this week. And then the other stuff I got into outside of CircuitPython, I've been trying to study some and brush up on web application security. I recently completed lessons around cross site scripting and went and played around with HTTP server library for a little bit and found and submitted some fixes that help patch that possibility at least within the most basic use case of that library. So that's the stuff that I am up to for now. Thanks. Thanks for the update, filming guy. Next up, let's get an update from Jepler. Hi, yeah, first of all, we got to get mentioned that I want some of those displays that David is talking about. But what I've been up to, I've got a number of open pull requests that at least as of this morning needed to be reviewed and hopefully merged. There is an update of Proto Matter in CircuitPython that improves the timings on the ESP32S3 in particular, as I understand it. The update to Nina Firmware in CircuitPython, which we've talked about, and an update for the camera board, which there is an existing camera board definition for the ESP32S2, the current prototype has the S3. Dan very kindly started on the review when I asked him about it earlier this morning. So I'll check in on where all of those are after this. And then the final one is not within CircuitPython, but in a repo that we use as a sub-module that speeds up probing for a camera. For reasons I don't understand, the ESP32 camera library probes all of the IA2C addresses once first and then does nothing with the results besides print them if you're in debug mode. And when you remove that, it trims like four seconds off of the detect time for the camera. So that was a really good improvement that wasn't very difficult to do. I've also been working on bringing up to date the pie camera application, which is just a small library at a code.py that work in CircuitPython. Two of the special effects modes that were in the old version of the camera interfacing library have disappeared. One was overexposed, which isn't very interesting. The other is SolarEyes, and I'm gonna see if I can restore that by re-adding it to the ESP32 camera library that we adopted. And I was testing this at the coffee shop, so I forgot my SD card reader, and I need to actually check that it's not only showing the effect on the display, but it's applying the effect to the saved JPEG file. And just for those of you who are wondering, where is this code? For the short term, it is in a private GitHub repo. So there is nothing to see yet, but of course this will be public by the time the product actually exists for you to order. All right, another camera related functionality, QRIO, to read QR codes. I didn't set up a whole application for running that on the camera, but I did run a test that's designed to run on the host computer during CI just to verify that the actual low level QR decoding library is working, and that does work on the ESP32 S3. Talking about something else for a minute now, we've got this ongoing project to upload custom audio files to the 2017 Teddy Ruxman. One of our guide authors, Erin, went through the process. She ran into some snags, and I improved one of the draft guide pages based on her feedback. And we have a special audio encoder because it uses a weird audio format. I added pre-compiled binaries for the Raspberry Pi 64-bit OS to it and verified that that library can be released by Adafruit rather than by me because I don't want stuff to only be doable by me. And just to note, the system that's used for building wheels can't do 32-bit Raspberry Pi OS, but if you have the right development files installed on your computer, your Raspberry Pi, it will pull it down and build it. As far as I know, I haven't tested it. All right, another change in subject. We had somebody come by the Discord, I think it was on Friday, with difficulties using the Spark Fund's Tinsy MicroMod board to output I2S audio. And it turns out the cause is the pin assignments are not what circuit Python expected. I2S has several pins, including a pin called the B clock, which I think is the bit clock. And there turns out to be a distinction between transmit B clocks and receive B clocks, and we will only use the transmitting one. You can actually use either one, you just need a couple of added lines to use the other clock, based on looking at the code in MicroPython, which does work on this board. However, I didn't implement anything yet because we didn't need it for the Metro 1011. So there is now an issue out there suggesting to add this and it will maybe allow some flexibility in future designs based on an XP. So that's good knowledge to have. What's coming up? So actually creating a full QR code, recognizing demo for the camera, adding a display to the camera board definition. There's something to be revisited there for the next redesign as to how the backlight is turned on and so that's gonna be deferred. But turning on or setting up the display so there's board.display we're gonna do. And then Lamar had another number of other items for me to work on, most of which were related to the camera board. And if I get all of those done, we're also gonna see if we can make Doom run on it. So when people ask, does Doom run on it, we can say yes. And the last thing is outside of my computer world, I helped a friend move apartments this weekend. She's all set in the new place, but it was a pretty exhausting two days for the three of us who were doing it. The weather was actually not bad for it though. So I'm thankful for that. And that's what I'm up to. Thank you. Thanks, Jeff. You're doing lots of cool stuff. Last up is Katny. Hello. So I added the CircuitPython Essentials Pages to the Feather ESP32-S2 Reverse TFT Feather Guide. Apparently I typed Feather twice. That guide was done a while ago, but the CircuitPython Essentials Pages were not added at that time. And so I circled back to that. In doing that, I updated the Adafruit IO send and receive data template to use settings.toml. That's a template that's in all ESP32-S star guides. And it was still using secrets, so that should be updated. I also tidied up the createyoursettings.toml file page, which is in a Pico W guide, but it's mirrored into a number of other project guides, and now it can be used in any guide that requires a settings.toml file so that each guide author does not need to recreate how to auto write the settings.toml file. I'm currently working on the ADXL34380T7410 Feather Wing Guide. This is a board that we put out a long time ago, and apparently never had a guide for. It's going to be a quicker one because we're not putting code in it because there's already guides for both of those sensors, and combining the two is rather simple. And then next up is going to be the Metro RP2040 guide. That's what I've got. Awesome, thank you so much, Catney. And with that, that is status updates. Next up would be in the weeds, but we have no topics for in the weeds, so we're just going to keep rolling right through here. I'm going to pull up the notes for how to wrap up, and then we'll wrap up. So this has been the Circuit Python Weekly Meeting for July 31st, 2023. Thank you, everyone who made it and participated or did not participate and are listening in. We 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 this meeting will be released on YouTube at YouTube.com slash Adafruit in 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 also a note from Jeff who says, you can email CircuitPythonDay at Adafruit.com with your own event, Circuit Python Day, which is August 18th. So just over, or just under three weeks away. The next meeting, let me pull up my calendar and just double check, will be normal time next week, Monday, as usual at 2 p.m. Eastern, 11 a.m. Pacific. As a reminder, this meeting is held on the Adafruit Discord server, which you can always 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 Easter's roll on Discord. That, we hope to see you all next week and on the Discord in the meantime. Thank you everyone.