 Hello everyone. This is the Circuit Python Weekly meeting for November 7th, 2022. This is the time of the week where we get together to talk about all things Circuit Python. I'm Paul Kuttler, and I'm a volunteer in the Circuit Python community. What is Circuit Python? Circuit Python is a version of Python designed to run on tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit. So if you want to support 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-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's a link to the calendar you can view online or to add to your favorite calendar app. We'll also send out notifications about upcoming meetings via Discord. If you would like to receive these notifications, ask us to add you to the Circuit Pythonista's Discord role. There is a notes document that accompanies this meeting and recording. The notes document contains type stamps 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 45 to 60 minutes, so this gives you the option to skip around. After each meeting, we'll post a link for the next meeting's notes document in the Circuit Python Dev Channel on the Adafruit Discord. Check the pin messages to find the latest doc so you can add your notes for the following meeting. If you wish to participate but cannot attend, you can leave hug reports and status updates in the document for us to read during the meeting. This meeting is held in five parts. The first part is community news. This is a look at all things Circuit Python and Python on hardware in the community. It's a preview of our Python on microcontrollers newsletter. The second part is the state of Circuit Python, libraries, and Blinka. This is a statistical overview of the entire project. It's a chance to look at the project by the numbers separate from what we're all up to. The third part is hug reports. Hug reports is an opportunity to highlight the good things 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 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 meeting until the next meeting. Or until the next week, until the next meeting. And the fifth part is in the weeds. In the weeds is an opportunity for more long form discussions. These discussions can come out of status updates or be something you've identified ahead of time is too long for status updates. And that covers how the meeting will go. We'll start off with community news. These are from the Python on hardware newsletter that comes out tomorrow. The first one is the project of the week. This comes from Brian Wellesby who used a Pimeroni Tufti with an SCD-41 sensor breakout and MicroPython to make this carbon dioxide and humidity monitor with analog meter aesthetics. He converted some C codes to use to MicroPython for the build. The Pimeroni Galactic Unicorn was released with almost 600 RGB LED matrixes with amplifier and speakers powered by a Raspberry Pi Pico W running Pimeroni's fork of MicroPython. The LEDs can be strobed at 300 frames per second at 14-bit precision. And make sure to check out the newsletter. There's a couple of different projects that use the Galactic Unicorn already even though it was just released. And last one comes from Kevin McAleer who built an AI robot that can tell jokes and the weather. He used Python for the AI speech synthesis and voice recognition. The flashy eyes and eye movements are done using MicroPython on the Plasma 2040 and Servo 2040 by Pimeroni. This and more is available in our weekly Python for Microcontrollers newsletter which goes out via email on Tuesday mornings. Visit AdafruitDaily.com to subscribe to the newsletter. Thanks to Ann for putting the newsletter together. If you have any Python on hardware projects to share or find content you'd like to see included, please consider contributing to the newsletter. You can open a PR and GitHub at Ann underscore engineer on Twitter with the hashtag CircuitPython or email cpnews at Adafruit.com with links to share. Next up is the state of CircuitPython, Libraries and Blinka. Overall there were 18 pull requests merged from 12 authors with some of the new authors looking to be BabplockB, Pitt79, Squirtle Squad Leader and Furbrain with 7 reviewers thanks to Catney Jepler, Fome Guy, Lady Aida, MicroDev1, Tech Trick and the Kitty with 25 closed issues from 11 people and 12 new issues opened by 9 people. And HectorToberfest is all over so that label was removed from 120 issues. Next up is the core. Jeff will you go over the core for us please? Hello, it was a bit of a quieter week on the core in part because Dan was out and I was working on some other things. However we did still have 5 pull requests merged from 5 authors with 3 reviewers, leaving us with 27 open pull requests. That list is growing a bit but hopefully Dan and I will get through some of the more recently submitted ones. The older ones are for the most part waiting on action from you, the person who submitted the PR. So if you are able to get to that we encourage you to. If it's not going to happen maybe it's time to close that PR. And if we are mistaken and it's selling on the Aida fruit side that needs to happen please give us a ping on those older pull requests. We have 564 open issues but we mostly pay attention to our milestones. And the important milestone is the 800 release which has 27 open issues we'd like to resolve before getting to a stable release. And following that 13 more open issues that we'd like to fix during the stable release cycle of version 8. As well as that we've got 497 long term issues and that means Aida fruit doesn't prioritize working on them right now. But if it's important to you we encourage you to pick up and resolve those issues. We've also got 4 issues not assigned a milestone and again that's just because our normal triage of issues hasn't happened but we'll get that cleared up soon. But you know basically we continue working on stabilizing version 8. I know I've been doing some stuff related to improving async IO since we've got some users who are experiencing problems but are also really interested in seeing that work better. And yeah as usual it's just we need to work towards a stable version 8 and that's what we've got for this week. Now I'll turn it over to the cat need to talk about the libraries. Thanks Paul. So this week across all the libraries it's all the circuit python libraries so that's everything that starts with Aida fruit underscore circuit python underscore. As well as a few extras such as our community bundle and our cookie cutter. We have 13 pull requests merged from 7 authors and 5 reviewers that leaves us with across all the lids 700 and I'm sorry across all the libraries 41 open pull requests. The oldest one is 769 days old is what I was trying to read. Paul do you need to do you need to reload or something? Is it working now? Can you hear other people? I can but I don't think Paul can hear us. I have me. Tim are you doing a background recording or a backup recording? I am I do have a backup running. Okay would I can continue and would you like to continue the meeting then? Yeah. Can you do that? I'm back. I'm here I actually can hear you again. Okay that works. Then if it cuts out again Tim can take over. Okay thank you for making the backup I'm so sorry. No worries. No worries at all. Something happens. Okay I will continue. So we had 13 pull requests, 7 authors, 5 reviewers and now we have 41 open pull requests. There are 18 issues closed by 6 people and 7 open by 5 people so we're down a little bit. Octoberfest was removed from 102 issues and that leaves us with 569 open issues with 102 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, open issues and some library infrastructure issues. All of the PRs are listed out with links. If you're interested in reviewing check those out. If you've got the hardware test it. If you don't take a look at the code leave us a comment let us know you did see if you see anything that looks a little bit wrong to you and that always helps out. If you're interested in continuing that once you're comfortable with it you can once you're comfortable with it 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. We have a guide on contributing to CircuitPython using Git and GitHub and we're always available on Discord to help you out. I'm really excited about this next bit it is the library PyPI weekly download stats which we haven't had since 2019. So the total library stats is 200,000 6300 PyPI downloads over 322 libraries and the top 10 libraries on PyPI include bus device requests, motor, neopixel and obviously six others. In terms of library updates in the last seven days there were no new libraries but there are five updated libraries that are in the notes if you're interested in checking those out and that's what I've got for the libraries. Thanks Gatney sorry about the technical difficulties there and now I'll turn it over to Melissa to talk about Blinka. Hello, so Blinka is our micro Python and circuit Python or circuit Python compatibility layer for micro Python and single board computers like Raspberry Pi. And this week we had zero pull requests merged. There are currently seven open pull requests and there were two close issues by one person and one open ball in person. And it's going to remove the heck to work best. Well, I went ahead and remove the topic of the different repositories. We currently have 83 open issues and we're 28,339 PyPI downloads in last week and 11,367 PyWheels downloads in the last week leaving us with 98 supporting boards. And that's where we're at. Great. Thanks Melissa. This is the state of circuit Python, the libraries in Blinka. Next up is hug reports. Hug reports is a chance to highlight folks in the circuit Python community and beyond for doing awesome things. I'll start and then we'll go around the list alphabetically to give everyone a chance to participate. If you're text only or missing the meeting but have hug reports in the note stock, I'll read them off as I get to you in the list. And I would like to start with a group hug for everyone. Next up is Cgrover who is text only. A hug for FOMI guy for streaming the setup of a new desktop environment. Too many takeaways to list here. Tectric for the enlightening conversation during the recent community help desk. And a group hug to the team and community. Next up is Dan H. I'd like to thank Jeff and micro dev who I would had to be a way last week for extended family reasons. And so thanks very much to Jeff and micro dev for doing extra reviews and you know taking up the slack and doing extra work last week. That was really helpful. Thank you very much. Okay. Thanks. Next up is DJ Devon three. I have a hug report for the ship who for answering a question about mcp to three zero one seven use with the keypad library. At FOMI guy for the great live stream on Saturday, it kept me company while desidering and residering 16 through hole resistors. So I was listening to the stream and that was that was pretty nice. Paul Cutler and Todd bot for another great episode of the bootloader. I enjoy watching collaborative your collaborative format and being exposed to new stuff out there. And to Lady Aida for the great search videos every week as a new PCB designer seeing how components are selected and learning best practices is extremely valuable. The resistor pack episode alone two weeks ago was a revelation. That's it. Thanks. FOMI guy you're up next. Into the playground trolls in the recent podcast and definitely really enjoyed learning about those had no idea that something like that was out there. To Jeff for reaching out to a GitHub through some support channel for a very strange issue that we saw with very specific actions runs seeming to conflict with each other but being kind of unclear what was causing it and submitting a fix once they got back and shared the details about what happened. Hug report also for Katni for going over the read the docs setup and sub project URL configuration with me last week. And then group hug for everybody. Thanks. Thank you for me guy jebler. All right I feel like I've got a long list today a hug for you Dan for taking some time off when you needed to to Katni I have a feeling I'm about to ask for your help with a guide so thanks in advance. Anyway for being excited about an idea I had for a 3d print we're going to do a little collaborative guide coming up in the next month or so. Paul thank you for running the meeting and you know thank you for rolling with it as technology betrays us in various ways. To Nick Kumaris who was asking an interesting question earlier that I could answer about the difference between taking the power of an integer or a floating point number in circuit Python and Python. I'm looking forward to working together with you on a guide soon to PT and Lady Ada thank you for giving me some collaborative projects in the near future these. This stuff with no and with Phil B that I'll be doing and Lady Ada thank you for entrusting me with some prototype PCBs to add circuit Python support for and finally a group hug. I love hanging out with you guys. Thanks jebler we love hanging out with you to Katni you're up next. Yeah I was I was just finishing up I missed people but I'll get to who I have and and then a group hug everybody else. So to you Paul for swapping hosting the meeting with me today I was absolutely right that I wouldn't be prepared to do so after a busy weekend and I greatly appreciated the agreed to take this on for me. To Tectric for a few wonderful chats over the last week and for picking up the updates discussed in those conversations. And then specifically a hug to Tectric for sorting out getting PI PI download stats for the libraries and blinker for the first time since PI PI stopped providing that data directly. To Keith EE for helping out with figuring out how to assemble something for a guide when I completely misread the description and would have asked a very stupid question so thank you for making me look smart again. To Phil B for checking in with me regarding a fritzing object issue he was having it's usually the other way around. So I really appreciated being able to help fill out versus typically it's him having to help me and because I didn't get to this until two minutes ago. I guarantee I missed some people I meant to include so group hug for for those folks and then a group hug for everybody else as well. Thanks catney. Next up is Keith EE who is text only so I'll read that he has a hug for catney for helping outline a bill of materials in a great discussion about what should go into a text scrolling LED hat project. And next up is maker Melissa. I wanted to get a hug to catney for reviewing a PR I made to circuit python.org I added a bunch of boards, and then all the great presenters at hug to all the great presenters at hackaday super con this weekend, and group active windows. Thanks. Next up is Mark gambler who's missing the meeting so I'll read for him. He has a hug for me Paul for having him on the circuit python show podcast that'll be on at the end of the month in a group hug. Next up is tech trick who's text only. He has a hug for catney for the great conversations over the last week. Eva for helping me sort out remaining issues this week resulting from a pipeline to upgrade. See Grover for hanging out for a bit during the community help desk. Jepler and make their maker Melissa for helping me identify and work through failures resulting from the new upgrade the sea I made to python 311. For me guy for the interesting streams and for taking issues with hacktoberfest accepted last week so people could get credit for their contributions. Everyone who participated in hacktoberfest both as a contributor or as a reviewer to the hacktoberfest organizers for helping to make the contribution process effective manageable and enjoyable on all sides of the event in a group hug. Next up is status updates. Status updates is our time to sync up on what we're doing. I will start and we'll go through the list alphabetically to give everyone a chance to participate. When I call on you take a couple of minutes to talk about what you've been doing since the last meeting and what you'll be up to until the next meeting. This is also an opportunity to provide tips and tricks relevant to what people are working on. If a discussion becomes too much for status updates we can move it to in the weeds. So as DJ Devon 3 mentioned I have a new episode of the bootloader with Todd Bodd out today. We talk a little bit even about a circuit python powered open colorimeter which is interesting. And then I recorded a new episode of the circuit python show with Mark over the weekend. Look for that by the end of the month. Next up is Sea Grover who is text only. Wrapped up the current round of community bundle drivers and helper submissions. The bundle is a hidden gem containing an amazing collection of resources examples and inspiration. Refactored the improved thermal camera project code and learning guide to get it ready for circuit python 8.0 was able to squeeze a 20% frame rate performance improvement by applying micro lab in places that weren't obvious the first time around. Projects like this clearly demonstrate the power of this community's nurturing support for burgeoning non expert programmers like me. A friend's vintage Ibanez FL9 flanger guitar pedal. Hope I pronounced some of it right. Showed up in the workshop needing some capacitor therapy. Digikey had all the caps in stock. Nice to get back to some through hole soldering. Won't need the magnifier for this project. Getting back to the retro KTV based on FOMI guys Niko Kitty project. The coding is done, but the two hand built cabinets need to be finished before the year end holidays if they're to count as gifts for our cat collector friends. And next up is Dan H. Okay, thanks. So as I mentioned, I was away from work last week, so I'm just going to read up the two things I said I was going to work on in the next week. We have some users has some clues about the LC 709203 F issue on ESP 32S threes going to take a look on that at that. And then there are a bunch of puzzling network problems on various expressive boards and I'd like to look at those also. And there's some also some sleep issues, though they're a little bit more idiosyncratic. I'll look at those also. Okay. Thanks, Dan. DJ Devon three year up next. Last week I went on show and tell with my dragon skull mask aid fruit show until and I had a lot of fun. It wasn't a particularly hard project but what really increased difficulty was the short deadline to Halloween. I only had a couple days to make the thing. And I really wanted to mention and I forgot on show and tell that circuit pythons fast iteration process is really what made that project possible. I mean the sceptre alone was added to the costume one hour before trick-or-treaters started showing up because I would have had to wait minutes between iterations with our twinos compile times. I don't think I would have gotten that done in time using our twin. So circuit python in particular made my Halloween a success and had a blast and was totally worth all the effort. This week one of the coolest things that happened to me was make magazine followed me on Twitter after seeing the dragon skull featured on show and tell. And that might actually appear in the next episode of did your keys maker update. There's no promises or anything there but that was that was really cool. I started up my first 1.2 rev board of the TR cowboy cowboy cowbell answer during foamy guys live stream on Saturday morning confirmed all the LD LEDs and switches are working. Everything works without any botch wire this time. I'm very happy with that and the updated design. Everything was working great so far. Now it's just a matter of writing the software in circuit python. And as far as I know I can't use the keypad or debouncer library because they're incompatible with the mcp 23017 chips. And I tried naradox scanner library for that but I couldn't get that to work and that's probably my fault for iteration or initialization issue. And this is my main project right now and I'm really excited to get back to it. Because of that I completely slacked on working on PRs this week. I still have some PR sitting in limbo waiting to be fixed and I apologize to reviewers who are waiting on me to do those pre commit checks. And that's like a thanks for the update foamy guy. Alright thank you. So couple things. Last week I modified the screenshot generator the project screenshot generator that's used for learn guides and library examples to include CSV files it has a list of certain types of files that it includes in the screenshots and certain types of files that it doesn't. So we added CSV to that because some of the projects use them but it wasn't in the in getting included previously. After getting that bit of it done and making a PR with it it became apparent the CI needed a couple fixes so booked around and got those fixed up at least to the point of passing although it's very possible that some of the changes may be not necessary in the long run I think maybe there's other stuff in the works that could affect it. So we got that stuff passing. I went over with cat me last week the read the docs setup process and the sub project URL that gets used for all the different docs pages. Namely like the badge that's in the read me is the main place where I usually link it from it's probably linked in other places as well but whenever how to get all that stuff set up. And then the last couple of days last week and through through kind of the end of this week I've got some other stuff going on so I've been a bit lighter on Sir Python than normal some of that stuff is voted early last week for the election day that's upcoming. I think tomorrow is the actual day. A new computer I think I mentioned it last week I got a new computer that arrived on Friday and I've been working on getting everything set up installed and configured to my liking. So I set up the Sir Python Dev environment specifically on a stream on Saturday for folks that are interested in the tools that I use most frequently or how to get them set up on Linux. It was it has been and is still into this week unseasonably warm in my area, which has been nice because there's a good bit of pre winter yard work like collecting leaves and mulching leaves and all kinds of stuff that I've been doing. And then through the latter part of this week I'll be off for a couple of days to have some fun with birthday activities with myself and my wife. And that's what I have going on. Thanks. Thanks. And yes tomorrow is election day so remember to go out and vote if you haven't done it already. Next up is Jephler. Hello again. I was writing this in a hurry and last week just feels like a blur so this is missing some things that I did, but I fixed some more async IO bugs that I created. There was a problem with how we kept time and it has to match between some C code and some Python code. And I thought I'd fixed it I thought I tested it and it was still wrong. So I put in another PR relative to that. And the other thing I've been doing is some testing on pre release Adafruit boards to make sure they work with Circa Python and Arduino and that is going to continue on for a little bit. This week I am working on a guide for the Scorpio board it was announced around about a year ago it's a feather wing that can drive eight Neo pixel strips in parallel. And I will be adding a new Circa Python library called Neo pixelate that will support the Scorpio and other RP 2040 baseboards that drive lots of LED strands. And a lot of other stuff but those are the highlights right on the top of my head so thank you. Thank you. Kathy you're up next. All right. So last week the PCF 8575 guide which I finished the previous week I think was published and continued working through the pie cowbell guide I'm a little less than three fifths of the way through the assembly images. Seems fairly precise but there's five pages so it's kind of obvious about how far I've gone. But I finally figured out a system that took the overwhelming part out of the situation and was finally able to get into a groove with that so that should go faster this week than it did starting last week. I met with Alec about getting the PI PI download stats going and I met with Tim about the final steps to getting documentation going on a new library. This week continue the PI cowbell guide that's my initial focus finish up the assembly paid images and the assembly pages to go with them. And then the overview the pinouts page Circa Python and Arduino pages and the downloads pages are left beyond that. The Circa Python and Arduino pages should be relatively simple they are simply going to include I squared C scan code for you to run to find the whatever you have plugged into the stem of I squared C. Sensor or whatever is done I squared C connector on the PI cowbell to find whatever sensor you have attached. It doesn't go because there's no specific code to use with the PI cowbell it's a proto board. So that's all that's going to be is to run that to make sure that you know it's connected properly. And then I need to blog up the PCF 8575 guide being published. I have an addition to the code of conduct regarding unnecessary tagging of individuals or roles being prohibited. And I will PR it so and post it to the Circa Python dash dev channel. Once that's in so that way other folks can contribute suggestions or ideas or so on to make sure we get the wording on it right. And after a couple days it'll get merged. So then next up and also very eventually on my list which is to say this is not an order but it's all things I have to get through the CH 90 102 F is going to be added to the existing driver installation guide. It's a breakout for the chip that's on many other boards. So we'll add a page that basically says like hey you can actually test this using these driver installs which is a little backward usually products get a product guide with an explanation of what to do. This one is an explanation of what to do including a product mention. I'll be doing the guide for the I spy breakout. We have a stemma hub that we recently released that is also getting a guide autonomous alineas which is mostly guide page updates and template additions to guides. I still need to add using an external Wi-Fi antenna to the Wi-Fi mailbox guide. I'm going to be adding the Metro mini v2 to the Metro mini guide. There's a guide on getting API keys from Twitter which was posted relatively recently but I also went through the process more recently so I was asked to just review that guide and make sure the process is still the same. And then there's going to be a project on using circuit python to maybe parse an RSS feed. It might end up being JSON because we've already got that in place to send the parse data to Twitter and mastodon. That's going to be using a Pico W and I will be working with Liz on that project for her to be doing the side of it where you're actually display the data on a display. And then finally a project that's a holiday countdown project with a QT quad alphanumeric display backpack and a QT PI ESP32 S2 and Adafruit IO. So that will and that's working with no one Pedro for a 3D printed case for that. So I'm pretty much set for a while and that's what I got. Thanks Katnie maker Melissa you're up next. Hi. So this this last week I had my clue robot guide that was published on this past week. And I updated the Google assistant learn guide and any and some code associated with that and then I blogged up about both those guides. I added a wiring diagram to the 1.3 inch TFT learn guide. Or it's 1.3 and 1.5 inch. I added some updates to sort of Python.org. There's still a couple PRs that are waiting to be reviewed. I fixed an issue with the PI TFT is not rotating correctly in console mode. On the Raspberry PI and I archived unarchived the web serial ESP tool repo and updated the code from the MabuCross support. And then I went ahead and I added GitHub actions to compile a type script into the release. And I also submitted some Blinka and platform tech practices. And this week I'm going to continue working on GitHub issues and link updates. And it's for Matt. Thanks maker Melissa. And I will read off the last two status updates starting with Mark gambler items coming up in life and some burnout post Halloween projects have had not really have had me not really doing much hope to get back into it soon. As usual of something I worked on or comes up feel free to ping me on Discord. And last is tech trick. Last week hosted a spooky community help desk. Glad we were able to identify and work through many of the remaining PRs and at least give initial review feedback. Upgraded the CI for all the libraries to use composite actions as well as work with Python 311 which is now the default Python version used. Managed to get statistics about PI PI downloads using Google BigQuery which are then inserted into the daily report. This week cleanup issues newly revealed by the upgraded pilot for about 50 libraries fix an issue where circuit Python dot org is an updating contribution information. Finalize a new page in the Adafruit circuit Python bundle that will update daily with the weekly PI PI download information from BigQuery. Start preparing the test library repo that will help test changes to the new CI. And keeping an eye out for issues resulting from the new Python version or the upgrade CI. Please don't hesitate to reach out if something in the CI isn't working. And that was status updates. Next up is in the weeds. In the weeds is an opportunity for more long form discussions that either come out of status updates or that folks have identified ahead of time. If you have any in the weeds topics please make sure that they get added while we're discussing other things. There's no topics this week unless anyone has anything to add. So otherwise I will wrap up. This has been the circuit Python weekly meeting for November 7th, 2022. Thank you to everyone who participated. If you want to support Adafruit and Circuit Python and those that work on Circuit Python, consider purchasing from the Adafruit shop at Adafruit.com. The video of this meeting will be released on YouTube at youtube.com. And the podcast will be available on major podcast services. It will also be featured in the Python for Microcontrollers newsletter. Visit adafruitdaily.com to subscribe. The next meeting will be held next Monday as usual at 2pm Eastern, 11am Pacific. This meeting is held on the Adafruit Discord which you can join by going to adafruit.it. To be notified about the meeting and any changes to the time or day, you can ask to be added to the Circuit Pythonistas role on Discord. We hope to see you all next week. Thanks everyone. Thanks everyone.