 Hello everyone and welcome to the Circuit Python weekly meeting for August 2nd, 2021. It's the time of week where we get together to talk about all things Circuit Python. And of course, it is Circuit Python week all week. So I'm Jeff and I'm sponsored by Adafruit to work on Circuit Python, 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. The meeting is hosted on the Adafruit Discord server. You can join any time by going to adafru.it-discord. We hold the meeting in the Circuit Python DevTex channel and the Circuit Python Voice channel. The meeting typically happens on Mondays at 9 p.m. Eastern, 11 a.m. Pacific, except when it coincides with the U.S. holiday. We have calendars online that will keep you up to date with any changes to the meeting time or date. We can also add you to the Circuit Python Easter Discord role, and then you'll get a small number of notifications each week, most of them about the date and time of the meeting. This meeting is recorded. We record the audio from the voice channel and video of the text channel. If you prefer not to have your voice recorded, for whatever reason, you're still welcome to participate by providing notes in the notes document. The video is posted to YouTube and the audio is released as a podcast. If you don't find us on your favorite podcast service, please let us know. There is a notes document to accompany the meeting and the recording. If you wish to participate but can't make it to the meeting, that's where to leave your hug reports and status updates. After the meeting, we also add timestamps to the notes document so you can use it to skip to the parts of the broadcast that interest you the most. The meeting tends to run 60 to 90 minutes, so it's good to have the option to skip around. Before the meeting, we post a link to the notes document and pin it in the Circuit Python dev channel, so if you're looking to add your notes, that's where to go. This meeting is held in five parts, not counting this one. Next up is community news where we take a look at all things Circuit Python and Python on hardware in the community, and it serves as a preview of the Python on microcontrollers newsletter. Next up after that is the state of Circuit Python, the libraries and Blinka, where we take a primarily statistical overview of the entire project, looking at the numbers as separate from what we're each individually doing. The next part after that is hug reports, where we take a moment to highlight the good things folks are doing and recognize the awesome people all around us in the community on Discord, GitHub, Twitter and beyond. Next after that is status updates, an opportunity to sync up on what we've all been up to. We invite everyone to take a couple of minutes and talk about what you've been doing since we last met and what you'll be up to over the next week until the next meeting. And then the last part, if we have topics, is called in the weeds. It's an opportunity for longer form discussions. These can either be identified during status updates, a sign that is a little long for that format, or something you've identified ahead of time. And that covers how the meeting will go. And with that, I will take my first time code and we will start off with community news. I said it is Circuit Python week all week and Circuit Python day 2021 is this Friday. So on the Adafruit blog and beyond, we're featuring Circuit Python all week. And on Friday, we've got a number of events planned. So check the notes document for the schedule. And if you know of more, let us know with the hashtag Circuit Python day 2021 on Twitter. Let's see. And it says here that Rick Leander is offering 75% off his Kindle ebook 10 games for the Circuit Playground Express all weekend from the sixth to the eighth. And there's a link to that on Twitter as well. A part of the Circuit Python week is a special Adafruit show until Wednesday, inviting everyone to demonstrate their Circuit Python projects as part of Circuit Python day 2021. Moving from headlines to projects. First up, we have a Twitter post testing code for turning an Adafruit macro pad into cruise control for Kaikad rotary encoder under thumb for layer trace width or grid size. And then next become Obi-Wan with an Arduino Nano RP 2040 Connect. Easy to get Circuit Python running with sound and an Adafruit Stema QT gesture sensor. Again, we've got a link to Twitter. And last up for this extract, but not for the newsletter itself. Tinkersteller is an iPad app that helps one learn coding and data science with interactive tutorials or labs where one can edit and run code examples like Python straight away. No need to configure environments, download data sets or rely on networking connection to execute code. And there is a link there to tinkersteller.com. 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. We like to highlight the latest Python on a hardware related news. From around the web, including Circuit Python, Python and Micro Python developments, you're invited to contribute your own news or project by editing next week's draft on GitHub and submitting a pull request with the changes. You can also tag a tweet with hashtag Circuit Python on Twitter or email cpnews at adafruit.com. That wraps it up for community news and we will move over to the state of Circuit Python, the libraries and Blinka. So to dive into the statistics, overall, in the last week, we had 31 pull requests merged by 19 authors, some of the author names I didn't recognize right away were Andre Blue, Lucas Hadfield, Ed Rigg, Tarop, and thanks to them for their contributions, whether you are a new contributor or regular contributor, you are helping improve everyone's Circuit Python experience. Next up reviewers, we had 11 reviewers. Reviewing is the machinery that lets us take in these changes from authors. And so it's important to grow those numbers as well. I haven't seen Carter on the list for a while, I feel like, and Deshapu. So thanks for coming around and spending some time with us. And finally, on the front of issues, we had 25 issues closed by 13 people, and 17 open by 12 people. So it's nice to see the issues numbers trending down, but good activity on both sides in terms of number of people. Next, I will pass the baton to Scott to tell us about the core. Thank you, Jeff. For the core, we had 13 pull requests merged from nine different authors. Shoutouts to Evil Dave 666, CD Wilson, Ed Rigg, and Cam Tom Ford 80 for those new authors. Thanks you to our five reviewers. And I'd like to give a quick shout out to micro dev for doing more reviews. We have we have 10 open pull requests, nine of the 10 are less than 10 days old. So that's awesome. We do have one last one that is for an ESP set of boards that I know folks are still working on. So thanks for them for continuing to take a look at that. Issues wise, we had 12 closed issues by six people and seven open by five. So we're net down, which is awesome for a total of 439 open issues. We have this says 31 open issues for 70 but I just looked in it's actually 29 at this point. So we have still 29 open issues for the 70 stable release. So please take a look at those if you want to help out and test the skip to the end. We're fixing some bugs and 7.0 we're making lots progress on the polish. Please keep testing the pre release versions. And if you do find things that you think should block the 7.0 stable release, please file those issues and we'll mark them as the 7.0 milestone as well. We want to make sure it's in a pretty good shape by the time that we get it out as stable. Alright, thank you, Scott. I've been putting the 7.0 alpha five on a bunch of my boards and it's working really well for what I'm doing. So appreciate like Dan's work getting it out there and everybody's putting the bug fixes in so anyway, but it's not hug reports. It is time for Katnita to tell us about the libraries. Thanks, Jeff. So this applies to all of the Adafruit Circuit Python libraries, which is everything that begins with Adafruit underscore circuit Python underscore, along with some fun extras like the community bundle, the Adafruit Circuit Python bundle and our cookie cutter. So across all of these libraries, we had 17 pull requests merged by 10 authors and nine reviewers. The oldest of those was 94 days old, which is excellent to see that we're still plugging away at the older PRs and most of the rest were four days or less, which leaves us with 42 open pull requests. And that's again across all of those repositories. We had 12 issues closed by eight people and nine opened by seven people leaving with us with 328 open issues. If you are interested in contributing to Circuit Python on the Python side of things, consider going to circuitpython.org slash contributing. You'll find all of this information and more including the open pull requests and open issues. You can search the issues either by searching in the page for keywords or you can search by label. For example, bug or enhancement is a good place if you're looking for something more complicated, we need to get better at curating the good first issue label right now there's only three. And I bet there's probably many more that would apply. There is a guide on contributing to Circuit Python using Git and GitHub. So if you're new to that, don't let that intimidate you or keep you from contributing. And we're always available on Discord to answer questions. In terms of library updates, we had one new library in the last seven days, scd4x, and a number of library updates that I won't read off. Overall, we're still continuing to work through updating all of our code examples, etc, to work with the breaking changes. Early, thank you to FOMI guy and Lee Sam or I per pray for all the work that they've been putting into this project. We're still slowly making it through older PRs. And as usual, if you're waiting on anything, waiting on us for anything, please ping. There's always a lot going on, but we want to make sure that we can enable you to contribute. And that's what I have. Thank you. And to round out this session, maker Melissa will tell us about the Blink of Stats. seem to have lost the window here. Just a moment. Sorry for the dead knuckles here. Okay, for Blinka, which is our circle Python compatibility layer for Raspberry Pi and other single board computers and micro and micro Python. Thank you. We had one pull requests merged this week by one author and three reviewers. There are two open pull requests. And there was one closed issue by one person and went open by one person, leaving a net of 59 open issues. There were 9,815 pi reels downloads in the last month. And there were 75 boards supported. Thank you. Yeah, thank you. All right, that rounds out the state of circuit Python, the libraries and Blinka and brings us to hug reports, which is the first of our two round Robin sections. I will start out and we'll go down the list alphabetically from the notes document. If I accidentally skip over you, please call my attention to it in the text chat and I will come back to you. And if people are not present or don't have a mic, I will read their notes. So getting to my own hug reports, I had a big hug for Ketney for taking the time to catch up with me in a chat last week to Ketney and Dan in anticipation of our YouTube stream on Friday, a big hug to everyone moving the court towards being ready for 7 0 0, especially Dan. And everybody fixing up examples and guides for seven, especially foamy guy and the Samurai Pupre foamy guy, in particular, went above and beyond by actually trying to run the examples. So we found an interesting problem. I think that was on Saturday and sat down together and fixed it. So that was fun and just appreciate you doing that work very much. And with that, I will pass it on to Jerry. There's Ed, but hi. Let's see. Yeah, Jeff, to you for the new camera toys. I'm looking forward to checking them all out and group hug to everybody else. Thank you. All right. Next is the hug report from Ketney. So the first hug that I have is for you, Jeff, for an excellent chat last week. Next up, foamy guy for help with figuring out vector IO and an alternative with display IO dot shape. And for troubleshooting a bug in vector IO with me, also to K match for helping figure out getting vector IO to work again to foamy guy and the Samurai Pupre for continued work on getting the example code and learn code updated for breaking changes. And finally to Dan for fighting the good fight with RP 2040 audio. Thank you. Next up is Melissa. Hi, I wanted to give a hug report to Dan for the Blinka keypad review and for commenting the code will, which made porting easy and hug report Ketney for the macro pad liper and a group of different ones. Thank you. And now at the bottom of the alphabet, it is Scott, town, newt. Hello, two hard reports for me. I want a combined one for the Samurai Pupre and and for going through all the guides and getting rid of the max size keyword arg that we no longer need. And a hug report to micro dev for doing more reviews. Indeed. All right. And next we loop back to Dan at the top of the alphabet. Hello. Echoing what Scott said, I'd like to thank micro dev for doing PR reviews and also working on some existing bugs and issues and narrowing things down and submitting fixes. That's really helpful. Thanks to Katney for testing my tenet of audio fixes, which I put out there last week and finding some problems and the particular problems that you found are very helpful in narrowing down to figure out what the actual bugs are. And then I'd like to thank all the helpers and discord again, which I do periodically because they are really, really, really helpful to the people having the new people and the not so new people having trouble with circuit Python and various. Okay. Thanks, Dan. Next I have notes from David Goud, who is not attending the meeting today, who has a hug for micro dev for fixing the use of all four RGB LEDs on the mag tag. And to foamy guy for the work on updating the learn guides for circuit Python seven. And now I need to interrupt foamy guys. He finishes up his hug reports to finish the section for us. Alrighty. Thanks, Jeff. First report goes out to you. Definitely appreciate the help with some of the issues that popped up with the ULAB examples or micro lab examples over the weekend. Echoing what a couple of folks have said, definitely hugely appreciate Lace Samurai for help continuing to help with updating the learn guides and library example codes for the changes for CP seven to Kevin Thomas, who put in a bunch of hard work on a DEF CON badge that turned out super neat and that they shared. I'll drop a link for that in a moment. Also, they helped me by fixing or by pointing out a couple of things that needed to be fixed in my tile map game guide to worry of wire for looking into the potential issue with Vectory vector IO and then proposing a fix for that in a PR. And then lastly to Dan for helping me get an issue fixed up on macro pad advice that I had. And that's what I got this week. Thanks. All right. Well, I've got one last hug report that I skipped over a hug to higher effect. It was great to have you working with us here in the circuit python community but best wishes as you start your new job, which I think you had told me was today was the day so big day for you. Now we move on to status updates in status updates. We want to hear what you've been up to since we last had a chance to get together and what your plans are for the future. So it is also a round robin just done in just the same way as hug reports. And once again, I will lead off. So last week feels like a bit of a blur, but I added more camera functionality and a little bits to other guides here and there. I don't know if it was now two weeks ago that I added the hidden stuff. I think it was so maybe it was just camera stuff. Anyway, this week is more of the same. I'm going to send a new one page guide about using the camera with Adafruit IO to review and then I am going to be looking whether there are any interesting things that we can adapt out of I believe it's open MV in particular. Maybe we can get some kind of rudimentary object detection or QR code decoding. So just getting a feel for what's in there and what we can lift to use for our own stuff. And fun stuff, I think I mentioned this after we started recording, but there's a long overdue fence replacement going on right outside my window. So there's been a little bit of rattling noise from that, but it hasn't been too bad. They were right by my window two hours ago and now they're halfway down the backyard. So progress is being made. And with that, I will pass it to Jerry and then after that, Catney. All right, thanks, Jeff. Yeah, last week was all fun stuff. I spent the week being being grandpa. So that was that was productive and exciting. Here comes the cat again. Right on cue. This week I just got to try and figure out what it was I was doing before last week and get back to trying and test and break things as much as I can. Sounds like fun. All right, Catney, go ahead. What are you up to? So last week I added the new library to the bundle. Lamar wrote that up and so I took care of the final getting it ready for folks to use. Made a decision following a discussion with Jeff on his LED animation PR and we closed it. Documented the macropad library in the main macro pad guide. There's six, I want to say, but there might be seven new pages with demos, etc. I started some template cleanup which involved getting more code bundle-flied, creating embedded code for the analog in-page instead of using a code element directly in the template page, updating rainbow code, neopixel rainbow code to use rainbow IO if available and fall back to underscore pixel buff or eta fruit pi pixel buff if necessary, and then updating the templates that used rainbow code to remove the individual examples and use the single template embedded example and deleted all the individual examples from the learning guides repo. Basically what I had done because to import color wheel, you either used underscore pixel buff or eta fruit pi pixel buff and we want the code to be tailored, is the word I'm looking for, to that particular board. So basically I had a starter example that was pseudocode that you would then update the pixel buff version which meant every time I made that template I had to make an example and submit it to the learn repo and then embed it in the individual template inside each individual board guide which was not a lot of work for four guides but it's definitely going to be a lot of work for a hundred. So I updated that to use a pretty gnarly looking import statement that's got to try and accept but it will no longer be necessary when seven stable is released so it's going to be gnarly for a little bit and then that'll be able to be updated. So less work because you only have to update it once and it'll use rainbowio in the end so that's good. So this week finalized the template cleanup. The last thing to do is there's links to other versions of pseudocode in the template descriptions which is what you start with like for example an example that uses a button and it says you know choose the button pin. So the rest of the example is there you just put the button pin in and then submit it to learn. So stuff like that I can't put inside the template page it has to go in the individual guide and I when I was doing the cleanup moved a lot of the examples into folders. So I just need to redo the links because the links that are in the template descriptions are invalid now. I need to think of what I want to do with my macropad in terms of shortcuts. I took some previous code and got it to where the macropad is rotated 90 degrees and the each row of keys the shortcut for that is displayed on the screen in a section with a line between them. It's a little bit like it takes a little bit of getting used to because you know when it's upright you can just put the example put the shortcuts in exactly the same for like layout as the keypad and that's not possible when it's rotated 90 degrees but I really like the look and feel of it in 90 degrees. So I have the basis for it I just need to decide what shortcuts I want to do. Also it lights up the it highlights the shortcut when you press the key so that's super convenient. I need to add the two new Stema RTC boards to the current guides for each one once I have the hardware in hand should be here tomorrow. In this case normally when we do Stema updates we kind of wipe the original from the guide and say like hey there's two versions of this you know there's like this old version that you might have but here's the new version but in this case both of these boards are still highly well and the Stema ones are new but like the old one is highly used so it's not a replacement it's actually a new product. So the guide will be a little bit different because it'll still have all the references to the original version for both of those and then also updates for the Stema stuff. I need to work on some new templates and also getting current templates added to guides. I will be prepping for a CircuitPython day chat with Jeff and Dan on Friday. I think I'm going to cover the macropad library and stuff you can do with that and in terms of to echo the fun stuff our AC is dying and so we have someone out for an estimate and also it is very warm so we'll see how long it takes to get that fixed and that's what I've got going on. Yuck. All right next we have maker Melissa and after that Scott. Hello last week I wrote the keypad module for Blinka uh reported that over um and I started working on a guide that uses remote procedure calls from the macropad to the computer to interface with Home Assistant and I'm just trying to get the Home Assistant settings tweaked so it does what I want and then there will be lots of writing. Uh I also worked on some small fixes for the web serial ESP tool that we're preventing and from working with the nvm generator code that I wrote and um this week I'm going to finish working on the macropad guide uh make sure that nvm generator code is wrapped up and then working in state and then I also need to look into an issue with the latest Raspberry Pi kernel breaking things again and that's it. All right and what do you have for us Scott? Hello uh so I'm diving back into the BLE workflow stuff um as folks who watched my deep dive on Friday saw I'm like I've got these really weird assertion issues that happen when I do debug builds with link time optimization on as well um I think I was doing that because I was trying to figure out issues with non-debug link time optimization builds um so I'm going to take a look at that with fresh eyes today and see how far I get and if if I'm not able to make some progress my plan is to like take a step back figure out where I'm at what I have to work on and and see if I can't get going forward some other way I know Dave Dave P was kind of looking at this stuff too so maybe uh maybe he saw some things there that to make some sense um I also found this issue using the code.circuitpath.org uh on android over web BLE where it's getting extra serial characters sent from the device um that are like garbage characters so it's a bit weird and I'm not sure why that's happening so I'm going to take a look into that uh because I'm trying to get back into this BLE workflow stuff um Antonio who we work with on iOS this should be back this uh month so we're really going to try to hit that hard this um so that's kind of where my focus is all right back up at the top of the alphabet we have Christian Walters so good to see you haven't it's been a little while I think um would you like to unmute and read your notes or did I need to read them hold on just a second you may need to be added to you know you're in the correct group um I don't know what's going on why don't you try leaving the audio and returning and see if you can unmute then and meanwhile I will go on to Dan and if that doesn't work I'll read your notes for you so go ahead Dan okay so I'm working on um two major things for 7.00 um I'm revising the HID API to be a little simpler and also to support some more things some more kinds of HID devices and there is sort of an issue we discovered in the past about uh I can't remember iOS or macOS whether they support devices without with the report ID when there's only one device they seem to be persnickety about that so I have to test that again to see if the code the workaround code that I put in is still needed and otherwise I'm working on a lot of things having to do with RP2040 and to some extent SAMD51 audio issues um we've done some testing with that and I've made some changes which improved some things but there's still some very odd things going on uh which aren't not necessarily directly audio right now but for instance background tasks stop running after playing audio twice which is really strange so I've got to debug that okay all right uh Christian any luck unmuting or shall I read your notes all right uh well hopefully you'll come back and we can give it another try soon anyway Christian writes last week attended Europe Python online conference there was one talk about circuit python I gave a micro python related lightning talk myself and there is a link to a pull request into the newsletter if you're interested in the details and this week apparently my get previous traceback editions broke writing of bootout.txt we'll take a look at that and that is issue number 5062 and uh now to round out the section we will finish again with foamy guy all righty thanks Jeff for last week I worked on updating learn guide code knocked out all of the micro lab changes which was a lot of fun because I hadn't run a bunch of those examples before so it was really cool to see the way some of those work also got in a few more of the max size and on disk bitmap updates as well and there will be some more of those coming this week and we still have a decent list but I'm hopeful that we can maybe knock the rest of those out this week I also started working on some sample code for vector IO and display IO shape with the hope being to get it refined and add some supporting text to tell folks how to use them and maybe we can get that put into the display IO guide for this upcoming week I'm going to be testing the vector IO PR tonight there's PR to fix rotation so I'm interested to see how that's going and then I'd like to look into an issue that I've noticed with the turtle library that is possibly related to the on disk bitmap updates or possibly just revealed by those changes I'm not not sure the root cause yet but I'll be digging into that a little bit this week and then the last one for me is on circuit python day I am going to stream on that morning so 11 a.m eastern if folks are interested in watching while I work along on some libraries or projects I'll be streaming that day and that's what I got thank you all right that wraps up status updates and we will head to in the weeds where I have the one topic and I think catney has already responded to it so I want to write a driver for the PCF 8563 real-time clock as found on the seed we know Xiao expansion board and I wanted to know whether to contribute it to the community bundle or the circuit python bundle and so I there's the Adafruit bundle and there's the community bundle but I thought we kind of created this third thing which was a bundle within the circuit python organization and that was the alternative I was not sure about so I'm not sure catney if you want to respond to that and maybe I'm calling things by their wrong names so I didn't realize we had to to third third party for lack of a better word bundles I thought it was just the community bundle and the Adafruit circuit python bundle which is what I thought you were referring to I know we were planning to move the community bundle to the circuit python org is that that happened and that's what you're referring to maybe I'm confused no I think we I think we talked about having a circuit python bundle as well the the distinction that I was hoping to draw was that the circuit python org bundle is for things that more than one person is supporting right that's what I thought it had nothing to do with yeah like week we collectively want to support like the graphics team that we have kind of under the circuit python org is an example of that yeah if there's multiple people who are like on the who want to collaborate on supporting something then I would put it in the circuit python org bundle otherwise I would just put it in a community bundle all right it probably makes sense to put this in the community bundle then based on that because I don't have like a co-collaborator or anything like that I mean ideally seed we know would have their own bundle that they supported their products on but you know well I'm not here to fight that fight I'm here to make a board that I picked up work I think we've all been there all of that said I still think it's worth just if you do it Ping Lamor on the off chance that she's like oh yeah we're totally gonna I'm planning on buying a thousand of those anyway well I think this is the one I kind of mentioned in the meeting and yeah I know she didn't say anything but like you also didn't really commit to writing the driver you were sort of I was thinking about yeah yeah so if I'm saying if you do it right let's find out whether because we do have a few things in the Adafruit circuit python bundle that are either stuff we may eventually support or stuff that Lamor doesn't mind supporting well right like the OV cameras there's no Adafruit product with any of these cameras in them so that's that's why I'm just saying like it'll take you two seconds to ping on slack that's all I'm getting at is if you do this before you pop it into a particular bundle just ping and say hey do you want this in the Adafruit bundle if not I'm tossing in the community bundle done yeah although we could also move it after the fact and it would disrupt me the one person who's installed it ever to do right but I'm just I'm just saying that would be my that's my suggestion all right that's no that's a very concrete and helpful thing to do so all right anybody else have questions about the three or more bundles in the world or shall we go ahead and wrap it up there's a discussion of the draw protocol going on in the text chat with warrior of wire and foamy guy do you want to move any of that into voice in the weeds warrior of wire is not in the warrior of wire is not in the in the chat all right well if you're interested in that I guess read the text chat so in that case I will wrap things up for the official meeting this has been the circuit python weekly meeting for August 2nd 2021 circuit python week words the next meeting is on August 9th at the regular time of 2 p.m eastern time and I suppose that's 10 a.m pacific or something boy um thank you for everyone who participated if you want to support Adafruit and circuit python and those of us who 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 2 p.m eastern 11 a.m pacific thank you scott the meeting is held on the adafruit discord which you can join by going to adafruit.it slash discord this meeting is at a particular time each week but uh there's chat going on 24 7 no matter your time zone or when you prefer to be awake to be notified about this meeting though and any changes to the time or day you can ask to be added to the circuit python east is roll on discord we hope to see you all next week and we hope to see you throughout the week for circuit python week and circuit python day on friday thank you everyone thanks everyone