 Hello, everyone. This is the Circuit Python Weekly for October 18, 2021. It's the time of week where we get together to talk about all things Circuit Python. I'm Jeff, and I'm sponsored by Adafruit for my work on Circuit Python, which is a version of Python designed to run on tiny computers called microcontrollers. Circuit Python Development is sponsored primarily 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. You can join anytime by going to adafruit.com. There is activity all over the server all week, but we hold the meeting in the Circuit Python DevTex channel and the Circuit Python Voice channel. Typically on Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except when it coincides with a U.S. holiday. There is an official calendar on GitHub and linked within the notes document, so please check that out. The meeting is recorded. We take the audio from the Voice channel and the video from the Text channel. So if you prefer for any reason not to have your voice recorded, you're still welcome to participate by having us read your text notes aloud. We post the video form on YouTube and then we release the audio from YouTube as a podcast. If you find we're not on your favorite podcast service, please let us know. As I mentioned before, there is a notes document to accompany the meeting and recording. If you are watching or listening after the fact, that's down in the show notes. If you wish to participate but can't make it to the meeting, that is where you leave your hug reports and status updates. As we go through the meeting, I'll be adding timestamps so you can later use it to skip to the parts of the video that interest you the most. The meeting has been running about an hour lately, so it's nice to have an option to skip around. And a reminder, a link to the notes document is posted in the CircuitPythonDev channel on the 84 discord every week. When you're ready to leave your notes, you can check the pinned messages to find the latest document. The meeting is structured in five parts. Next up is community news, where we take a look at all things CircuitPython and Python on hardware. It's a little preview for the Python on microcontrollers newsletter. Next up, we take a statistical look at things with the state of the CircuitPython libraries and Blinka. Then we invite everybody to join in. In the third part hug reports, we take an opportunity to highlight the good things folks are doing and the time to recognize awesome folks around us in the community. Next after that is status updates. It's another round robin where we all get a chance to talk about what we've been up to. You can tell us what you've been up to since the last meeting and what you hope to be doing with CircuitPython or otherwise in the coming weeks. And finally, if needed, we have a section called in the weeds. If we need a more long form discussion, this is the place for it. We will take those in the order that they come up in the notes document. And that is how the meeting will go. And I will, just a moment, be ready to start on community news. Number one, the risk V or risk five, depending what kind of person you are, Summit, will be held December 6th through 8th in San Francisco, California. The summit brings community members together to show the power open collaboration can have on the processor industry. Yeah, so it is in person or virtual from anywhere in the world. And there are links to the Linux foundation and in the document also linked to Twitter. Next up, PyCon US 2022 has a lovely logo. The planning is underway. The team is planning to host the event in person with an online component. The dates are April 27th to May 5th, 2022. You can head on over to their website for details about the conference and more information about the sponsorship program. And that link is from the PyCon blog. Next up, we have some community projects. First, a PIO based bit bang for the scramble pad protocol using Circuit Python and the Raspberry Pi Pico. Next, and one of like three or four keyboard projects because keyboards, a Circuit Python slash PyDOS slash PyBasic handheld using a feather RP2040 and keyboard feather wing by Arturo 182, who some of you I am sure know. A new board with the RP2040, the Melapero Shake RP2040. It is a feather form factor board based on the Raspberry Pi RP2040 with 16 megs of flash memory, a battery charger and low battery monitor, WS2812 RGB LED quick stem connector, USB-C connector and more. And the last, next the last of my picks, a version of the QT Pi knob, a simple USB knob with Circuit Python and an Adafruit QT Pi, a NeoPixel ring rotary encoder and some 3D printed parts. It is glowy and useful. And last up, the Pi Dev of the Week is something we add every week, but after the newsletter, or after the meeting, sorry, so I usually don't see it beforehand, but I was reading about the Pi Dev of the Week, Telly Lambert, and I learned about the role of Microscopist. So the mini bio is I'm currently a lecturer and Microscopist at Harvard Medical School. I work in a core facility where we build, maintain and optimize microscopes, providing training and experimental design advice to local researchers and help with challenges in image processing and analysis. So check that out if you want to hear a little bit more about what Telly is up to. It was a fun article. The Circuit Python Weekly newsletter is a Circuit Python community run newsletter emailed every Tuesday. The complete archives are on AdafruitDaily.com and it is available on the web at www.circuitpython.com It highlights the latest Python on hardware related news from around the web, including Circuit Python, Python and MicroPython developments. We want your contribution, news, your projects, your friends projects. You can do that by editing next week's draft on GitHub and submitting a pull request with the changes. You can also tag a tweet with hashtag CircuitPython on Twitter or email cpnews at Adafruit.com to report Anne out of turn for her work on that every week. The next section is the state of Circuit Python, the libraries and Blinka. It is a chance to look at some numbers that tell us about the health of the project and then hear a little bit about the directions from the core, the libraries and Blinka. So overall, in the last seven days, we had 23 pull requests merged from 15 authors, names that I don't recognize or which are less familiar, are WIPFLI, Leole 51, Kerry K007 and Frazierne. So thank you to all of those authors and if you're a first-time author, we hope to see you back. 12 reviewers, so thank you for those. We like to review every pull request for quality and we love to add people to this list. So, Katni might talk a little bit more later when she tells us about the libraries, about the process of becoming a reviewer. But just check in on the pull requests, test them out, let us know if it looks okay to you. And then we'll upgrade you to an official reviewer. And the last overall number is issues. Last week we closed 13 issues, but 19 new issues were open. So we're up by a few, but it's also worth noting that we have a good number of people active on the issues front. Eight people were closing them and 15 people were opening them. So next I will hand things over to Scott to tell us about the core. Just as soon as he finished, he's typing it as no. Thanks, Jeff. All right, go ahead. Okay, for the core, we had 10 pull requests merged from eight different authors. So thank you to all of our authors. We had five reviewers, so thank you again to all of the reviewers who are making those authors merging possible. Really appreciate it. We have seven open pull requests where the oldest is 44 days old. Not too shabby, but getting up there in age, so we should make sure and take a look at that. We have four closed issues by four people, seven open by seven people. And up three. We tend to gain issues slowly while after a major release. And then as we approach a new release, we tend to go through those issues more often. So I bet we'll hopefully get some of those issues soon. We have 438 total open issues, which is definitely not a maximum for us, which is good. We have five active milestones, 18 open issues on 7XX. Those are the ones that we think should probably be looked at sooner rather than later. And we have three issues not assigned to milestone. Those are the ones that we haven't looked at yet, and we'll have to triage to figure out whether they're urgent or not. Overall, 7.0 has been going pretty well. We do have those issues that have come up, but none of them seem to be super major. And since the 117 version of MicroPython is merged thanks to Jeff and Dan, we'll likely want to do a 7.0 beta or release candidate soon so that we can get both the fixes in and the new features that we've had since 7.0 out as well. So that's it for the core. All right. Thanks, Scott. And next, moving on to the libraries, I'll invite Catney to give us an update. Thanks, Jeff. So this section applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore, CircuitPython underscore, as well as a couple other things like our cookie cutter and our community bundle. So across all of these repos, we had 10 pull requests merged by six different authors and nine different reviewers, leaving us with 58 open pull requests. Most of those pull requests were caught within a day. We had one that was about a week old. Good to see that we're keeping up with PRs in general. We had nine closed issues by seven people and 11 opened by seven people, leaving us with 632 open issues, and 279 of those are good first issues. If you're interested in contributing to CircuitPython on the Python side of things, consider going to circuitpython.org slash contributing. You'll find all this information in more open pull requests, open issues, and some library infrastructure issues. If you're looking to contribute on the code side, take a look at the issues, and you can search by label. If you're new to everything, check out our good first issues. Those are designed to be available to folks who are brand new either to the project or brand new to contributing to open source in general. We have a guide on contributing to CircuitPython using Git and GitHub, which covers pretty much everything, the process from start to finish. So if you're completely new to it, don't let that intimidate you. There's still absolutely ways for you to learn how to do that, and we're always available on Discord to help out. If you're looking to contribute on the review side of things, check out the open pull requests. If you have the hardware, give it a test. If you don't, take a look at the code for syntax, et cetera, and let us know that you did by leaving a comment. And once you're more comfortable with that, we can look at adding you to the review team. In terms of library updates in the last seven days, there were no new libraries, but a number of updated libraries that I will not read off. Overall, we're seeing a lot of activity on the good first issue front and seeing a number of new folks joining us. Welcome to all of our new folks, and thanks for your contribution. Early hub report to those who have been keeping up with reviewing these new PRs rather. The new libraries have been coming in at every couple weeks or so, which is also good to see. So we're continually building the number of libraries. It's not moving as quickly as it has in the past, but that's not a surprise given, you know, how everything's going lately. So it's excellent to see that we're still building up our libraries. And the community bundle has been growing slowly as well too, which is great. And that's what I've got. All right. Thank you, Katnie. And by the way things are going right now, I assume you mean supply chain and all that stuff, meaning that there are fewer new pieces of hardware doing anyway. Next, I will ask Melissa to tell us about the Blinka. Hello. So I'm going to talk about the Blinka, which is which is our circuit Python compatibility layer for Michael Python Raspberry Pi and other single board computers. And this week we had three pull requests merged by two authors and two reviewers. There are currently three open pull requests amongst all the repositories. And there was zero close issues by zero people in one open by one person, leaving a net of 65 open issues. There were 12,137 pie wheels downloads in the last month. We are currently supporting 76 boards. And if you're looking to help out with something that's kind of in the middle between the libraries and the core, you might let consider looking at Blinka, which is actually all done in Python, but is because it's a compatibility layer. You can kind of work on the interface between the Python, Python itself on the Raspberry Pi or whatnot and the libraries themselves. And you can check out the Adafruit Blinka repository to see what issues are open with that. And for me, that's it. Thank you. All right, next we move on to Hug Reports. Hug Reports is done as a round robin. I will go by the notes document starting with myself and then alphabetically from the top. And if you've noted that your text only or otherwise don't plan to speak, I will read your notes for you otherwise unmute your mic when I come to you and read your own notes. So anyway, Hug Reports are the time that we thank the people around us. I don't know if I said that for doing awesome stuff. It's an antidote to thinking about things in terms of bugs and a great way to just be positive and build each other up a little bit. So anyway, I really want to thank Dan for reviewing some of my poll requests. In particular, that merge of MicroPython 1.17. There was just a lot of stuff to go through. And it's really appreciated to know that you're going through that and finding any problems. And we fixed some good things and made it better before the poll request was merged. And thanks also to Scott for weighing in on a specific question I had when merging 1.17. I think we did the best thing and we got a nice benefit in code size when we changed something to be a little bit more like MicroPython. And with continuing with this MicroPython theme, I also want to thank the approximately 40 MicroPython contributors who contributed to MicroPython between version 1.16 and 1.17. They aren't listed in the list of core contributors above, but they are every bit as much a contributor to CircuitPython as the people who contribute directly. So thanks very much and thanks for letting us harness the power of your open source. And with that, I will pass it to Anecdata. Hello. All right. I'll read Anecdata's notes. It did say lurking. I didn't see it there. All right. Anecdata has a hug from MicroDev for ongoing development, work, and collaboration on ESP32 S2 Wi-Fi enhancements, especially within the shared binings. Next, I'll read the notes from Cgrover, who has a hug for Todd Bot for coding inspiration and recommendation of the Socratica Python Tutorial series on YouTube. And Cgrover, if you have a link to that, I bet you are not the only one who would be interested in it. So a little repetition would be great. Next up, Dan, let us know what's up. Hi. Thank you. Okay. So, Jeff, I have three things which kind of cover what your status report is, but thank you for going ahead and adding the multiple divisor to Rotorago. We have been talking about this for a while and you just went ahead and did it. And it wasn't, it was easy and it was good. Thanks for all the camera work you've been doing for the past weeks. It's working out marvelously and that's fantastic. We have a whole new capability for Socratica Python and thanks for doing the 117 merge. Also, just went ahead and did it. Thank you. And then I'd also like to thank AKNer or AKNer, I'm not sure, who was testing out some boot keyboard support on the Mac, which unfortunately doesn't work and we're probably not going to try to get it to work in the near future, but they're testing one very helpful. Okay. All right. Next up I have notes from Fumiguy who's lurking today. Fumiguy has a hug. Hug for GitHub user Kerry K007 for working on type info for the HID library and to Dan for a detailed review of that PR. Another hug to riskable for all their work on a new type of keyboard switch that uses magnets for tactility and sensing when pressed and to me for working on the MicroPython merge. And Fumiguy, if you have a link to that new keyboard switch that also sounds like something that would interest more people. Next up, a note from Jay Furstein who's listening in today and has a hug for Carter for reviewing PRs related to U2IF support for the MacroPad. And next up is Kenny and then maker Melissa. All right. So first up, I have a hug report for Carter for so much help with the AT Tiny breakout code and hardware and understanding all of it enough to write the guide. It's not over yet. There will probably be more questions. A hug report to everyone. I want to say Dan Fumiguy and Mark Gambler for keeping up with the new PRs coming in. I've said everyone because I may have missed someone and if I did not intentional, thank you to everyone who's keeping up with those PRs. A hug report to Jeff for running today's meeting. My name was on the calendar. Jeff's name was in the notes. Jeff was already prepping for the meeting by the time I got to it. So I appreciate not running it today. And then finally to Dylan for keeping up with the library releases and being available to pick up miscellaneous when needed. All right. Melissa, you are up next and then we'll finish out with Scott. I just want to give a beer back to everyone. All right. And Scott, it's you. Hello. First, a hug report to all the deep divers, the folks that watch my deep dive stream trying to help me figure out the stack order to fix the Raspberry Pi Brack trace that I was struggling with on Friday and still haven't figured it out. A hug report to Jeff for the MicroPython 117 merge. Thank you for taking that on. That can always be pretty tricky. And then last up, I wanted to do a hug report to MicroDev for all of the reviews. It's so nice coming in and going through my email and seeing that so many things have already been reviewed. And I just thought of one last one. I wanted to say a hug report to maker Melissa for continuing to work on code.CircuitPython.org and the JavaScript web Bluetooth library under the hood for that too. So thanks for continuing that. And I've got your PR open in the tab. We'll get to looking at that this week too. All right. Thank you, Scott and everybody. Next, we will move up to status updates. In status updates, we want to hear what you've been up to since the last time we had a chance to chat and hear what you'd like to get up to in the next week or so. And, you know, keep it almost entirely, but not entirely confined to CircuitPython. If there's something that's going on that you want to tell us about that is just anything, please feel free to do so. I will start and then we'll head alphabetically from the top. So last week I did some OV 5640 camera work. I forget exactly what it was, but I did work on it for a couple of days. And that library is really in a pretty good place. Did the MicroPython 1.17 merge? For MicroPython, the big new feature was f strings, which is a way to format strings that some think is more convenient than the percent formatting. But that isn't a new feature for us because we took an earlier version of that patch quite some time ago. It looked like the MicroPython version had some good simplifications and so we now have their version of the code. But it functions almost identically to what we had before. And then finally, I added the incremental encoder divisor property, which is good for non Adafruit encoders that give fewer pulses per detent or have no detents. And as Katni observed in our internal meeting, it may also be good for that recently added clicky wheel that is in the Adafruit store whose name I forget. So if you have one of those, check it out. Anyway, this week the first thing that I'm doing is looking into implementing the watchdog timer for the SAM D51. And then after that I'm going to look into some image effects, image processing stuff. We've talked about doing like a dithering algorithm to create one bit per pixel images, looking at things that are in Arduino or in OpenMV. And just picking some stuff that it might make sense to add to CircuitPython for image processing. And with that, I will pass it to SeaGrover. No, SeaGrover is text only, so I'll read your notes. Last week, wrapped up the PyPortal dual load cell scale with a custom NAU-7802 ADC feather wing. Learned a bunch about Python object orientation when abstracting screens, touch buttons, and devices into classes, woo. And there is a link to a demo, which SeaGrover has hopefully dumped in the chat. This week, setting the coding aside for a while, to design two PCBs to accommodate parts shortages. That is redesigned to PCBs. Hopefully the new designs will last for a while. Next, we'll take a shot at refining the scale, the scale's round dial class to behave more like a dial, and a 90 degree meter display widget. And with the cooler weather, it's time to put on the fiberglass hazmat suit for entering the attic to upgrade and rewire the ancient doorbell system. I know there's a 1980s era 8 volts AC 10 VA transformer up there somewhere. Next, we'll go to Dan, and then I will let Fumigai also read notes instead of reading them aloud. Okay. Thanks, I've kind of tested boot keyboard support some more. I have it working on PCs, at least the ones that I've tested. It does not work properly on the Mac, and it's not really clear why. I've asked tech about it, but for now, I will just leave it alone because there aren't that many people who want it right now. So we'll merge in what we have and go keep it in the background. It's something to fix better in the long run. In 7.00, there was a microphone problem which showed up, a PDM in microphone problem which showed up on the CPX. Not working, and I've got it. I've fixed the code part of it, but I'm getting some odd data, which I'm not really sure. It might have to do with microphone startup, which should already be started, I'm not sure. But I'm getting kind of considerably different looking data than I did in much older versions, like Secret Python 5. Secret Python 6 is already a little suspicious, so I might do a little more testing of that. But it now doesn't get stuck anymore, which is what it was doing before. I'm trying to automate how Windows 7 8.1 drivers are created so it becomes less of a maintenance headache and it can be updated more often. And then eventually we can throw it away as soon as we decide to stop supporting 7 and 8.1. And working towards Circuit Python 8, I'll be looking in more detail more assiduously at async.io, trying out async.io that's in MicroPython that we have in latent form in Circuit Python. And then seeing where we go from there and how people can use features that it provides. Okay. All right, foamy guy, you're up. Sorry about earlier. I don't know what was going on. No worries. So I had a relatively light week. I'm still working on more typed info PRs. Those are still rolling in. So I reviewed a couple of those this week. And then really the main other thing I worked on is a game that I'm calling Piechart Chomper, which is a sort of Pac-Man type clone, and it's made for the Pico with a little LCD screen. But I'm looking into porting that over to some other devices as well, but it will require changing up the asset sizes possibly to make them fit nicely on different size screens. So that's what I did for this week. Thanks. Thank you. Next up is Gatney and the maker Melissa. All right. So last week I did the pretty pins diagram for the Metro Mini, which is only worth mentioning because it's the first in its chip set. So we'll be able to do more of the 328s upcoming, which will be good, but we hadn't actually made pretty pins work with it until last week. So that was new and started the AT Tiny 817 breakout guide. At this point, the guide core is done. Circuit Python section is mostly complete, needs a little more copy and some gifts. And then I barely started the you're doing no section and spent most of last week trying to understand the AT Tiny 817 breakout, CISA, EEPROM, et cetera. Thanks again to Carter. This week, surprise, Melissa. I mentioned this earlier, but this is the first time it's actually been brought up is I'm going to work with Melissa to provide some feedback to the PI PI folks on our usage and some feature requests. And then continue the AT Tiny 817 breakout guide, finish the Circuit Python section, finish the Arduino section. The thing that's going to take the longest probably is getting images. And then the next thing that's up, which I'm kind of excited about is updating the Welcome to Circuit Python guide. And I did pop that into in the weeds because Dan has some ideas about that. And so I thought we could just discuss it in the weeds as that is the point of in the weeds. So I won't elaborate here. Point is the guide is old and needs to be updated, but we'll figure out the details in the weeds. That's what I've got. Thank you. All right, go ahead, Melissa, and then we'll wrap up with Scott. Okay, last week I worked on the Circuit Python code editor file GUI. Kind of showed that off on show and tell this last week. I fixed a bug in the file transfer library, write-pacing function. This week I'm going to finish up working on the code editor file stuff, work on the compatibility of mobile devices and start writing a guide on the usage and apparently helping cat me with coming up with what she mentioned. And that's it. All right, that brings us to you, Scott, to round out the section. Hello. Last week I started, I was working on getting the USB going on the Raspberry Pi. I got interrupts working and but then I think didn't USB didn't just magically work, which was frustrating and I played around with it, but it wasn't unable to actually get USB working, unfortunately. I'll probably poke at that some more later this week. I was hoping that somebody who knew more about it would come along and help me, but I haven't heard anything, unfortunately. In the meantime, I started getting Circuit Python going anyway, but over UART, which you all know I'm not a huge fan of, but it is so fun to see. I can do math in the rebel, but the object pointers are getting messed up, so other things crash, particularly print hello world doesn't work. And so I'm working on that. Once I figure that out, I'll probably take a look at enabling display IO over the HDMI connection. Either that or I would have to, the other thing to get Circuit Python kind of fully going is to do the storage on the SD card, getting that working. So may try to do that too. We'll see. And I also offered to take some bugs for Dan for 7-1, also because I would like a Hacktoberfest t-shirt because I've had them the last few years. And I actually need to do PRs instead of just reviewing PRs to get that. So I may take on some bugs to do that too. That's it for me. All right. Thank you, everybody. Now we will head to the last section called In the Weeds, and I will let Katani introduce her topic. All right. So the Welcome to Circuit Python guide has been around for quite a while now and was obviously up to date when it was published. It has had additions over the, I don't know how long it's been out, but it's not really been updated per se. And Dan went through the whole guide and put together a pretty thorough list of suggested updates. But I also wanted to open it up to everybody else who has used this guide to make any suggestions as well. One of the things that Lamar mentioned was possibly templating some of the pages. Initially, like for two seconds, I thought, wait, there's no point, but then I remembered that there's a lot of, not a lot, but there's a few things that we have to put in a bunch of warnings or explanations for different boards, and it throws people off. We get guide feedback that says, you know, hey, I did this, but it doesn't apply to my board. And I'm like, well, I mean, it says right there it shouldn't apply to your board, but that doesn't, I mean, people don't always see those warnings. So maybe those pages would be worth templating, but that's going to be a huge undertaking because then it has to be updated in the 30 or 40 guides that it's already mirrored into, which is not out of the question. Sorry, I needed some water there. But Dan's suggestions are some of the photos should be updated. We should add something about in general learning Python, perhaps, a number of shuffling things around suggestions into places where they make more sense. One of the big ones is updating the Circuit Python hardware section to not talk about M0 boards anymore, period. It's all it talks about at the moment. And we need to not be suggesting that. Removing the ESP8266 references and then adding a Circuit Python documentation page that points to read the docs and the library's explainance for reference because several times we get people who need read the docs and don't realize. Frequently asked questions. The older versions listed in the section of I have to continue using an older version of Circuit Python, where can I find compatible libraries could be updated. Yeah, that's a good one too. I'm adding that to my list. So if anybody goes through that guide, comes up with any suggestions, I guess. I don't know, Dan, whether there was anything else you wanted to add. I just read all that out of the email you sent. So yeah, so I think the big things are maybe restructuring it. So perhaps some of the there's a lot of stuff in it that it's sort of a lot of it is kind of at the same level. And it's sort of these nitty gritty exception details and then some other stuff. And so like maybe I was thinking maybe we could factor out like the Windows 7 in April and one driver stuff. We could just put that on a separate page and point to it instead of having it be in the flow where 99% of the people don't care about it. Yeah, okay. I think I'm talking about there, you know, there's advanced serial console. There's regular serial console. Maybe those could be collapsed. You might mention TIO. Yeah, I agree. Let's see. And the heart I was thinking maybe we even I'm not even sure if we need a heart. I think even the hardware stuff might be a separate guide. We have like a guide I wrote that's how to which which board do I want? Yeah, I cross-referenced that. Maybe so. The thing is we can't buy LaMoure's sort of way of dealing with things. We can't like just get rid of guide pages because it breaks other things where these lit pages are linked. So we can deprecate them and like I would go so far as to make a, you know, page that says like the pages below this are no longer supported. And then nest those extra pages under that header so that they're not in the main like list. Like to get rid of the ESP 8266? Yes, and the pie charm one because it's completely wrong right now that we honestly we never should have made that page, but that was not my decision. So unless we want to update that to not be that plug-in and actually be like FOMI guys whole, yes, that's exactly what I was about to say. If you wanted to update that, I would gut it completely. Like don't leave what's in there right now, don't leave any of it because it's using a plug-in that was never meant to work with CircuitPython. 50% of the time and it had a bunch of features meant for MicroPython that if you tried to use them would fail and because you know you don't load things it just you save the file directly etc. So if you wanted to gut that completely and actually update it to be like the things you do now to use pie charm, that would be great. I could see that being super useful. We get questions about that constantly and being able to link to a guide page would be excellent because linking to your previous messages on Discord is not always easy. Yeah, I was going to say definitely be really nice to have a place to point people. So yeah, I can start reading that stuff out. I agree with you as well. We can get rid of pretty much everything dealing with that plug-in. I never actually did it try out that plug-in, but I heard there were issues with it all the way through. So what I would do is create a new page in that guide with a bonkers name that is never going to get published and then write it up so that it's not being written up live. And then we'll just paste it into that page so that the URL remains the same. Okay, cool. Yeah, we'll work on that. Okay, excellent. Is it possible for us to have, if we can nest things, can we just have an advanced setup top level and then put all the pie charm, the advanced serial, all those alternate setups under that? I could see that because I think one of the challenges with the Welcome Cert as it is now is that it covers everything. And Dan's talking about this too, factoring out the advanced stuff. It would be good for us to just have a very linear set of pages that just walk you through the new setup. Just all the basics. Yeah. Go ahead. No, I was going to say the only thing to remember is that the Welcome to Circuit Python guide is mirrored into every board guide. And resituating things in the Welcome guide is not going to resituate the mirrors. Right. So people are still going to run into weirdness in the guides themselves, but folks who are going through the Welcome guide, which I know there's tons of people who do, will definitely have a better experience if we restructure it this way. Right. So you had to remarer each page? No, no. I would have to go in and reorganize them. Do the actual reorganized pages? Because they're mirrored by page, not by hierarchy top. Correct. Mirrors are just mirroring the page into the guide and then you can do whatever you want with it in the guide. In terms of putting it wherever you want, not changing it. But location does not mirror. Only the page contents mirror. Right. So any nesting on the original guide doesn't show up? Correct. I think all the Welcome pages are nested under the Circuit Python install page anyway. You can't double nest. So I think this is where maybe we... Can you simplify the ones that are mirrored so that they just cross-reference to the advanced things? Not exactly. I do know what you mean and I don't think that's really... Well, like if I added a Windows 7 drivers page, which is what I'd like to do, it could be visible in the master guide, but it would be linked from the installing page or something. But it wouldn't be visible in the Feather M4 guide or something. Correct. I think that would be fine. So all the mirrored versions of the pages would basically for advanced stuff, they just reference the Welcome to Circuit Python advanced pages. Yeah, just a link. I get it, but I don't think it works quite like you think it does. Like that would be a huge overhaul. Like I would have to recreate... All the advanced pages would have to be new. Right. And all the current pages would all exist with links, so then there would be duplicate pages. Well, when you rename a page and you change this URL, it leaves a link around. It leaves a redirect. I'm pretty sure. I was told not to rely on that. Okay. I don't know that that's something that will always be there. Like it's not a good idea to do, because it also breaks... If we change the name, changing the name is irrelevant, you can change the title all day long. Changing the page slug breaks everything that's linked to it. Because there's blog posts, there's other articles. Yeah, that's what is breaking. And people notice. I unpublished that pie-term page and immediately we got an email about a blog post that had a broken link and I had to republish it because I didn't know at the time that we didn't just get rid of pages. That's why it's full of warnings. Yeah, so I get the restriction that any page that exists now still needs to exist. I guess for the Windows 7, 8 thing, I'm just thinking like whatever page that's in now, you shrink it down so it's only got the key bits for whatever the top level thing is and then it links out to a like, oh and if you're on Windows 7 or 8, here's the event. Yes, yes, yes. That is exactly what I want to do for that particular situation. But I can't guarantee that that sort of thing will work with everything because it would involve basically writing another guide. And that's, we're trying to avoid doing that. Yeah, I mean it can all be done incrementally. Yeah, like we could always do more work on this guide later. Right, so I think just some of the updating. I think, okay, so I think these are mechanics. I had a more top level thing. I think that we can do some of the easy stuff that I listed. I mean, you want me to paste in my email or? I have it pulled up right now. Well, I think you should paste it in for other folks. In the notes, I mean. Oh, yeah. Yeah, you're going to want to format it. Yeah, yeah, yeah. All right, I'll do that a little later. Or maybe I'll paste it in now and then we can, there we go. See if this actually, there it goes. I wasn't sure if it was going to be too long. And the chat as well for folks who aren't looking at the notes. So a lot of this is restructuring stuff, which I agree with. The new stuff, which is how do I learn Python and circuit Python documentation. Those two pages would need to be added. That's fine. I don't think those are going to be too difficult. And we can put under a deprecated. We can make a deprecated listing for the ESP 80266. Yes, one. Yeah. So some of this is sort of simple. I would, I have a higher level question about people. The whole idea of how do I learn Python? I've never been able to give people in discord like a satisfactory. Everybody has a different learning style. Exactly. That's part of the problem with trying to write a guide page. That's how do you learn Python? Because it's really difficult to take into account all possible learning styles. And inevitably you're going to miss something and it's, and it's going to, it becomes an inclusion issue and like, et cetera. So if we can come up with something that kind of covers all possible things, I'm happy to write something up and publish it. But like it needs to be, it needs to be like accessible and inclusive, I guess is what I'm saying. Yeah. Well, there are in on python.org. There are several, there's a beginner's guide page and there's a learning, there's some rather comprehensive pages. Yeah. So I would think I would just point to those. And if they don't include like Khan Academy or some other video stuff, that would be interesting. And they probably don't include, there were a few, there's this new book that was published about using circuit Python. We could include, there's some circuit Python, micro Python books that we could include that aren't in the python.org page. But I can sit, I thought this page would mostly just be links. Okay. Not links to individual courses even, but just other people's aggregations of learning material. Yeah, exactly. What's Keith is saying? So I think if we just, just, just be able to point people to that instead of be recreating it every time somebody asks in Discord, which admittedly doesn't happen that often, but it would be nice. Yeah. Right. That's another good point. Are we creating a, are we creating a support issue with those? Like in terms of the exact reason why we have to go through and update this guide right now, is that there are things in it that are dated and links can quickly become dated. Right. Well, I think that, I think that part of the more, what we're more worried about is not even our links that we have control over, but links that we don't have control over in other people's blogs and stuff, though. Right. Well, that's, yeah. I mean. Yeah. There are places that I'm talking about that. I think if we just put listings, I don't expect this page to be long. How do I learn Python? I expected to be short. It's like, we don't have any particular recommendations. It depends on your learning style. Start with the lists in these other pages. That's all I really want to say. Okay. And maybe link to a couple of books. I don't expect this to be more than a couple of paragraphs. I don't expect it to be paid, you know, scrollable. Practically, it should be short. So, yeah, Keith, if you'd like to just write that and we'll just paste it in, that would be, we'll touch it up. That would be great. I don't know. You're still worried, Karen? I mean, vaguely, but, you know, it is what it is. Like, we'll put it out there and see what happens. Yeah. If we end up having to deprecate it, we have a deprecation header so we can just nest it. Yeah. Yeah. Yeah. Yeah. Yeah. No, I did know that because much of the time I get people complaining about a lack of API documentation and 90% of the time it read the docs is what they wanted. Right. Or they don't know that you can actually click on those badges in the repose. So I think if we just mention, do kind of a meta description, again, this could be short, but it'll, the fact that there is a page that says documentation, that's what people are going to look for. And so... Yeah. I also question whether we should update the readme's in the libraries to actually link to the documentation. And maybe they do. Or maybe they don't because of the badge. Yeah. Yes, yes. So like an actual, you know, like a short paragraph or a section rather with a header. Yeah. I don't think they do that now. The release... And that's just by hand. Yeah. So that's another thing when I add to my list and I'll have somebody do that up. I think the badges are actually kind of, the badges could be better. Well... The badges are what they are, like that's why we need documentation. Yeah. You know, badges are meant to be tiny and quick. Like they're not designed to be super obvious, I guess is my point. So some actual like, an actual header would be good. I'll put something together on the test repo and then have it... have somebody go through and do it on all the repos with a script because it should be pretty easy. Okay. I was going to comment on the per board thing. Yeah. Completing you mean? Yeah, I think in the long run we're probably going to want to do that. Like we basically did that for the Pico, right? Like we have a separate welcome to Circuit Python on the Pico guide and I wondered what is your impression on how well that's gone. Because I think by templating the welcome to Circuit Python guide we would like be able to do more of that style for every board. We... did not. Oh I see, you're talking about like the programming basics and all that. In the Pico guide I mean, because there's mirrored pages in the Pico guide. Okay, it's just that there's a guide but it still is just mirrored. Yes, well some of it's mirrored is my point. The rest of it is is just examples for that board. Which that's what... I was thinking it was more custom than it was. No, the reason it seems more custom is because all the examples exactly what the essentials guide templates are going to be is examples for individual boards. So that's already in place that has nothing to do with welcome. The thing about welcome is like creating and editing code. There's this giant warning about QDPy and the Trinkies. Do not have a built-in red LED. I know it sounds like a band name. So like I link an extra Neopixel Blink example but that does... They struggle with that. They struggle with the documentation not being for the code that they're looking at because it isn't, it's for the red LED. So even though the Neopixel code is basically the same it's not the same. So that page might be worth templating but even this page is so bonkers long. This stuff needs to be factored, like refactored. That's... And I think that that's really the place to start is with restructuring this guide because I think creating code and editing code need to be two different pages apparently and editors that you recommended should be its own page because there's just this tangent in the middle of the page of like what editor to use and the title is back to editing code. Like that's terrible. What are we doing here? Yeah, I think if we can make this more concise that would be really good. It's gonna be more verbose when it's all done to be honest is be more pages but it'll be structured so much better. Yeah, I mean it is very comprehensive. Yeah, it just I can see people getting bored in the middle of this page and then not finishing it and then wondering why the next section doesn't work. So anyway. Okay, so I think the big key here is restructuring adding the addition of a couple simple pages and updating the obvious things that are completely dated. So for, yeah, if anybody in the next week or so ends up taking a look at this guide and has any suggestions feel free to ping me on Discord. I will be getting to this later this week. So any other suggestions are welcome. It is a beefy guide so I understand if you don't go through it but if you have any reason to and you have any suggestions feel free to ping me. And I think I think that's it. I think we're good. I'll just say I actually I mean what happened the reason I wrote that email is because I started to update like there was a thing that's mentioned 2.x, 3.x, 4.x and 5.x and I simplify that. We added board.led for all the remaining boards so there were a bunch of caveats that I was able to remove in the blinking example and I did a couple other small cleanups like that and it was just like oh yeah but then I don't really want to do these other massive or massive things so that's why I ended up writing the email. That's totally fine. Thanks for updating what you did. I understand you did not intend to move mountains which is what's going to have to happen to update this guide. Right. I didn't and I didn't really want to make more work but I was like it was just like hey wait a minute this guide says to use M-Zero and it's like no stop that because I keep helping people in the forum who have bought and it's EM-Zero for some reason you know because they said because it's two dollars cheaper or something and it's like I'm sorry Yep. Now I understand. Okay. Alright. It's good timing because like Lamar said we're not really drowning in hardware at the moment so it's a good time to update the guide. I was really thinking about like what's getting people to buy the things that will make us for satisfying experiences a good idea. Yep. Yeah. So I'll just do what I am actually doing them. Okay. But other than that I think we're good to go. Okay. Alright thank you. Okay. Alright. Well that was maybe the longest in the weeds that I've seen in a while but that was very detailed so thanks all of you I'm going to go ahead and wrap up the meeting. Thank you for joining us for the Circuit Python Weekly on October 18th 2021 and a big thank you to everybody who participated. And Circuit Python and those of us 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 go up on the major podcast services. We'll also put a link to it in the Python on microcontrollers newsletter. Visit AdafruitDaily.com to subscribe. The next meeting will be held next Monday at the usual 2pm so that will be October 25th 2021. The meeting is held on the Adafruit Discord which you can join anytime by going to adafru.it slash discord. If you'd like to be notified about the meeting any changes to the time or day or if you'd like to speak in the meeting please ask us to add you to the Circuit Python Easter's role on Discord. We hope to see you all next week so a big thanks everybody Thanks everyone