 Hello, everyone. This is the Circuit Python Weekly Meeting for July 17th, 2023. This is the time of the week where we get together to talk about all things Circuit Python. I'm Paul Cutler, and I'm a member of the Circuit Python community. Circuit Python is a version of Python designed to run on tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit, so if you want to support Adafruit and Circuit Python, please consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to adafruit.it-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 p.m. Eastern, 11 a.m. Pacific, except when it coincides with the U.S. holiday. In the Note Stock, there's a link to a calendar you can view online or add it to your favorite calendar app. We also send notifications about upcoming meetings via Discord. If you would like to receive these notifications, ask us to add you to the Circuit Pythonista's Discord role. There is a notes document that accompanies the meeting and recording. The final notes document includes timestamps to go along with the video, so you can use the doc to skip around and view the parts of the video that interest you most. The meeting tends to run 45 to 60 minutes. After each meeting, we post a link for the next week's notes documents in the Circuit Python Dev Channel on the Adafruit Discord. Check the PIN messages to find the latest note stock so you can add your notes for the following meeting. If you wish to participate but cannot attend, you can leave hug reports and status updates in the document for us to read during the meeting. This meeting will be held in five parts. The first part 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 our Python on microcontrollers newsletter. The second part is the state of Circuit Python, libraries, and 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. 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 report 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. And the fifth and final 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's how the meeting will go. With that, we'll get started with community news. One second, please. I'm at the reset. I'll go back through and fix the times on these as well. The first up is the PyKelk Kickstarter campaign. PyKelk is a fully-featured programmable Python calculator powered by an RP2040 with a color touchscreen, sound output, and microphone. The PyKelk includes an interactive MicroPython mode, which allows you to solve complex mathematical tasks in programming in Python without any delay. You can also control hardware components including the IO ports, RGB LEDs, and the integrated speaker for sound output. It's compatible with MicroPython or CircuitPython. And there's a link to it on Kickstarter. Next up, the project of the week in the newsletter was the robot-picking guitar. Via Make Magazine, Olaf Martin-Caveron, and I apologize if I mispronounced your name, shares, that he modified a Squire Telecaster guitar using a Pimeroni Serbo 2040, Digital Serbos, and CircuitPython to create a guitar-picking robot. He shares his design goals, tools, and how he overcame the power challenges to show how he plays with the guitar robot. And lastly, our very own Tadbot has created a new prototype board to use with CircuitPython's new SynthIO module, and included in the newsletter is a picture of the board as well. The CircuitPython Weekly newsletter is a CircuitPython community-run newsletter emailed on Monday mornings. The complete archives are available online, and the link is in the notes document. 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 projects, you can edit next week's draft on GitHub or submit a PR, or you can email cpnews.edafruit.com with your cool projects. Next up is the state of CircuitPython, Libraries, and Blinka. This is a quantitative overview of the entire project. It gives us a chance to look at the health of the project separate from our status updates. We'll talk about the project overall, then separately discuss the core, Libraries, and Blinka. Overall, last week, we had 17 pull requests merged from 16 authors, which is great to see. Some names that were new to me are DataNoiseTV, PIIT79, LeaSplitKB, and Scientist. I hope I said all those right. We had nine reviewers, and we had 10 closed issues by eight people, and 13 opened by 12 people. With that, Jeff, will you cover the core for us, please? Hello, yeah. In the core, which is the part of CircuitPython implemented in C, we had 14 pull requests merged by 13 authors, including a couple of those that you already mentioned. DataNoiseTV, PIIT79, LeaSplitKB, and Scientist. I'm guessing just as much as you on pronouncing those GitHub user names. We also had six reviewers. So thanks to all those folks who are keeping things working smoothly in the core world. We have 30 open pull requests. A number of those are marked as draft, and a number aren't. If you've got a pull request in progress and are waiting on something from the core contributors, please give us a ping on that pull request. And, yeah, so issues-wise, if things were fairly quiet, we had four closed issues by three people and nine opened by eight people. Because the release of 8.2 was fairly recent, we've got folks trying out new versions, and I guess finding some problems, which is no surprise. We've got 800...no, sorry, we've got 678 open issues, but we usually organize them according to milestones, which tell you what the Adafruit-funded people are focusing on working on. Version 8.2.x has two open issues, and those are bugs or regressions that we want to fix in an upcoming 8.2.1 release. For version 9, we've got 47 open issues. So there is a lot of stuff of all kinds that we want to put into version 9. And then we've got some other milestones. A lot of the issues are marked long-term, and what that means is Adafruit doesn't prioritize working on those issues right now, although in most cases we would be really thrilled to see somebody from the community step up and implement a feature or fix an issue that is listed as long-term. So speaking for Dan, who isn't here right now, he is talking about making an 8.2.1 release in the near future with a couple of small targeted bug fixes, and you can take a look at those issues tagged 8.2.x to get an idea of what would be in that. And with that, that's what I have to tell you about the core. Thanks, Jeff. I appreciate it. And I'll turn it over to Catney now to talk about the libraries. Thanks, Paul. This section applies to all of the CircuitPython libraries, which is everything in the Adafruit CircuitPython library set, which is anything that starts with Adafruit underscore circuitpython underscore and the community bundle. Across all those repos, we had two pull requests merged by two authors and two reviewers. We have 60 open pull requests total. We had six issues closed by five people and three open by three people, leaving us with 634 open issues. 46 of those are labeled good first issue. In terms of library PyPI download stats this week, over 311 libraries we had 92,017 PyPI downloads, and the top 10 are listed in the notes if you're interested. In terms of library updates in the last seven days, we have one new library, Adafruit CircuitPython EK79686, and two updated libraries as well. And that's where we are with the libraries. Thanks, Catney. Maker Melissa is out today, so I'll go through Blinka. Blinka is our CircuitPython compatibility layer for single board computers, such as the Raspberry Pi. We had one pull request merged by one author. Thanks, Foamy Guy, and one reviewer, Maker Melissa. We have three open pull requests, the newest being open 50 days, and the oldest being 887 days. And we had zero closed issues by zero people and one open issue by one person. There are 99 current open issues, and we had 10,992 PyPI downloads in the last week, and 7,698 PyWheel downloads, and we support 119 boards. And that is the state of CircuitPython, the libraries in Blinka. Next up is Hug Reports. Hug Reports is a chance to highlight folks in the CircuitPython community and beyond for doing awesome things. I'll start, and then we'll go down the list alphabetically to give everyone a chance to participate. If you are text only or missing the meaning, I'll read your notes when I get to them in the list. So I'll start, and first up, Catney Frawler helped with the newsletter last week. As well as Dan, I didn't know that Dan gives it a final once-over and a read-through every week and fixes any mistakes he catches. I'm happy to say he only caught one last week, so yay us. And a group hug. And with that, I'll turn it over to Dan. Nope. Looks like Dan's still out. Dan has one Hug Report for Tanud and Jepler for USB host work, which has been a long time coming. And DJ Devon 3, you're up. Thank you. I have a hug for Skur, L Pakenin, and Wimsy for advice on how to decipher a display IO hex init sequence. I have to Skur and Kevin T for helping with converting parsed JSON data into an array. And Jay Pisada for writing an excellent U-plot library for graphing data into all sorts of different types of graphs. And a hug to Anikdata for helping troubleshoot a display issue. That's it. Thank you. And with that, I'll turn it over to Foamy Guy. Alright, thanks, Paul. Hug Reports this week for me thanks to on GitHub FastEddie516, as well as BiffoBear, who both submitted improvements to the Ethernet library recently. Thank you to Michael Pokusa, who has submitted some more improvements to documentation in a new set of functionality in the HTTP server library and group hug for everybody. Thanks. Thanks, Foamy Guy. Jepler, you're up next. Hi. I wanted to give a hug back to a number of folks who offered supportive words on Mastodon about a family member's health situation. And a group hug. Thank you. And, Catney, it's your turn. Alright. First, I've got hug reports for you, Paul, for doing an amazing job with this week's newsletter, for all the help on last week's newsletter, for all the help on the upcoming issue, and basically, thank you for all the help. To Dan for always doing the final proof on the newsletter, even while on vacation. To Tim for agreeing to help out with some pull request nanogins I need for screenshots for a guide update and suggesting a good issue topic to search through to find a library to update. Also to Tim for going through a quick CircuitPython library sweep if you got missed along the way. To Tectric for submitting a few fixes to various infrastructure situations we have going on and a group hug. Thanks, Catney. I will read from Mark Gambler who's missing the meeting today. He has a group hug to all as work in life have kept me from contributing much lately. Thanks, Mark. And, Scott, you're up next. Alright. Thank you, Paul. First, a hug report to everybody who's been flexible. And Jeff is a perfect example of this while I'm off and on taking care of Ari who has an ear infection. Just started daycare, so all of that. And then also a hug report to Catney and Paul for putting the newsletter together while Ann is on vacation. Thanks, Scott. And I have a group hug from Tectric who's not present today. And last is Tyeth who has a hug for HopCappy on Discord. I'm the first user to knowingly test my SCN 5x driver and found an untested function had a bug. Related to Boolean's Instruct on Pack which MicroPython doesn't support. Fixed and now ready to release the library. And that is hug reports. Next up, status updates. Status updates is our time to tell folks what we're up to individually. I'll start and we'll go through the list alphabetically. When I call on you, take a couple minutes of what you've been doing since the last meeting and what you'll be doing until the next meeting. This is also an opportunity to provide tips and tricks relevant to what people are working on. If a discussion becomes too long for status updates, we can move it to in the weeds. My status update for the week has been mentioned is just guest editing the Python on hardware newsletters. They have so much more respect for Ann realizing how much work goes into it. It's an amazing process. It's our last week editing the newsletter before Ann gets back, so send us your projects and stories. We still need more. We always need more. And with that, I'll read Dan's updates. Dan is making another pass over MicroPython Merge to double check the choices. I'll annotate our code with circuit Python markers of some kind so the origin of certain changes is clearer in the future, especially in places like the core interpreter. Looks like we'll do an 8.2.1 circuit Python release soon to fix some regressions and maybe some easy bugs. And with that, DJ Devon 3, you're up. Oh, there we go. I wrote my first display driver. Adafruit has an ST7796 driver for Arduino, but not circuit Python. I attempted to port the Arduino in its sequence with no success, and instead used the ST7789 circuit Python driver by Melissa as a basis. Figured out how to flip and invert the display hex in its sequence using ST's data sheet to produce a working circuit Python ST7796 driver. I made no claims that it's 100% correct. It's my first in its sequence driver, and I will note that in the code. I intend to submit it to the community bundle when I figure out how to use cookie cutter. And I finished an Adafruit request Fitbit API example. It will likely require a lot of documentation on how to use it with a microcontroller as it's not as straightforward as any other API because it requires some type of callback server. But you can do that manually from within a web browser. If you don't make a request to their server at least once every eight hours, you must generate a new token using their website or an HTTPS server of your own to capture the callback authorization code. And this is separate from the Uplot stuff that I'm doing lately. The Fitbit API example is like already wrapped up and ready to go kind of thing. So that's it. Thanks. And with that, I'll turn it over to Foamy Guy. All right. Thanks, Paul. For the last couple of days for me, I've had less circuit Python activity than usual due to a storm on Friday afternoon that knocked out power for myself and loads of other people around town. I have a late hug report for the utility workers and response crews who have done a great job getting folks back up and running. Definitely very much appreciated to all of them. I have been getting back into it today, working on circuit Python stuff. I'm still working through PR reviews and particularly some of the older inactive PRs. So I'll say, again, if anybody does have older inactive PRs or PRs that you think are waiting for someone to take a look, feel free to ping me either on Discord or GitHub, and that will kind of bump you to the top of my list as I'm working through them. A couple other things I have in the canon for this week is kind of on the search outward from the ESP32 spy library. I did some changes in there, I think, last week or the week before to start switching over to settings.toml, but I know there are going to be more places in other libraries and perhaps project code that will or that could be changed along with that in some places that may need to be. And then the other one is a sweep through the libraries to get some releases made for ones that had new commits since the last release. And that's what I have got going on for now. Thanks. Thank you. Jeffler, it's your turn. Hi again. So this morning, and I guess late on Sunday, I was interacting on an issue and pull request about a micro lab build problem. The person actually started on Discord and then was directed over and hug report to them for bringing this forward and then rapidly iterating with the issue and the pull request. I don't have a name right off the top of my tongue. Anyway, so there's been a bug in GCC for a really long time. If you use FP classify, which is a C function and you have a certain level of optimization enabled and like two other details, you get a spurious warning and that warning may be treated as a compiler depending on circumstances. But they offer to work around and after kind of digging into it, I'm like this work ground is fine. It's going to work correctly and it's not going to encounter this diagnostic. So that's great. And so I think we'll move forward in micro lab with that fix. I also moved the USB host keyboard map feature forward, Scott had one item in the review, which is could you please move this to a module where it makes sense instead of one where it doesn't make sense. So thanks for that review, Scott. The other thing I've been working on is SDIO for the RP 2040 microcontroller. I just finished removing the last not implemented. So tomorrow or if I get back to working after the meeting today, I can start testing that on hardware. The capacity check is also still missing. It returns a bogus value instead of raising not implemented. And that's something that I'll have to figure out. It looks like the SDIO implementation doesn't have a specific return the capacity API in it. It's probably not super tricky, but just something that I need to implement because it's not there yet. So coming out coming up, I will be out on Friday as well as next Monday. So I'll miss the meeting. My focus is on SDIO. Hopefully it will start working quickly, but if it doesn't work by the end of the Tuesday, I may put it aside for a little while if I'm kind of like, oh, this doesn't work at all and I have no idea. But we'll see when we get there. And then another thing that I want to work on, Todd Bot has a seemingly simple, but actually tricky to implement request to get information about a playing notes envelope state. And I may take a look at implementing that. And yeah, there will be plenty more. Got a lot of stuff kind of at the more than one week out level. But yeah, that'll keep me busy for this week. Thanks, Jephler. With that, I'll turn it over to Katni. Wrong button. All right. So last week I worked on guide feedback and the newsletter. I think I might have had a couple of guides published. I don't remember at this point. This week I'll be working on guide feedback and the newsletter. FYI, I'm around for a couple hours on Thursday for the newsletter and then Friday to get the newsletter published, but otherwise I'm out quote unquote those two days. So I won't be doing anything but newsletter stuff on Thursday and Friday. So if you need anything from me, please get it by Wednesday. That's all I've got. Thanks. Yay newsletter. With that, I'll turn it over to Scott. Thanks, Paul. So Ari, my son has his first ear infection. So he's told him today at least. We'll see how he feels tomorrow and the rest of the week. So that means that I'll be off and on and trading with Becca, my wife, slash partner. What I was working on last week was I almost am almost done with a PR, making a PR for the USB host, Port Singleton. This handles like how you manage the fact that once you start it, it keeps going. It works in the RP2040, but I'm still running down a nasty bug on the IMX where registers seem to be changed because that's loaded incorrectly, which is just, and it depends on all sorts of stuff. It's really weird. I'm going to try putting that function in RAM and see if that fixes things. Regardless of whether it does, I'll make a PR because this issue I've seen before as well. I made a PR and I haven't looked to see if it was merged to fix the RP2040's double click to reset for safe mode. In the Pico DVI stuff that I did, I changed it to use a scratch register in the watchdog, which turns out to be reset when you press the reset button. So it didn't actually work. Instead, we could put a value in memory and as long as that memory value doesn't get overwritten, it works. So that seems to work better. I also made a PR to TinyUSB to fix an issue where the port-level setting for memory alignment for the USB buffers isn't used by default for the host buffers, which means that it makes it work correctly for device but not for host on the IMX. So I had the pull request out and that will hopefully make USB host on IMX better as well. The issue was that it was set to 4 bytes, 4 byte alignment, and there's a couple ways to manage the cache. One is invalidate, which says, I don't care what's in my cache, I just don't want it anymore. And then there's clean, which is the things that are in the cache get written back to RAM. So what was happening is that we were saying this 4 byte aligned thing, we said invalidate it and then we were inadvertently basically dropping the changes we had made to variables that live in memory near that because it's 32 bytes that get invalidated. Anyway, so I have a fix for that. One thing that I'm curious to hear from folks about, so maybe we could talk a little bit in the weeds is, I was playing around with switching circuit 5.9 to a new font. There's either Unifont or Gazette. Unifont is by the GNU project, it's 8x16, so it's a little bit bigger, but it has really, really good Unicode coverage. Maybe cool because we could then support Korean and Japanese and other languages builds and they also have emojis, which is kind of neat. The other font is Gazette, which Jeff found. It's 5x13, which is kind of a weird size. Ideally it'd be like 6x12. I think it's 5x13. It might be 6x13 actually. Mostly I found that number 4 and the letter Q are one more pixel wider than most and the emojis are wider as well. So it's kind of annoying, but I'm curious what people think about switching fonts and potentially getting more support. One thing that would come with this and that I would have to do is supporting half width characters and full width characters. So like 6 wide and 12 wide, for example as well. So maybe we'll touch on that a little bit. And then lastly, Lamar made the toy hacker board and I got a copy or I got a prototype of that and I want to put it in the toy. So I'll what will come with that is she had some feedback on the web workflow, so we'll do some polish there as well. And that's it for me. Thanks Scott. I will read for Tech Trek who's not present today. He is on break from grad school for this half of the summer. This week started a few pull requests to allow the CI to print out the versions used by pre-commit, which should help in specific cases where the information is needed for debugging CI issues. Submitting a couple pull requests that would enable certain bundles to be skipped from being built. For example, circuit python underscore typing doesn't need an MPY bundle, so building it and attaching it to releases can be skipped. Worked on a couple PR reviews. This week in upcoming, looking into fixing with the goal of allowing the CI to only check updated guides when triggered via PR. We're looking at using RP2040JS for CI purposes. I've been keeping the repos I started up to date and I'm hoping to come up with a proposal. That was Tech Trek. Next up is Feed2 who's chat only today last week. I built a RISC-5 lab for submission as an official RISC-5 org lab. This means that anyone who needs to compile a test on RISC-564 hardware they can contact me and I can set them up with dedicated hardware for running things like a GitHub remote runner. So it's useful for running actions. I've also started compiling and testing Python 3 modules. Feel free to contact me in Discord if you think you'll need hardware or if you think there's a Python module that you want me to work on. This week in upcoming, I'll build a circuit python keyboard kmk with native Costa Rican languages like I apologize I'm gonna, I don't speak Spanish or Costa Rican but Bribri and Kebacar which needs special characters to write them. So again, my apology for mangling those words. And that was status updates. Next up is in the weeds. In the weeds is an opportunity for long form discussion that either come out of status updates or that folks have identified ahead of time. If you have any in the weeds topics, please make sure they get added while we're discussing other things so we're not waiting around to see if anyone has topics. Scott, I'll turn it over to you. You had mentioned maybe having a fun discussion. Yeah, sorry. I'm just curious, do people want to talk France? I just linked in the chat to my prototype branch. There were some changes that I needed to make to prototype it. So take a look at that. And if you're curious, want to try it, let me know I'm happy to get it going or get to some builds for testing that as well. I think I showed it on show and tell as well. I was distracted. You talked about the life between a new font one. I didn't but it's dual licensed is my understanding. So it's not does it include infections? That's what I'm worried about. Yeah. I don't believe so because even the the answer is yes. The GNU font embedding exception and the SIL OFL open font license allow for that. Okay, good. Required derivative fonts that others create to be released to the public under the same licensing terms. Not to prohibit the use of those fonts with certain software under the commercial use part here on their page. The tricky thing that I was running into with Unifont is that they provide two different font files. For plane zero and plane one and all the emojis in plane one. So I was having trouble wrangling that into one single PDF file. So you'll see in my branch actually just had it load from two different PDFs instead. Which is kind of annoying but I did get it. I got it working to the point where we could see it. It just didn't I wasn't doing the half width full width thing so that would be the required that would be part of the stuff that we had to do to switch and then the other thing that we'd have to do is we likely will because the font slightly larger and we'd be supporting languages we currently have it turned off. We're probably going to have to adjust like the flash the flash footprints for things and maybe we want to think about changing the flash footprint for different font sizes or different languages. Might give us more breathing room that way but it makes it impossible or not nice to switch between languages then. Yeah, DJ Devon says go ahead, Chuck. Oh, with the stuff that I'm doing for the editor it would be nice to have a cursor. I think if we are going to support half and full width characters that's already like a big break from how hybrid works and so it may be a time to think about whether there's like a next generation terminal thing that is not a tile grid but is more based on drawing the pixels into bitmap or I'm not sure how that would work but to support at least a cursor to maybe support foreground or background colors of text I don't I don't know how that would work. Yeah you might tackle isn't tile grid limited to like a 16 bit tile number or is that a mistake in memory? I think it might be 8 bit. Oh boy. So I think that could be one problem for sure because my plan with the full width and half width was just to basically make the full width characters two tiles and then terminal would know which glyphs were two tiles instead of one. All right. Yeah, I think that could work. Yeah, but it gets it gets it's a lot more metadata because you can't just count how many characters in you are and then take that as the tile index. Kind of like have to add them together as you do it. I don't know. I like I wanted to play around with it but it's not something that I'm like insisting on doing but I really I like for the for the standalone circuit python I like the idea of doing like the emoji emoji stuff too. It also crossed my mind to try to come up with a way to do it with the font stuff on the on the like on the file system rather than in circuit python of all. Yeah, it turns out that right now it's not possible to use a different font. The a different. Yeah, you can't create the right kind of font object within circuit python code. You can only use the one that's coded into ROM for using within a tile grid and Terminalio. It would be neat to lift that limitation as well. Yeah, if you could use a different and maybe that's the right way to do it is like we don't support that stuff by default but we actually document how to use Terminalio yourself with a different font in case you do want other characters and stuff. That might be the better way to do it because maybe then you can also do like six color you could have more colors in your font or something. I don't know how font sandal colors but like for color and emoji I don't know not super priority but something I I like the idea especially if we're moving to a workflow a standalone workflow it'd be cool to support all of the languages that we currently have so that you can do it there. Okay, well that's what's on my mind so I'll let you get back to DJ devil. Yes. Yeah, I think for cursor Jeff we talked about like cursor could be just a single tile grid that you move on top of it instead of requiring like the grid of tile grids the grid tile grid or whatever the scroll area to actually do it. It did also cross my mind it if we moved to a stake emoji instead of the the colored blinker it would be monochrome again and we could actually because it's a palette we could make that palette mutable and you'd actually be able to make a green on black or green on other green sort of look which I thought would be kind of funny for the circuit by the terminal. Yeah, DJ devil says if a language isn't supported by a terminal I'll by default I can see how it could be a big problem for a certain language. We actually turn terminal I.O. off for different languages so it's not on all languages and we will have a problem where when we turn it on for things we'll fill up our builds and we'll have to figure out how to manage that. Yeah, we could totally do blue on other blue. I was thinking that's an easy change we could do like just make the like there's some palette internally that we use for those tile grids. It wouldn't be too hard to just make it mutable so that you can set the two colors. So yeah, we'll keep thinking about it. It's not a high priority but if folks are able to find, I think ideally what we would have is we would have a 6x12 font that had 12x12 full width characters so the emoji would be 12x12 and all of the CJK sort of characters would be that too but I'm skeptical I don't know if that's actually possible because I know like the uniform is 16x16 so if anybody runs across something let me know and I think that's it, Paul. Alright, thanks Scott. That's all for in the weeds thanks everyone. With that I'm going to wrap up. This has been the circuit python weekly meeting for July 17th 2023. Thank you to everyone who participated. If you want to support Adafruit and circuit python and those 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 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. The next meeting will be held next Monday at 2pm eastern 11am pacific. The meeting is held on the adafruit discord which you can join by going to adafruit.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. We hope to see you all next week. Thanks everyone.