 Hello everyone and welcome to the Circuit Python Weekly for April 18th, 2022. This is the time of the week where we get together to talk about all things Circuit Python on this lovely snowy day. I'm Katny 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. Development is primarily sponsored 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 adafru.it-slash-discord. We hold the meeting in the Circuit Python Dev Text Channel and the Circuit Python Voice Channel. This meeting typically happens on Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except when it coincides with a U.S. holiday. In the notes doc there is a link to a calendar you can view online or add to your favorite calendar app. We also send notifications about upcoming meetings via Discord. If you'd like to receive these notifications, ask us to add you to the Circuit Pythonistas Discord role. There is a notes document to accompany the meeting and recording. It contains timestamps to go along with the video, so you can use the document to view the parts of the video that interest you most. The meeting turns to run 60-90 minutes, so this gives you the option to skip around. After each meeting we post a link to the next meeting's notes in the Circuit Python Dev Channel on Discord. Check the pinned messages to find the latest notes docs so you can add your notes anytime following this meeting. If you wish to participate and cannot attend, you can leave hunger ports and status updates in the document for us to read during the meeting. This meeting is held in five parts. First part is community news, which is a look at all things Python and Circuit Python in the community. Second part is the state of Circuit Python, libraries, and Blinka, which is a statistical overview of the entire project. Third part is hunger ports, which is an opportunity to call folks out for doing amazing things. The fourth part is status updates, which is an opportunity to sync up on what we've been doing since the last meeting and what we will be doing until the next meeting. And this week we do not have in the weeds. And that covers how the meeting will go. So with that, I will get started with community news after I take a timestamp in the right place. So first up, 34,000 members reached on the Adafruit Discord server. The Adafruit Discord community, where we do all of our Circuit Python development in the open, has reached over 34,000 humans. Adafruit Believes Discord is a unique way for Python to hardware to connect folks. Join today at adafru.it-slash-discord. And there is a link in the note stock to a blog post that shows you the history of the growth of Discord. We also reached 3,000 members on the Circuit Python subreddit. Thank you to our Reddit readers for choosing to get your Python fix on our subreddit. And there is a link to the blog post and also to the Reddit, the subreddit itself. Raspberry Pi RP2040 Availability. There was a Twitter post by Even Upton that said somebody posted about the number of Raspberry Pi RP2040 chips in stock at a particular location and even replied with lots more where that came from. We shipped 500,000 units per month last quarter with a capacity to scale that several times if we need to. So it's an update on production after a post on microcontroller availability and price. And then there's also an interview with Even linked in the notes. Next up is a command line game designed to help you learn Git. Git Good is a command line game designed to help you learn how to use the popular version control system known as Git. As levels progress, you will know more and more about Git and eventually become a Git grandmaster. There's a link to that on GitHub. And finally, the project of the week this week was testing math precision. Doing math operations on microcontrollers, which most often uses fixed bit lengths to represent numbers can result in rounding errors, decimal numbers that are close to the result, but not quite right. User hide underscore G took a look at various Python implementations to check this out. And there's no link in this because I didn't copy the whole thing. There was a significant amount of information about this. They posted different Python versions, including circuit Python, regular Python. And I figured I would leave that as a cliffhanger because this is all pulled from our circuit Python weekly newsletter, which is a circuit Python community run newsletter emailed every Tuesday. Archives are available on a fruit daily comm slash category slash circuit Python. And it highlights the latest Python on hardware related news from around the web including circuit Python Python and micro Python developments. You can subscribe by going to Ada fruit daily comm. And if you wish to contribute your own user project, you can edit next week's draft on GitHub and submit a poll request. Or if that's a little outside what you are interested in doing, you can also tag a tweet with hashtag circuit Python or email cpnews at Ada fruit comm. And that's any kind of circuit Python, Python, whatever projects or, you know, fun things just whatever you find or whatever you're doing, we want to know about it. And that is community news. So that brings us to the state of circuit Python, the libraries and Blinka. This is a statistical overview of the entire project, which is a chance to see things by the numbers, aside from what we're all up to. So overall, which applies to all three of those. There were 14 pull requests merged by 13 authors, two author names that I don't recognize or awgrover and R. I. Vimey. There were 10 reviewers. Thank you to all our reviewers. And in terms of issues, we had 12 closed issues by seven people and 15 opened by 13 people. That's where we are overall. So with that, I will turn it over to Jeff to talk about the core. All right, I am totally prepared to talk about the core. So thanks for asking me earlier. In the core, we didn't have a lot of activity. We had two pull requests merged by two authors and four reviewers. So that was one of really well reviewed pull request. A lot of people gang up there. In terms of pull requests, we have 19 open pull requests. The ones that have been open for the longest time are waiting for us to decide we're ready to do version 80 and make incompatible changes. While about two thirds of the total are under three weeks old. So while we and maybe I in particular need to do better at keeping on top of pull requests, it could be a lot worse. Issues wise, we closed eight issues while we had six issues opened by six people. So we're down a little bit on issues. We are left with 525 open issues, but we categorize them according to milestones. And a milestone milestone we reached is that there are no remaining open issues for the seven to X milestone, which means we may be done doing bug fix releases of that series. And we're going to concentrate on getting to version 730 for which we have four open issues we'd like to resolve. The vast majority of the issues are categorized as long term, and that means a different doesn't prioritize working on them. But that doesn't mean that you shouldn't pick up one of them and work on it if it scratches your itch. And I guess as far as activity goes, I would like to accept I don't have the the names in front of me we've got a couple of people who are really picking up work on the Is it the IMX series of microcontrollers that which includes the teensy 4.1 and it's really great to see that work going on. And I think a lot of pull requests are going to come out of that because we haven't had somebody concentrating on that part of the work. Yeah, so that's what I know about the core. Please keep up when we make a new 73 pre release or the 73 final release sometime soon once we can get through just a handful of issues. Thanks, get me that's what I got. Thanks Jeff. Next up, I will talk about the libraries. So across all the libraries which is everything that begins with Adafruit underscore circuit Python underscore as well as a couple extras including the community bundle. We had 10 pull requests merged by six or by nine authors with six different reviewers. Two of those pull requests were over 20 days old which is good to see that we're getting through some older pull requests. And it looks like we're keeping up also with newer pull requests. And that leaves us with 20 open pull requests across all of the libraries. We had four issues closed by four people and seven opened by six people, leaving us with 634 open issues 198 of those are good first issue. If you're interested in contributing to circuit Python on the Python side of things check out circuit Python org slash contributing, you'll find all of this information and more including a list of open issues. And if you're looking for something you're new to everything and you're looking to contribute, check out the good first issue label. Those are all curated issues that we feel are a good place to start if you have never contributed to circuit Python or open source before. And remember that we are always available to help out and we have a guide on contributing to get a continued circuit Python using get and get hub. So I don't let that part intimidate you we can definitely help you out if you're interested in reviewing check out the list of open pull requests. Take a look test it if you have the hardware. If you don't check out the code see how it looks let us know leave a comment. That's always very helpful. And in terms of library updates in the last seven days. There were no new libraries, but a number of updated libraries which are in the notes. So if you're interested in that check it out. And with that I will turn it over to Melissa to talk about Blinka. Hello, so Blinka is our circuit Python compatibility layer for. Micro Python Raspberry Pi and other single board computers. And this week we had to pull requests merged by two authors. And three reviewers that the there are currently for open pull requests and there were zero closed issues by zero people. And two open by two people leaving in a 74 open issues. There were 11,664 pie wheels downloads in the last month. And we are currently supporting 84 boards. And that's it. Thanks Melissa. So that completes the state of circuit Python the libraries and Blinka. With that we'll move on to hug reports hug reports is an opportunity to highlight the great stuff that folks are doing in the community. If you experienced anyone helping out with something or saw a really neat project or anything that you feel is worth identifying someone for. That's what hug reports is all about. So we'll do this is around Robin I will start and then I will go down the list as it is in the notes document. I will read off notes for folks who are text only or missing the meeting. And I will hand it over to folks who are in the meeting to read their hug reports. So I have a bit of a list today. First up hug report to Crayola for taking a look at my Python 2022 circuit playground blue fruit demo and for making suggestions to clean it up a bit from the initial code. To Jeff for proofing my update to the Python 2022 circuit playground blue fruit quick start worksheet that I adapted from the 2019 circuit playground express version to Melissa for offering to do the same. To Phil for creating some short URLs for me and taking the extra time to bring the dev team in to sort out how to handle duplicate URLs so I could have updated links to the same content is 2019. And to the dev team for figuring out how to create duplicate URLs in our short URL system to Dan and Jeff for the chat about open court issues last week. And finally to foamy guy for inviting me to his deep dive last week and to everyone who participated. I had a lot of fun with that and there were some great questions and I appreciated being able to join and had a lot of fun as I said. So that is my hug reports next up I have notes from Dan. Who has a hug report for me for testing proposed neopixel timing fixes on some unusual neopixel strands to Naradok for working on listing frozen modules in the support matrix and to Kurt E and mjs 513 for a lot of I am x work to support teensy boards. And next up is to ship. Great text only today. I will go ahead and read it off. She has a hug report for foamy guy for the deep dives and a group hug. Next up is foamy guy. Alright, thanks Kenny. I have reports this week. Thank you to you for coming on the deep dive. I definitely had a great time as well. Thank you to everyone who watched and all the folks who asked great questions in the chat. I have a hug report for near doc who helped me with some stuff that I was trying to do inside the core. I got much farther than I would have without the help that I received so I'm grateful for that. As well as also help me with some other library stuff this morning and generally of course is always helping folks in the help with channel on discord so thank you to near doc. To tech trick for helping me get the multiple cookie. PR in the request library tested out I made a silly mistake there and tech trick pointed me in the right direction and had a server setup to do the testing on that specific thing. So thank you to tech trick. I have a report from my wife Christina who proofread my typing guide page. I tend to just kind of spill my thoughts onto the page and they don't generally come out in a in the correct way I guess. Anyway, but I definitely appreciate the work getting getting that stuff corrected and actually correct. I'm blanking on the right term that I'm trying to think of but that's alright. And then lastly I just have a group hug for everybody else. So thank you to everyone. Thanks Tim. Next up is Jeff. Hi again. I wanted to give a hug to you can you for writing up a blog post about our Picon presence. And another one for you and also to Dan for taking some time to go through the open issues last week. We had let it go for a little while and hadn't categorized the issues as far as milestones and it was good to sit down together and just work through it. Thank you. Good to know that blog post went live. I wrote it on Friday. All right. Next up is K match. Thanks. So this is to a user, not in the circuit pipeline community, but active on ESP 32 expressive forum, perhaps they're an ESP employee user is ESP sprite. And they provided some great technical support on the new LCD peripheral on ESP 32 S3. I appreciate that. Thanks. Excellent. Next up is maker Melissa. I want to give a hug report to Nacho for helping with getting them to be driver working and you were probably everyone else. Thanks. Next up I have some notes from Mark, who is not in the meeting who says a hug report to PT for the tour of Adafruit while I was in New York City. Next up I have notes from Tammy makes things who also is not joining us today and that's a group hug. And finally next up is tech trick. Hi, yeah, so group hug to foamy guy echoing back back at them for helping with the PR on the multiple cookies. Definitely. I know the library is used and actually frozen in for a couple boards. So always appreciate getting the extra eyes on that and getting that tested and merged and another one for foamy guy and you can be for the awesome deep dive about the libraries. It was a pleasure to watch and a group hug. Thanks. All right, that sums up hug reports, which means it's time for status updates. Status updates is an opportunity to sync up on what we've all been up to since the last meeting and what we're going to be up to until the next meeting. So take a minute to talk about what projects you're working on, what you did over the last week, as I said, and what you plan to do over the next week. Also, if you have any fun personal things going on, and you want to talk about that we're always interested in hearing those two. So don't hesitate to include anything like that. I will start and we'll do this is around Robin is Hug reports was done and everyone who wants to get a chance to participate. So first up is me. Last week, I published the ESP 32 s three feather guide, along with all that goes with that, which is to say fritzing objects and pretty pins diagrams and all of that stuff. A lot of it was what's called mirrored from the ESP 32 s two guide, which is to say the page that's in the s three guide is actually the same page that's in the s two guide and if I make any edits to it, I have to edit the s two version. Because they're basically identical boards. The layout is exactly almost exactly the same the chip just fits right in, which is part of why we jump so quickly to doing the s three is that it was not as much extra work as a new microcontroller board usually is. And so that guide is out there's still a couple of tweaks I need to make to it but I believe it's published. And then quick updates to three guides for boards that had minor revisions. The pie you are the BLE sniffer friend and the PCF 8523 all had changes to either, you know, a chip size, or so not the chip itself is different, but it is just a different package. Or now it's usb c instead of usb micro. This is all due to parts shortages and us, you know, working with what we can get. So this week, I'm going to continue testing pie leap. Last week or the week before I don't remember when I tested it and found a couple of bugs. And that is my job with testing pie leap is to find bugs. So I need to actually go through and test every single project that's in there to make sure that it actually works as intended and then I will be testing the way to add projects to pie leap. We have a JSON file that it queries and then that project shows up in pie leap. If you add it to that JSON file, it's much easier than it was. But I need to test that and make sure it works as expected. And then I'm going to be working with Trevor to make sure any bugs in pie leap are fixed. We're basically going to go into a bug fixed mode. And I will be directing Trevor to make sure that we get, you know, one thing fixed at a time and we get through each thing and get a release and able to test it and make sure everything works. And then prep for PyCon 2022. This is coming up in a week and a half. I'm going to be leaving in a week and a half. So it is, it is time to buckle down and finish prep. I did some last weekend I did some just this past weekend as well but during the week I will actually be doing some prep now. So last weekend, as in yesterday and the day before, mostly finished the Circuit Playground Blue Fruit demo to flash onto the boards we'll be using for open spaces and considering changing one small thing but I want feedback before doing that. Continued sorting out my hardware kit for PyCon and started writing my talk for the Education Summit, which is a day long event that happens before PyCon. And it's about Python in education and I'm doing a talk on Circuit Python in education. So, and then I'm also hosting a mini sprint which is basically, you know, just here's, here's some Circuit Playground Blue Fruits. You want to learn how to play with Circuit Python, join us. So that is what I've been up to. Next up I have notes from Dan who says working on improving Neopixel timings for a variety of Neopixels, especially on the SAMX 5x, which is to say SAMD51. He has a good assortment of different base chips now to test against. Debugging gaps between I squared C transactions on the ESP32 boards, the S whatever or C whatever boards. The gap size is approximately the free RTOS tick length and it appears to be multitasking related after varying some tasking timings. Tracking down what we are actually doing with tasking also looks like we may be waiting too long to service the tiny USB task. And then continuing to test the ESP32 SPI Wi-Fi hanging. And next up is the Shibu. So is it fixed? It is fixed. Yay! Sorry, I've been playing a bit with old school LCD displays. I've been inspired by the SensorWatt project of course. And with some discrete strips that are able to drive them. So that's basically from the next week. In previous week I was working on a new version of my Pew Pew device. And it has a 9-bit SPI display from Nokia 1202. That was very popular phone and that's why those displays are super cheap now. You can get them for a dollar or something. So I hope to get the price of at least the fabricating of the device to below 5$. So that's that. But while working on that I discovered that display IO has been broken on some D21 boards. Including the Halloween since 70. And I wrote it down to a single commit that changes how the system clock works on some D21. But I have no idea how to follow from that. What actually is broken, the changes themselves don't refer to display IO at all. So I have no idea how to fix that. Just if anybody has any suggestions I'm open to that. And finally I will run CircuitPython Workshop using those Pew Pew devices on the next EuroPython in July in Dublin. Actually we will be using the devices from 2019. Because we have some leftover from back then. And you can't produce new ones because they're shorted. So that's that. That's all. Thank you. Did you file an issue about the display IO thing? Of course. Okay, excellent. I'll link it in the description. Perfect. All right, next up is FOMIGuy. All right, thanks Kenny. So last week I made an attempt to refactor some code that was checking on types and sizes inside of the tile gritter initializer function inside the core. To try to be able to reuse it from a new bitmap setter property, which I also worked on. But I did not, I was not successful. I got it refactored into its function, but I couldn't figure out how to get it to return the right stuff. Also this past Friday, as we mentioned before, we did a special library focused episode of the deep dive. And I probably did more things last week, but I did not write them down as I went and then could not recall them this morning. So getting into this week, I made a couple PRs. One was for a small issue in the ESP 32 S2 TFT library with a typo in the read me on the circup install. And then also another one on that same library trying to make it more optional to have secrets pie. I noticed the simple test doesn't use the network but does still require secrets pie. So I made kind of a quick first attempt at making that optional and made a PR for it this morning. Testing out a couple of different various PRs around different libraries. The one that probably took the most time and attention was the multiple cookies on the request library. Continuing on this week, I am going to kind of undo some of that refactoring and get it back into a working state. And then also add an additional restriction to make it so that the when you do want to change the bitmap, we'll just make it so that you have to change it to a bitmap that is the same size, which negates the need for checking to make sure that the size is a multiple of the tile size, because it will definitely because it will be the same as the one that was originally set, which does, you know, it's a limitation, but it does still work for like everything that I had in mind for it. Maybe someday in the future, it might be nice to be able to support different sizes, but being able to change to the same size actually will do everything that I have in mind at least for now. And then the last thing I have for this week is to get the typing guide page submitted for moderation in the learn system. Excellent. Thanks, Tim. Next up is Jeff. Hello. It was another floppy heavy week. Don't I say every week that we're about wrapped up on floppies? It's always a lie. So I had a lot of good luck with converting files to the .was format for running an emulation on Apple II emulators to bring copy protected software off of those physical floppy disks and into the virtual realm. And then the other thing I did was created a program for visualizing the flux on a floppy kind of in a pie chart thing. And I've dropped links to those in the discord chat a little bit on the circuit Python side. No, wait, this next one's Arduino. There was a problem with the Adafruit Arduino CI that gave not working. You have two files for samd51 and that is fixed. And no, no Python, circuit Python stuff. I made a case for my PyGamer which I posted up on the usual sites for that. And that was a lot of fun. Anyway, this week I have some stuff I need to pull request into PyBadger. I fixed some problems with the display dimming and I want to add a new example that uses async.io so that I can run the LEDs and respond to the buttons to change the badge display at the same time. And then I'll just generally take a look. Last week I assigned myself some circuit Python issues. And there's maybe still some more floppy drive stuff. I have some PRs that I keep saying I need to go back and figure out what I need to do before they'll be merged in FlexEngine and in GreaseWeasel and I'm not even really sure of the state of those. But yeah, that's what's up for me. And then of course the week after is PyCon, which is really exciting. Thank you. Alright, thanks Jeff. Next up is K-Match. Thanks, Danny. So work continues on the ESP32-S3 frame buffer displays. And thanks to support from the ESP, the expressive team, I was able to get a bouncing square working in circuit Python and eliminated the screen glitching that was there before. Thanks to their code. Subsequently found a way to convert their code so that I could trigger the display refresh so I could eliminate the tearing effect, which sometimes happens if you draw while the screen is refreshing. So I found a way to resolve that. So this week I hope to clean up the code a little bit to make it a little more friendly so that it handles the pins properly, particularly when it falls down into the REPL to see if I can make it behave like it's supposed to. And I need to at least make a first commit so I can not lose all my code. I need to do that this week. And then I still have some comments I need to make back to the ESP folks to help their IDF code be more suitable for what we need in circuit Python and see if they're open to that. So I need to clean that request up and submit that. And then lastly, I put this off another week, but I need to test the capability of IR time of flight sensors to see if they can actually detect how far a bowling ball passes you when it's going by at 16 miles per hour. So I'll see if that's even possible or not. So that's it. Excellent. Keep us posted. That sounds interesting. Next up is maker Melissa. Hello. This last week I got an alternative display. It's a MIPI driver for all the displays working. It's kind of a universal driver that I'm working on for the Raspberry Pi. And I wrote the init commands for three different types of displays. And I'm working on an installer for that driver so it can be fairly easily, I'm making it so it can fairly easily integrate back into the Pi TFT driver. And this week I'm going to finish that up as well as some preparations for Python such as reviewing documents. And that's it. Excellent. Thanks Melissa. And next up I have some notes from Tammy makes things who's not here today. Last week due to starting a new job and also a death in my extended family didn't work on anything circuit Python related last week. This week Twitch, which is twitch.tv slash Tammy makes things streams Wednesday at 5 30pm Pacific and Saturday at 11am Pacific, working on the circuit Python card library and hopefully working on more typing PRs. And next up is tech trick. Yes, so this week, this past week just got over still getting over being sick and preparing for Passover so all bed and no bread here. So that has been the majority of the past week. In addition, I have the pleasure of moving twice this year so I will be preparing for that so then I have been preparing for that so it's been a really relatively light week still been working on as we've said a couple times the testing the PR for the multiple cookies. And then the other thing I was able to finish working on this week was adding the auto magically attempting multiple networks in the portal based library. If you add a new networks key to the secret stick. So, otherwise just trying to help with reviewing PRs and looking at issues this upcoming week. Again, packing so another light week and trying to tackle some of my own submitted issues. There's a few there regarding documentation that I'll try to get to. And as everyone else has said, starting to gear up for Python. Excellent. So that is status updates thank you everyone for keeping it concise. So this week we have no in the weeds, because we wanted to end early it looks like we probably could have accommodated in the weeds. But I think it's better to keep it, keep it small and wrap it up. So, this has been the circuit Python weekly for April 18, 2022. Thank you to everyone who participated. Next week's meeting will be an April 28 Monday as usual. If you want to support Adafruit 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 be available on major podcast services. It will also be featured in the Python for microcontrollers newsletter. Visit adafruitdaily.com to subscribe. I already talked about the next meeting Monday the 28th at 2pm Eastern 11am Pacific. It's held on the Adafruit discord which you can join anytime by going to adafru.it slash discord. And if you wish to be notified about the meeting and any changes to the time or day you can ask to be added to the circuit Python Easter's roll. And with that we hope to see all of you next week. Thank you for participating and thank you for dealing with our, oh is it? You are correct. Whoever put it in the notes for me put it in wrong. So the next meeting is April 25th. That's Monday at 11am Pacific 2pm Eastern to clarify 25th. Okay. And with that thank you for pointing that out and thank you to everyone who participated and I hope to see you all next week.