 Hello everyone, and welcome to the Circuit Python Weekly Meeting for October 11th, 2022. It's that time of week that we get together to talk about all things Circuit Python. This meeting typically happens on Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except like this week 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 to your favorite calendar app. We also send notifications about upcoming meetings via Discord. And I guess I didn't really say what this was, so I'm Jeff and I'm sponsored by Adafruit to work on Circuit Python, which is a version of Python designed to run on tiny computers called microcontrollers, like over 300 different ones. The development of Circuit Python is mostly sponsored by Adafruit, so if you want to support them and Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server, which you can join anytime by going to adafru.it-discord. We hold the meeting in the Circuit Python DevTex channel and the Circuit Python Voice channel. And there's basically 24-7 activity on our Discord of some type or another, so if you want to talk about something Adafruit-related, electronics-related, we would love to welcome you. There is a notes document to accompany the meeting and recording. If you're viewing this after the fact that document will have timestamps to help you skip to the part of the video that interests you the most. And then after the meeting, we'll post a link to the next meeting notes document for people to fill out during the week with their hard reports and status updates, which I will explain that in just a second. This meeting is held in several parts. The next part is called community news, where this week we are taking a look back at the Circuit Python and Python hardware newsletter, which goes out on Tuesday morning. So the news is a little late, but trust me, there's good news in there. And then next after that, we take a look at the state of Circuit Python, the libraries and Blinka, a statistical overview of the entire project, kind of trying to, yeah, basically get the big picture separate from what we're each individually doing. Then comes the part where we all participate together. It's called hug reports, and it is around Robin. It's an opportunity to highlight the good things folks are doing and take the time to recognize the awesome folks in our community. Next after that, and the big part, is called status updates. We invite you all to take an opportunity to sync up on what you've been up to. Tell us about what you've been doing in the last week and what you hope to get up to over the next week. And if you have something else in your life that kind of spills over and informs how Circuit Python is playing a role in your life, we'd like to hear about that too because it really builds community to understand what's going on in other people's lives. And then the last part, which is optional, is called in the weeds. If we need to have a more long form discussion about anything, we can have it at that time. And you can identify it ahead of time or as the meeting progresses, but just add those to the notes document and we will take any or all topics that appear there. And that covers how the meeting is going to go. So I am going to step over to community news. And first up, Circuit Python support for the Raspberry Pi Pico W hits version 8 beta 1. Work on Circuit Python has reached the point where it has been released on circuitpython.org. While not feature complete, it is usable for several types of Wi-Fi and it's currently being actively worked on by Adafruit, meaning me. And also Liz has a Twitter post about trying out Wi-Fi on the Pico W. And I'll say it almost every time I talk during this meeting. Thanks so much to people who are helping out and testing with this. Next up, Arvaryon and Varela was on the Alpenglow solder sesh video cast. And Varela, a member of the Circuit Python team at Adafruit and your newsletter editor appeared on the Alpenglow Industries solder sesh number 45 on October 6. And an Alpenglow founder, Kerry, discussed Circuit Python, Circuit Playground Boards and much more. And you can catch that on YouTube. And I've not watched it yet, but it sounds fun. And then the last one I picked out to recap is called Making a Talking Macintosh with Circuit Python. A Talking Mac SE. It is set to speak any messages it receives through a USB Wombat and Adafruit Metro ESP32S2. It is controlled through Home Assistant using MQTT and Circuit Python, quote, my friend set up the Mac to boot to the speech program so it's going to be part of our tour. And there are links to Discord and GitHub. So that's just a few of the items from the Circuit Python weekly newsletter, which is a community-run newsletter emailed every Tuesday. The complete archives are at adafruitdaily.com slash category slash Circuit Python. As always, it aims to highlight the latest Python on hardware related news from around the web, including Circuit Python and MicroPython developments. To contribute your own news or project, or your friend's project, you can edit next week's draft on GitHub and submit a pull request. You may also tag a tweet with hashtag Circuit Python on Twitter or email cpnews at adafruit.com. And we do really want to hear about what you're up to. Don't worry that your project is too small or too beginner because you're at your level of skill and readers are at their level of skill and your thing is going to meet somebody right where they are and we love hearing about it. So don't hesitate. Send in your Circuit Python project, your MicroPython project, your other Python on hardware project to the newsletter and get it out in front of an audience. All right, next up, I'm going to tell you about the state of Circuit Python, the libraries and BlinkUp. So we have an overnight process that runs every day and reviews the last seven days of activity on GitHub. And those are the numbers I'm going to summarize. And there are some names. And because this meeting is taking place eight days after the last meeting, there's a possibility that I'm going to miss somebody's contribution just because of when the script runs. So if I miss you and don't acknowledge you, my apologies, but it's kind of down to our technology that we're reviewing seven days, seven out of eight days between the meetings. Anyway, so we had a magnificent number of pull requests merged. 45 pull requests merged by 17 authors. And I want to thank Bill88T, who is a more recent contributor. And then some names that don't ring any bells for me at all. I think we've seen Isaac Ben before. But the Dabargia, Kyle F. Moore, Calcutt, Ryzer58, Dead627, Met2481, a bunch of people who are new to me or less frequent contributors or new contributors. And we really appreciate your work making CircaPython the libraries in Blinka better. And I also want to thank our 10 reviewers, which is Tektrick, Meagher, Melissa, Kattney, Anikdata, Jephler, Naridoc, Fomiguy, Microdove, Dee, Halbert, and Gambler. Everyone can comment on pull requests and issues. And again, help us make the best CircaPython possible. But these people are acting in a more official capacity and they have the capacity to accept or ask for changes on a pull request. And everyone, whether you're participating formally or not, those help us create the high quality software that we want CircaPython to be. So thank you to all of those official reviewers and everybody else who is participating on the issues and pull requests. And finally, another great number. We had 52 closed issues by 15 people and 23 opened by 15 people. So we're net down on issues, which is wonderful. And just the level of number of people participating is really heartening to see. So next up, we're gonna drill down a little bit in those numbers and talk about the core, which is the part of CircaPython that's written in the C language, and you typically load it to your device with a UF2 file. And we had 21 pull requests merged by eight authors. So Bill88T and Kyle F. Moore are on that list again and six reviewers. This leaves us with 21 open pull requests. And I think this list is fairly well groomed, those older pull requests. We are waiting for action on somebody else's part or some other thing that just means we can't merge it right now. But if you feel you're waiting on us to work on a pull request in the core or in the libraries, please don't hesitate to just give us a ping within the comments of that pull request. Issues wise, we had 22 issues closed and 15 issues open. So we are net down a few issues. We are left with 579 open issues in the core, but we organize those according to milestones. Milestones tell you what Adafruit prioritizes working on among all of the issues. We're always happy to have the community work on whatever issue they feel is going to improve their experience with Serger Python. But we've identified 30 open issues that we would like to resolve before releasing version 8 as stable. And a further 13 issues that we've identified as issues we'd like to close as we make stable releases of 8 after 800. And then we've also got four issues not assigned to milestone, which just means that somebody needs to go in, triage those and decide which milestone they will be assigned. And so, narratively, what has been going on is Dan has been doing a lot of great work that he will tell you about for stability of the ESP IDF, and then I've been doing a lot of work around getting the PicoW wireless support, getting the most depth of features that we can. And of course, other people have been up to other things, but those are what's at the tip top of my list. We released beta last weekend and we will probably release another beta soon. Thank you to Dan for both of those. And yeah, just generally our goal as 80 Fruit people is to move toward making version 8 a stable version. We think it's a really good version. There are a lot of wonderful additions and we just need to get it to the point of stability and feature completeness that we want. And with that, I'm gonna move on to telling about the libraries. Normally, I would have Ketney, our library manager and community manager tell you about this, but she is out today. So, pardon me as I muddle through it. In the libraries, we had 22 pull requests merged from nine authors. So thank you again to Isaac Ben, the Debar Gaia, Calcut, TC Franks, Dead 627, Meta 2481, who are names that I see less commonly. There is a link to a list of the merged pull requests in the notes document. We have 26 open pull requests that need to be worked on and again, we believe that most of these are waiting for action by other people. Certainly if they've been open for a while, but if we can help you out or if you're waiting on something from us, please don't hesitate to ping. Issues wise, we had a magnificent 30 issues closed and seven new issues opened. And Ketney has a really good spiel that she gives about how to help. And so if you can just put up with my inferior version, I'll read it off of our document. If you're interested in this information and more, check out circuitpython.org slash contributing. You'll find all the open PRs, open issues and a list of library infrastructure issues. If you're looking to contribute, this is a great place to start. The issues can be sorted by labels so you can search for good first issue if you're getting started or bug or enhancement if you're looking for something a bit more complicated. We have a guide on contributing to Git and GitHub and we're always available to help you get started with that. So let us know if you need any assistance. And then one final note. If you've been looking at the notes document, you'll see something about the Hacktoberfest label. October is the month of Hacktoberfest and we are recognizing people's contributions within almost all of the Circuit Python repositories. So that gets you a chance if you participate in the Hacktoberfest event, which I think is hacktoberfest.org, that you can receive a t-shirt or have a tree planted in your name. And that's going on during this month of October, although we welcome your contributions at any time of year. And thank you, Paul, for the link. It's hacktoberfest.com. So with that, oh, there's one more thing. There was one new library in the last seven days and that is Circuit Python Display IO Flip Clock. So thank you. I believe that one is by FOMIGuy and it helps you create a neat kind of flip looking clock on an LCD display. This was on one of Tim's deep dives, I think, in the past few weeks. So that library is now in the bundle. That means you can install it with Circuit and all those fun things. So check that out if it speaks to you. And now I will let Makar Melissa talk about Blinka. Hello. So Blinka is our Circuit Python compatibility layer for Raspberry Pi, MicroPython, and other single board computers. And this week we had two pull requests merged by two authors and two reviewers. There are currently six open pull requests amongst their repositories. There were zero closed issues, but zero people wound up familiar one person. And it says the hacktoberfest has zero reliable added to zero issues. But we kind of just added more of a general overview. So any of the issues should get you the hacktoberfest stuff. There are currently 85 open issues and there were 11,937 PyReels downloads in the last month. And we are now up to 96 boards. And that's it. Thank you, Melissa. So yeah, one last thing about hacktoberfest. We have tried to add the hacktoberfest topic to each of our public repositories on GitHub. And if you submit a pull request there that is accepted, then that should count towards your hacktoberfest credit. If we're missing that, we can add it to the repository or we can put the label hacktoberfest accepted on your pull request. If you notice that something is missing, like when you go look at your contributions on the hacktoberfest website. Again, please don't hesitate to ping us on the pull request and we will get that sorted out so that you can get your credit. And with that, I think we're ready to move on to Hug Reports. Which is the chance to highlight folks in the Circuit Python 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're text only or missing the meeting but have Hug Reports in the notes document, I'll read them off as I get to you in the list. All right, so I have a group hug because I know that in these lists, I am always missing people who are helping out and so but I'd particularly like to thank Anecdata, Bill88T, and Liz and the unnamed person for testing of the PicoW functionality. Dan and Nerodoc and someone else for pull request reviews and merging. And Dan for the last release and the upcoming release, which will be another beta of 80. And next up, I'm going to read notes from Anecdata who has a hug report to me, Jebler, for getting for all the great work getting PyCow going and a group hug to everyone for all the project inspirations. Yes indeed. And next up are Dan and then DJ Devin. Go ahead, Dan. Thank you. All right, so thanks to Jeff who's done really quick work on PicoW Wi-Fi support and thanks to Anecdata for testing that, which meant my reviews. We're just looking at the code. We're in a copy-aiding kind of way and Anecdata did the hard work of actually testing the Wi-Fi support. Thanks to MicroDev, who's been doing a lot of reviews and PRs and works on schedule offset from ours. So fixes things in the middle of the night, including fixing a GitHub actions issue, which came up where they required a newer version of Node. And we were using a lot of older versions of GitHub actions. And MicroDev updated all of those, which was great. Thanks to Dare Broader71 today for finding out that a board edition that was held up could be completed. We were waiting for a USB product ID and then for testing that when I finished off the PR. Thanks to Jeff for a bunch of touch up PRs in the past week, which were fixing various knits of various kinds, which is fairly helpful. Thanks to Bill, ADAT and Anecdata for a lot of testing for an issue having to do with Wi-Fi scanning. And I'll talk about that in status reports. And thanks to TAC, our tiny USB person for starting to look at a possible tiny USB output treated as input issue. And to Jeff for another test case for the same issue. And Jeff is suspicious now that this might be an idiosyncrasy of Linux about how... What we're seeing is that we're writing something to output at the very beginning of connecting via USB. And we see that output showing up as input parts of it. And Jeff thinks this might be due to a race condition in Linux where when you first open a teletype, a TTY, I'm going to say teletype, but that's what the TTY stands for. That it opens in echo mode where the output goes back to the input and you have to turn that off. And most programs turn it off right after the open, but there is a window of time in there in which that you can get... There's a race condition. So we'll be checking that up too. So thank you, Jeff, on that. Okay. Thanks, Dan. Anymore I was going to send you to End the Weeds because there's a lot to this topic. But it's nice to be maybe making some progress on it. But anyway, next up is DJ Devon 3. Hello. Hello. Can you hear me? Okay. There we go. Yes. I'd like to send a hug to Jepler for absolutely killing it on all the PyCow related stuff this week. Dan H and AtticData for helping me narrow down some suspects in the Feather S2 and S3 hard reset bug, which is... I don't know if it's the same as the Wi-Fi scanning bug, if it's related, but there's an issue there. And they've both been searching for that. And I'm guessing we'll hear more on that later. To Melissa, for an excellent Tupel update for the StemO7 Segment Display Library, allowing multiple backpacks to be initialized and combined together as one larger backpack, which that code already existed, but it didn't exist for the StemO Backpack, so that was very helpful. Yeah, the StemO Backpack. To Paul Cutler for using his RGB matrix to help me troubleshoot an issue I was having on my RGB matrix and for going through hand surgery this week, so I hope he's feeling better. To Nerodoc for being an absolute knowledgeable beast in the CircuitPython help channel every single day. To JP and FoamyGuy for streaming every week, I always learned something new watching them. To Ann Borrella for a beautiful mass project and an amazing YouTube interview with Alpenglow that represented Adafruit very well. To Skr and Cater for helping troubleshoot an RFM90 receiver toggling on and off every save bug that I created myself, user-inflicted. Turns out I was flipping the IRQ on and off every file save due to incorrect wiring, and now I can continue my efforts on the Lorb project unabated. And that's all I got for hug reports. All right, thank you. I've got a couple of people's notes to read. The next up to read for themselves will be Maker Melissa. But now, David Glode, thanks me, Jephler for the PyCow as always, Ennecdated for PicoW Networking Test Code, and Dan H for another beta release. Next up, FoamyGuy has a hug for Paul Cutler for a tip about PicoW in stock at Digikey last week. To GitHub user, the... I'm stowing over this name every time, and I apologize to you if you're listening. To GitHub user, the Dbar Gaia for tracking down and submitting a fix for the round switch widget, and a group hug. And next up, Liz says a hug report to Jeff for his great work on PyCow Wi-Fi. I've been using it with Adafruit I.O. with great success. And what Liz doesn't say is there's an issue for it not working with Azure IoT, but we'll get there. And Liz also has a group hug. All right, and that brings us to Maker Melissa and then Paul Cutler. Go ahead, Melissa. Yeah, I just want to give a hug to you, Jeff, for fixing some changes on Secret Python. I made a... Where I made a PR, but it missed a few things. And then everyone just contributed, adding boards to go in there to get us nearly to 100 and group type to go in less. And then Paul. Thanks, Jeff. I have a hug for Sea Grover for rescuing the audio of an upcoming podcast episode. Made a huge difference, and I'm really, really grateful. And a group hug. All right, thank you. And last up, I have notes from Tectric, who has a hug to Katny for helping get the Hacktoberfest labels attached to all the libraries. And to Fomiguy and Mark Gambler for all the PR reviews. So far, we're on top of all the Hacktoberfest PRs. Hooray. And that rounds out hug reports, and we are going to continue down to status updates. Status updates is your time to sync up on what we're all doing. I will start and then we'll go through the list alphabetically to give everyone a chance to participate. When I call on you, take a couple of minutes to talk about what you've been doing since the last meeting and what you'll be up to until the next meeting. It's also an opportunity for trading tips and tricks relevant to what people are working on. But if the discussion becomes too much for status updates, we will move it down in the weeds. And with that, I'll get started. So as I mentioned, there was more progress on the PicoW. And I did some sleuthing about a serial echo problem, and I now think it may be a race condition in Linux. And then continuing on, I have more PicoW bug chasing and general version 8 bug chasing. I'm pretty sure that the PicoW is just about at feature parity with the ESP32 port except items that we are definitely deferring right now, which is support for MDNS is not implemented yet and support for web workflow is not implemented yet. And because of some architectural differences between the way the Wi-Fi works, the way the ESPIDF has its own separate heap, that really puts a barrier in the way of supporting the web workflow. So that is deferred for the future. And it's going to be more for me going forward about working on some of the bug reports that people have hopefully posted. And with that, I'll re-nose from Anecdata and then we'll go to Dan, whose experience with teletypes goes back to 1971. All right, but Anecdata writes, a belated hug report for Naradoc, which may be French for never sleeps for the broad and deep help to everyone on Discord. And Anecdata also used async.io for the first time to make an ESP32S2 feather TFT-based micro crontroller that regularly checks all the things on my land plus external servers at various times and intervals and sends a push notification if there's anything amiss. All right, and next up we have Dan and then DJ Devin3. Okay, thanks. So, as I mentioned, I fixed, there was a bug which garnered a lot of comments, issue which garnered a lot of comments about Wi-Fi scanning, and I managed to fix that by just updating the ESPIDF, which I was surprised because it looks like the bug might have occurred, been fixed, and then reoccurred and then got fixed again because it was confusing about which versions it was working in and not. So anyway, that's fixed. There are some other Wi-Fi bugs, which perhaps this ESPIDF update will fix and or maybe some I2C bugs, but I haven't had time to test those yet, so that's on my agenda. I'm trying to make something fixed on small builds. A user added a pull request, Isaac Ben, added a pull request for OS.U file, which lets you set the access time on a file, and it's a very nice addition, but it should go in the smallest builds probably and I'm trying to squeeze them to fit, and I still need about 120 bytes on some builds, so I've got some more work to do on that. I've made some further fixes on .env parsing. It's good enough now considering that there isn't actually a formal document that says what the result should be. In terms of documentation, I added several missing native modules to the module support matrix, including the built-ins module, which points to all the documentation for things like dur and int and sort and stuff like that. And then I'm going to continue to bug hunt for an 808 final release, and I'll probably do an 808 beta release soon so we can get Jeff's PyCow stuff into a labeled beta release. All right, and this reminds me of one thing that I skipped over. I made sure that it was possible to use Emoji for keys and values in a .env file, so now you can use emojis in your SSID. Well, I don't know if you can use emojis in your SSID names, but you can definitely retrieve the environment variables that contain them. Anyway, next up, DJ Devin3 has a big update with some pretty photos in it, so go ahead. Hello, there we go. I have been busy this week. I received a batch of 20 TR-Calbel PCBs from JLPCB on Wednesday, along with 10 PicoWs from DigiKey. I began testing assembly sub-prototypes. Board names are an exposed copper, which is something I've learned to do, and I think it makes it look very pretty, along with all the stuff going around about the Papyrus font lately. I've made sure that my name was in the Papyrus font. It has a breakout for Stema and ITC, and an external display, which we had a thing with D-Glaude, so I made sure to name that external display. If the assembly goes well, I'm hoping to give some away. Other than a sequencer, it would also make an excellent linear macropad. Great for switching cameras and scenes for anybody that does studio streaming for OBS and stuff like that. I finished the physical build of the social media tracker using the eight seventh segment display backpacks in a shadow box based on a project by Becky Stern. Each display is actually a 2x4 character, and thanks to Melissa's recent PR for the Adafruit HT16K33 library, now the library combines each pair into a single eight character display. I am having a problem having it display text, though, and I might need to input a bug report for that. Now the library binds each pair. It's only currently integrated with the YouTube API. I still have to integrate the rest of the API, so that one's still unfinished. Coated with CircuitPython and the Wi-Fi and Request library. So when I said it was from scratch and show and tell, that wasn't exactly true. I do use the Adafruit Request library because I don't know if there's a distinction in saying coded from scratch or actually just using the Request library. So I want to specify, I use the Request library. The Feather ESP32 that I dropped a big solder blob on and then fixed using a hot air rework station is now the same one powering that social media tracker. So I resurrected it, put it back in service, pointed personal pride, my first SMD repair, back in service, awesome. I started working on a Neopixel Google Google Goggle project for Halloween. The guide says it's ill advised to attempt to wear them, so now I have to do it. I will be routing wires, hiding the sides of the LEDs to minimize lighting and glare. Should be okay for short durations, just to hang out candy. Not trying to go to raves with it or anything. Got an RGB matrix panel up and running on both the ESP32, S2 and S3. The learn guide for the M0M4RP2040 matrix Featherwing does not include code for Circuit Python. And it actually mentions that the S2 and S3 have yet to be confirmed stable even while using it with Arduino. So I confirmed that they worked in Circuit Python, submitted some example code via feedback. The code is identical to the example code that's only exist in the Adifer GitHub. Except on the S2 and S3, they should use the pretty names of Rx and Tx instead of D1 and D0. So that's the only difference really. Even though I was able to get the RGB matrix working on the S2 and S3, I was unable to get it working on the unexpected maker at Feather S3. I added a bug report for the UM Feather S3 and RGB matrix library. And if anyone has a UM Feather S3 and matrix panel, please help me test. That would be appreciated. I started working on an I's project using two GC9A01 round displays for a pumpkin window display that Todd bought. And Todd bought wrote the example library for that which is in the community bundle. And that really hit, let me hit the ground running. I submitted a PR to his library with a string that will now support the M4 Express out of the box. And that's all I've been up to this week. All right, well that is plenty. And thanks for the pictures and feel free to share those into the channel if you care too. Next up, I'm going to read notes from a few people and then after that we'll be maker Melissa. So David Glode writes, Circuit Python, Tested Anecdata's basic HTTP client code on PicoW. A failure with USB HID. I tried to make a meta LED slash key work on Windows but there is no meta key and no LED so I'll keep playing with scroll lock. Replaced my mouse jiggler by simulating random blinking of the scroll lock LED. And an item from last week already in the newsletter, the passive aggressive writing helper by random shift key presses. There's a link to Twitter in the notes doc. And non-circuit Python news from David. Success upgraded my Casio F91 with sensor watch. And a failure to reproduce the HID remapper to read USB mouse and keyboard and pretend to be a mouse slash keyboard. And next I have notes from FOMIGI. FOMIGI investigated an issue with bitmap label under blink of display IO and submitted a PR to allow it to work again. The change needed was implementing the bitmap.blit function in blink of display IO. Uh, there's a library... There were library PR reviews and testing. Testing the MQTT pull request that has more standardized and predictable behavior when there are multiple messages in the message queue. Tried out the new version with example scripts and learn guide projects on various different devices. And finally, basic HTTP requesting on the PicoW. Built a simple terminal-based trivia game. Fun. All right, so next we have maker Melissa and then I will round out the session by reading notes from somebody else. Hi, so last week I went into fairly deep rabbit hole of seeing what worked and what didn't work with regards to running PyGamer 2 on full-side various configurations. And then I updated the RPI Vision app to work with PyGamer 2 and added missing boards to circuitpython.org. I updated the 128 by 64 OLED featherwing guide with a page on how to wire it properly to non-feather microcontrollers. And this week I'm working on updating the TensorFlow and Raspberry Pi Guide for bullseye, so that using the PyGamer 2 and probably do a few more get-have-prs and then get back to finishing up code.circuitpython.org. And that's where I'm at. All right, next I have notes from Tektrick, who last week had not much for circuitpython other than staying on top of poor request reviews since I'm moving over the next couple of weeks. And this week, still moving, so just trying to keep up with Hacktoberfest PRs or at least the ones that don't need hardware that I've already packed. In personal news, the circuitpythonica is most of the way through its 8-day test, which means once the move is done it is time to make a lot of them. The tooling behind the project has been fun, and I may break it off into smaller tools and make them public since they may be useful to others. And relatedly, started a mini project brought up by Dan H to have a tool that automatically saves code in a local directory to a circuitpython board. Having fun using os.fork can't wait to accidentally put it in a while true loop. And that finishes up status reports, status updates. And that brings us to the section in the weeds where I've currently got one topic, which is by MicroDev, whose text only so I will read it out. And they've put a large note in the text channel. So the question is about the storage extension API. On a lot of ESP32 microcontrollers we have allocated space within the single flash chip for two copies of circuitpython or other firmware and one area for the circuitpy file system. And the reason for having two of two areas for the application code is so that you can do an over the air update. You're running firmware A, you update firmware B, and then you reboot into firmware B. And most users are not using this functionality and it would be more useful to have a bigger circuitpy drive. And MicroDev has a very nearly done pull request that adds all this functionality. And the question is about when do you expand the storage into the over the air update area. And in the text channel they have four possible scenarios. So one, it could be initially extended by default and erase file system would default to extended off, which means a fresh firmware will have extended storage, but erasing the file system with the default state will reduce it. Second, if it's extended by default and erase file system defaults to extended equals true, then either one will leave the full space. But a user who uses dual bank dot switch, when they simply call erase file system, they will end up with the other firmware wiped away. And then there are two more options if it's not extended by default. And each one seems to have at least one flaw. And finally extended cannot be made a required argument because that would make it incompatible with other boards. Each option seems like a compromise. I guess I'm the one who brought up this issue, but I also don't have a great answer. I wondered whether the default could be none, which would mean do the same as what the currently present file system does, and it could be overridden with true or false. But I'm not sure if that's feasible to know what the current setting is, but that's my only concrete suggestion. And with that, I'd be happy to open it up to anybody else who has something to say. I just have one idea that perhaps the switching should not be in erase file system, but perhaps dual bank should remember the state of the thing so that there's dual bank enabled or something like that. And so if dual bank were enabled, then when you erase the file system, it would shrink the file system and leave an OTA position. It would leave an OTA partition and also a sort of pie partition. And if dual bank were disabled, then it would do the opposite. And we might start out with dual bank disabled on most boards so that we get the maximum size of... When I say we need disabled, I mean dual bank dot disabled would be true or enabled. And that state would be remembered somehow. It might be remembered by looking at the partition table, I don't know, or in a flag, in a flash or something like that. I don't know, does that make sense to you, Margaret? So then that would take the responsibility away from erase file system to know about this. All the responsibility would be on dual bank. Yeah, so we do have to erase the file system, but what I'm saying is that, like you said, if you said dual bank dot enabled equals false or equal true and then you called erase file system, it would set it. It would create a larger file system with or without it and an OTA partition with or without that. And so that erase file system just uses whatever partitioning scheme is there currently and dual bank controls what partitioning scheme is in effect. Then erase file system doesn't really even know anything. The user using erase file system doesn't even know about this and it's not an argument to erase file system at all. Does that make any sense to you, Jeff? I mean, I think so, but when you say you use the dual bank call to enable having the two banks, you would have to then follow that by erasing the file system because the file system will still say I'm four megabytes long, but it could really only be two megabytes long. Right, right. That's what I'm saying. Right, it's your responsibility to do that. To do both? Yeah, it could also be that dual bank, dual bank dot enable does something, does the erase file system itself or dual bank, that's kind of terrible. I would change the name of it. Erase file system and enable or erase file system and disable or something like that. All right, so I'll have to think about this some more, but it would be nice to not, for the ordinary user, I think the cases that we're trying to cover, the ordinary user probably doesn't need dual bank. It's a rare thing and the ordinary user doesn't need to know, shouldn't need to add any extra arguments to erase file system, which I think makes sense. That's all I have to say. And I'll try to, I'll try to write this up. Maybe I'll write this up in there in the comment in the issue. I think that's all the discussion we have for in the weeds. Thank you for offering to write that up Dan. And with that we are done and I'm going to wrap up the meeting. Let me just find my notes. So this has been the CircuitPython Weekly Meeting for October 11th, 2022. Thank you to everyone who participated. If you want to support Adafruit and CircuitPython, and those of us that work on CircuitPython, 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 from there the podcast is released on major podcast services. It will also be featured in the Python for Microcontrollers newsletter. Visit Adafruit Daily to subscribe. Excuse me, AdafruitDaily.com to subscribe. And the next meeting will be held on Monday as usual, October 17th at 2 p.m. Eastern, 11 a.m. Pacific. The meeting is held on the Adafruit Discord, which you can join by going to adafru.it slash discord. There's activity almost all times of day talking about electronics and Adafruit-related stuff. But to be notified specifically about this meeting, and any changes to the time or day, ask us to add you to the CircuitPythonista's role. And just one note about the timing of the meeting. We're about one month away from the US switching to standard time, also called wintertime by some folks. So if you observe daylight savings time differently than in the US, just keep that fact on your radar. But once again, next week is Monday as usual, October 17th at 2 p.m., and that's still in the daylight time. Anyway, we hope to see you next week. And thanks again to everybody who participated.