 Hi, everyone. This is the Circuit Python Weekly for September 12, 2022. This is the time of week where we get together to talk about all things Circuit Python. I'm Paul Cutler, and I'm a member of the Circuit Python community. Circuit Python is a version of Python designed to run on tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit, so if you want to support them and Circuit Python, please consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to adafruit.com. We hold the meeting in the Circuit Dev Text Channel and the Circuit Python Voice Channel. The meeting typically happens on Mondays at 2 p.m. Eastern and 11 a.m. Pacific, except when it coincides with a U.S. holiday. There's a link to the calendar you can view online or add to your favorite calendar app. We will also send out notifications about upcoming meetings via Discord. If you'd like to receive these notifications, ask us to add you to the Circuit Pythonista's Discord role. There is a notes document that accompanies the meeting and the recording. The notes document contains time stamps to go along with the video, so you can use the doc to view only the parts of the video that interest you the most. The meeting tends to run 45 to 60 minutes, so this gives you the option to skip around. After each meeting, we'll post a link for the next meeting's notes document in the Circuit Python Dev Channel on the Adafruit Discord. Check the PIN messages to find the latest notes doc so you can add your notes to the following meeting. If you wish to participate but cannot attend, you can leave hug reports and status updates in the document for us to read during the meeting. The meeting will be held in five parts. The first part is community news. This is a look at all things Circuit Python and Python on hardware in the community. It's a preview of our Python on microcontrollers newsletter. The second part is the state of Circuit Python, libraries, and Blinka. This is a statistical overview of the entire project. 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 people are doing, taking the time to recognize the awesome folks in our community. The fourth part is status updates. Status updates is an opportunity to sync up on what we've been up to. We'll take a couple minutes to talk about what you've been doing in the last week, either personal or Circuit Python related and what you'll be up to over the next week. The fifth part is in the weeds. In the weeds is an opportunity for more long form discussions. These discussions can come out of status updates or be something you've identified ahead of time is too long for a status update. And that covers how the meeting will go. With that, we will go over to community news. Raspberry Pi just released a new version of the Raspberry Pi operating system. It's mostly bug fixes, but it does have one new big feature support for the Pi Camera 2 library. It can only be used with newer versions of the Raspberry Pi OS, but the camera library is supposed to be much easier to use than the original. Next up is Picon UK 2022 is happening this weekend, Friday through Sunday, September 16th through the 18th. There will be a Python on Hardware community showcase this Sunday where you can bring your projects to share. If you're in the UK or in Wales, check it out. And the last one is probably my favorite, which is a steam powered Raspberry Pi Pico. Maker Mike Bell has used a small steam powered engine to power a Raspberry Pi Pico along with a few accessories. The Pico can run for about 12 minutes before the water in the boiler is all gone. The Circuit Python weekly newsletter is a Circuit Python community run newsletter emailed every Tuesday. The complete archives are available online and then the link is in the notes document. It highlights the latest Python on hardware related news from around the web, including Circuit Python, Python, and MicroPython development. To contribute your own news or project, edit next week's draft on GitHub or submit a pull request with the changes. I submit a PR every week to Ann and if you need any help, I'm always there to help you as well. You may also take a tweet with Circuit Python on Twitter or email cpnews at adafruit.com. Alright, the state of Circuit Python libraries in Blanca. Last week we saw 31 pull requests merged from 20 authors, which is great. A couple new names that I didn't recognize is, and I apologize if I pronounce any of these wrong, Pepin Divos, Rivkis, Simple Theory. We had 10 reviewers and we had 24 closed issues by 10 people and 18 new issues opened by 14 people. Dan, will you do the core? Sure, hold on. I've lost my window. Alright, let's go ahead and talk about the core, which is Circuit Python core, firmware. In the past week there were 13 pull requests merged. There were 11 authors. A couple of new ones I see are Pepin Divos and maybe that's it. The other ones I've seen before, 5 reviewers. Thanks for Microdiv for coming back into review and there are currently 19 open pull requests. A lot of those are on hold because of things beyond our control, kind of third-party things. There were 7 closed issues by 4 people and 10 opened by 6 people, so we're getting behind a little bit, but it's not terrible yet. There are 572 open issues and there are 5 active milestones and 6 issues not assigned a milestone, which we need to triage. Okay, that's it. Now I'll turn it over to Catney for the library update. Thanks, Paul. This applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore circuitpython underscore, as well as a few extras including the community bundle and our cookie cutter. For the last week, we had 15 pull requests merged by 8 different authors and 8 different reviewers. The oldest merged pull request was a week old and a majority of them were 0 or 1 days, so we're still getting through some of the aging ones, but we are keeping up pretty well with everything else. And that leaves us with 38 open pull requests. In terms of issues, there were 13 closed by 7 people and 5 opened by 5 people, leaving us down a bit with 622 open issues. 130 of those are good first issues. If you are interested in contributing to Circuit Python on the Python side of things, check out circuitpython.org slash contributing. You'll find all this information and more including open pull requests and open issues. If you're interested in reviewing, check out the open pull requests. If you have the hardware, test it. If you don't, check out the code, see if it looks right to you. Check it for spelling, syntax, etc. And leave us a comment and let us know you did. Once you're more comfortable with that, we can talk about leveling you up to our review team. If you want to contribute code or documentation, check out the open issues. If you're new to everything, good first issue is a great place to start. We have a guide on contributing to Circuit Python using Git and GitHub, and we're always available on Discord to help out, so don't let that part intimidate you. You can search the open issues either by searching the page or you can search by label and clear down that 622 issue list to something more manageable. In terms of library updates in the last seven days, we had no new libraries and a series of updated libraries that I will not read off. And that's what I've got. Thanks, Gany. Melissa, will you cover Blinka for us, please? Sure. So Blinka is our Circuit Python compatibility layer for Raspberry Pi, MicroPython, and other single board computers like Raspberry Pi. And this week we had three pull requests merged by three authors and two reviewers. There are currently nine open pull requests, and there were four closed issues by one person and three open by three people, leaving a net of 84 open issues. There were 11,826 PiWheels downloads in the last month, and we are currently supporting 91 ports, though I expect that to go up here this next week. And that's it. Awesome. Thanks, Melissa. Now it's time for Hug Reports. Hug Reports are a chance to highlight folks in the Circuit Python community for doing awesome things. I'll start, and then we'll go down the list alphabetically to give everyone a chance to participate. Text-only are missing the meeting, but have Hug Reports in the notes document. I'm happy to read them off. So I've got a couple notes. I had to leave the meeting early. Saturday morning we did the community help desk. So thanks to everyone who showed up and covered my time there as well. I got my COVID booster Friday, and it hit me hard Saturday morning. Thank you to Dan and Katny for the time-stamper code that makes hosting this meeting way easier in a group hug. Next up we have a group hug from 2231 Puppy, who's text-only. After that is C Grover, who is also text-only. He says thanks to everyone who participated in the Circuit Python community help desk. Special thanks to those who helped and continue to diagnose a challenging display drawing speed and brightness issue with a titano running 8.0 beta zero. Dan? Okay, thanks. Thanks to MicroDev and Gambler, Mark Gambler for recent fixes to Circuit Python and follow-ups on other things related to that. Thanks to Jeff for tracking down the true cause of a pre-commit build environment mystery. Lee Atkinson had trouble with this. And it was very confusing because it works for some people and others, and it has to do with virtual-env and v-env and a whole bunch of... and Debian packages, and it's very confusing. But Jeff figured it out. Thanks to Neridoc and Tetric, who are working on PRs and support, a whole bunch of things. It's really great to have people working on that stuff. Really, really helpful. Thanks to RetiredWizard and BillADAT, who's... they're testing out new features and finding bugs in the new code that we've been PR-ing. Thanks to Catney, who's been persevering, trying to find the mysteries of read switches that one might buy on Amazon or other places. And she can tell you more about that later. And thanks to you, Paul, for volunteering to be a weekly meaning host. That's really great. It spreads the load. Really wonderful. Thank you. You're welcome. Thank you. Next up is DJ Devin3 and then FoamyGuy. I'd like to send a hug to HopCappy for helping me get past a lot of errors and setting up MySys2 and TO for Windows VS Code. Anecdata for showing me the air of my ways with Socket Pool and a great way to remember it in the Highlander voice. There can only be one pool. To Neridoc for always correcting me whenever I say anything wrong. He's been my mentor for a while, even if he doesn't realize it. MacGyver, the developer of TO for personally coming into Discord and working on package errors, feature updates, and submitting a PR to MySys2 so the default TO install in MySys2 isn't a four-year-old version. Hopefully we'll see an update for MySys2, get pushed out for his efforts, which should make things a little easier for TO users on every platform, but especially for Windows. A hug report to Katni for working on the Laura Mailbox project. I see how deep she's had to go into the code, and I just want to send her a word of encouragement and looking forward to using her upcoming learner guide for my own Mailbox project. To Mark Gambler for sending me a show and tell badge. I've honestly always wanted one, and I'm giddy with joy for receiving it. It's like a newbie badge of honor, and I will display it with pride. To Cgrover and Foamy Guy for initiating a community-wide bug hunt during community help desk on Saturday morning. I learned a lot about bug hunting, and it was extremely helpful. To Paul Kuttler and Tammy Mikes for hosting the Saturday morning session of Community Help Desk. It was totally worth waking up for coffee and a chat on a Saturday. And to everyone else at Adafruit for helping turn dreams into reality every single day. Thanks, DJ Devon3. Foamy Guy, you're up next. Alrighty, thanks Paul. A hug reports this week to Tammy, Keith Cgrover, DJ Devon3, Mark Gambler, to you Paul, and to Dexter, as well as anybody else who I may have missed that participated in the help desk. I had a great time with that over the past weekend. I'm looking forward to getting the next one in when we do. Over on GitHub, this user's name is kind of short for Snakey Maker Cat. Thank you to them for sleuthing and figuring out a pretty intricate issue with the display text library and submitting a fix for it as their first contribution that I could see across Circuit Python. So congratulations and thank you to them. Thank you to you Paul for joining the rotation to help host this meeting. Thank you to Cgrover, Mark Gambler, DJ Devon and anybody else from the help desk or any of the PRs or issues at this point really, who helped troubleshoot and look into the strange display drawing speed issue that's cropped up and then a group hug for everybody. Thanks. Thanks Foamy Guy. Catney? Alright, so a super huge hug and thanks to Paul Cutler, our host, for joining the Circuit Python weekly meeting host rotation and for jumping in by hosting today. Six or seven hugs to Neridoc and Argonne Blue on Discord for helping me multiple times over the weekend with Circuit Python issues and weirdness that I was running into. To my bestie, Brian, for helping me with the Circuit Python program to identify read switch terminals. To everyone who hosted the Circuit Python community help desk this past weekend, I hear it was amazing and I look forward to hearing more. To Dan for trying to help me understand read switches and for making suggestions regarding the read switch explanation of my upcoming guide as well as verifying that I explained time alarms and PIN alarms well enough in the guide also. And to Oats and Honey, Malhor and Ember and Todd bought on Discord for helping me with a battery voltage drain question. It was a little bit of a weird one and everybody had some input on it and it helped me out and gave me the answer I needed and a group hug for everyone else. Thanks, Katny. I will read off the next couple starting with Keith the engineer. He has a hug report for Tanny Makes Things. Myself, Mark, DJ Devon 3, Fome Guy, Maddie T, C Grover and everyone involved with the community help desk. It was a great experience and I'm really looking forward to the next one. A hug report from Mark, a.k.a. Gambler for confirming a bug that Keith ran into with the Metro ESP32-S2 and DJ Devon 3 for testing it on the ESP32-S2 board that they had and highlighting that the bug doesn't occur on all ESP32-S2s. A hug report for Anecdata for a really good sample code in a GitHub issue that made it easy to test if my bug was one that was addressed in an already opened issue. And lastly to the awesome helpful community as a whole. Everyone's support makes working on projects so much more fun and special. Next up I will read off Mark a.k.a. Gambler. He has a hug report for Tanny Makes Things, Keith, Fome Guy and me and everyone else who was at the community help desk. A hug report for C Grover and Fome Guy for poking around the display shapes. Pi Portal-Titano issue on Saturday which turned out to be a stranger but larger performance issue than any of us thought at first. Next up we have Tanny Makes Things. Thanks. So I have the hug reports for Paul Cutler, Keith, the EE, Fome Guy and everyone else who joined in the community help desk. And also to Paul for stepping in to record at least part of the event when my computer suddenly refused to see any valid audio capture devices in OBS which I think is a problem with the Mac OS beta that I'm running unfortunately which means it won't be fixed until the beta is fixed. Hug report to Fome Guy and everybody else who was working on that display performance issue. I never did check back yet and see what the ultimate cause turned out to be but that was some amazing troubleshooting and a group hug to the community for being awesome. Thanks. The last one we have is from Tech Trick who's text only so I'll read those off. The first hug report is for Tanny Makes Things for hosting the community help desk this past weekend. Sad I couldn't make it but excited to help with the next one. Cedar Grove Studios for the new library in the community bundle. Hug report for Ducky the scientist and Fome Guy for fixing the data notation for the RTTL library. I have a dependent project where I noticed the bug but never confirmed it so I'm glad that my songs will finally play correctly. And lastly a group hug. Next up is Status Updates. Status Updates is our time to sync up on what we're doing. I'll start and we'll go through the list alphabetically to give everyone a chance to participate. When I call on you take a couple of minutes to talk about what you've been doing since the last meeting and what you'll be doing up until the next meeting. This is also an opportunity to provide tips and tricks relevant to what people are working on. If a discussion becomes too much for Status Updates we will move it to in the weeks. All right, last week I interviewed Brayden Lane for the Circuit Python show. That'll come out in about three weeks. He's got some really cool Circuit Python products. Todd Bodd and I announced that we're creating a new podcast called The Bootloader which will debut in two weeks. It'll be news and stuff we think is interesting that we'll share from the maker and tech communities. And lastly I'm working on a 32 by 8 Neo pixel trying to make it sound reactive with a spectrogram and make a great product progress and almost done. This week I'll be recording the first episode of The Bootloader with Todd Bodd. I ordered some new audio equipment for the podcast so it's like Christmas while I'm waiting for it. And unfortunately I will miss next Monday's meeting. Next up we have 2231 Puppy who is text only. Last week finished assembling my eFidget PCB and ran Circuit Python on it. This week work out the assorted hardware and software bugs in the eFidget. Next up is C Grover who is also is text only. C Grover submitted two community bundle libraries, Palette Fader which has been merged and DRV8830 motor controller driver which is waiting for review. Now that I'm having relatively good success navigating cookie cutter and pre-comment there are plans to submit more community bundle libraries starting with Range Slicer, a map range like class that incorporates input, yep not even going to try to say that word, hysteresis to reduce noise without filtering delays. Works nicely as a EuroRack CB quantizer but can be applied to other tasks like sensor and potentiometer noise reduction. I used it on a few projects to simulate rotary selection switches to reduce the size of the lawn by 50% to cut water consumption and waste. Trying to be proactive we don't have water issues in our area yet. It was suggested that I was just bored with the weekly mowing tasks. Next up we have Dan H. Okay, thanks. So I've been working on deep sleep current consumption and originally we were just trying to make deep sleep consume as little current as possible but in fact you might want to leave things on during deep sleep like power and I2C sensor that might give you a pin transition for instance to wake you up. So I'm adding an argument to the alarm.exit and deep sleep call which will allow you to preserve the current state of pins and hopefully that will work out and I have to do some more testing on that but it should allow kind of finer grain control over what's going on during deep sleep in terms of the pin state and there's still a lot of other things I'm working on for 8.0 fixing old bugs and new regressions that keep coming up because we get new issue reports all the time. Okay. Thanks Dan. Next up is DJ Devin 3. There we go. Last week I ironed out bugs in my flock box weather station post the link to that and this week I lost power twice this week due to lightning storms and the battery back it didn't skip a beat. There was no crashing due to no Wi-Fi or disconnection from open weather map so I put in some error handling that works great now. Let's see and I took Todd Botts 8 step Pico step sequencer and designed a 16 step sequencer that is obviously TR-808 inspired because it's 16. Designed a PCB based on that it took his board schematics from GitHub and a flurry of excitement hammered out a board designed in with two days with Red Bull then I set the board off to the fab no idea if it works so we'll see if it's going to smoke or not. I started on an RFM mailbox project that quickly turned into an encrypted RFM messenger based on the questions someone had about RFM and so that got me curious and I dove straight into RFM and encryption we're oddly enough and I already have a proof of concept working with fake chat streams like ping ponging back and forth and this is a really big undertaking because the RFM library by default does not have encryption baked in but yes you can send to different nodes where it will only pick up the node but the message itself is still in plain text so I'm working on a way to encrypt the plain text and then only send it to that directed node so it's not all open air if you want an encryption layer one will be available and that's all I got. Thanks cool project call me guy you're up next Alright thanks Bella I cookie-cuttered a new library up for the flip clock display I owe widget that I've been working on some work to expand on the examples I had kind of only the most basic proof of concept as an example with a bunch of older unused stuff in it still so it was cleaned up to show all of the actual basic functionality participated in the help desk over the past weekend and then for this coming week as well as earlier this morning I've been testing and reviewing some PRs including an interesting one that had me learning a bit about the RTTL spec which is ringtone transfer language I wasn't too up on that before but I've learned quite a bit about that this morning in order to test and review a PR there couple other things in the works this week are going to be adding some more documentation and cleaning up the flip clock library code as well as implementing a couple of options inside there that will allow you to use smaller sprite sheets if you want which I think will help it work on devices that don't have as much RAM as the feather TFT devices outside of the circuit python world for about the next month or so I'm teaching JavaScript courses on in the evenings a couple of nights a week so I will be less around in the evenings while I do that that's what I have for now thanks thank you that's very cool cat me you're up thanks paul so last week I worked on the wifi mailbox notifier guide the text content is for the most part in place the last thing to do is images I probably did other things but mostly I worked on the guide this week I need to get images for the mailbox guide and get it into moderation to be published that's done I will find out what's next and that's pretty much all I've got going on thanks cat me maker Melissa you're up next just a second I found it in the docs okay last week I finished up writing the web workflow code editor quick start guide and I wrote a bug fix for the core for folders being able to move inside themselves but needs a little rework on that I fixed a few bugs I found in the code editor while writing the guide I updated the loading animation of the spinning circular blinker I added a directory upload functionality to the code editor and I improved the dialogue layering a bit and this week I'm working on a code restructure I've been wanting to do for a while and I'm testing that and after that I'm going to be working on some features I have a little list to have and that's it thanks next up we have Mark gambler who is lurking last week he submitted a PR for the display shapes pie portal issue there's still a brightness setting issue but the slowdown is now gone thanks for the update tanny makes things you're up next thanks so last week we had the first circuit python community help desk event it went really well and there was lots of positive feedback there were some great conversation discussions in both the text and voice chats I really liked that we kind of left the format loose and we just had some really interesting conversation happening as well as circuit python stuff I also did a bit of hacking on the disco tool python tool that narrow doc wrote and I'm trying to make it so that when you do things which trigger circuit commands like installing and updating libraries that automatically runs a disco tool cleanup on mac os so that the extended attribute files that get generated with mac os writing to non mac file systems get removed because they can take up a ton of space on the device this week I'm hoping to finish that up and also see whether there's a way we can make circuit just not generate those files in the first place I don't know if there's something we can do with how it downloads the library bundles to prevent that problem but I want to do a little fiddling around with that and I'm trying to find a workaround for my OBS issue until the new version of mac os comes out of beta and that's what I've got thanks next up is tech trick who is text only last week created a new library for the Adafruit circuit python bundle a library for working with location beacons like iBeacons submitted a fix for adabot state of circuit python formatting and submitted a fix for the cookie cutter adding blank keywords to the pyproject.tomofile sometimes this week potential PRs for a cookie cutter update and adabot patch for instructions on installing optional dependencies defined in a repose optional requirements.txt file add more documentation to the core look at new libraries to create as well as potentially port to from Arduino and lastly additional typing PR reviews that was status updates next up we have in the weeds in the weeds is an opportunity for more long form discussions that either come out of status updates or that folks have identified ahead of time if you have any in the weeds topics please make sure they get added while we're discussing other things so this week tech trick tech trick added a great one which is what is the community planning to do around hectoberfest this year tech trick says he loved joining it last year and would love to help set things up if that's something we're interested in doing again this year I also had a response that too is we should probably start thinking about planning an October help desk event and maybe we could tie the two together comments do you want me to read off my response yes please sorry okay so we are absolutely doing hectoberfest this year and I would love nothing more than for someone else to help out with things adabot automatically applies the hectoberfest label to all the good first issues as hectoberfest begins and we typically see an influx of PRs so the biggest thing I need help with is keeping track of those PRs and putting in the work with the authors to get those PRs merged so basically in terms of what tech trick already does continue doing what you already do but maybe on a bigger scale for a short period of time does adabot add that label for like blink on libraries like that I'm not certain whether blink is included I know it does for the in fact I'm almost certain blink is not included I could be wrong though I would have to look I can totally check that out I know it does on the libraries that fall under the library section in the state of circuit python so all of those 130 good first issues would end up with the hectoberfest label and it's automatically removed when hectoberfest ends so but I will take a look and see if it snags blink a 2 basically it needs to be labeled good first issue and then it just gets added automatically yep sounds like there's interest in doing it it's just a matter of who's going to lead the effort and coordinate for sure and like I'm usually end up leading it and so bringing tech trick in would be super helpful and anybody else who wants to be involved who else wants to participate in hectoberfest probably must have just been circuit python dev channel or paying any one of us in the meeting as well that showed interest anything else for in the weeds this week alright we'll wrap it up this has been the circuit python weekly meeting for September 12, 2022 thank you to everyone who participated if you want to support Adafruit and circuit python those that work on circuit python consider purchasing from the adafruit shop at adafruit.com the video of this meeting will be released on youtube at youtube.com slash adafruit and the podcast will be available on major podcast services it will also be featured in the python for microcontrollers newsletter visit adafruitdaily.com to subscribe the next meeting will be held next Monday as usual at 2pm eastern 11am pacific the meeting is held on the adafruit discord which you can join by coming to adafru.it slash discord to be notified about the meeting and any changes to the time or day you can be asked to be added to the circuit python he says role on discord we hope to see you all next week thanks everybody thank you very much