 Hello, everyone. This is the Circuit Python weekly meeting for January the 30th, 2023. My name is Tim, and I am sponsored by Adafruit to work on Circuit Python. The 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 Adafruit 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 adafruit.it-discord. We hold the meeting in the Circuit Python Dev text channel, as well as the Circuit Python voice channel. This meeting typically happens on Mondays at 2 p.m. Eastern time, 11 a.m. Pacific time, except when that coincides with the U.S. holiday. In the Note Stock, there is a link to a calendar which you can view online or load that up in your favorite calendar app in order to get the schedule for the upcoming meetings. That's also another perk of the Circuit Pythonistas role on Discord, the same role that you need in order to be able to speak. If you do get added to that role, then you'll get a ping with upcoming changes to the meeting schedule and stuff like that. There is a Note Stock that accompanies the meeting and the recording. The Note Stock 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 meeting tends to run 30 to 60 minutes or so, so that gives you the option to skip around. After each meeting, we post the link for the next meeting's notes document to the Circuit Python Dev channel over on Discord. You can check the pin messages to find the latest Note Stock there, and you can add your notes throughout the week as well, so you don't necessarily have to wait until Monday to put in your notes. If you happen to think of something during the week, go and hit that pinned message link right there in the Discord, and you can fill that stuff in all week long. The meeting is held in five parts. The first part is community news. That's a look at all things Circuit Python and Python on hardware in the community. It's a preview of the Python on microcontrollers newsletter. The second part is the state of Circuit Python, the libraries in Blinka. That one 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, and this is the first of our two round robin sections. The reports is an opportunity to highlight the good things that folks are doing, take some time to recognize the awesome folks in our community and beyond. The fourth part and the second of our two round robins is status updates. Status updates is an opportunity to sync up on what you've been up to. Take a couple of minutes, talk about what you've been doing in the last week since the previous meeting and what you will be up to in the next week until the next meeting. The fifth and final part of the meeting is in the weeds. In the weeds is an opportunity for more long-form discussions. These discussions can come out of status updates or they can be identified ahead of time as too long for status updates. If you happen to know of an in the weeds topic that you'd like to discuss, go ahead and scroll all the way down to the bottom of that note stock and just list it down there in the in the weeds section. That way we've got our topics all ready to go there when the time comes. So with that, we will move on to the community news section. So let me scroll just a little bit here and get the timestamp running. All right, community news. And our first item in community news this week is the CircuitPython 8.0.0.0 release candidate 1 has been released. CircuitPython 8.0.0 RC1, it's the release candidate for 8.0.0, it has been released. It is stable and developers are making a release candidate for further testing before the final release. There's a link here to Adafruit blog. The quick note for anybody that might be upgrading though, since 8.0.0 beta.6, which was the previous release that was out there, the file that you specify your Wi-Fi credentials and other environment variables has changed slightly. So this note's in the doc and there's a link for further information if you want to hit that, but just be aware, if you had previously set up the .env file for your settings and Wi-Fi information, you'll need to switch that over for the new version to use the toml file. If you've been working off of main or something, then you probably already have the new one. This is just if you were on beta.6 and have the .env file. Next up is Digikey and Make announce a new boards guide and companion augmented reality app. Digikey Electronics and Make have released an updated board guide and companion Digikey AR augmented reality app that's available for both Apple App Store and iOS devices as well as the Google Play Store for Android-based devices. Divided into sections for microcontroller, single board computers and field programmable gate arrays, MCUs, SBCs and FPGA-based boards, the guide helps students, makers and professional engineers identify the latest technology available to help bring innovation to life. There are links there to Digikey as well as the Adafruit blog. Next up is a milestone in the larger community. GitHub has hit 100 million developers and counting. So this week, GitHub posts that they now have officially more than 100 million developers using GitHub to build, maintain and contribute to software projects. They look a bit at what that means going forward and there are links there to the original GitHub post as well as the Adafruit blog. Next up is some projects. So this one is Project of the Week, which is a CubeSat that's using CircuitPython and MicroPython. First and second year engineering students at Harlow College, which is in Harlow Essex UK, have been busy designing and building a new CubeSat platform with the ultimate aim of getting their boards and designs in space, taking photos of the earth and beaming them back to the classroom. The CubeSat platform is based around the Raspberry Pi Pico, consisting of three parts to the design, an acquisition board loaded with a camera and various sensors and storage, a master controller board with a radio link, and a ground station containing a radio link and decoder software. All three boards use the Raspberry Pi Pico and the software is written with a mix of MicroPython and CircuitPython across the three boards. Last item from community news around the web this week was a tool called CircuitPython Upload. CircuitPython Upload is a simple uploader script for the CircuitPython web workflow. Basically call it with a host name and a password and it'll compare the local directory with the remote and upload the newer file. So this one caught my eye in the newsletter from this week, in particular because they mentioned using it in conjunction with PyCharm. They had it set up to where they were running this script from inside a PyCharm and kind of treating it as an upload script for the project they were working on, which I know we've seen folks, I've definitely seen folks in the Discord asking about ways to develop code on your PC and then send it to the CircuitPython device when you're ready and it looks like this is a tool that could help with that workflow. So I thought that one was interesting. So that was the items from the newsletter for this week. Again, the CircuitPython Weekly newsletter is a CircuitPython community run newsletter that's emailed every Tuesday. The complete archives are available at AdafruitDaily.com. It highlights the latest Python on hardware related news from around the web including CircuitPython, MicroPython, as well as C-Python developments. To contribute your own news or projects, you can edit next week's draft on GitHub. There's a link in the notes doc for that. You can also tag a tweet with hashtag CircuitPython on Twitter or email to cpnews at Adafruit.com. Alright, so next up we will look at the state of CircuitPython, the libraries and Blinka. Let me scroll just a little bit here. So this is a quantitative overview of the entire project. It gives us a chance to look at the health of the project separate from what we're all up to. We'll talk about the project overall and then separately discuss the core, the libraries and Blinka. So first up is the overall section. Let's see here, let's get a timestamp in for that. And just a reminder for folks, this report does contain information from the last seven days. So if you have something that's brand new hot off the presses, it won't be included in this report, but it'll be in next weeks. So overall, we had 41 pull requests merged across all of the projects this week. There were 23 authors for those 41 PRs. A couple of the names that I did not recognize. So these might be newer folks or less frequent contributors that I just wanted to point out and think. Those names are Hex That, T-L-Y-U, C-J-8 Scrambler, Chris W. Wend, H-E Coding 180 and E28 ETA. Again, all of those are names that at least I don't recognize. So they may be relatively new to contributing or less frequent contributors. I apologize if I did miss anyone, but it looks like the rest of the folks there are some of our more usual contributors. So thank you to all the new folks as well as all of the usual contributors. We appreciate all of you and certainly help keep the project moving forward. So thanks to everyone on any of those lists for sure. We had eight reviewers this week. So thank you to all of our reviewers. And again, that does also look like relatively standard list there. There were in terms of issues, we had 27 closed issues by 15 people with 14 issues opened by 14 people. So net down a little bit on issues that looks like more closed than open. So moving in the right direction there, always good to see. Next up, we will hear about the core. Scott, are you available to tell us about the core? Sure, happy to. Alright, so numbers for the core. We had 18 pull request merge from 13 different authors, which is a lot. So thank you to all of our authors. They look like names I've seen before, so thank you to everybody there. We had four reviewers, which is also up a bit, which is great. We have 22 open pull requests. A number of those are draft, although a couple are brand new as well. Issue-wise, we had 10 closed issues by nine people and nine opens by nine people. So a lot of folks being involved in issues, which is good, for a total of 599 open issues. We have nine active milestones, and I'd like to point out that we do have an 8.1.0 milestone as well. And we have zero open issues for 73x and 04800 as well. So that's awesome and why we have a release candidate. The rug we've swept some bugs under is the 8xx milestone that has 51 open issues. So there is some work to do there. And we have 512 open long-term issues as well. So we still have lots of ideas from folks, which is great. And we're doing our best to get all of the critical stuff handled. And that's it for the core. All right, excellent. Thank you, Scott. Next up, Katne, are you available to tell us about the libraries? Now that I can read that section. I am. All right, so this section applies to all of the Circuit Python libraries, which is everything included in the Circuit Python community bundle, as well as all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore, Circuit Python underscore. All together we had 15 pull requests merged by nine different authors. A number of the new folks that Tim pointed out earlier are on this list, which is excellent to see. And we had four reviewers. And I wanted to say a special thank you to Jose David, who was out for a bit, but is back and evidently reviewing PRs. So thank you for doing that. And we are left with 41 open pull requests. The oldest PR merged was 30 days. Everything else was nine days or less, so it's good to see that we're still getting through older PRs, but we are also keeping up with the new ones. We had 16 issues closed by eight people and five open by five people, leaving us with 590 open issues. 77 of those are labeled as good first issue. If you're interested in contributing to Circuit Python on the Python side of things, check out circuitpython.org slash contributing. You'll find all of this information and more, including a full list of the open pull requests and a full list of the open issues. If you're interested in contributing by reviewing, check out the list of open pull requests. If you have the hardware for that PR, test it. If you don't, take a look at the syntax. Let us know if we missed something with spelling, et cetera. All of that is super helpful. Leave a comment and let us know that you did. And once you're comfortable with that, we can talk about leveling you up to the review team. If you're interested in contributing code or documentation, check out the open issues. If you're new to everything, good first issue is a great place to start. Otherwise, look for bug or enhancement or you can just search on the page to find an issue that works for you. And then if you're new to everything, don't worry about that. We have a guide on contributing to Circuit Python using Git and GitHub as well as us being available on Discord to help out. We want to make sure you can contribute in a way that works for you. In terms of library PI PI weekly download stats, the total library stats over 306 library repositories was 147,746. And then I have a list of the top 10 libraries by PI PI download. Again, the top three are pretty typical, but it looks like, for example, one I haven't seen on this list at all since we started doing it was the LED animation library. It's always interesting to see what folks are interested in any given week with using our libraries through PI PI. In terms of library updates in the last seven days, there is one new library, CircuitPython underscore equalizer, which is by jpasada 2020 and a number of updated libraries, which I will not read off. Other than keeping up with our PRs and so on, things are looking very good. We're over 400 libraries now in total. And as you can see with the library updates, we've combined the community libraries in with the Adafruit libraries because we have been striving to do that for quite a long time and it made sense to do it in the statistics as well since the overall library number includes both. It was a little confusing when there were no new libraries, but obviously there were new libraries. So now it's all in one place, which is very excellent and we can highlight more stuff from the community. And that's what I've got. Awesome. Thank you, Katnie. Next up is the section for Blinka. Make or Melissa, do you want to tell us about Blinka for the week? Yeah. So Blinka is our CircuitPython compatibility layer for MicroPython Raspberry Pi and other single board computers. And this week we had eight pull requests merged by five authors and five reviewers, which are quite a bit more than normal. There are currently five open pull requests amongst all the repositories. And there was one closed issue by one person and zero open by zero people, leaving a net of 88 open issues. There were 30,123 PI PI downloads in the last week and there were 8,960 PI wheels downloads in the last month. We are currently supporting 101 boards. So overall, it looks like our downloads have been a little bit higher and there's been a little bit more work on there, which is excellent. Nice, thank you, Melissa. Next up is the first of our two round robins, the hug report section. So hug reports is a chance to highlight folks in the CircuitPython community and beyond for doing awesome things. I'll start and then we'll go down the list alphabetically as they appear in the note stock to give everyone a chance to participate. If you're text only or missing the meeting, but you have hug reports in the note stock, then I'll read those off as we get to your time in the list. So first up is hug reports for me. So my list this week, thank you to L.Pakinen, who tried out VS Code and figured out how to get the serial monitor working in order to help someone on Discord. Somebody was having trouble with that and asking about it. This person kind of went out, installed VS Code and figured it out in order to be able to help. So that was really nice to see. Thank you to, let's see, M.RaveLorNinjaka. I probably butchered that name, I apologize, but this person posted an issue and dug through it a bit to figure out and even post a proposed solution for the issue, which was being able to use the LED animation library with the 13x9 IS31FL3741, I think it is, driver. So somebody was asking about this on the Discord, it may have even been this same person asking about it, but they eventually went and put an issue and even put some sample code that's what I've been diving into. So it's been great to see and it was a big help to have that head start. Thank you to NeerDoc for sharing an example of how to use scrolling text on that same matrix, which I believe a different person was asking about over the weekend on the Discord. Another hard report, thanks again to NeerDoc who's for sharing the disco tool device manager utility. So I got my hands dirty with that a little bit this week, finally got Node updated on my system and started using that thing out. It's a very handy tool and I'm looking forward to trying it out with Web workflow. I've done just USB so far, but it seems like quite a nifty utility. Thank you to Peter Bay for sharing a neat font generator utility. This was another one that was shared on Discord. It makes it easy to use a few different icons or characters from some common open source fronts with a frame buffer display as well as with display IO also. And then the last one I have written down here is thank you to Dan H. and to Shippu for getting a quick fix in to enable CDC on the Pew Pew M4. However, I will say I forgot one, which I'll write in here in a moment. Thanks also to Tectric for submitting an issue on one of my libraries, the Pi Game Display Library, about an issue with the actual release in PiPi for that. So thanks to Tectric for that and I'll add that one here in a minute. But next up we will hear from Dan for your hug reports. Okay, thank you. All right. Thanks to Jeff and Scott for the issue, 80 issue triage meeting we had last week, which enabled us to really plow forward on getting a release candidate out. Thanks to MicroDev for two things. One for sort of keeping up with various PRs to the core and merging things when I forgot to merge them and in general just sort of prompt fixes when there wasn't one thing that they needed to look at and they looked at it quickly. So thank you. Thanks also to MicroDev for work on the CI part of the builds or the CI builds. There are various cleanups and speedups that they've implemented, which are very helpful. And thanks to Neridoc who was trying to turn off a certain feature and realized that it wasn't really set up the same way as other features and submitted a PR to normalize it to be just like all the other ones. Okay. All right. Thanks, Dan. Next up is David Glauda who's text only. So I'll read. David has a hug report for maker Melissa for, let's see, for the installer integrated into circuitpython.org as seen on show and tell. Hug report for Anecdata and Neridoc for suggesting a way to make a DIY pie cowbell airlift. Although David prefers a real one. And then a hug report for FOMI guy, me for various and various frequent viewers for all the live streams. Next up is DJ Devon three who's also text only. So I'll read those hug report from DJ Devon for at circuit Python developers for an 8.0 release candidate at Noe Ruiz for an excellent video on snap fit enclosure design for Fusion 360. The video is over five years old and it's still just as relevant as if it was made yesterday. Hug report to JP and Lady Aida for taking on some hardware hacking and circuit bending projects. It's been very informative and entertaining to watch you hack circuitry. Hug report for Jepler for a great guide on converting a vintage bus mouse to a USB HID using a QT pie. Hug report for Neridoc and Anecdata for being tech support on the circuit Python channel and beta testing a lot of different stuff every week. And another hug report for Neridoc for an amazing update of disco tool. It's getting better every time I see it. So thank you. That was DJ Devon three. And next up I'll send it over to Jeff. All right. Good afternoon, depending on your time zone. First to thank you to Dan for the release candidate of version eight. Really excited to have that come out finally. And thanks to microdote for your detective work to get some ESP chips to work. And finally, thanks to Ann and paint your dragon for some editing and feedback on that recent guide that DJ Devon mentioned. And that's what I've got. Group hug reports. All right. Thank you, Jeff. Next up is Jose David, who's text only. So I'll read those. Hug report for FOMI guy for the new deep sleep pin alarm example for the mag tag. Hug report for Chris W. Wind for improving the SHT 31D documentation. Hug report for, I'm going to say, TLYU just spelled out the username there for improving the documentation of the LED animation library. And then a hug report for Tectric for reviewing all the different PRs. So thanks to Jose for those. And next up I'll send it over to Katny. First of all, a super hug to you, Tim, for covering hosting the meeting for me today. To Dan for releasing the circuit python release candidates to Tectric for helping me through a CI fix and a lovely chat afterwards. And there are hugs I am missing here for sure. So please accept the following group hug in place of a specific hug and a group hug. All right. Thank you, Katny. Next up is American Melissa. Hello. Sorry, I couldn't find the button. Oh, I lost it. I wanted to give a hug report to Jose David for the updated MQTT code and the home assistant Tim humidity sensing guide and group hug. All right. Thank you, Mac and Melissa. Next up is Scott. Hello. I got a quick one for Gordon Williams, who does Esprino for help getting me, helping me get circuit python running on the BengalJS2, which is a watch that I've been using for a while. And I also have out for review in a PR. Nice. Thank you, Scott. Next up is Tectric, who's text only. So I'll read those. Tectric has a report for TC Franks for submitting 100 PRs and completing their first Hacktoberfest. Hug report for Jose David for a bunch of help on PRs recently. Hug report for Katny for an excellent talk this past week and all weeks that we talk. Hug report for Dan H for helping to merge some CI update PRs I made over the last couple of weeks and hug to everyone who wished my partner well. She had a serious fall the other weekend but is doing and feeling much better at this point after some appointments and rest. This community is and always has been super supportive at every turn. And then lastly, Tectric has a hug report, excuse me, a group hug for everyone. Thank you to Tectric for that. And last one in the list here, we have is Nenverov. I probably perhaps spelled it wrong. Or pronounced it wrong is this person in the... Yeah, it's Nenverov. I just started building CircuitPython this week and I found Dan's building guide very helpful. Awesome, yeah, thank you. Thanks for popping by to give us that hug report. That's really nice to see. So thanks for that. And that is the last of our hug reports. So next up, we will move into the status updates section. Status updates is our time to sync up on what we're doing. I'll start and then we'll go through the list alphabetically to give everyone a chance to participate. When I call on you, you can take a couple of minutes to talk about what you've been doing since the last meeting and what you will be doing until the next meeting. This is also an opportunity to provide tips and tricks relevant to what folks are working on. If a discussion becomes too much for status updates, then we can move it down to the final section in the weeds. So I'll start us off for status updates. So last week, I wrapped up the testing on the remaining open Ethernet PRs, which definitely feels good to get to the bottom of that list. I started working on a game controller library that provides a common interface for interacting with the most commonly used video game inputs like a D-pad slash joystick or a few other action buttons like ABXY. So far, it has support for the following devices, the PiGamer, PiBadge, PPUM4, PicoSystem, and then the Joy Featherwing with any base feather. You can use that featherwing. All of those things are supported by the library so far, but we do still have some work to do, and I'll be publishing that into the community bundle this week. The other thing I had for last week is I continued working on the Bitmap Tools implementation for Blinka Display.io. Specifically, I did the draw line and the boundary fill functions last week, so I do still have some more of the more complex ones to dive into this week. The other things I've got on my plate this week, I am starting to try to wrap my head around the different available classes and modules for the IS31FL3741 LED driver. There's a built-in core module, there's a Python module inside the library, and then from there, there's also a couple of others kind of built on top, like a pixel buff one and a frame buffer one, and it's just kind of a lot of different things. I'm trying to straighten out in my head which ones are meant for what purposes, and then ultimately my goal is to figure out what's the easiest way to make it work with LED animation. So thanks again to all the folks who have been helping with that. The other thing that I have in mind for this week that I like to dive into for sure is a difference between on-disk bitmap and image load. Carter, I think over the weekend or within the last couple of days, posted an image that... a specific bitmap image that displays differently if you load it as an on-disk bitmap versus if you load it with image load, which is certainly odd, I've never run across that before, and it's right at my alley for the kind of thing that I am super interested in trying to understand. So I'll dive in a bit and see if I can spot what might be leading to the difference with that image. And that's what I've got for my status reports, so next up I will send it over to Dan. Okay, thanks. So as I mentioned, we had a bug triage meeting last week and pushed the remaining bugs forward to 8XX or 810, and that enabled me to work on... I released candidate for 8.00, so I built an RC... I didn't work on the release notes earlier last week, and then there were a flurry of small PRs over the weekend, which were worth pulling in, so I did those, and I released an RC... I built an RC-0 and then realized it was missing one particular PR, so I just deleted that one because I hadn't publicized it in any way, and then did an RC.1, which had all the PRs that I wanted to have in it. And that's released, and it's blogged up, and it's on circuitpython.org, so please try it. The only fix I know of past RC.1 or other two, there's a read-a-dox fix, because the docs weren't actually building, and we hadn't noticed that, and that's fixed post RC.1, but it's not a code fix, and there's also a CI fix that Scott just found, which I'll put in post that, but also it will not be a code fix. There are one or two maybe PRs that are very minor, like pin changes or something, which we could probably put in 8.00. But we're not really sure how long we'll try to have the RCs live or not, but we'll talk about that, but we hope to have 8.00 final soon enough. Okay, and then, also over the weekend, there's this new ESP32C3, not S3 module, not new, but it has 32 megabytes of flash, and it's actually hard to build because a lot of things in ESP, like the ADF used to have some 16 megabytes, not megabytes, not megabits, and so microdev was trying various things to make it build, and I had one of these which I just got in the mail from Adafruit and got it working by me testing and microdev changing things. So that PR is in RC.1. And then finally also for the past several days, I've done some things that are hardware debugging and not CircuitPython. Somebody was having, there's a kind of a problem about on the feathers that have a second regulator for controlling the StemAQT bus. If you try to turn everything off by pulling the enable pin down, it actually doesn't, it can latch up so that the StemA bus still has power even though the CPU doesn't have power. Pulling the end pin down was kind of not necessarily our primary mode of use, but we understand the problem now. And also somebody else has problems with QDPyM0s not being able to turn on their boot protection flags and that's really strange. I don't understand what's going on here, but I ordered some hardware to try to test it and maybe I'll have them send some of the ones because it works with the ones that I have. Okay, that's it. Alrighty, thank you Dan. Next up is David Glauda who's text only, so I'll read. So in CircuitPython news for David Glauda, reading all the CircuitPython 2023 posts except mine and sometimes commenting on them, watching CircuitPython and other Adafruit streams and participating when live, instinct acquisition of an ESP32C6DevKitC1-N8 before I figured out that CircuitPython support would not be before long, but I'm ready. Temporarily put a hold on my attempt to read the C64 keyboard. At one point it did send so many random keystrokes that my PC crashed. Oh, that's no good. And then in non-CircPython-related news, decided to try, let's see, decided to reinstall BCM64, the C64 to validate my pinout of the keyboard, added joystick 1 and 2 support to my Raspberry Pi board for BCM64. So thank you to David Glauda for those. And next up is DJ Devin. He's also text only, so I'll read theirs. Finished the TR cowbell enclosure. There's one small alignment issue. Had to use a mallet to fix everything together, to fit everything together, excuse me. The top faceplate has space for a 1.5 inch tall display. It won't fit the larger Pi portal or TFT featherwing size displays. You'll, of course, be able to use the files to modify the design to suit your needs, such as one of the most amazing parts of 3D printing, for sure. There are, let's see, F3D, STL, and OBJ, as well as other formats for the enclosure are now available on GitHub. There's a link in the notes if anybody wants to grab those. If you don't have a 3D printer, you can use these files to have one printed for you. I cannot offer an enclosure to everyone. Too many people have them now. It would take me months of printing. But yeah, there definitely are services out there where you can send a file and get a print. So if anybody got the cowbell that wants one of those, look into that. Next up is Jeff. Hello again. I'm a little distracted looking for a replacement piece for my solder sucker. But yeah, back to the meeting. I didn't have, it felt like a whole lot of circuit Python activity last week, whether I worked on creating a text terminal using Pico DVI under the Arduino programming environment, and we might use that in some kind of future project. I responded to guide feedback and improved a couple of guides in tiny ways and posted the first mouse guide for the next computer's mouse. And at least one more mouse project is in the works. The mouse for Mario Paint on the Super Nintendo looks like it's something that we could run with circuit Python. I figured that would feel pretty vintage and exciting. I got that little project approved. This week, I'm still hoping to test out the ESP32-S2 slash S3 RISC-5 Ultra Low Power Co-Processor for an upcoming keyboard project. And Lamar also asked me to take a look at I2S out on the ESP32-S2 and S3 and kind of report back on how well or poorly it's working and that will include checking on WAV files from Flash, MP3 files from Flash, and WAV files from SD card just to see what works and what doesn't. And other stuff, my spouse Ingrid has been on a week-long trip to India and Nepal, and she will get back on Wednesday and it will be pretty nice to have a housemate again. I'm looking forward to that. That's what I got going on. Thank you. All right. Thank you, Jeff. Next up is Jose David, who's text-only. So I'll read. Jose says, last week, a couple of documentation, prose review, I think maybe PR's review. Updated the community library driver list, adding their description and documentation link, if missing. Working on the TMP117 sensor library for memory optimization. Work in a new example for the JLED community library, which allows non-blocking LEDs, sequences, and effects. Adding a magnetometer example for the LED to increase and decrease brightness if a magnet is close by. Some type annotations, PR's. Working on releasing some personal libraries to PiPi. Gladly surprised that other people than me have downloaded them. And then for this week, Jose David says, maybe work on the TMP117 memory issue, update the community library helper's list descriptions, and take a look at other community libraries to see what they can do. Next up is Gnevarov. Hi. Yeah, I've started working on one of the issues about adding a non-poling read to the PIO state machine class. And I'm still sort of getting started and familiarizing myself with the code base on that one. Awesome. Well, welcome in. It's great to have you working on that and popping in to join for the meeting as well. So that's great to hear. Next up is Katnick. Hello. The last week, I had some various miscellaneous stuff that I didn't really track. I had a lot of meetings fixed up. The iSpy guide updates. I realized after Liz and I were talking about reviewing each other's guides that I hadn't shown all of the pins that a display uses. I was only showing the ones used in the CircuitPython example. When the point of those guide updates was to show what pins are possibly used by the display, not what pins are used in a particular example. So I fixed all that up, and now that shows all the usable pins, both on a list and a wiring diagram. And I worked with Alec to fix a CI thing on the Adafruit Blink of the LEIO library. It was something that we updated across all the rest of the libraries, but this one somehow got missed and it didn't actually trigger that failure until a very recent PR. So that's all fixed up. This week, I'm going to be working on the reverse TFT feather guide. That's a recently released board where the TFT is on the opposite side from the chips and buttons and so on. I'm going to be doing a time lapse using Raspberry Pi guide. If I remember correctly, at least five years ago, it was very, very easy. So I have to imagine it's easy now. So it'll be quick, but I have these plants that I got that I talked about last time and we'll talk about in a minute. And one of them bloomed. The other one looks like it's starting to, and I want to catch that in a time lapse. So I will be writing that up as a guide. Then I'm going to be doing the CH90102F guide update. We have a guide on installing the drivers for it, no guide for the breakout that we made after that. And then a Metro mini guide update because we have updated the existing Metro mini to the V2 and the existing one is no longer available. So the guide needs to explain both. And then probably more various miscellaneous. And the unrelated bit is my plants, which I pretty much said everything about. The blooms on the one that already bloomed are already on the way out. And I did not get a lot of photos. So I'm disappointed, but the other one looks like it's starting to get the beginning of the blooms. So I think I'm going to set up a time lapse situation for that and catch it all the way through. So that's what I have going on. Nice. Definitely do please share those photos if you end up getting them. That sounds awesome. Next up is maker Melissa. Hello. So last week I worked on mostly fixing up my PR for code.circuitpython.org, which should improve the USB workflow. And I had a number of bug fixes I found and fixed on that. I also separated out my JavaScript code that interfaces with the circuit Python ripple over a serial connection and I helped a user troubleshoot their braincraft driver install on Bullseye. This week I am working on getting an initial version of the circuit Python installer running. I'm currently working on addressing some cores issues and have a plan at this point. I do need to update the GitHub actions for the tiny UF2 boot loader so that it uploads to Amazon S3. And I need to add info for the new release candidates, candidate boards to circuitpython.org since it added like 12 new boards. And I need to update the guides and drivers for the revised 0.96 inch TFT. And I also need to test... I'm probably going to be testing the ESP tool.js because it looks like it's really close to being able to use. And then we can use it over the ESP tool that we have now. So I'll probably work on testing that soon. Yeah, that's it. All right. Thank you, Melissa. Next up is Mark Gambler, who's lurking. So I'll read. Mark says, started work and investigated adding a GIF output support for circuitpython, hoping to get a proof of concept written up this week time permitting. So that certainly sounds awesome. Thanks to Mark for adding notes in here. And then next up is Scott. Hello. First, I wrapped up circuitpython 2023. Last Monday after the meeting, there's a link to the blog post there. So thank you to everyone who took the time and had the time to write it up. I also sent out a draft PR for BengalJS2 support that includes seven-color ink or e-papers support as well. It's kind of a weird twofer, but the common thread is that they both have three-bit color displays, although what the color means is different between the two. So I just did both. Sorry in advance to whoever reviews it. I will have to follow up with changes for that. I already found a bug in our CI where it was loading an older version of a file that I changed causing the build to fail. So I tried to fix that. For those of you who've seen this display ruler.pmp file, I made a separate repo for the source of that, which is a used gimp, which is a terrible name, but used gimp to put that together. And I've made a bigger version. I called it the 720p version that has a rainbow on it too, which is really handy for these seven-color displays. And the largest seven-inch one is 800 by 400, so I needed something bigger as well. So you can find that in that new repo. I have two things kind of on my plate. One, I have to get the... And I didn't put this in. I have to get the libraries for these e-inks out and published. And then after I do that, I'm going to be looking into finishing up USB host support on the IMX RT. And I might also be looking into Scorpio as a logic analyzer with some sigrap code as kind of the foundation for that. So, yeah, those are kind of things that are on my mind to do. All right. Thank you, Scott. Next up is Tectric, who's text only, so I'll read. Last couple of weeks, we've got PR reviews, more type annotation PRs, at least one community bundle edition, woohoo. Others that I'm forgetting, but a belated group hug to everyone who contributes. Updated the report to combine Adafruit and Community Bundle updates. Updated and patched the CI for more deprecation warnings in the libraries and Blinka ecosystem. Tectric also says, please tag, message, or ping me if you find any additional CI deprecation issues, since I'm assuming that I've found them all by now. Created a new GitHub action to replace the one in the core with deprecation warnings. Fun getting to revisit JavaScript after about 15 years, personally hoping to make some cool stuff with the OctoKit API. I'm not familiar with that one, but I'll have to look into it. Taking some personal time to help care for my partner. And then this week, Tectric says, trying to finalize all the CI updates. Hopefully working on feature additions and bug fixes for a few libraries. I have hardware for now that I have hardware for now that the CI is mostly patched. And then feasibility testing for some library updates like issues and PR templates that I can suggest next if they work and make any sense. All right. And that is the last of our status updates. So our fifth and final section for the meeting today will be in the weeds. As a reminder, in the weeds is an opportunity for more long form discussions. These can be things that either came out of status updates or they could have been identified ahead of time. If you haven't in the weeds topic, please be sure to go ahead and scroll all the way down in the note stock and drop that in down at the bottom. We do have a couple there. So you've got a few minutes while we discuss those. But if anybody knows of a different one that's not in there now, do please go ahead and add that. So our first in the weeds topic this week is from Tectric who's text only. So I'll read this one here. So Tectric says whenever there are updates to things like the CI or cookie cutter templated items, e.g. like the read me file, like the license file, I think there's a couple of those that would fit into that same umbrella. So when there are updates to those, Adafruit libraries are patched, but community bundle libraries can lag behind. Sometimes gaining the improvements is more relevant to Adafruit libraries, but there are times where the community bundle libraries should benefit if those libraries are still maintained, such as GitHub Action CI updates. I'm exploring ways to have said updates visible to the community at large and have said fixes and improvements readily understood. Since these issues are potentially rediscovered after, excuse me, rediscovered, months after the Adafruit libraries have had the fixes put into them. And so Tectric also mentions, I've thought about releasing Git patches to make the fixes available or allowing automated PRs, but this depends on the repository already being at a specific state. Additionally, Git patches aren't always applicable. E.g. you couldn't change circup installation instructions because every library is different and repositories vary greatly. So PR automation is a major challenge. Would a rolling blog like... Yeah, so let's see. This is the next question here from Tectric. Would a rolling blog-like format be better, explaining issues and their fixes? Should it be more newsletter-like where individuals can subscribe to get updates, just brainstorming and looking for ideas? So I'm voting for something like the second one. One thought would be create a GitHub repo that is just documenting the changes to the libraries, and then people can subscribe to watch that repository and get notifications when there's changes to it. I think documentation is a far better way to go about this than trying to figure out how to do automated PRs across the community bundle because while there is quite a bit of consistency within it, there's also obviously these are hosted by individuals and maintained by individuals, and so it's not always exactly the same. So I think our time would be much better spent doing a little bit of documentation when we post these changes, and you can even link to one of the commits each time so that folks can see exactly what needs to happen to apply that fix. But I think that might be a better way to go about it. Talk to Rick is typing. I would definitely agree with all of that as well. The one other thing I might add is if there's any way to make some kind of like instructions for someone if they wanted to kind of like start fresh, if that makes any sense. At some point I imagine it would be easier to just cookie-cut a new thing with the current cookie-cutter which will have all the updated stuff and then kind of paste your existing code into it and then push that as as an update to your repo. So maybe instructions like that might be helpful. Starting fresh is kind of covered in the building a library in the first place guide because you're supposed to cookie-cut or paste your stuff in. I just mean from like a library where you've already published it and you want to like essentially take a new one with the actual code into the new template if that makes any sense. No it does. I just, I don't know how different that would be from how we explain writing a library in the first place. That's true. There could be obviously a short explanation put somewhere and just basically adapt what we already have, don't write up a whole new explanation. But yes, that is my thought on it. I'll just subscribe to a GitHub repo that we just create for that or maybe an issue on the Adafruit bundle where folks can subscribe to that issue and then that's an ongoing issue. We don't close it. It's another possibility instead of a whole separate repo. But yes, I think let's go with documentation not we're not maintaining those repositories so we shouldn't be trying to do maintenance on them, I guess is my point. Sounds like we've got point in the right direction then, Tektrick, for that one is either spin up a repo where we can put like markdown files or text files or something for documentation or start up an issue on the one if you want to go that way for what it's worth. I'd probably lean towards a repo just so it's easier to search and look back at the history and all of that sort of stuff personally but either one sounds like it would work out just as well. And then, yeah, Tektrick, let us know if you have any additional questions or anything to add and while you're doing that, I will pass the baton over to Scott for now, for the next In the Weeds topic. Thank you, Tim. I would just, because CircuitPython 2023 has been wrapped up, I thought I tried to take some time for us to just all talk about it. I just skimmed over the stuff that I saw and I think if I were to take a theme out of it I think it's actually tooling both like the tooling that kind of like Tektrick's just talking about but also like tooling USB side command line stuff Android apps although that seems to be a really common theme I didn't see any like microcontroller platforms Async came up a couple times I'm wondering if other folks saw any themes or have any thoughts around CircuitPython23 as well. We're just all happy with it. I think you're I definitely agree with your observation about like not much in the way of new platforms and stuff like that compared to years past. So it feels kind of like we're at a pretty good point where the platforms we have are capable of the vast majority of what people want so I think that's definitely a good sign. I did see a couple of folks mentioning different avenues for tools and utilities and things. That does make sense as the theme as well. I'm pretty stoked about just about everything that I saw mentioned. I know GIFs is something that has been mentioned in the works as well. I'm definitely really excited about the possibility of GIF support in DisplayIO. Um... TypeDark agrees that it's tooling mostly. I don't remember if I don't think I mentioned it in my post. On the topic of tooling that has crossed my mind sometimes is like an advanced it's definitely meant for the advanced user but some way to make more customized builds as time goes on we get more and more modules that are optional. They can be turned on or off and they often are turned off to save space in different situations but also things like built-in displays and pin names and things like that. I think it would be cool if advanced users had a way to be able to make a build through some web app or something like log into a page and just tell it what you want and it creates a build and gives you a link and after a few minutes you can go and download it. To customize pin names? To customize pin names as well as being able to turn on and off the modules so let's say you want for whatever reason the device you're using a module is turned off but you want to be able to use it in your particular project it'd be nice if you could get a build without having to actually clone the repo and get everything set up and do the build. It seems like a server could kind of provide that ability. Now the risk, the downside of this is it fractures the number of versions of circuit python out there so it does get harder if somebody makes a custom build with all sorts of things changed and then comes back and says hey this isn't working with this thing how I expected it to or something so there's a support challenge for sure on that front it needs to be clear that those builds are customized in some way certainly. Yeah and I think a lot of people that are like I just want to turn on this one it's like no it's off for a reason it's not implemented yeah it's not that we just turned it off in most cases it's not implemented but yeah custom pin names as well even built in displays like let's say you make a project where you use one of the external displays but in your project you know maybe you're never going to use it for anything else and so it might be nice if you could have a custom build with board.display implemented even though it's not like a built-in display. Something like that I think could a custom build system would allow you to do stuff like that without needing as much of the technical knowledge. Right. The challenge with those services is that they can be hard to maintain. Yeah and costs time and money right for the server to run and actually take the builds and stuff as well so it's like yeah if you can't do it on github slash Microsoft's time. 100% we're so lucky about that. We spend a lot of Microsoft dollars. Cool well I don't see anything else. Alrighty yep thank you Thanks. Thank you all. Yeah for sure. Thanks Scott. Next up in the weeds is from Mark Gambler. So hopefully I'll be there. Mark are you got a microphone or do you want me to read that for you? Yeah I have it. Just a quick summary of it was for the github support I was looking at there's the animated gith library that actually has been used in some other Adafruit projects for Arduino in the past the license on it is Apache and I'm not super familiar with how the licenses transfer between them all. So I was just wondering is there going to be any issues if I include a potential new library in circuit python? I think one of the things to be aware of is that Arduino tends to be C++ and as far as I know we don't have any source that we compile for C++ yet so there might be some work that you have to do in terms of like C++ and digitalization calls? Yeah so I actually I've looked through the library the core of it is actually in C so that actually works fine I got it compiling it only adds about a hundred bytes so it's not even too large but yeah it sounds like you don't have everything you need that's pretty small Yeah well that's why the next step is the proof of concept but I just wanted to make sure there's no immediate show stoppers with the licensing I'd be worried if it was GPL but it's not Yeah that I know there would definitely be an issue I'll keep plugging away on it and see where it gets and show everyone before I'll start a draft PR at a certain point Awesome thank you Mark Thanks Alright and that is the last of our in the weeds topics so with that I will take the final timestamp and do the wrap up here this has been the circuit python weekly meeting for January 30th 2023 Thank you to everyone who participated once again as a reminder if you want to support Adafruit and circuit python and those of us that work on circuit python consider purchasing hardware from the Adafruit shop at adafruit.com The next meeting will be released on youtube at youtube.com and the podcast will be made available on major podcast services it'll also be featured in the python for microcontrollers newsletter visit adafruitdaily.com to subscribe to that the next meeting I believe will be held next Monday as usual at 2pm eastern in the normal time slot but I actually don't have the calendar open so somebody please correct me if I'm wrong um yeah so to Monday at 2pm eastern 11am pacific I believe that should be for the next meeting um the meeting is held on the Adafruit discord which you can join at any time by going to adafruit.com fru.it slash discord um if you want to be notified about the meeting and any changes to the day or time you can ask to be added to the circuit python easter's roll uh over on that discord and that's it for today's meeting uh so thanks again to everyone for participating and we hope to see you all next week