 Hello, everyone. This is the Circuit Python Weekly for December 13, 2021. This is the time of the week where we get together to talk about all things Circuit Python. I'm Scott, and I'm sponsored by Adafruit to work on Circuit Python. Circuit Python is a version of Python designed to run on tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit, so if you want to support them in Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to the URL adafru.it.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. If the meeting time has changed, we'll notify you via Discord. If you wish to be notified about changes to the meeting, we can add you to the Circuit Python needs-to-discord role. There's also a calendar available that we try to keep updated if you'd like to subscribe to that. This meeting is recorded. We record the audio from the voice channel and the video of the text channel. If you'd rather not have your voice recorded, you are still welcome to participate. The video of this meeting will be posted to YouTube, and the audio is released as a podcast. There is a note stock to accompany the meeting and recording. If you wish to participate but can't make it to the meeting, you can leave hug reports and status updates for us in the document, and we'll read them off during the meeting. The notes document also contains timestamps to go along with the video, so you can use the doc to view only the parts of the video that interest you most. The meeting tends to run 60 to 90 minutes, so this gives you the option to skip around. A link to the notes document is posted to the Circuit Python Dev channel on the Adafruit Discord every week, usually about a week beforehand. So check the PIN messages to find the latest notes document. This meeting is 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 preview of our Python on microcontrollers newsletter. The second part is the state of Circuit Python libraries in Blinka. This is a statistical overview of the entire project, and it's a chance to look at the project by the numbers separate from what we're all up to. The third part is hug reports. Hug reports is an opportunity to highlight the good things folks are doing, taking time to recognize the awesome folks in our community. The fourth part is status updates. Status updates is an opportunity to sync up on what we've been up to. Take a couple of minutes and talk about what we've been doing in the last week since the last meeting. Well, you'll be up to over the next week until the next meeting. The fifth part is in the weeds. In the weeds is an opportunity for more long-term 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 get started on Community News right after I take a time code. Community News is a preview of the Python for Microcontrollers newsletter that is put out every week, primarily thanks to Ann. The newsletter is a glimpse at what's going on in Circuit Python, MicroPython, and Python in the given week. So first up, we have PyLeap goes into official beta test. PyLeap is an app for iOS and iPad OS. It allows you to collect complete projects from the Adafruit Learn system and transfer them directly to your Circuit Playground Bluefruit without opening a code editor or connecting to a computer. Send files and libraries directly to your Bluefruit device without a desktop computer. And for me, guys, thank you for posting the link. You can also read more in the official guide on the Adafruit Learning system for the PyLeap app. And the short link is actually ADAFRU.IT slash PyLeap if anybody wants to install it for their iOS device as well. Next up, in the process, this is a bit of a preview. Circuit Python 710 beta 3 is nearly available. It's the fourth beta release of 7.1. It is relatively stable but contains issues, fixes to address issues to address for 7.1. The main addition to this beta over the last is the addition of a non-OS bare metal version of Circuit Python for some broadcom based Raspberry Pi single board computers. Further additions are the keypad events now includes timestamps. The expressive port now includes I2C peripheral, Wi-Fi monitor mode, ESP32-C3 support and parallel image capture. Bitmap tools has added dithering and alpha blend. Preliminary support for async.io is included. Just use the Circuit Python async.io library to take full advantage of it. There is now a gif.io.gif writer. HID now provides boot device and feature report support. Rotary.io now allows setting the divisor of counts per transition. The Sandy port now provides watchdog and alarm with sleep. The STM port now provides support for the STM32-L4-R5 and MicroPython 117 has been merged in. We have a new translation for Russian as well. So that's that. Next up in the news category. We have Boston College students demonstrate their final projects using Circuit Python. Professor John Gallagher teaches an excellent class on using microcontrollers to non-engineering students. For the students' final projects, they built a number of devices using Circuit Python in innovative ways. Here are some of the projects as posted on Professor Gallagher's Twitter. One is a personal assistant robot named Popcorn. Another is a 3D printed motorized Ironman helmet with a heads-up display on a Raspberry Pi 4 plus the 804 Cricut hat running Circuit Python. And lastly, an electronic fish feeder with Circuit Python. Next, in not quite Python news but related to Raspberry Pis, there's a deep dive into Raspberry Pi 02W power consumption. The Raspberry Pi 02W power consumption is measured with various peripherals on and being used and some of those turned off. This is a great baseline for comparing with the bare metal no OS Circuit Python version on the board and it's available from CNX software. Last up in news. Of course, this is just a preview. There's a lot more in the newsletter. GitHub code search technology preview. GitHub is rolling out a technology preview for substantial improvements to searching code on the platform. A survey must be filled out for access. If granted, it'll be located at cs.github.com. The search index covers more than 5 million of the most popular public repositories. In addition, you can search private repositories you have access to. All right. And I guess I should sign up for that too. I'd love to have that work. All right. That is it for news. The Circuit Python Weekly newsletter is a Circuit Python community run newsletter emailed every Tuesday. The complete archives are available at www.adafruitdaily.com. It highlights the latest Python on hardware related news for around the web including Circuit Python and Micro Python developments Contribute your own news or project. Edit next week's draft on GitHub by going to www.kithub.com. Check the drafts folder. Or submit a pull request with the changes. You may also tag a tweet with hashtag Circuit Python on Twitter or email cpnews at www.adafruit.com. And then we'll add it ourselves. All right. That's it for the first section. Next up, we have state of Circuit Python libraries in Blinka. This is a statistical overview of the health of the project and its sub projects really meant to ground us in the numbers that we find valuable. If you have other numbers you'd like here, we were totally open to adding some things here. So let me do overall first. So overall, we have 55 pull requests merged, which is very impressive. There are 26 authors of those 55 pull requests. Some new names in this list that I don't recognize. Garrett Heath 4. Mr. Dahlgard. Ramali. Purples. Raphis. Rufus. V.S. Guy Foccus. Kenan Johnson. I think Colorado, Carlos are all new names there. So thank you to all those new authors of pull requests. We really appreciate you. We also appreciate the 13 reviewers that helped make those authors possible. So that's even a higher number there too. So thank you to our reviewers for doing all that work and supporting those authors. So that's for pull requests. Issues wise, we had 22 closed issues by nine people and 20 opened by 17 people. So we're doing a good job at keeping up with our issue rate. So thank you everybody for doing that. Next up for the core. This is the C core of Circuit Python. That is what you would load via a UF2 file typically and runs on a microcontroller. For the core, we had 27 pull requests merged from nine different authors. So thank you to all of our authors there. 27 is a pretty good number for us as well. We had six reviewers. So thank you to all of our reviewers. And we have 11 open pull requests where the oldest is 100 days old. So if you are involved in any of those pull requests that are getting kind of old, please make sure that something is happening with them. And if not, go ahead and close the pull request. If there's some work that we still need to do, what you can do is you can open an issue and then link to the branch instead for a longer term, like we need to pick this up at some point stuff. So check that out. If you're involved in some pull requests. Issues wise for the core. We had eight closed issues by three people and 11 opened by 10 people for a total of 463 open issues. We have six active milestones. Milestones are the way that we kind of prioritize and triage the issues as they come in. So we have five issues not assigned to milestones. So those are the ones that we need to triage. We have zero open issues for 710, which is any issue that we think should block a stable release for 710. So that's been doing pretty good. We have a 7xx, which are minor issues that wouldn't block a stable release. We have 20 of those. And we have 10 open issues under the 80 milestone, which are the things that we want to do with when we switch to 8.0. So that's the core. Thanks, Dan, just for an overview. Thanks to Dan for facilitating the beta releases of 7.1 and fixing a bunch of bugs along with it. So expect to see 7.1 out here shortly, I think in the next few weeks. So thank you, Dan. All right. Next up, we have a status update or update about the libraries from Katni. Yeah, and my browser decided to stop trying to crash just at the right time. So we're good to go. Fingers crossed. Yes. So this section applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore, CircuitPython underscore, and a couple of extras. So across all of those repos, we had 25 pull requests merged from 17 authors and 10 reviewers. I do want to point out that about half of the PRs that were merged were between 22 and 280 days old. I'm really excited about this. These things will be covered in status updates and hug reports, but early hug reports a foamy guy for that. I will let him talk about it, and then I will talk about it afterwards. And then that leaves us with 56 open pull requests. We have 13 issues closed by six people and eight open by seven people, leaving us with 644 open issues. 258 of those are labeled good first issue. If you're interested in contributing to CircuitPython and the Python side of things, check out circuitpython.org slash contributing. You'll find all of this information and more. If you're interested in reviewing, check out the open PRs, take a look at them. If you have the hardware tested, if you don't let us know what you think of the code, leave a comment. And once you're more comfortable with that, we can look at upgrading you to the review team. If you're interested in writing some code, check out the issues list. If you're new to everything, good first issue is a great place to start. If you're looking for something more complicated, bug or enhancement would be more up your alley. Leave a comment on the issue, let us know you're working on it. And if you need help getting started, we are available. There's also a guide on contributing to CircuitPython using Git and GitHub. In terms of new libraries this week, we didn't have any, but we had a number of updated libraries. The list is pretty long, so I won't read it off, but it is in the notes. So take a look at that if you're interested. Overall, we're seeing activity on the older PRs now. So if you are an author of an older PR, please expect to see an update there. Either we will work through getting the PR up to date with all of the changes that have happened since the PR was submitted. And then get it merged or depending on the situation, we may close it. Remember that we can always reopen PRs or you can submit a new one if you are still interested in contributing the change that you made at a later date. And that's what I've got. Awesome. Thank you, Catni. Next up, let's get an update on Linka from Maker Melissa. Hello. Linka is our CircuitPython compatibility layer for MicroPython, Raspberry Pi, and other single board computers. And this week we had three pull requests merged by three authors and one reviewer. We have five open pull requests left and there was one closed issue by one person and one open by one person, leaving a net of 65 open issues. There were 15,630 Pi Wheels downloads in the last month and we are now up to 85 boards. And that's it. Awesome. Thank you, Melissa. Okay, that's it for Stated CircuitPython Libraries in Linka. Next up, the next section we have is Hug Reports. This is done as around Robin, so I will start and then start from the top of the list in the CircuitPython Voice Channel. And those who are listed in the Dock only. If you're not in the Dock, I will skip over you. So let me start. And I think I might be scooping some information just a little bit. But first, a hug report to Foamy Guy for being an awesome participant in our community and very excited to hear that Foamy Guy is going to start working full Mondays for us at Aida Fruit. So that's going to be awesome. And then also a hug report to Foamy Guy for taking my place and keeping the torch going when I choose not to stream on Fridays. Foamy Guy usually will jump in and stream at the same time. So providing a home for those folks that like to sit and hang out with some deep divers. So thank you, Foamy Guy, for that. And excited to work more with you. Next up, a hug report for Catney and Dan for switching days with me for running the meeting. Since I'll be kind of off and on out throughout the holidays. And a double hug to Catney for orchestrating it. Catney's a great person for getting things done. So thank you, Catney. Last up, I have a hug report for BRHOP 720 from Sparkfun for getting us a USB PID for the STM32 thing plus. And that's it for me. Next up, we have notes from Sea Grover. So I'll read these off. Sea Grover says group hug and a hug report to Foamy Guy as an official member of the Adafruit Circuit Python team. And next up we have Dan. I see you're unmuted, but I can't hear you. Can anybody else hear Dan? All right, we'll get back to you. Okay. Next up is Foamy Guy. All right, thanks Scott. This week hugs to Catney, Jeff, Scott and Dan. And as well, honestly, the whole community, everybody has been super welcoming to me to join the Circuit Python team. And so it's been a really great time. And I really appreciate everybody being so nice for a bunch of different reasons. I've had a couple of conversations. I've had plenty of folks telling me in the Discord, congratulations and stuff like that. So I appreciate all of you. To Dexter Starbird, who tested out an issue that came up on SAMD51 devices to try to reproduce it and shared the findings that they came up with. And then to Dan H, who figured out the root cause of that issue and implemented a solution real quick. So thank you to all of those folks. Awesome. Thank you, Foamy Guy. Dan, did you want to try again? No luck. All right. Next up, I have, okay, I'll read, I'll read off for Dan here. I just had a meeting with Dan and I can hear him. So it's just Discord being unhappy. Dan says a hug report to Foamy Guy for finding the 710 beta 2 regression and providing good examples for reproducing the problem. And a hug report to Jeff Epler for reviews and fixes while on vacation. All right. And next up, I have notes from G3 holiday. Who says a group hug and a hug to Tan Newt for circumvent on the pie and neopixel support work. And a hug report to Foamy Guy. Glad to see you as an official member of the Adafruit family. Next up, I have notes from Jeff. Who says a hug report to Dan H for bug hunting assistance and testing. Next up is Jerry. Hi. Yeah. Okay. You've got for the putting out the pie developer PCB on Ash Park. Thanks for that. And to Foamy Guy. Glad to see you taking on an official role that a few better for it. And a group hug from me and my cat. Thanks Jerry. Thank you both for you and your cat always attending the meeting. Next up, we have cat knee. Mine was threatening to attend the meeting, but she seems to have stopped. So first up hug report to foamy guy for joining the Adafruit team. I'm super excited about this. It was was a great thing. I checked into whether we were able to, you know, get get foamy guy some more stuff to do and everything kind of happened after that. There were already plans in the works and that was excellent to hear. So I'm very excited about that and welcome hug report to Carter for helping out sorting. Helping with sorting out a table of all available addresses on the various stem of seesaw breakouts. The neo key breakout and the. I just did it and the neo slider breakout have four address pins on them and so you can do 16 addresses and we explained. An example of five of them and Carter pointed out that folks are struggling to do the math to figure out the others and how that works and so instead. I put together a table that has exactly what what pins when set in a certain way turn into what address and so that should be super helpful and. I learned a bit making the table and Carter helped out with that. Another hug report to foamy guy for working through the library PRs. Jose David a while back went through quite a bit. But. Jose does not have. Merging access so it was kind of stalled out at the point that I had or didn't have time. To work on it and foamy guys pick that up and that's why there's so many older PRs have been merged recently. So that's great to see and I'm really excited about that hoping to get caught up. To Scott for swapping running the meeting with me today to Dan for being the third player in the game of meeting swapsies. And to the more NPT for being incredibly flexible and supportive. I will talk about this in my status updates but I'm currently in the middle of an international move. And they've just been amazing. So I really appreciate it. Awesome. Thank you. Next up is maker Melissa. Hello. See I wanted to give a hug report to foamy guy for joining the team. I want to Carter for adding all the UTIF boards to Blinka. And a group active on us. Awesome. Thanks. Last up we have notes from Mark. Mark says a quick hug report or a hug report to Catney for a quick discussion on where to put some IS 31 FL 3741 changes. Awesome. Thank you Mark. And thank you everybody for participating in hug reports. Next up we have another round robin this time is status updates. So work just the same way I will start and then we'll go alphabetically through the list. So for me this Friday I'm out so no stream or also the two Fridays after that I'm out as well. Long weekend this weekend which I'm excited about hopefully some snowshoeing or at least some hiking. Next on my list is I got spy support checked in for the Broadcom port. So check that out if you're trying a circuit python alone on the Raspberry Pi. This week I've got two things to finish in terms of Raspberry Pi land. One is neopixel support which I was working on in my stream last week. So if you want to see the details of that check that out. I guess I should hug report Todd bot. I think Todd also gave me a clue as to the next thing I can try to get the neopixel support working. And then I also was working on adding support for the old Raspberry Pi zero because I think it's a great board to run circuit python alone. And so I'm going to work on that as well. So both are started but neither are finished. So that's primarily the coding work that I'm going to be doing on the four days this week that I'm working. And of course I'll be working some next week so I can pick that up if I need to next week. All right next up I have notes from C Grover who I will take a timecode and then read off. C Grover says I had a significant breakthrough in understanding python namespaces and class inheritance. Started to see some significant performance memory management and class UI improvements as previous code was updated with the new knowledge. I released new versions of the scale magic eye and bubble display retro display I owe widgets. The newest bubble display is a multi digit stackable bubble lens LED seven segment display similar to those used on the HP 35 calculator. Each stackable 12 pin dip sized unit can contain contain from one to five digits. And there's a picture in the doc as well. Plans are to wrap up four more retro widgets over the next week bar graph neopixel strip panel meters in analog clock. Going to resist the urge to refactor every previously coded circuit by them project to improve performance given my new found coding hammer. Back in the studio to track three new songs I'm performing all the MIDI and acoustic instruments. Next up let's check in with Dan and see if his body is working. All right I'm on my phone now can you hear me. Yes I can. Okay so there was this SD card problem that a bunch of people had and a budget pool did not have. And I went through my stock of SD cards and I was able to reproduce it. So I reproduced it did a good bisect which is doing a binary search to find out where the offending code was and I found that and told Jeff about it and he fixed it immediately. So that worked out very well. I've been doing various 7.1.x fixes or 7.1.0 fixes I should say. BLE IO HCI support that's for like using an airlift that wasn't working and I fixed that. I fixed a confusing PWM out problem on RP2040 and we had problems. I fixed another thing on RP2040 which was that we had problems getting it to work with the Neo slider which uses a new implementation of seesaw zero length I2C rights were not working right and it turned out there was. It just was there was this time out we use bit bang IO when we do zero length I2C rights on RP2040 so I fixed that so I released 7.1.0 beta two with a bunch of these fixes and a bunch. Those fixes and a bunch more a huge number from other people like dozens and dozens of fixes that included enabling sleep on all Sam Sam X5 boards. And then immediately foamy guy was able to figure out that something was causing. Display only not to work properly which turned out to be because of sleep and so I'm today releasing 7.1.0 beta three which basically just fixes that regression so that we can have a beta that works better. So this is an example of like we can be quick with the betas if we need to. Okay, that's it. Thanks, Dan. We're quick with the betas because you're quick with the beta so thank you for that. All right, next up is foamy guy. All right. So last week, as has been mentioned a few times, I got finalized to join the Adafruit team and to add a little more details. I also got it worked out with my current employer so starting at the beginning of next year I'll be dedicating all Mondays to work on Sir Python so I'm super excited about that. Some of the more nitty-gritty stuff I did this week is inside of tile grid in the core I added a height and width and tile height and tile width properties so that you can access the size of the tile grid after you create it. Some of that actually ended up already existing just not being exposed to the Python layer yet so that was interesting to kind of see it and make a guess that it was actually already there and figure out how to hook it up. I had fun working on that. I will probably PR that stuff this week. And then a few other things I worked on were some fixes in the PyoA library. I think it's like Python-owned adventure or something like that. You can basically make little cards that have like a logical tree that goes through it. You can press a certain button and it leads you to a different card and so on and so forth. It's a pretty neat library that I haven't played with too much but we got some fixes in there including a new feature to be able to change the background color behind the text. We have background images but the text was just put over the top of them and so some of them were a little difficult to read and now we can use background color. And then I also created a demo this past week and showed it on show and tell which was showing how to store configuration or application state inside of NVM storage. So it can remember what it was configured to the last time you ran it and then start up next time and just pick up where it left off. So I think that will be a good example for folks that want to do similar stuff like that. Last week I am still working through OpenPRs like Catney mentioned. I'm kind of aiming broadly for the older ones first but I am sometimes get, you know, just have my interest peaked by a newer one or I happen to have the equipment already out or something like that. So I'm doing a little bit of a mix. I'm working on adding alt-click functionality to cursor control. There is a specific use case in mind for that that I'll talk about a little bit more once it's actually in there but there is an issue and there will be a PR soon if folks are interested in more details. And then Scott mentioned that he's not going to be streaming on Friday and so I will stream for sure this Friday evening. I'll plan to the next couple as well while Scott's away but I'm not 100% certain if I will make it on the others. But as long as nothing else comes up then I'll plan on streaming those Friday nights and that's what I got. Thank you. You are like Christmas Eve in New Year's Eve right? Yes I think so although I'm not a calendar. Yeah they are. So I would recommend not doing it but that's your call. Okay. Take a break. Breaks are good. Okay next up I have notes from G3 Holiday. G3 Holiday says working on a Neopixel spiral Christmas tree with a Feather RP2040. I'll change it to a Pi soon. I'm also taking your break for Christmas starting Wednesday all the way through my birthday on January 2nd. Ooh that's exciting. Next up we have notes from Jeff. I always want to say it's like too close to his name. Jeff dropped some notes in here but it's on vacation so it's not in the meeting. Jess says with Dan's help fixed an SD card problem that was vexing users. I can take the December 20th meeting if nobody else has volunteered to. Hiking in the Sedona area it's beautiful and back at work on Thursday. There's a picture in the note stock here that looks really gorgeous. So I'm glad Jess is getting out and taking a break. Thank you FOMI guy for posting that in there. So that's a reminder everybody breaks are good. Take breaks don't overwork. Alright next up we have Jerry. We hit the button once. Yeah so I don't know what I did this week. Just lots of stuff and it was all fun but I can't get track of what it was. So looking forward to this week I just got my the my new Pi developer boards in from Scott's Osh Park design and looking forward to populating those so I can do a little easier playing with the Broadcom ports. Awesome. Let me know if you have any questions about it. Okay thanks. I know I don't document my stuff well. It looks pretty clear. Cool. Alright thanks Jerry. Next up is Catney. You could document a little more yeah. I know I can. Alright so last week I finished up the Neo Slider guide that went live. I posted all of the RP2040 pretty pins diagrams where they needed to be. They were completed and actually it is a complete mystery as to who did them because none of us have the original files locally but all the files exist and have been like spread around. So we have no idea who made them but they're completed and they're also in the guides and also in the PCB repos and so on and so forth. So if you're looking for pretty pins on the RP2040 boards they are around. I wrote two Arduino starter templates for RP2040. It's getting the ID set up and loading your first sketch. I'm working on I'll be adding those eventually to the RP2040 guides. I added a create and get feed function to the CircuitPython Adafruit IO library. I thought that was the last week thing but I think it was actually on the going to do list because it didn't pop up in my as dawn in my to-do list until Tuesday so obviously hadn't finished it. But it's super keen. It will automatically create the feed if it doesn't exist and it'll get it either way and it eliminates like four lines of code that are in a bunch of examples. So check that out if you are ever doing the try and accept to create and then get the feed. And I finished the KB2040 guide as well. Today so far did a bunch of various miscellaneous on my list, tested a PR, merged a few PRs, did some guide feedback, added to the ESP32S2UF2 bootloader installer template. It turns out if you load an Arduino sketch onto an ESP32S2 it comes with the bootloader for free. So if you already have the Arduino IDE setup for ESP32S2 it might be a lot easier than using ESP tool or web serial. So it walks through quickly how to set that up and how to flash the blank sketch and then you should be able to get to your bootloader at that point. So the rest of today I'm going to try to add the KB2040 to the Philhauer Arduino core. That is the RP2040 Arduino core that we use and adding stuff to it is a little more complicated than adding stuff to say this AMD core. So I'm working through trying to figure that out and hopefully get that done today. And then finish up any other open-ended miscellaneous on my list. I kind of think I did most of it this morning. So there's really not much else to do, which is good because the rest of this week is going to be packing. And on Thursday I will be moving from Canada to the US. I actually live in the US but have spent most of a couple years in Canada. And we are now officially, hopefully fingers crossed, nothing goes wrong. We're moving back to the US. So I'm really excited and I will be gone most of this week, really just the rest of the week. And back on Monday for a short period of time before the holidays. So hold down the fort everybody. I know you can do it. And that's what I've got. Thank you, Cathy. All right. Good luck moving. It's exciting. Thank you. All right. Next up and last up, let's hear from maker Melissa. Hello. So last week I updated several web serial and web Bluetooth apps to be more responsive. I fixed a web serial ESP tool error that was occurring when reconnecting without refreshing the page. It was having trouble detecting if the stub code was running and needed a little assistance there. I added a bunch of boards to circuit python.org for Blinka and circuit Python. I fixed the fun house setup directions for adding the ESP 32 board to Arduino and or ESP 32 S to board. I continued working on display IO for Blinka to update it to circuit be circuit Python seven compatible and this week I'm going to work more on the display for Blinka. Awesome. Thank you, Melissa. And that's it for status updates. The final section we have here is in the weeds. This is a chance for us to have any more long form discussion in the weeds or like technical discussions. So we've got one topic and I'll kick it over to Jerry to kick that off. Okay. And I, you know, I accept and realize that, you know, the Broadcom support is totally free alpha and, you know, but so we don't need to discuss this if you don't want to. No, no, it's fine. I ran into an issue. Let me get the cat out here. Your cat has ideas about what the issue is. That it's working fine. It comes up to the repel just fine. 90% of the time when I unplugged the board, I go plug it back in again, the SD cards corrupted comes up at blinks four times, which I believe is saying I can't read that SD card. And if I reflash it, it works fine. And as you know, the circuit pie, the mass storage device is not working properly on the 4B still it might plug it into my Linux box. Sometimes it does a little beep boop. And, you know, I look in the DMSG and it complains about not being able to, you know, recognize what's being plugged in. And sometimes it mounts a board, a drive called 31 gigabyte 32 gig card so 31.9 gig device, which I can't access it just shows up in the device log. Other times it shows nothing. But I don't know if that's related to why it's corrupting the board. But I didn't know if again, if you have any suggestions is there's something you I can do I suppose I could build it turn off the mass storage. I don't know. I thought I had fixed that right like there was you had reported that it wasn't working and then I found and fixed something but I guess that was that was with circuit path and not even booting. Right, so it's fine. Yeah, that's fixed. But the but it's never I've never had a circuit five drive come up reliably, or at all. Because my it is on the Iowa board here it is coming up for me if I ask you. One, I would want to suggest that I would be curious about is just if it's if you're only trying one SD card, try some different SD cards, if you have some. I tried some different ones, but I'll try to try some more. I've got a 32 gig one and a one gig one. I tried both of those and okay results but I'm using a 16 gig Lexar one is what I've got in here. I'm not surprised right like like you said it's pretty early. Yeah. The other when it doesn't come up at all. Right. Does do you have an HDMI display plugged in or like is it. I'll work on that but yeah I have to see if it's actually just nothing comes up in the rebel at all when it's but the rebel does come up. What's that does that does the USB serial come up. USB serial like I have a device. You are plugged in and I see nothing at all. When it fails all that just the red light comes on and the green light comes on and blinks four times, which, again, I think is an indicator from the boot loader that it's not seeing it's not able to read one of the major startup files. Right. So there is. Yeah, there is a there is good output from the Raspberry Pi boot loader on the HDMI stuff. I'll try that again. That'll give should give more errors about like reading the SD card. It's weird to me that it's corrupting the image itself because there's only one right that it should be doing it should be writing the partition. The circuit Python will write the partition table. If the partition table only has one entry. So if you flashed a full disk image that'll be the state it's in. I have been up and looked to a Lister with a list Lister and see the files on it. You know the boot up text but although I try to read them they're all have nothing in them. That's another thing I did notice the one time I did get up and running. I just tried to read open to read those files and they were empty. The hello the code dot pi and the and the boot out dot text were both empty. At least reading them didn't work. So if you ever get to that state again, you might try the storage erase file system. Oh, that's a good point. Yeah, if I flash a new copy I can get to a nice clean up all every time. You know as long as I reflash the card. So I can get it up. What are you using to reflash the card? Pi imager. Okay, so at least for me for pi imager it it will only overwrite the first megabyte and the last megabyte of the card. So it that's good if the file system for circuit Python is correct. But it means that if it's broken you're not actually redoing that portion. So is your better or you just use DD. I just use pi imager but you can do the erase file system and erase file system should work. Okay, I think all right. But but I'm what I'm saying is that like the the imager will not fix a circuit Python file system for you probably. Because like it will overwrite the partition table again, but it just basically says like oh you know the partition table just says like there's a fat file system here. And because the imager doesn't overwrite it, which was my goal right like ideally that gets preserved when you do the disk imager. Like. Yeah, but if it's not but the storage file erase should to take care of that. Right, so that that should start that should start the the circuit Python file system fresh again. If the boot if the boot loaders having trouble starting up and somehow we're corrupting the first megabyte or the first 256 megabytes is what that first boot drive is is in. Which could be a part problem with the part file partition right. But I know people in Raspberry Pi have problems with it but I was expecting that circuit Python would actually be more reliable. But then again I don't know like this is the first time we put that main file system on a SD card. So there could be and this is the first time we're using the SD card mechanics that I snagged out of the IDF as well. And yeah, but like I said, and otherwise you know it's the when it comes up and runs a repo that does all sorts of nice things. Yeah, I know. Turn it off and go turn on again at reflash. It's kind of slow. But the boot out that text should be there and should to be a hello hello world in the code.py. I don't think so. Yeah, I think the the contents of code.py is is turned on by the full build flag. And I don't think I have the on right now because there was a bunch of stuff that was uninfluented. I'm trying to read the boot out text. Just tell me I was there but telling me I couldn't read anything out of it. Yeah, I would try a racing first. Okay, thanks. But I've been using it, you know, enough for like the spy you are I squared C testing that I've been doing. Like I have a bit of a weird setup because I'm not booting off the SD card, but I've been able to get it to show up as a circuit pie drive and be able to modify it like pretty reliably at least. If I put an SD card in there off a USB drive, will it will that work? Maybe I haven't tried it, but. Okay. I would still write files to the files to the SD card, but it would. Yeah, yeah, basically the USB host stuff just wouldn't work. Because circuit Python doesn't support it, but the boot loader does so the boot loader the boot loader would recognize the USB drive copy the circuit Python image into memory, which is what it does regardless of where it is it actually ends up in Ram, regardless. And then circuit Python only knows how to read off the SD card. Right, okay, it would be able to do that but it would change the boot loader to boot off the USB first, and then maybe that would help or not. So now that I have words I can populate and I can easily switch back the worth between my to be with my 4b, which will make it easier to compare what's going on to. Yeah, I know that the 2w last I used it was having reliability problems where it would like hang when I was doing mass storage stuff. Right. Trying to get a good back trace off that was really hard and I couldn't figure out what the problem was so. Okay, I'm glad you're working on the on the other keyboards it'll be fun to build it down the chain in the. Yeah, I think it's mainly just the zero right like the the original zero is just such that it's the right form factor I assume a lot of people have them sitting around and are not using them like me. Yeah, yeah. So, I figured that was a good like I'm hopeful that if I'm hopeful there might it might give a different lens on some of these reliability issues to, you know, because the peripherals are so much the same but it's just the cores that are different. Alright, thanks. I don't mean to be pressuring anything here I realize this is not not. I've kind of set myself an internal deadline so you don't need to worry about it like, I'm going to be doing pie stuff and guide stuff kind of throughout the end of the year and then come January I'll be switching gears is my plan. I'm a little sad that the USB host stuff isn't being done, but it's a lot of work, I'm sure. So we'll get there. We'll get there at some point. Yeah, it's come a long way very fast. Yeah, it's been really it was a lot of fun to learn it's just like finding these nasty bugs is taxing. I'm sure. Well, thanks. Alright, and let me take a timecode. We'll wrap this up. Thank you all for joining us for the circuit by the weekly for December 13 2021. Oh, that just reminds me worth it end of the month. And I did want to remind folks that the circuit in January every year we do kind of an annual like bigger vision post what you think circuit Python should be more broadly. We call it circuit Python 2022 this next year. We changed the year so it's kind of hard to call it something consistent. But over the holidays I'd encourage you to think about where you think what pieces are missing from circuit Python still and what things you think that should be kind of big goals for us as a community. So think about that and then I will do a blog post that kicks us off and then what I do is I'll do blog posts throughout January to aggregate the post that folks have made. So you'll see more details come January, but be awesome to see that from everyone. Okay, so that was a detour. So thank you everyone who participated. If you want to support Adafruit and circuit Python and those of us that work on circuit Python consider purchasing from 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 be also featured in the Python for microcringer alerts newsletter. Visit AdafruitDaily.com subscribe to that and thank you and for putting that together. The next meeting will be held next Monday as usual at 2pm Eastern 11am Pacific. This meeting is held on the Adafruit Discord server if you're listening to this some other way. You can join the server by going to the URL adafru.it slash discord. If you'd like to be notified about the meeting and any changes to the time or day you can ask to be added to the circuit Python and these roles on Discord. And with that we hope to see you all next week. Thank you all. Thanks everyone.