 Hello everyone. This is the Circuit Python Weekly for September 5th, 2023. It's the time of week where we get together to talk about all things Circuit Python. I'm Jebler and I'm sponsored by Adafruit to work on Circuit Python, which is a version of Python designed 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 your 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 DevText Channel and the Circuit Python Voice Channel. The meeting typically happens on Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except when it coincides with the U.S. holiday. Yesterday was the U.S. holiday known as Labor Day, so we are holding the meeting on a Tuesday. If you're watching the final video, the notes document will have timestamps for you to use so that you can seek to the part of the video that interests you the most. The meeting tends to run anywhere from 45 to 60 minutes, but it is pretty highly variable. After the meeting, we post a link to the next meeting's note doc in the Circuit Python Dev Channel on the Adafruit Discord. Check the pinned messages so you can update your notes at any time during the week. If you wish to participate but cannot attend, of course, you can leave your hug reports and status updates in the document for us to read during the meeting. This meeting is held in five parts. Next up will be community news, a little review of the Circuit Python and Python on a hardware newsletter. Yeah, it's a fun little glimpse of great stuff people are doing. The second is the state of Circuit Python, the libraries and Blinka. We'll take an overview of the entire project by the numbers and get a sense of how things are going. Next is hug reports, the opportunity to highlight the good things folks in the community are doing, whether it's coding, whether it's helping, whether it's making a cool project, just whatever you feel is worth recognizing that has been done by the folks around you. Then fourth is status updates, an opportunity to report on what you've been up to as an individual. Please take a couple of minutes and talk about what you've been doing in the last week and what you'll be up to over the next week. And if you don't make it every time, you can increase those time bounds to encompass the work that you have been doing since we last talked. And then last, if there are some items, we have a section called in the weeds. If we need to discuss something and it's not just a quick sentence or two, then this is the place for it. That can be something that we realize during status updates or other discussion or something you've identified ahead of time as just being too long for status updates. And that covers how the meeting will go. So, community news. First up is driving large LCD displays with circuit Python. Adafruit now has the expressive ESP32S3 talking to large dot clock displays like the 7-inch 800x480 display above. There will be a display driver board with the S3 soon along with a selection of displays including rectangular, circular, and square. And there are links in the note stock to a Twitter and a YouTube. And I think you can also check out the store. We've got some at least pictures of boards that are similar to the ones I've been testing. It's pretty cool. Next up we have projects. We have lots of pixels. So, next is driving five LED displays with Python. Tim Moroney writes, what if I told you this 96-centimeter-wide 5-panel 160 by 32 interstate 75-powered pixel display can be started for just 105 pounds and driven from Python running on a Pi or a desktop PC for impressively smooth demos. And there are also fire animations and Conway's Game of Life. Check out the thread on Twitter, currently known as X. And then the last pixels I promise you are DJ Devin's feather weather on four matrix panels with a STEMMA BME 688 sensor. And there is a link to the code on GitHub. And DJ Devin 3 also joined us on Show and Tell last week. Talked about stuff like bit depth, showed interactively how that changes things. It looks like a cool project. And DJ Devin is someone who encounters a lot of weather. All right, so those are the few extracts I picked from a much larger newsletter. Let me tell you about the newsletter. The CircuitPython Weekly newsletter is a community-run newsletter emailed every Monday. The complete archives are at AdafruitDaily.com slash Category slash CircuitPython. That link is in the note stock. It highlights the latest Python on hardware-related news from around the web, including CircuitPython, Python, and MicroPython developments. Do you want to subscribe to the newsletter? Just go to the front page of AdafruitDaily.com. Do you want to contribute to the newsletter? There are a number of ways to do that. You can edit next week's draft directly on GitHub because like a lot of what Adafruit does, we do it out in public. So that's github.com slash Adafruit slash CircuitPython dash weekly dash newsletter. And yeah, you can put in a pull request. You can also tag your tweet with hashtag CircuitPython on X, formerly known as Twitter, or you can email cpnews at Adafruit.com. And I can tell you 100% for certain that Ann will love getting whatever you're contributing, whether it's your own project, whether it's somebody else's project that made you go, wow, we love to see these things and spread the news about them because it shows what you can do with Python on microcontrollers. And so next up is the state of CircuitPython, the libraries, and Blinka. So this is a look back at seven days of activity, both in the core, in the libraries, and in Blinka. And this is actually a report from Monday. So it excludes things done during the day on Monday or so far today. And I chose to do that instead of Tuesdays just because then we don't miss a day that we didn't report on because the meeting was moved. And Scott and Ketney and Melissa let me know if you cannot read your normal sections, otherwise I will hand it off to you. So overall, across every GitHub repo, we had 18 pull requests merged from 16 authors and six reviewers. And I want to mention a couple of those authors whose names aren't super familiar to me. We had M. Monitol, Phonix232, ClevverCA22, and BJAP, excuse me, BJAP, who wrote pull requests that we merged over the last week. So thank you to everyone, but in particular to those folks who are new or less frequent contributors. And thank you also to our six reviewers. We've got a lot of the usual suspects, but I also want to say thank you to Bill88T, as well as everybody else. Issues-wise, we saw five issues closed by 14 people and 12 opened by 10 people. Issues numbers do trend up over time, and that's just the way it is, but it's nice to see the large numbers of people who are participating there among the issues. And with that, I will hand things off to Scott to tell us about the core. Hello, Scott. Thanks, Jeff. It is echoing there. Yeah, is it? A little bit. It's fine. I'm going to get a couch and a rug in here at some point. So update for me is that I'm in a new space, hence the echo. There's construction outside too, so yeah. We'll work through that. Numbers for the core, we had 14 pull requests merged from 12 different authors. Phonix232, BJAP, ClevverCA22, BrainBoards are all relatively new or infrequent, so thank you to them. We had four reviewers, including Maker Melissa and Bill88T, so thanks to them as well. We had 28 open pull requests. A number of those are getting long in the tooth, so please take a look at those. It is above the 25 benchmark that I tend to like to keep, although it's been a long weekend. I'm sure we have some that we can fix and close on this Tuesday. Issues-wise, we had three closed issues by two people, and seven opened by six people, so we're up four. So we crossed a 700 mark to have 703 open issues. You can check those out at github.com. We use milestones to track prioritization for folks who are funded by Adafruit to work on Circuit Python. We have six active milestones. We have 2x, which is our stable branch, that will probably keep us going until 9.0 is released. We have seven open issues there, and then we have 50 open issues on 9.0. We have seven issues not assigned to Milestone, so those likely came in over the weekend and need to be triaged, and will be triaged. So that's the state of the court. Thank you, Scott. We now need to tell us about the many, many, many libraries. We do have many libraries. So this applies to all of the Adafruit Circuit Python libraries, as well as all of our community libraries. And across all of those repositories, we had two pull requests merged over the last week. Not anybody knew in the authors or reviewers. And it leaves us with 50 open pull requests. We had one issue closed by one person, and five opened by four people, leaving us with 640 open issues. Twenty of those are labeled 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 open pull requests listed out, the list of open issues, and you can check out, if you're interested in reviewing, check out the open pull requests. If you're interested in contributing code or documentation, check out the open issues. Leave comments in both places and let us know what you think. And if you're new to everything, good first issue is a great place to start. As well, we have a guide on contributing to Circuit Python using Git and GitHub, and we're always 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 PyPI Weekly download stats, we had 129,910 PyPI downloads over 312 libraries, and the top 10 libraries are listed in the notes. Library updates in the last seven days, we had four updated libraries, it looks like, but no new libraries. If you're interested in those, they are also listed in the notes. And that's where we are with the libraries. Thank you, Katny. And last, but definitely not least, we'll tell us about Blinka statistics. Hello, so Blinka is our Circuit Python compatibility layer for MicroPython, Raspberry Pi, and other single board computers. This week, we had two pull requests merged by two authors and one reviewer. There are currently three open pull requests amongst other repositories. There was one closed issue by one person and zero opened. That leaves a net of 102 open issues. And there were 10,335 PyPI downloads in the last week, 9,527 PyWheels downloads in the last month, and we are 119 boards correctly. And that's it. Thank you, Melissa. Next up is Hug Reports. And if you are participating with us, a general reminder, just be scrolled to the right spot so you're prepared to read off when I call on you. All right, so I have a group hug, but I have some individual ones as well. One for Scott for keeping my standards high in the dot-clock TFT pull request. Another for so many community members submitting PRs, especially on the core. It seems like we had a really good number of non-atifruit people doing core PRs this week and in the recent past. And finally to Dan and Brent for continuing to work through the issue with the Nenafirmware certificates. And Dan, thanks in advance for the 8.2x update that should be coming out soon, so it is resolved for our users. Next, I've got notes from a couple of folks to read. Anecdata writes that they have a hug for Todd Bot for identifying my serial port in use when trying to update an NRF bootloader. Then, from Cgrover, I have a hug report for DJ Devin for the weather livestream during Hurricane Idalia using a very creative approach to layering desktop and development board images. It was very helpful to see all the data and images on one screen. As well as a hug for Todd Bot for the Synthio foundational and invaluable hints and tricks page. It made it easy to start from scratch and get something special running right away. And next up is Dan. Hello. Hi, so I'm back from vacation. Thanks for mentioning about the certificate issues and I'd like to thank Brandon Justin, who I just talked to this morning, about the details of fixing the certificate issues and also thanks to Clever, who's been doing ongoing work on the Broadcom port in various ways, which is nice. Okay, that's it. Thank you. And next is DJ Devin 3. I have a big hug for all the CircuitPython developers dealing with the ESP IDF merge issues. And it seems like you all just need a big hug as things start breaking and all the issues start piling up, heading into 9.0. All of your efforts are appreciated and seen. A hug to Retired Wizard for uploading a 9.0 alpha build for the Matrix Portal S3 dealing with the SSL handshake bug discussion on GitHub. I was able to get my project on Show and Tell this week thanks to your kindness, so thank you. And a hug to SeaGrover and Todd Bot for stopping by and saying hello during my Hurricane Diya livestream and a group hug. All right. Next I have notes from David Glode, who is missing the meeting today. A group hug for all the organized streamers and participants on CircuitPython Day. A hug to Naradok for the work on non-QWERTY non-US keyboards. I've used that for HID Output and also for HID Host Keyboard Input. And a parenthetical for me. I'm glad you did that and it worked because I wrote some of that code but relied on Naradok for like the really heavy lifting in parenthetical. Finally, David has a hug for FoamyGuy and whoever else contributed to the CircuitPython HTTP server library. Very interesting PR review stream in the presence of the PourQuest author. And that brings us to Ketny. Hello. Hello. I have a group hug today. Thank you. I have notes next from Kmatch who has a hug for me, Jebler, and Retired Wizard for sharing your binaries for the ESP32-S3 dot-clock display board as well as hugs to all. Next is Maker Melissa. I wanted to give a hug to you, Jeb, for creating a pull request to remove the present libraries for the .2.x branch. One to Dan for answering a question I had while he was out. I'll hug to Brent for reviewing a PR I made while he was out in the group hug. Thank you. Next is Michael Pokusa who writes a hug for FoamyGuy for their deep dive and review of a PourQuest on Adafruit HTTP server. We are in the home stretch now, but Paul Cutler, you're up next. Thanks, Jebler. I've got a hug for Todd Bot for helping me out with some code for my new Matrix Portal project, and a big hug for Tyeth for helping me and a lot of others this past week with Adafruit IO. The help has been invaluable. Thanks. Thanks, Paul. Hello, Scott. Hey, Jeff. I'm doing memory map support for the RP2. There's a pull-up request out for it right now. And then a late minute, a last minute hug to FoamyGuy for filling in for me on deep dive last week. All right. Thank you. And last up, a hug report from Todd Bot to Seagrover for the really cool Circuit Python Chime Library that's doing interesting Chime algorithms in Synthio. And that rounds up hug reports. Next is status updates where, as I explained earlier, we want to hear what you are up to in the world of Circuit Python and slightly beyond. So take a few moments and, yeah, when I call on you, let us know what's up. So I have been working on the dot-clock displays as my main thing. At this point, they work really well within Reason. However, there are some limitations. In particular, when you're working on the pixel clock and you're doing lots of things that access the PS RAM or the program flash, the display can tear and shift. We're hoping that that will get better when we update ESPIDF. Otherwise, we will, you know, just figure out what we need to do to get it up to the level of performing like we'd like it to. Other than that, I have to check that two more displays work and address some PR comments and after that I think it's done. One of the things that are potentially changing for this is how PS RAM is shared between Circuit Python and other stuff in the ESPIDF. Traditionally, we just took all of the PS RAM for Circuit Python. Then when we added cameras, we added a way to return part of the PS RAM back to ESPIDF. And that doesn't quite work with the ESP LCD library. And so there's a different way just requires a little organization of the early startup and I added that to the pull request this morning. And that means we won't need to make any changes in the ESPIDF to make LCD displays work, which is great. And then in the future for this week, number one is finishing this PR and number two is some planning with Scott and Dan. I had hoped to do the 1.20 merge, but I will be unable, I will be, sorry, unavailable in October. Scott and Dan and I will be meeting soon to discuss our options on that. Next, I have notes from C Grover who writes finished the windless IoT weather chimes project after an intense session with physical garden wind chimes to develop a realistic wind speed effect algorithm. Learned a bunch about wind chime physics and the influence of the breeze. And there is a link in the notes doc to the weather chimes repo on GitHub as well as a project video on YouTube. Next, need to repair a few more wind petty of chimes before characterizing the scales, overtones and strike envelopes later this week. We have a lovely sounding copper chime and some nearly percussive ceramic bells that would be fun to model. Given our local weather, wind chimes and wind socks, flags, garbage cans and trampolines get quite a bit of wind related abuse. Thank you Scott for dropping those links in the chat. Alright, still with C Grover's notes getting interested in continuing along the chime voice path to develop realistic synth voices in synth IOs such as plucked string instruments particularly the banjo and the upright bass as well as flutes and clarinets all without resorting to waveform samples. The next experiment will be to use a note envelopeed object to adjust a notes filter as the note is played in order to create more complex sounds. And finally my spouse observed that I was spending a lot of time on physical and electronic chimes over the past few weeks. That's not a secret message that needs decoding is it? The project did get me out on the patio for a few hours. Okay next up Dan let us know what's going on with you. As I mentioned I'm back from my vacation, had a nice break and also as mentioned I'm working on our circuit python release hopefully like today or tomorrow that has a fixed roots.pm that's a list of all the root certificates so that some problems we've been having getting to certain sites on when you're using SSL could be fixed. So I'm working my way through that right now and then as Jeff mentioned Scott and Jeff and I will be talking I hope that we will be talking about the version 1.20 merge this week and also the ESPIDF updates. Okay Alright next up is DJ Devon 3. Hello I have six matrix panels now working with the matrix portal S3 for a display size of 128 by 96. I'm very happy with six as it makes a nice big display for my wall you can do you know sticks with the 2mm pitch panels but then you get like a smaller display so I have the 5mm pitch panels and now I have this rather large display array display and I would like to get more to try and find out what the maximum amount is that I can drive you know the 5 volt serpentine through all of that and blid it all out because apparently I thought six would be four would be the max but I've now added six so we're up to six with the matrix portal S3 thing that shows all six I live streamed Hurricane Adalia data Friday night used the Pico DVI BME 280 and OBS with overlaid data from NOAA, local radar and my own Adafruit IO dashboard this was the main reason I purchased the Pico DVI from Florida the next hurricane is just a matter of time so it was kind of a neat thing to be able to stream that using Adafruit products and Adafruit IO that's it Thank you. Next up I have notes from David Glode who is missing the meeting a keyboard and doing nothing weak I did not do much or I don't remember anything I investigated Naradak's keyboard library documentation and generation website I tested native support for keyboard on the USB host port keyboard workflow the previous attempt failed because you have to power with a GPI toggle to the USB port on the Feather RB2040 USB host I could not locate documentation on how to detach the keyboard if you don't want it to output to the REPL and how to change the keyboard mapping. Any hint in the chat is welcome and that brings us to you, Katny Hello so I did a guide last week for the iSpy Pi beret which is a tiny little Pi adapter board that allows you to connect iSpy displays that uses Python obviously because it's on Raspberry Pi but that guides in moderation and should be live tomorrow at the latest and then I'm starting this week on the Metro M7 Micro SD board guide and that should be out in the next week and a half or so so if you picked up one of those it's going to be very much like the Metro M7 Airlift board so if you have one at the moment and you're interested in any information check out that guide but this will cover obviously how to use your specific board when it's good to go and that's where I'm at Thanks Katny, I know a lot of people depend on those guides coming out to even know what the stuff they bought is. Alright, next up is maker Melissa Let's see, last week I finished up the Matrix Portal S3 message board guide I went through five home assistant guides and updated them to use Secret Python 8 and updated the home assistant syntax on them and then I tested each of those projects I also started going through GitHub issues and this week I'm going to continue going through GitHub issues That's where I'm at Next up is Paul Hello again Hello, I finished my first S3 Matrix Portal project when I choose an album on my Python web app it downloads and converts the cover art including Gamma Correction for the album and sends an MQTT message that the Matrix Portal downloads and then displays on a 64 by 64 matrix I even blogged about it to link in the notes document Starting my second S3 Matrix Portal project I have a mic plugged into a Raspberry Pi that listens to the music I'm playing and records a sample and sends it to Shazam IO to identify it I wanted to then send the song and artist data to another Matrix but I'm having some issues with MQTT blocking and don't have async working quite yet Thanks Alright, more work to do and to round out the section of status updates it is you, Scott Hello Like I said earlier I moved into a new office space that's nice and echoey I'm not fully settled but the computers are up and running so I'm going to be doing some more organization Besides that I'm getting caught up after the long weekend going through emails and reviews After I do that I'll be continuing work on the ESP IDF 5 update In particular I'm still getting the SDK config update which is very improved it actually reads the K configs now which is cool and only writes back the settings that are different which means that the SDK configs will hopefully be a lot more concise which will be good It also reworks how flash and ram settings are done with the idea that we can actually be more aggressive in those settings It's taken a little while though because I'm updating all of the like making tweaks to the updater as I do it to minimize if I missed a particular setting that a particular board has and doing all that sort of stuff That's what I'm up to and I'm looking forward to having a discussion about the micropython merge as well Thank you everybody That concludes status updates For In The Weeds we have one topic I was just wondering what it looks like we will be able to create a circuit python 9 alpha and that's it So from my understanding and Dan and Scott please chime in if I get this wrong we want to wait until the most disruptive changes are kind of in the rear view mirror and those are the IDF 5 update and the merge of micropython 1.20 Okay And those are kind of a when it gets done but that's what we want to concentrate on right now Okay Thanks Scott do you want to say I would say it's not even IDF 5 it's really so we don't have MPY format merge format churn because MPY format is going to change twice it's already changed once now and so we don't that's the main thing Yep Okay so we're not holding it for the IDF 5 update just for the 120 merge Yeah because IDF 5 is it's not going to be a visible well I mean it may be invisible in some sense it may be visible in some sense but it's not going to provoke an incompatibility necessarily I don't think I'd do betas until the IDF churn is finished but I mean there's things that you want we just want to put a lot more stuff into the 8.2 releases so if there's a back port of a board or something like that we're encouraging people to PR things against 8.2 Okay rather than against main I mean it's conceivable that we might even have an 8.3 so far we don't need that yet if there were some you know notable api change or something for me it's mostly about the circle python bitmap tools Is that an 8? For the alpha version of change Yeah for instance Yeah I think that'll have to wait for a 9 alpha to come out because that did involve an incompatible change to my recollection That works? Alright thank you everyone who had things to chip in about that item and I will go ahead and wrap up the meeting. This has been the circuit python weekly meeting for September 5th 2023 Thank you to everyone who participated to support Adafruit and circuit python especially those of us that work on circuit python consider purchasing your hardware from adafruit.com The video of this meeting will be released on youtube at youtube.com and the audio version will be 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 that's the 11th at the usual time of 2pm eastern 11am pacific the meeting is held on the adafruit discord which you can join at any time by going to adafruit.com 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 python easter's roll on discord we hope to see you all next week thank you everybody