 Okay, hello everybody. This is the Circuit Python weekly meeting for October 12th, 2021. This meeting is on Tuesday instead of the usual Monday because it's a Monday holiday in the United States. It was a Monday holiday yesterday. But this, we get together once a week, usually on Monday and occasionally on Tuesday, to talk about all things that are Circuit Python. I'm Dan. I'm one of the core developers of Circuit Python and I work for Adafruit. Circuit Python is a version of Python that's designed to run on tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit. So if you want to support them and Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to the URL adafru.it slash discord, all lowercase. We hold the meeting in the Circuit Python dev text channel and in the Circuit Python voice channel. As I mentioned, this meeting typically happens on Mondays at 2 p.m. Eastern time, 11 a.m. Pacific U.S. time, except when it overlaps with U.S. holiday. So we usually move it to Tuesday. If the meeting time has changed, we'll notify you of the Discord. If you want to be notified about changes to the meeting time, we can add you to the Circuit Python Easter's Discord role. Just ask us. There's also a calendar available, a Google calendar available that we try to keep updated if you'd like to subscribe to that. This meeting is recorded. We record audio from the voice channel and video of the text channel and Discord. If you'd rather not have your voice recorded, you are still welcome to participate via text. The video of this meeting will be posted to YouTube and the audio is released as a podcast. If you find this podcast is not available on your favorite podcast service, please let us know. There is a note stock to accompany the meeting and recording. If you wish to participate but you can't make it to the meeting, you can leave hug reports and status updates for us in the document and read them off during the meeting. The notes document also contains timestamps to go along with the video so you can use the doc to view only the parts of the video that interest you most. The meetings tend to run 60 to 90 minutes so this gives you the options to scope around. A link to the notes document is posted to the CircuitPythonDev channel on the Adafruit Discord every week. Check the pin messages at the top of that channel to find the latest note stock. This meeting is held in five parts. The first part is community news. This is a look at all things CircuitPython and Python on hardware in the community. It's a preview of our Python on microcontrollers newsletter. The second part of the meeting is the state of CircuitPython libraries in 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 in terms of so it's like it's quantitative rather than qualitative. The third part is hug reports. Hug reports is an opportunity to highlight the good things folks 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. Take a couple of minutes and talk about what you've been doing in the last week since the last meeting and what you'll be up to over the next week until the next meeting. 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 as too long for status updates. So just add something to in the weeds if you want to have us bring it that up at the end. And that's how we'll run the meeting. So now we'll start with community news and I'll go over a few of the top headline items from the latest circuit python. Python on microcontrollers newsletter which actually came out already because it's Tuesday. Or did it? I think it did, yeah. So the top headline is that Python becomes the number one programming language via the TIOBE survey. For the first time in more than 20 years the TIOBE programming language index has a new leader of the pack, the Python programming language. Long-standing hegemony of Java and C is over. Python, which started as a simple scripting language as an alternative to Perl, has become mature. It's ease of learning, it's huge amount of libraries, and it's widespread use in all kinds of domains has made it the most popular programming language of today. Congratulations to Guido van Rossum and the many contributors to the Python ecosystem. Our second item is that the Mew editor, which is a beginner's editor for people using Python, especially on Python or microcontrollers, the beta 1.1.0 beta 6 version of that is out with multi-language support. Thank you for ever taking time stamps because I'm trying to do so many things that much. Go and look at codewith.mew and you'll be able to download the latest version, which is available for a variety of platforms. Another milestone we've reached is that there are now over 3,000 closed Perl requests in the Circuit Python core. There have been over 3,000 closed Perl requests in Circuit Python that shows how much activity we've been doing. There are a few full requests in there that were not merged in and were just closed because they were replaced or we decided not to merge, but the vast majority of those are regular Perl requests that reflect contributions. From Circuit Python's humble beginnings to Circuit Python 70.0, this open-source project keeps getting better and better. Next headline is that the stage game library for Circuit Python is ported to the Pymeroni ecosystem. With the help of gadgetoid at Pymeroni, Deshipu, who joins us frequently in Discord, has ported the Circuit Python stage game library to the Pymeroni ecosystem, which is a Raspberry PyPico-based gaming device. Both vacuum invaders and jumper wire work fine. This is terrific, it means that lots of games will be able to run on even more platforms. One more headline. Guido Van Rossum talks about speeding up Python, that is C-Python, not MicroPython or Circuit Python. The software at scale podcast number 34 presents faster Python with Guido Van Rossum. The podcast discusses Guido's new work on making C-Python faster. You can look that up in the PEP site 659. Tears of Python interpret execution and high-impact low-hanging fruit performance improvements. And finally, if you'd like a poster of Circuit Python 7, you can get one in the Adafruit store. This is a limited edition poster. We didn't print as many as usual because of issues with getting it printed, but feel free to get one. It comes in a tube, so it's got no creases. All right. I'd like to contribute to this to the weekly newsletter. The Python or MicroController's newsletter, you can add things to, there's in notes, you'll see a pointer to GitHub repository where you can submit pull requests for things to add. You can also send mail to cpnews at Adafruit.com and you can tag us with hash Circuit Python on Twitter. Any of those ways are ways to get things of interest into the newsletter. The newsletter is really interesting and has a lot of links to things, a lot of pictures, and you'll find out a lot of things that you hadn't heard about. All right. Let's go on to the state of Circuit Python, the Circuit Python libraries, and Blinka. Overall, in the past week, and it's a week plus one day, I think, we had 38 pull requests merged across all repositories with 21 authors and 13 reviewers. 20 issues were closed by nine people and 18 new issues were opened by 14 people. And we've assigned the Hacktoberfest label 301 issues so we could, if you're new to working on Circuit Python, take a look at those issues with those labels because they were especially good for new people to work on. In the Circuit Python core, that's the firmware for Circuit Python itself, Katnney says, don't use Hacktoberfest labeling instead, search for the good first issue label. So I'll go back to the core. In the core Circuit Python firmware, we had 23 pull requests merged with 12 authors and six reviewers of those pull requests. There are now five open pull requests. There are a few that have been open for a while, but mostly I think because they're drafts, and then the rest are pretty short range and are still being worked on actively. There were 11 closed issues by four people and seven open issues by seven people. And we assigned the Hacktoberfest label to 20 issues and look for those if you want to work on something. I guess that's not true, so but see look for good first issue. We have 434 open issues. A lot of those are long term. We have 15 open issues to work on for 7XX releases. Five issues that we've deferred to 8.00 probably because they reflect changes that we can't make in 7.00 for backward compatibility reasons. There are 17 open issues in the library. There are 392 long term issues, and there are five issues that seem to be sort before issues, and all the issues have been assigned to Milestone for right now. All right, Katani, could you go ahead and do the libraries if you're available? I am. All right, so this section applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore CircuitPython underscore, as well as a few extras such as the community bundle and our cookie cutter. So over all of those repos, we had 12 pull requests merged by 9 different authors and 8 different reviewers. The oldest of those was 52 days old, so it was good to see another older pull request get merged, and everything else was either 0 through about 4 days, leaving us with 59 open pull requests. We had 7 issues closed by 5 people and 10 opened by 8 people, leaving us with 628 open issues. 283 of those are good first issues. If you're interested in contributing to CircuitPython on the Python side of things, check out circuitpython.org slash contributing. You'll find all of this information and more, including open pull requests and open issues. You can search those issues by label. There's a drop down, and if you're new to everything, check out Good First Issue. We created a large number of those in anticipation of Hacktoberfest, but it's something that we've been looking to do for quite a while is to actually have a well-curated list of Good First Issues for new folks. Read the instructions in the huge number of them that we created. They're well defined, and there are two of us that you can tag on those for help, and we can get you in touch with our whole review team, which will enable all of us to be able to assist you with those. There is a guide in the Adafruit Learn system on contributing to CircuitPython using Git and GitHub. It is a great thing if you are new to Git and GitHub and you want to contribute, and once again we're always available on Discord to help you. In terms of library updates in the last seven days, we had one new library, Adafruit CircuitPython OV5640, and a number of updated libraries, which I will not read off. Overall, we are currently seeing a slight influx of new folks, presumably from Hacktoberfest. A bunch of people picking up our new Good First Issues, which is excellent. That is the whole reason we put them in there was so that folks could pick them up. And thank you to everyone who has been stepping up to review those PRs, because obviously we're not doing the whole process if we're not also reviewing them. So thank you so much for that. And that's where we are with the libraries. Okay, thank you, Catney. Okay, the next section is Blinka. Melissa is not in the chat right now, so I think that Scott said he would read the Blinka section. Yeah, thank you. Okay, so for Blinka, Blinka is a CircuitPython API compatibility layer for single board computers like the Raspberry Pi and MicroPython. So here's the stats for Blinka. We had three poll requests merged from two different authors, so thank you to those authors. We had four reviewers, so thank you to all those reviewers. We have six open poll requests, four of them from the Blinka library, one from Blinka BLEIO, and one from Platform Detect. The oldest is 244 days old. Issues-wise, we had two closed issues by two people and one opened by one person, so we're net down one, for a total of 64 open issues, and that may just be on Aida for Blinka. I'm not sure it's aggregated. In terms of downloads, we had, according to PiWheels, we had 11,432 downloads of Blinka in the last month, and we now support 76 different boards. Okay, thank you, Scott. Our next section is Hug Reports. Hug Reports is a chance to highlight folks in the CircuitPython community and beyond for doing awesome things. As mentioned, this section is held as a round robin, or I didn't mention that, but normally we mention it, and where we'll start, we'll go down the list alphabetically and circle around to the top to give everyone a chance to participate. If you're text-only in the chat or you're missing the meeting, you can add your Hug Reports to the note document and they'll get read off. Because I'm near the top, I will just start at the top so we don't have to reorder this, so I'll note that Charles Burniford is lurking and gives a group hug, and then I'll give my hug report. Thanks incredibly to Catney, Jeff, and Scott for introducing me to Running the Meeting, which I haven't done before. Catney has helped me out in a bunch of ways, including several trial recordings for me to try to get the recording software to make sure it works right and that the sound is and muting and non-muting is working right. Thanks to Jeff who worked on the Running the Meeting document. I think that's right that he worked on a lot of that, but we've all contributed to it. And thanks to Scott for initiating the whole meeting thing and setting the protocol of how the meeting runs, which is an excellent example of how to run a community meeting. And now we'll go on to David Glaude who's lurking, so I'll read his. Thanks to Dan H for running the meeting. Thanks to B-Box OS for four times in a row with a project in the newsletter and a group hug. Too many people to thank since my last contribution to the meeting quote unquote. All right, full week guys up next. Go ahead. All right, thanks Dan. This week hugs are going out to Mark Gambler for helping review all of the type info PRs that we made for Hectoberfest to Jeff and MicroDev who both reviewed and offered up some good improvements to a PR that I put into the core to fix an issue that I found with displays when you initialize them. And then lastly to Niradak and Todd Bot, both of whom helped me figure out how to get to safe mode on Raspberry Pi Pico and showed various ways to attach a reset button to make it easier. So thanks to all those folks. Okay, thank you. Probably Guy. Jeff is up next. Hi. First I want to start off with a group hug and then I want to thank Lady Aida. We've been having a chance to work directly together on the OV 5640 camera stuff and that's always nice even if my code is not always up to snuff on the first run. Dan, thank you very much for running the meeting. And KMatch98 and David Glaude and, let's see, I guess I noticed King or North was listening in. It's nice to see some people who aren't here as regularly and it's nice when you join us. It's nice when you feel like you can take a break and we're always happy to hear what you've been up to. So yeah, that's what I got for you this week. Okay, thank you very much, Jeff. Okay, Katnie, go ahead. All right, so first up, thank you, Dan, for running the meeting for the first time. Next up, a hug report to Filming Guy for reviewing a PR on the LearnRepo for a community contributed update to one of his examples. To user Hem on Discord for jumping into the community helper's role and providing a ton of assistance to folks on Discord. They were pretty much already doing that. Perfect addition to the community helper's and they've continued as much as they were before, so that's been excellent to see. To Filming Guy and Mark Gambler for reviewing the incoming PRs from new folks on the type hints stuff. Really appreciate that. We obviously in deciding to participate in Hacktoberfest created more work for ourselves and it's been really nice to see that just being taken care of. So thank you very much there. To Jeff and Carter for helping me understand the AT Tiny 817 breakout. It's a confusing little board. I will explain more later but they were kind enough to talk it through with me so I have a little bit better understanding of it. I'm writing the guide for it so that's useful. And more so to Carter again for helping me test the code for it. CircuitPython didn't have support at the time and so we were working through that and Carter helped me test that. And finally a group hug. Okay thank you Catney. Okay Kmatch is text only so I'll read his competition. Cedar Grove thanks for the Espresso scale GUI on a PyPortal. Any interest in turning your code chunks into a reusable CircuitPython widget? And there's a pointer to the display IO layout repo so take a look at that if you like. Okay next is maker Melissa. Hello so I wanted to give a HEG report to Scott for clarifying some things about the BLE file transfer library because it made finishing it up much faster. To you Dan for running the meeting and a group hug never knows. All right thank you. Thank you very much. Okay Scott. Hello. So two hugs for me although I think I missed one. A hug report to Emerge Reanimator for the NXP PR for a couple of their chips that we're working through. And a hug report to Foamy Guy for doing the type edition reviews and I think I missed Mark on this as well according to other folks so thank you to everybody who's doing reviews as always. The type hint stuff is going to be really neat. Okay thank you Scott. Okay that's it for hug reports. We'll move on to status updates. Status updates is our time for syncing up on what we're doing. This section is also around Robin. I'll go through alphabetically. I happen to be at the top so we don't have to wrap around. If we end up getting into a discussion during status updates we can move anything extended to in the weeds. All right so this week I spent a while trying to get keyboard support working in Circuit Python for HID. That's a special kind of HID where the device the host doesn't have a lot of code space and so it doesn't have the oomph to understand arbitrary say keyboard or mouse descriptions. So instead the device says I could be a keyboard and the host says sure go ahead and be a keyboard and what how the keyboard works is predefined so they both agree in advance and how it works. So this is good for biases and older Macs their startups and things like that and we tried to get this to work and it sort of works but there are a bunch of conflicts between what these biases expect and support and what we can provide because we're providing so many other HID devices as well and it turned out there was a conflict in numbering and hot tech helped me figure this out in terms of the USB stuff so we're going to put the keyboard support on hold for now because especially because it conflicts with the Windows 7 and 8.1 drivers which need to number things in a different way with different numbers in order to work. So unfortunately we'll just hold off on this if we give up supporting Windows 7 and 8.1 drivers then we could go back to try to support boot keyboards but we won't bother with this for now. At the same time I also added something called feature reports to HID I haven't tested that yet but that was much simpler and I hope that that will work and then in the meantime I've also been fixing various bugs for the next 7x release and vetting bugs that other people have submitted and of course as we mentioned I'm running the meeting for the first time okay now we'll go on to David Glaude who's also lurking so I'll read his contribution. Discovered Calm in quotes from YouTuber Tiddy Moby and is discordful of French makers. I'm not sure what that is but you can google it. Contributing to other people's projects Seagrover's CO2 sensor. Test and discussion on the design including UART PM25 version and fix the French translation of Seagrover's CO2 sensor. Bebox OS Pi Basic and Basic Python with physical I2C keyboard. Bebox OS made Pi Basic work on the feathering keyboard and on the WIO terminal and Pi Portal Titana with an I2C keyboard and presented to Bebox OS my Circuit Python 2021 idea of a Circuit Python computer and Tan Newt's Basic Python. And David has recently acquired a BLE cat printer because of Jeff that's a small thermal printer that you can attach via BLE to various things and the M5 stack I2C card KB keyboard because of Bebox OS and a 555 timer not even because of Lady Aida. Okay thanks okay foamy guy are you ready? Yeah thanks Dan. Last week I was working on reviewing the type PRs that have come in we've had a good number of those come in so that's been really cool to see. I worked on a helper library for a little wave share Pico LCD kind of kind of like a feather wing but of course it's for the Pico so it's not really technically a feather wing but while I was making that library I made the mistake of accidentally passing none for the spy bus when I initialized the display and found out that that caused a kind of a hard crash in Circuit Python so I dove into the core a little bit and figured out how to fix that and got some good pointers again from Jeff and MicroDev there so that was nice for this week I definitely still have more of the type PRs coming in I'm sure that'll be on the plate for this whole month at the very least and then I'm trying to generalize a tile map game helper that I worked on a little while ago I kind of had hard-coded some of the sizes and stuff for the specific sprites I was using so I'm going back to try to make that more generally useful and I'm building a different game with different size sprites and so that was kind of the the reason why I wanted to dive into that now and that's what I got thank you all right thank you okay Jeff are you are you available hello again yeah so last week I mostly worked on the ov 5640 camera support and as catney mentioned that's now in the bundle but this week it looks like I'll be working more on the ov 5640 camera the basic functionality is pretty good and after some work that I did this morning most of the functionality works I found a way to boost the frame rate quite a bit so if you watched my one minute video last week with the really low frame rate we did get it up to about 15 frames per second on the colluga board then in personal stuff there is a radio time signal transmitted from Fort Collins Colorado by NIST it's called wwb I have some little modules that can log the signal and I am planning on putting something online that I'm going to call the wwb observatory it's written on python and runs on raspberry pi and it's interesting to me because I love time and I couldn't find anybody else who did something like that so that's what I'm cooking up okay thanks very much okay catney your optics all right so last week I finished my part of the eye lights led glasses guide um started the at tiny 8x7 stem and qt seesaw breakout guide and started adding support to circuit python for the at tiny 8x7 seesaw breakout this week I took monday off for canadian thanksgiving um eye lights led glasses guide was published I forgot to write in there um working on the at tiny breakout guide this is a fairly involved guide as there are several examples each of which will require its own gif um so i'll be dealing with uh that probably for most of the week and then interspersed with that it's more pretty pins and I said if lady aida adds more support or support for more boards but that was just sent to me via slack so we now have support for at least the at mega 328 um which means we can do the basic metro and the metro mini boards um with our pretty pins wiring diagrams so I'll be doing that uh over the course of the week as well in other news I picked up two ube key bios which are standard ube keys but with fingerprint sensors they're new um haven't sent the buck yet but I'm looking forward to it they're pretty much the same size the sensor on it is bigger than the touch sensor uh on the previous version um but you can enroll fingerprints and it requires obviously fingerprints to send uh data from it and so it's in theory more secure so anyway looking forward to having fun with that that's what I've got okay thank you catney okay maker valissa hello last week I finished up the javascript ble file transfer library updates and I'm going and I continued working on the circuit python code editor improvements that relied on the file transfer library updates this week I'm gonna work on finishing up the code editor updates and then start testing the code editor on other devices and make adjustments as necessary and that's it okay thank you okay and scott thank you finally last on the list sorry I can't take time codes and unmute myself at the same time uh yes so uh forgot I'm working on the Raspberry Pi uh not the pico but the regular one um it is uh a new class of chips so I've been learning a ton about the basics of interrupts and stuff like that uh last week was mostly working on the interrupt controller uh and how it like one of the challenges is because it's designed for multi-core so there's a peripheral there that manages like which core gets interrupted for different interrupts so I spent a lot of time last week working on that and uh as of yesterday I managed to get it actually interrupting the core which is awesome um and so I made a kind of a stub generator that allows us to do the same sort of weak interrupt handler thing that uh that is how it is typically done with cortex m zero so if you want to handle an interrupt you just override like usb underscore hierarchy handler and then that gets all hooked up into the machinery that I'm auto generating um and you can enable it and it'll just come to you which is cool so uh the next step is actually to figure out how to get the usb actually working um because I think it's it's coming out of reset and I'm managing to get the interrupts for it which is great um so today I'm going to set up my beagle and start seeing how far um hopefully hopefully some distance we're getting uh with sending signals over usb and I think there's probably some initialization stuff I've got to change to because I'm starting with the code from the stm version of it which is going to be slightly different than what the raspberry pi's version is um so that's what I'm looking at okay thank you very much Scott okay um that's it for uh our status updates um we don't have an in the weeds section this week the lawnmower went through or something so there are no weeds to be discussed so uh we'll go on to wrap up the meeting thanks to everyone who participated this has been the circling python circuit python weekly for october 12th uh 2021 um if you want to support adafruit and circuit python and those that work of us that work on circuit python consider purchasing things from the adafruit shop at adafruit.com the video of this meeting will be released on youtube at youtube.com slash adafruit in the adafruit channel and the podcast will be available on major podcast service the meeting will also be featured in the python for microcontrollers newsletter visit the website adafruitdaily.com to subscribe and the next meeting will be held next monday instead of tuesday monday as usual at 2 p.m eastern u.s time 11 a.m pacific time this meeting is is also uh it's held on the adafruit discord which you can go to by going to adafruit.it slash discord and if you want to be mentioned notified about the meeting and any changes to the time or day you can ask to be added to the ad science circuit pythonista's role on discord so thanks everybody we hope to see you all next week again and thanks everybody we'll probably have a higher number of people next week because it will be at the regular time and thanks everyone for bearing with me on my first meeting i'll stop recording now