 Hello, everyone. This is the Circuit Python Weekly for September 9th, 2022. It's that time of week where we get together to talk about all things Circuit Python. I'm Jeff, 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 and Circuit Python, consider purchasing your hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to adafruit.it.discord. We hold the channel 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. So yesterday was the U.S. Labor Day. That's why we're on a Tuesday. In the notes doc, there is a link to the calendar, so you can view that online or edit to your favorite calendar app. We also send notifications about upcoming meetings via Discord. To receive the notifications, ask us to add you to the Circuit Python East's Discord role. There is a notes document to accompany the meeting and recording. After the fact, the notes document contains timestamps, so you can use the doc to view only the parts of the video that interest you the most. The meeting can run up to 60 minutes or more, so it gives you the option to skip around. And after each meeting, we post a link to the next meeting's notes in the Circuit Python Dev channel on the Adafruit Discord. Anytime during the week, you can check the pen messages to find the latest notes doc and add your notes for the following meeting while things are fresh in your mind. That's particularly useful for hug reports I find. And if you wish to participate but cannot attend, you can leave hug reports and status updates in the document for us to read during the meeting. So this meeting is held in five parts, not counting the introduction. So next up will be community news. I'll look at all things Circuit Python and Python on hardware in the community. And in this case, I guess it's a look back on the Python for Microcontrollers newsletter. Then, second, we take a look at the state of Circuit Python, the libraries and Blinka. And Dan, if you could let me know if you can take the course section of that, that would be great. This is a statistical overview of the entire project. A chance to look at the project by the numbers separate from what we're all up to. And then the third part is the first of two round robins. It is called hug reports. An opportunity to highlight the good things folks are doing and take the time to recognize the awesome folks in our community and beyond. Then fourth, and the meat of the meeting is status updates. Take a couple of minutes to talk about what you've been doing in the last week since the last meeting and what you'll be up to over the next week until the next meeting. And then the fifth part is called in the weeds. If we need to embark on a longer format discussion, either something that has been identified ahead of time or something that we realized during status updates, in the weeds is the section to talk about that. And those are the five parts that covers how the meeting will go. And with that, I will head over to community news. So I picked out some cool stuff. Number one, Adafruit adding Circuit Python support for Raspberry Pi Pico W. The firmware UF2 for the Raspberry Pi Pico looks simple enough. On boot, it blinks the onboard LED three times and then boots into Circuit Python 8. But looks can be deceiving. The LED on the Pico W is not connected to a GPIO on the RP2040. It's connected to the Wi-Fi slash BLE module. That blinking means that the bootloader is able to load firmware and communicate with the module in the Circuit Python firmware. An important first step to implementing the rest of the wireless stack. And there's links to the Adafruit blog, YouTube, and Twitter. Next up, I'm going to guess this is pronounced Maps Flaps. I'm really not sure on Circuit Python. Maps Flaps is a GPS mapping application for LCD displays. And based on that photo, it must also work on ePaper displays. And there's a link to Twitter. Okay, next item. A small Raspberry Pi Pico Stream Deck with Circuit Python and 3D printing. And there's a link in the node stock to Twitter. And often Tim is here and puts these links into the chat, but I guess he's missing today. So if anybody wants to drop some of those links into the chat, text chat, that would be wonderful. Next up, you can show incoming MIDI as reigning MIDI notes on a NeoPixel grid slash matrix, links to Twitter and GitHub. And then last, handwritten digit recognition using Circuit Python, Raspberry Pi Pico, OV7670 camera, and a 120 by 160 TFT LCD, and more links on Twitter. So what is this newsletter, you may ask? The Circuit Python Weekly newsletter is a community run newsletter emailed every Tuesday. The complete archives are on adafruitdaily.com slash category slash Circuit Python. It highlights the latest Python on hardware related news from around the web, including Circuit Python, Python and MicroPython developments. To contribute your own news or project, you can edit next week's draft on GitHub and submit a pull request with the changes. Or you can also tag a tweet with hashtag Circuit Python on Twitter or email cpnews at adafruit.com. And I really want to emphasize the community run aspect of this. We want to see your projects. We want to see your friends' projects. We want to see projects from all sorts of skill levels and sophistication because we believe Circuit Python, MicroPython, Adafruit Blinka are great for everybody who is interested in doing computer hardware stuff. And thanks, as always, to Ann for collating the newsletter. And with that, I'm going to move on to the state of Circuit Python, the libraries and Blinka. So every week, well, yeah, every week we pull statistics over the last seven days. And because of this meeting being a day late, we are actually missing one day of statistics. So if we've overlooked you in because of this, it doesn't mean we don't value your contribution. It just means our scripts have betrayed us and stopped us from giving you the recognition that we would like to. So anyway, overall, across all of the Circuit Python related repos on GitHub, we had 45 pull requests merged from 19 authors, which just feels like a huge number. And Ketney has highlighted some of the new or infrequent contributors, and I will try to read your names. We've got Boranoni, Skarelli, Jay Dimson, Bill88T, Xerikob1, BrianPew, and ThetaZero. And TC Franks, I don't recognize either. So thank you to all of those authors, but particularly if you're just dipping your feet in with helping us make Circuit Python better, we really appreciate it. And it is the reviewers who enable us to accept high quality contributions from those authors. And this week we had 11 of them. I won't read all of those names off, but thank you to all of them. And Ketney will say a little bit more about reviewing in a little bit. Issues-wise, we had 30 closed issues by 10 people and 19 open by 16 people. So it's very nice both to see the number of people participating, but also in this particular week our number of open issues trended down, and that's always nice to see. And with that, I will hand the talking stick over to Dan to tell us about the core of Circuit Python. Okay, thanks, Jeff. In the core, there were 14 pull requests merged as of a day or two ago with 13 authors, and there were seven reviewers of those pull requests. There are now 18 open pull requests. I'll tell you how many there are, really. There are really 20 open right now. There were four closed issues by four people and nine open by eight people. So we continue to have newer things brought up and the number of bugs to fix in 808 potentially is increasing. We may prune some of those back. Right now, there are about 564 open issues. There are five active milestones and there are zero issues, not assigned a milestone. And I think it was Neredoc. I can't remember who, but I think it was Neredoc who fixed the thing of having negative numbers of issues. I will look that up and put it in the HUD reports. Okay, that's it. All right, and next up, Katnie will tell us about the libraries and also more about contributing to CircuitPython generally. Thanks, Jeff. This section covers all of the Adafruit CircuitPython libraries, which is everything that starts with Adafruit underscore circuitpython underscore, as well as a few extras, including our cookie cutter and the community bundle. This week, we had 28 pull requests merged from eight different authors and seven different reviewers. The oldest pull request merged was a week old, so it's good to see we're keeping up and the rest were all very new, so it's also excellent to see that we're keeping up with new PRs, which leaves us with 36 open pull requests. We had 23 issues closed by six people and eight opened by seven people, so we are down a bit at 626 open issues. 135 of those are good first issues. If you're interested in contributing to CircuitPython on the Python side of things, check out circuitpython.org slash contributing. You'll find all of this information and more, including a list of open pull requests and a list of the open issues. If you're looking to contribute code or documentation, check out the open issues. If you're new to everything, there's the new good first issue label, which we have identified as something that is on the simpler side and we have a guide on contributing to CircuitPython using Git and GitHub, and we're always available on Discord to help, so don't let that process intimidate you. If you're interested in contributing on the reviewing side of things, check out the open pull requests. You can leave a comment, let us know you looked at it. If you have the hardware, test it. If you don't, check it for syntax, et cetera. Any of this helps, and once you have become more comfortable with that and comfortable with our process, we can talk about leveling you up to the review team. In terms of library updates in the last seven days, we had one new library, PCF 8575, and a number of updated libraries, which I will not read off, but they are in the notes, and that's what I've got. All right, thank you, Ketney. And next up, Melissa, we'll tell us about what is going on with Blinka. So Blinka is our circuit Python compatibility layer for Raspberry Pi and other single board computers. And this week, we had three pull requests merged by one author and three reviewers. There are currently six open pull requests still, and there were three closed issues by two people and two open by two people, leaving a net of 83 open issues. There were 11,730 Pi Wheels downloads in the last month, and we are now at 91 supported boards. And that's it. Thank you, Melissa. And that completes the State of Circuit Python the Libraries and Blinka. Next up is Hug Reports. Hug Reports is an opportunity for us to recognize the awesome folks around us with just a little note, and it's an antidote to the idea of Hug Reports in a way to find some positivity as we all work together. And so I will start both to show how it's done and just because that's how we do it. And then I will read notes from some people and go on to people who are participating in the voice channel today after that. So I wanted to thank Ketney for doing some of the post-meeting work while I head to the dentist. Dan, for observing that the old IBM XT keyboard connector is physically the same as MIDI, which then made me think of Liz and give her a hug for her learn project with a MIDI port on a QT Pi, which together with the previous item gave me a project idea for a keyboard adapter. And next up, I have notes from C Grover, who is text-only today with a hug for FOMI Guy for testing the latest version of Palette Fader and finding a fixable issue to me and Lady Aida for the microlab-based color adjuster used in the reshader class. It was the inspiration for the Palette Fader RGB color math. Next notes are from Charles B. Hope everyone had a good Labor Day weekend and a group hug. All right, and now we are ready for your notes, Dan, and then Deshipu after that. Okay, thanks. All right, I'd like to thank Ketney, who's testing fixes related to the FOMI IDE and also testing fixes having to do with power saving during deep sleep and trying to reduce what seems to be high current during deep sleep. I don't talk about that more in issues or progress reports. And then thanks to Lee, who's working diligently on a PR for bulk analog input. They've been very patient with all our suggestions. And thanks to Tetric. It was Tetric, not Naraduk. I was mistaken who fixed the issues about the negative number of issues in summary lists. So thank you, Tetric. Okay. You are up, Deshipu, and then it's Ketney. So I didn't really have... I didn't pay much attention to this last week, so a group hug. And thanks to everyone who worked on Secret Pattern while I didn't. Thank you. All right, Ketney, and then Melissa. All right, so first up, I have a hug for Argonne Blue on Discord for joining the community helpers. They have already been helping all over the place and have been extremely constructive and supportive in their assistance and basically doing the things that community helpers do already. So they were offered the role and accepted. To Jeff for agreeing to swap meetings with me next month when something came up preventing me from reasonably running the meeting on my scheduled day. To Dan, Argonne Blue, and Deshipu for taking the time to try and help me understand read switches better and to help me find a better one for my in-progress guide. To Dan for helping me troubleshoot deep sleep, status bar, and THANI issues and working on the fixes. And a group hug for everyone. All right, thank you. Next up is Maker Melissa. Then I have a couple of sets of notes to read. I wanted to give a group... I mean, a hug to Dan for continuing to help me with trying to fix a web workflow related core bug. To Niradak and Jeff for contributing to Blinkett. To David Glada for continuing to improve CircuitPython.org and a group hug to everyone else. Next, I have a note from Mark who's not in the meeting today who has a group hug for all. And finally, Tektrick, who is text only today. Thanks TC Franks for all of the typing PRs. A hug report to Katny for always being able to help unblock things for me even when busy. A hug for Tammy makes things for the reviews I saw last week. It's great that we have more great people helping others to contribute. To my girlfriend for encouraging me to continue running races and for completing her 20th half marathon. And last but not least, a group hug. Alright, and that completes hug reports. Next up is status updates. It's a similar format as hug reports will go in and around Robin with me first. And as mentioned before, we'd like to hear what you have been up to since the last time you had a chance to connect with us and what you hope to get up to in the near future. And if you are a weekly guest, that means a week. And if you just come once in a while, you know, keep us apprised of what you're doing if you have to go back two weeks or a month because that's how long it's been since you've tuned in, then please feel free to. Anyway, and if it's something outside of CircuitPython we'd love to hear a little bit about what is up in your life because when we know each other better as people that is cool too. So anyway, I will start off. Last week I've been working on this project with the PicoW or PyCow Wi-Fi working with CircuitPython. And the last milestone is that it can't associate with the Wi-Fi network and retrieve its IPv4 address, the netmask, the default route. It can't send or receive packets yet and for some reason I couldn't retrieve the information about the DHCP server. And then after that for myself, initially I started adapting vintage keyboards to USB HID with CircuitPython and RP2040 and after talking with Lamor we're going to make either three or four blog posts out of this. The three keyboards that are done are a Commodore 16, an IBM Model F for the original IBM PC, the Tandy 1000 which was an early PC compatible and I've actually posted the code for the three of these on my blog, there is a link in the notes document. And I also PR'd some minor changes into Adafruit CircuitPython HID that I encountered while working on this and then later that grew into a minor PR into Blinka that Melissa was referring to. So this week, more of both of the above. On the Pi cow, I wrote that I was going to investigate whether to bite the bullet and adopt free RTOS into CircuitPython for the Raspberry Pi RP2040 port but belated Hugger port to Jimmo who I was chatting with on Monday. Jimmo said that MicroPython does not use free RTOS and pointed me at some helpful stuff to understand how they have kind of integrated it and I will be studying that this week. Figure out why the DNS server address doesn't seem to be set and the next real milestone is to successfully implement the dot ping method of the Wi-Fi radio object. On the keyboard front, the next and last keyboard that I plan for now is an ADB-era Apple Macintosh keyboard. It's from 1990 and it is a bidirectional clocked serial protocol. I will have to solder up a few more adapters to get guide photos. In most cases, there's like a little circuit board with a socket or something on it. And yeah, then it will be time to create a learning system guide, one for each keyboard. So there will be four guides for me hopefully coming out in the next month to six weeks depending how that goes. And just a note, I will be traveling September 9th to 13th which means I will miss the next Monday meeting. And with that, next up we have what? Yeah, we have Dan. Go ahead, Dan. Okay. I released circuit Python 733 at the beginning of last week. It didn't cause any ripples. That's good. So I didn't get any complaints about it. I've been working on getting the status bar code enabling or disabling the status bar to work right. I think I have it now because it turns out that the status bar was trying to print out something and that uncovered the fact that we were storing a stale pointer in the last exception that was thrown. And we never used that before and the status bar was. So that was if something I had to fix. I'm working on lowering power during deep sleep. Sometimes we see like up to 500 microamps when sleeping on expressive boards and it should be more like 75 on the boards that have good control over power. And there are still lots of 801 bugs to fix. The number of bugs went up from about three dozen to over 40 so there's still plenty of work to do on that and I'll be working on that also. Okay. Thanks, Dan. Next is Deshaput and then Katni. So I'm preparing for the makeover for Hanover this weekend. I'm going to be showing a bunch of circuit Python projects so that's somehow related. And unfortunately I have a couple of pull requests in work right now but I haven't been able to push them. What? So hopefully that will improve in the future. All right. Thank you. And yeah, take your time and know that we are here to help you out with those pull requests when you're ready to work on them. And with that, I will hand things over to Katni and then make her Melissa after that. Thanks, Jeff. Update, this is the neighbors are getting their roof replaced edition of Katni status updates which is to say apologies for the background noise. Last week I published the install circuit Python on ESP32 template and added it to the Feather ESP32 v2 guide. The plan is to add it to all ESP32 board guides but the initial way that we do templates is to put in one guide for review and that's the review and that is still in progress. I started the Wi-Fi mailbox notifier guide and got the code submitted to learn for the mailbox guide. This week I need to finish the mailbox guide. The overview is essentially done but pretty much everything else is left to do including getting build images and at least it's a very simple build though. The setup works with the new read switches that I got so that's good. I hadn't tested it with an actual switch until an hour before this meeting. There's just still a lot to do on the guide. Hopefully it goes quickly. And then I don't know what's next until this guide is done. So I can't report that until next week. In terms of the basement project which is now in part two we picked out paint colors this weekend for the two rooms in the outside room walls in the basement and looked more into basement floor ceiling which is a lot of lack of documentation there. So we had to do a lot of digging to figure out whether it was necessary and if so what type we needed or how it needed to work and so on. So that was done this weekend as well and that's what I've got. Did you say a lack of documentation? Oh. Sorry. Nice. Also, I just learned that there's an abandoned house emoji. Thank you, Mr. Certainly. All right. Anyway, back on track we've got maker Melissa and then Paul Cutler. Go ahead, Melissa. Okay, so this last week I worked on adding some more features to code.circuitpython.org enough to push the current changes to the live website and I added a nice feature transfer work between devices and URLs. I added links for the full code editor to the Web workflow welcome screen and documentation in the core. I created a couple of handy circuit pythons scripts to make switching between different Wi-Fi networks much easier using the console and I started working on a Web workflow quick start guide that should be finished soon. So this week I'm going to wrap up that guide and then I'm going to work on fixing some bugs that I found while working on the guide and then work on any remaining features that I'd like to add to the editor and I will also be hosting show and tell for the first time all by myself and other than that I finished moving out of my smaller office last week and I'm working on packing up my larger office this month which involves reorganizing and soldering up all my eat-a-fruit boards so I can find them easily and I'm finally able to start walking on my feet for the first time this past week since my surgery without any assistance. That's what I got. It's a great milestone, happy to hear that. Next we have Paul Cutler and then I will round out the section by reading notes from Tektrick. Thanks Jeff. Last week I interviewed Thea Flowers for the circuit python show that will be the next episode coming out on September 19th. I think it turned out great. Deshapoo is the guest on this week's episode so check that out. He shares a little bit about what it was like learning computers behind the iron curtain which I think is an experience most of us can't relate to but it's kind of cool. I recorded Brighton Lane for a future episode this morning and then in the weeds we can talk about this too but the first circuit python community help desk is coming up this Saturday. That's all I got. Thanks. Alright and notes from Tektrick. Last week fixed the BLE libraries for 800 compatibility. Removed options from Cookie Cutter for not adding PyPI infrastructure. It is now always added. Fixed the issue where Adobot adding native issues assigned to Milestone. Early thanks to Jebler for confirming. Type annotated Adafruit register and reviewed lots of typing pull requests. And this week is the first week of grad school so time might be a little tight. Submitting additional PRs to the Cookie Cutter for improvements. Working on patches for any changes to the Cookie Cutter so they are made for libraries as well. And clean the typing contained in Adafruit requests. Thank you everybody for your notes. And now we will move to the last section of in the weeds where I guess Paul are you prepared to talk to us about the circuit python community help desk or who's able to do that? Otherwise I'll just read it off. I can do it. I was talking to Katnir earlier. Tektrick and Tammy makes things are typically the organizers. Tammy makes things will be there this Saturday morning but we'll rotate the times. It's an early start for this first one at 8 a.m. Eastern and going till about noon. So really it's an opportunity for both users and developers to come to Discord to get help. Whether that's a user who's got who's stuck on a project or someone that we can help onboard to becoming a developer and they want to work on the code or bugs or documentation. So just we really need help spreading the word. It's this Saturday. We just kind of threw it together about a week ago. So does anyone else have any questions about it? I'm really excited to hear how it will go. Yeah, hopefully some people show up and we can help them out. Where will this be hosted? It'll be in Discord. Sorry, I had to email and that too. I forgot to put that in the original copy. And I think we would need to... I don't know which channel to be honest. So I think the Help with CircuitPython channel would be best. And I will create a unique voice channel for the help desk. It's a great idea. Thank you. All right. And if you have any questions about that just ask around on Discord and we'll figure out more as the week goes on because you know it's the first run. It's a soft open, honestly help desk I think. But yeah, please help spread the word is the last item that it says here. So do that as well. Anything else that you, Paul or anybody wants to say about the community help desk? Nope, that's everything. And as you said, help spread the word. Let's get some folks there and have them join the community. All right. With that, we are done with In the Weeds and I will commence on wrapping up this meeting which is almost coming in at under 30 minutes. So this has been the Circuit Python weekly meeting for September 6th, 2022. Thank you to everyone who participated whether it was live or via notes. If you want to support Adafruit, Circuit Python and those of us who work on Circuit Python consider purchasing your hardware from the Adafruit shop at Adafruit.com. And of course, if you're international you can check the resellers link at the bottom of the page to find out the official resellers of Adafruit. The video of this meeting will be released on YouTube at YouTube.com slash Adafruit and the podcast will be available on all major podcast services. It will also be finished in the Python for Microcontrollers newsletter. Visit AdafruitDaily.com to subscribe. The next meeting will be held on Monday as usual at 2 p.m. Eastern, 11 a.m. Pacific and I believe that is on September 12th. The meeting is held on the Adafruit Discord which anyone can join by going to adafruit.it slash Discord. To be notified about the meeting and any changes to the time or day as well as to participate in the Voice Channel you can ask to be added to the Circuit Python Easter's Roll on Discord. We hope to see you all next week and thanks to everybody who's listening to this after the fact. Thanks everybody and have a great week. Thanks everyone.