 Hello everyone and welcome to the Circuit Python Weekly for June 14th, 2021. This is the time of the week where we get together to talk about all things Circuit Python. I'm Katny and I'm sponsored by Adafruit to work on Circuit Python. Circuit Python is a version of Python designed to run on tiny computers called microcontrollers. Circuit Python Development is primarily sponsored by Adafruit, so if you want to support them and Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to adafru.it-slash-discord. We hold the meeting in the Circuit Python Dev Text Channel and the Circuit Python Voice Channel. This meeting typically happens on Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except when it coincides with the U.S. holiday. If the meeting time is changed, we'll notify you via Discord, or if you wish to be notified about the changes to the meeting, we can add you to the Circuit Python East as Discord role. There is also a calendar available that we try to keep updated if you'd like to subscribe to that. This meeting is recorded. We record audio from the Voice Channel and video of the Text Channel. If you'd rather not have your voice recorded, you are still welcome to participate. The video of this meeting will be posted to YouTube and the audio is released as a podcast. If this podcast is not available on your favorite podcast service, please let us know. There is a notes document to accompany the meeting and the recording. If you wish to participate but you can't make it to the meeting, you can leave hug reports and status updates for us in the document and we'll read them off during the meeting. The notes document also contains timestamps to go along with the video, so you can use the document to view only the parts of the video that interest you most. The meeting tends to run 60 to 90 minutes, so this gives you the opportunity to skip around. A link to the notes document is posted to the Circuit Python Dev Channel in Adafruit Discord every week. Check the pinned messages for the latest Notes Dog. This meeting is held in five parts. The first part is community news, which is a look at everything Circuit Python and Python on hardware in the community. It's a preview of our Python and microcontrollers newsletter. The second is the state of Circuit Python, Libraries, and Blinka. This is a statistical overview of the entire project. It is a chance to look at the project by the numbers separate from what we're all up to. The third is hug reports. Hug reports is an opportunity to highlight the good thing folks are up to, taking the opportunity 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 to talk about what you've been doing in the last week since the last meeting and what you'll be up to over the next week until the next meeting. And the fifth and final part is in the weeds. In the weeds is when we have our 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 is how the meeting will go. So with that, I will go back to the notes and get started with community news. So first up, Tom's Hardware Best RP2040 Boards 2021. While the Raspberry Pi has its own RP2040-powered board in the Raspberry Pi Pico, there are now more than a dozen third-party solutions that offer improvements, which range from smaller sizes to built-in Wi-Fi, more storage, and a lot of additional outputs. There are even RP2040-powered keypads. Adafruit has three of the 10 boards, and that is available on Tom's Hardware. Next up, GitHub repository use from within Visual Studio Code. The remote repositories extension lets you quickly browse, search, edit, and commit to any remote GitHub repository directly from within Visual Studio Code. And that is there's a blog post and a YouTube video there. Next up is 2021. The year Windows became a first-class Python development environment. This is a quote from a post. I felt so badly burned by Apple's laptop hardware design decisions for a few years ago that I've fallen rather out of love with the platform for my personal work. My first choice was the Linux desktop, and after months of struggling, instability, and accessibility issues, I'll admit I've been looking for more stable, solid solutions that are also powerful enough to get the job done and maybe even have something new to offer. If you've tangled with Windows in the past and found yourself struggling against its rather Byzantine UI, I'd urge you to read on to see if maybe it's not time for another careful look. Next up, PyFest is this week. PyFest is an online festival dedicated to Python. The aim is to bring all the Python community together in a fun interactive event. Join for a series of lightning talks, artistic performances, quizzes, and more, starting on 16 June 2021. It'll be free and streamed on YouTube and Twitch. Next up is John Park's Circuit Python Parsec, and this week he shows how to use the map range function. There's a video there. Next up is MagTagCaps, which is you get the top post from Reddit r slash world news without using Reddit's API and display it on an Adafruit MagTag. Next up is how to build an RP2040 powered shortcut keyboard with Circuit Python, and that is on Tom's hardware. Next up is the world's cutest 3D printed macro pad, inspired by Romley's KeyCappy and powered by Adafruit QDPy and Circuit Python. So this has been a preview of the Circuit Python weekly newsletter, which is a Circuit Python community-run newsletter emailed every Tuesday. The archives are available on adafruitdaily.com. It highlights the latest Python on hardware-related news from around the web, including Circuit Python, Python, and MicroPython developments. To contribute, you can edit next week's draft on GitHub or submit a PR, and you can also tag a tweet with hashtag CircuitPython on Twitter or email cpnews at adafruit.com. And that is community news. If you want to subscribe to the newsletter, it's adafruitdaily.com is where you subscribe as well. It's a separate thing from your Adafruit account. Yeah, so next up is the state of Circuit Python, the libraries, and Blinka. This is an opportunity to look at the health of the project by the numbers separate from what it is we're actually up to. We'll talk about the project overall and then separately talk about the core, the libraries, and Blinka. So I will get started with an overall view of what's going on. So we had 43 pull requests merged this week by 23 authors glancing through those names. I recognize most of them. Netroy, I don't recognize. Ben Clifford. The rest I think I recognize at least from one or two PRs. And then 15 different reviewers, which is also amazing. And then we had 17 issues closed by 13 people and 22 open by 19 people. So overall we are up in issues. But it's great to see so many people involved with those issues. So with that, I will turn it over to Jeff to talk about the core. Hi, I'm substituting for Scott since he is out on a much needed vacation. And I will tell you about the core where we had 11 pull requests merged, including one of the others. I'm pretty sure is new Netroy and also Ben Clifford, whose name I'm not familiar with. We had just six reviewers, kind of the normal list of suspects. Although thank you, Jose Posada and FOMI guy. You review less often in the corner. It's always nice to have you helping out so it can bring in more changes. There are 19 open pull requests ranging from zero to 264 days old. And issues wise, we were up three with six issues closed by four people and nine opened by eight people, leaving 465 open issues. We prioritize our work by milestones. And the key ones are that for the 6XX bug fixes, we have three issues we like to resolve. And for 7-0-0, we have 58 open issues that we'd like to fix bugs or implement new features before we go to a 7-0 release candidate. And that is where our focus is. So the 6-3-0 release continues to be stable. Although as I mentioned, we do have three issues we'd like to resolve in a future bug fix release. Most of the work is going on in the main branch, which will become 7-0. There's not a specific schedule. Instead, we're working on the issues tagged 7-0-0, and as that number decreases, we'll move towards a beta release. And think months, not weeks. The recent improvement to the main branch that I'm most excited about is that you can now run a command to install the CircuitPython stubs locally so advanced source code editors such as PyCharm can help diagnose mistakes like calling functions with the wrong number of arguments, but without even running your code. And so early hug report to FOMIGI for laying the groundwork for this and that wraps it up for the core. Thanks, Jeff. Next up, I will talk about the libraries. So this applies to all of the Adafruit CircuitPython libraries, which are Adafruit underscore, CircuitPython underscore, library name to our cookie cutter, which is how we set up our libraries initially, and to the community bundle as well. So across all of those repos, we had 22 pull requests merged. From 10 different authors and 14 reviewers, which I'm loving to see that we've got more reviewer involvement than author involvement this week. The oldest pull request closed was 158 days, and it leaves us with 50 open pull requests. We had nine closed issues by eight people and 12 opened by 12 people, leaving us with 314 open issues. If you're interested in contributing to CircuitPython on the Python side of things, consider going to circuitpython.org slash contributing. You'll find all of this information and more, a list of open pull requests, a list of open issues, and some library infrastructure issues. You can search the issues by label or search through them by searching for a particular sensor or something into that effect in the page. And if you find an issue you would like to work on, please make a note on that issue and let us know, and we're perfectly happy to help you get sorted, getting started with that as well. If you want to take on an open pull request, feel free to comment on it. It's a great way to get started reviewing. And once you feel more comfortable with it, we can talk about leveling you up to joining our review team. These are all great ways to contribute on the Python side of things. We're always looking for more reviewers. The more reviewers we have, the more authors we can support. In terms of new libraries this week, there were not any, but there were a number of updated libraries, which I will not read off, but they are in the notes doc. So overall, we've moved all of our circuit Python libraries to the main default branch. Early Hug Report to Dylan for all the amazing work there, and Early Hug Report to Justin for creating a tool that made updating learn super simple. We're continuing to get through older PRs. Jose David has done up a report that covers the rest of the open PRs and suggestions on what to do, which we'll be discussing more in the weeds. I'm really happy to see us getting caught up on library PRs and continuing to stay caught up on the recent ones. Thank you to everyone who contributes and to those who have been contributing their own libraries to the community bundle. And with that, I will turn it over to Melissa to talk about Blinka. Sorry, I couldn't find my button here. Okay. Let's see. For Blinka, which is our circuit Python compatibility layer for Raspberry Pi, MicroPython, and other single board computers, we have 10 pull requests merged this week. And by three authors and three reviewers, which is awesome. We have, that leaves three open pull requests. There were two closed issues by two people, one open by one person leaving a net of 57 open issues. There were 7,018 Pi PI downloads in the last week, which is a lot. And there were, we currently are supporting 75 boards. 10 PRs is pretty high for this week too. It is, it is, yeah. That's great to see. All right. Thank you, Melissa. So that sums up the state of circuit Python, the libraries, and Blinka. Next up is Hug Reports. Hug Reports is a chance for us to highlight the awesome things that folks are doing in our community. It's a chance to say thanks, both to individuals or to the community as a whole. And what I will do is I will start as an example, and then I will go through the list alphabetically, reading off notes for those who have notes, and then actually turning it over to folks who are participating in voice in the meeting. It's around Robin, which gives everybody a chance to speak and starts with me. So with that, I will get started. So first up, I hug reports to Dylan for getting all the libraries moved from master to the main default branch. That was a huge undertaking that she managed to figure out a lot of things to automate and a lot of different ways to do things. And it all ended up going much faster than I think any of us expected and much smoother than any of us expected. So that's been amazing. We're down to just a couple of super complicated ones that have a lot of moving parts, and so we're doing those much more slowly, but it's maybe two or three left. And all the Circuit Python library is removed. This is other Circuit Python related stuff. Hug Reports to Jose David for going through all the library PRs and reviewing and merging, et cetera. And then a hug report to Justin, who is one of our internal learn development folks for creating a tool that allows us to easily update the links to GitHub code embedded in learn guides to main. Initially, we thought we were going to have to search learn manually and find these links and then update them manually. And Justin thought that was nonsense and wrote a tool to, you put in a wrap-out, it searches for it, it finds all the embeds and it updates them. So it made the entire thing, we were able to move the entire repo of learn, learn guide data over in 20 minutes tops. It was crazy. So that was amazing. Thank you very much, Justin, for that. And then I've got some notes from some folks that I will read off now. First up, Keith, the EE. I can get the time stamp, right? It says hug report to Jose David for helping me get my first pull request organized and through the start of last week and offering a lot of perspective throughout the process. And then a hug to the community as a whole for being awesome and making the experience great. Next, I have notes from Kingard North who says a general hug as, or to all as the updates and improvements keep coming. And with that, I will turn it over to Melissa. Let's see. Okay, hug reports. So I wanted to give a hug report to the Samurai Pupra for submitting a better I2C implementation of Blinka Display IO and a hug report to Katni and Dylan for helping me with moving some master repos to Maine and group activity for us. All right, excellent. Next up, I've got notes for someone who is not in the meeting. That doesn't say text only, but I don't see them here, so I will read them off. This is Ask Patrick W. Who says, very busy with day job, but I wanted to send a group hug and a hug to Katni for the Circuit Python Community Code of Conduct work. Next up is C Grover. I wanted to give a hug to Zoltan for the latest release of ULAB for Circuit Python 7.0. I was able to load it and get it to work. And I'm really looking forward to using more of the numpy-compatible layer in that. It's just fantastic for sensor and image processing, which I seem to be doing a little bit more of lately. And hugs to Ann and Lady Aida for their really prompt and complete moderation for the early publication of the thermal camera learning guide. They were big help in getting that pushed through and published, and now I can move on to other projects. All right, thank you. Next up is Dan. Okay, thanks. I'd like to thank Dave Putz, who wanted to read the CPU voltage on a SAMD or a SAMB processor and found a thread on an at-mail form that I wrote two years ago and said, why aren't we doing what I said, basically, without actually recognizing that my name was there and made a change and suggested it, and now it works. The SAMD 51 has a really flaky internal aspects and the ATD converter are very flaky, but we managed to get it to work. So thank you very much. Okay. All right. Next up, I have notes from David Glaude, who says, hug report to C Grover and those that helped him, including Ann, for the improved thermal camera learn guide and a group hug. Next up is Foamy Guy. All right, thanks, Kenny. Thanks, Cugs, for Jepler, for improving the setup pie for the stubs configuration. There was an issue that was revealed by Read the Docs, and Jeff figured out a fix for that that I think is all around better anyway, a way to upload a pie pie. So thank you there. To Dishipu for a really good suggestion on a variable name. I was struggling a little bit with the way to do it and have it make sense. And Dishipu recommended a perfect way. So thank you for that. And lastly, for me this week, to Diharata, Katni, and Maker Melissa for working on moving the libraries to the main default branch. It's really great to see. Thanks. All right. Next up is Hierifact. Alrighty. This past week, thanks a bunch to Dan for his assistance on some stuff related to the set next file port. Thank you to Sue Walter for their existing work on that port. And getting the early stuff together for it. Thanks to Dishipu, Robert, Gallup, and Scott for their thoughts and contributions to the problem. And thanks to Maholi for taking a look at implementing the alarm module and low power on SAMD. And that's it for me. All right. Next up is Jeff. Hi. I'd like to thank Fomiguy and Dan H for quick feedback on some PRs that was back at the beginning of last week. And again, to Fomiguy for that first push on getting setup.py to install the stubs. To Lamor and PT for helping me keep up beat while working on camera stuff. It was a little bit of a slog, but at the end of last week, we finally had a breakthrough, so that's great too. And finally, thanks to Jerry for testing that code and giving some useful feedback. Excellent. And next up is Jerry. Thanks to you, Jeff, for getting that code working, the parallel image capture and the OB7670 stuff on the ESP32. Fun to have. And Dylan and everybody else has been involved in all the migration domain. It's nice to see that all happening. Thanks. Excellent. And then I have finally notes. To read from Jose David to Woolsey J, user in GitHub for adding support for the 74HC165 driver library to the community bundle and to Laysamai Purpre for clear given explanations on how to add libraries to PyPI. And with that, we have hug reports. Next up is status updates. So status updates is a chance for us to talk about what we've been up to since the last meeting, what we're going to be up to until the next meeting. Please take a couple of minutes to tell us about what you've been up to and feel free to include fun things as well. We don't just need to hear about CircuitPython. We love to hear about all sorts of things like Jerry's bathroom remodeling, for example, that whole saga was excellent. So with that, I will start and then we'll loop through the alphabet down and back up just like we did for hug reports. So I will get started. Last week was jam-packed. I updated the CircuitPython.org slash libraries page to have the 7x bundle now that we had a 7x release. Updated the readme for the project bundler to reflect the change in how it works. Now when you download a project bundle, it has two folders in it, one for 6x and one for 7x because the empires are different. So the library compatibility is different. So depending on which version of CircuitPython you're using, you would choose that folder. So the readme explains that quickly so that you kind of know what you're doing once you open that folder versus not having any idea what any of that means. And then we'll plan to update the readme for CircuitPython releases. I updated the Adafruit community code of conduct and then created a PR to generate a CircuitPython community code of conduct for community libraries. This was requested by a couple of folks who submitted libraries to the community bundle and pointed out the fact that when they run cookie cutter it adds the Adafruit CircuitPython I'm sorry, the Adafruit community library to the personal libraries of these folks. So we want one that's more generalized that applies to the community libraries and so we're working through that right now on a pull request. I added a CircuitPython NeoPixel example to the RotaryQT guide. It's a Rotaryencoder I2C breakout and using the NeoPixel on it was not intuitive. It took me a half hour to figure it out and so it was definitely there was feedback on the guide about asking if it was a RotaryPixel and it was good that that came up because it meant that I was able to add an example to the guide. I made the CircuitPython install page on the FeatherRP2040 into a template. The template already existed but it did not exist when I did that guide and so that meant this was the first time that I tested the replace page feature in learn live previously tested it only in the development environment and it worked I found one thing that needs to be fixed but that's how it goes with new features. I fixed a couple of miscellaneous things I added a section on using SafeMode and CircuitPython to the RP2040 install page template so it's in all of the RP2040 board guides presumably something like that is going to get added to the other install pages as well but that was the first place that we deployed it. I started the slider trinky guide so that should be out this week I updated the get and get hub contributing to CircuitPython using get and get hub guide to include a section on deleting your fork and your local clone and then forking again and cloning locally again this is the simplest way to update your setup to use the main default branch if you previously forked and cloned a repo that was updated so check out that guide it's called starting over fresh the pages and it walks through the steps to do that. Note that if you have local work and you have not committed or rather that has not been PR'd to the original project you will lose it so don't do this if you have a bunch of work in your repo that you're just keeping for yourself either move the work out and move it back in or do something to that effect but if you are just getting started with contributing to a particular library but you already contributed to it last year this is the easiest way to deal with it. This week finished the slider trinky guide there's a PR on PyPixelBuff I need to test that revert something I did because a flag turned something off in CircuitPython 7 and somebody caught it and turned it back on so the change I made is no longer necessary but I need to test it to make sure and then I'm starting the QT RP2040 Trinky Guide and that's going to cover using the NeoPixel and the button in CircuitPython as well as using it with U2IF and I'll do a new template for I2C that is meant to go in this guide but will go in any CircuitPython board guide eventually on how to use CircuitPython I2C etc and then this evening I'm getting my second COVID vaccine so I really have no idea how the rest of this week will end up looking but I'm super excited about that and that is my update so next I have some notes to read from KingerNorth who said the last couple of weeks I have been working on a new course proposal with the local college through a program set up by the Ministry of Colleges and Universities in Ontario for grant money this is a new program of micro-credentials my proposal has advanced and has been officially submitted to the college in the Ontario government I've created this called microcontrollers for commercial applications the course is using both CircuitPython and Arduino this week I just built a 3x3x3 LED cube which I've never built one before and I'll be writing code and testing it using CircuitPython on a couple of RP2040 boards Feather and Pico that I have also purchased my first Raspberry Pi a Pi 400 and I'm starting to use it with both a monitor and a cyberdeck TFT new adventures next up is Melissa hello so last week I finished up my voice to Jason guide I updated the EPD guide with first CircuitPython with a new 2.13 inch e-ink display Arduino CircuitPython and Python I tested a fixed SDL script for the Pi TFT guides and updated the guides I moved a number of Blinka and Raspberry Pi related repos from master to main I think it was around 10 and all and I went through and fixed a handful of repos that were not passing their checks just because they hadn't been updated in a while this week I'm going to finish up fixing those repos I think I just have one left I need to test out using Python extended bus on a Raspberry Pi with multiple SPI devices I need to take a look at an outstanding PR on the web serial ESP tool and I'm planning on starting to work on a Microsoft Lobe guide and that's it all right great next up I have some notes to read from Mark Gambler who says looking more into the ESP32 S2 display glitches now that I have a logic analyzer I can't make in the weeds this week but there seems to be an occasional delay in the row column commands to the display causing an issue I'll keep looking next up is C Grover let's see since the guide was published this week I can start working on some old projects that have been nagging at me and calling to me from across the workshop and one of them was a robotic heirloom cuckoo clock that I built about a year ago and it's been running quite well but the servomechanisms are starting to wear out the original mechanical whistles and I'm worried about since this thing is about 50 years old at least the components of the clock are 50 years old I'm worried about losing the sound from those original whistles so I'm in the recording studio today and I'm trying to get some high resolution tracks done so that I can preserve them forever and then include them as samples in the heirloom clock project so they'll be backups if the servos or the whistles eventually fail and then I've got some PCBs I love making PCBs I've got some PCBs designed to replace a Cluj in the motor tester appliance and it'll be kind of fun to deal with a dual INA 260 with the motor driver chips the traces and the heat loading and current loading for that oh and I get an Oshpark sticker out of the deal too can't go wrong there alright excellent next up is Dan okay scrolling backwards um so I've been working on I was out last Monday uh and I would mostly working on keypad support both single pin per key and matrix keypad scanning and I've rewritten this thing like three and a half times to try to get the API simpler and to provide enough functionality there really are two completely different use cases sort of like keyboard scanning where you might want events and another case where you just want to know uh whether a key is pressed so kind of like transitions and also just state and I thought I had another solution on Friday and then I rewrote that on Sunday and then this morning I said I can do this even simpler and so I'm doing that and it's been really frustrating but I think I've zeroed in on the right thing this is kind of how I tend to write code is like try to implement it and see what's wrong and flush out the without specking it completely in advance and I'm glad that I did it this way um so that's I will continue to do that and try to finish it as soon as possible because we have some products in the pipeline that will use this okay alright thanks Dan next I have some notes uh from David Glaude who says by editing previous comment and changing the previous emoji there is a link to a gist with some code and the demo was done during uh David's hug report I did see that go by um next up is foamy guy alright thanks Kenny uh last week I made some code for the rotary trinky to work as a brightness a screen brightness uh crank basically you can have a little crankshaft on there and crank up and down your brightness um I started work on the image load library to allow it to work with file like objects in particular we're interested in bytes I O object um so that way you could load an image that doesn't necessarily have a file on the circuit pie drive um and when I sat down to start working on that I was had my memory jogged of something from back in around I think March around that went in that library for a particular build that happened to be out at that time and that work around is no longer needed so I went ahead and made a PR to remove that uh for this week I am going to be working on the case I have the the second iteration of the case coming off the printer right now so I'll be making a case for that rotary trinky um and then uh last thing I have for this week so far is um I got to try to learn about high pi versioning and figure out how we can have separate uh stable and latest releases for the stubs that way we can have hopefully just one listing but separate versions for it quick question about the brightness crank does it work on mac os or is it windows only it's uh I believe it works on iOS actually yeah I was talking to uh PT and somebody I'm not sure who but somebody tested it on iOS and it does work there so I would assume mac as well but I'm not 100% sure on the I'd be interested to see that because I put a demo in the um slider trinky guide for monitor brightness control but it only works on windows gotcha uh yeah let me I can uh I'll paste a link here in a minute with the code that does it basically cheers thanks okay uh next up is higher effect okay so this past week I wrote up a bunch of learn documentation for the alarm module um as it exists on uh the other ports that it's been ported to so nrf rp 2040 and stm 32 all now have the alarm module um and they'll there will be a learn page out for that pretty soon on the existing sleep guide um I got started on merging in code for the supervisor set next file feature this is a feature that allows you to have a menu in circuit python that uh you can navigate on and actually pick another file in your drive to run next time you reload so you can exit the menu and then I'll actually start up another program that you've imported um this is something that we can get a short term version out uh soon but it has a bunch of weirdness as far as it in uh interactions with deep sleep um deep sleep is gonna kind of be messy so this week I'm going to be doing that initial implementation that's just sort of deep sleep agnostic but then also um doing some kind of surrounding work uh to try and prep for uh deep sleep integration on that um until Scott gets back to clarify some things about the api um and uh I'll be filling out some kind of related features like sleep memory on the stm 32 and rp 2040 to try and support that work and that's it for me all right thanks next up is Jeff hi again so um last week let's see oh I'm looking at Jerry's notes no wonder they don't make sense um I finally got the ov76 camera working on the esp32 s2 the pro request is in but I think it hasn't been reviewed yet in any case it wasn't merged the last I looked and this means some incompatible changes in the parallel image capture class because the esp32 s2 can use the pins in any order with gaps which was different than the first two that I implemented so that will be fixed also in the adafruit ov76 70 library with a second poll request the development kit from expressive for the esp32 s2 called kaluga had two versions version 1.2 and 1.3 their pinouts are a little different so I added the version 1.3 board to the main branch uh it says here I tracked down and fixed some other fun stuff I don't remember what that even was and I helpful me a guy out a little bit with the setup dot py to install the stubs to to the crack location in a slightly better way so this week I'm returning back to creating initialization code for the ov26 40 camera which I think I will continue working on on the rp20 40 due to some glitches on the samd 51 that I don't want to get in the weeds about I also discovered that I squared C speeds below 100 kilohertz uh don't actually operate below 100 kilohertz on samd 51 no idea why there's an issue filed um I will not be looking at that in the immediate term um in personal stuff um I would like to upgrade my keyboard to 70 pre-release so that I get the ability to shut off the rebel uh but before I do that I need to feel like I have good access to its reset button which is hidden deep inside the keyboard you got to remove about 12 screws to press reset so that's not good design um and then finally I would like to put in a little time I was excited about these stubs in uh pie charm and other editors but the micro lab stubs um don't appear under the right place so um you want to be able to write uh import ulab.numpi as np and then np.ndarray to access the constructor of the array object but pie charm presumably because of what's written in the stubs thinks that um ndarray is actually directly in ulab and not in ulab.numpi so it doesn't give you the accurate help so I'd like to look into that uh no guarantees because the camera stuff is my top priority but that's what's on my mind thank you. Thanks Jeff. Next up is Jerry. Let's see where does that go okay so yes I spent a bunch of time playing with the uh ob7 670 camera on the kaluga that was a lot of fun and in the process I ended up learning a lot about how the display IO init sequence works for the ili 9341 and so it's always kind of fun to dig into something like that demystify what was always a very black box to me here's the cat right on cue um and the examples from uh from Jeff were really very educational and helpful in sort of exploring what was going on um and then over the last couple of days I spent a bunch of time chasing down what looks like maybe an issue an stioio on the stm32 released on the f405 I'm getting some intermittent IO errors when I write to the sd card um I'm still trying to work out a minimal case to make a good issue out of it but um it looks like there's something funny there because if I run the same code on a feather m4 using sd card IO or an m0 with just sd card I don't I don't get any errors so something funny maybe going on there so or or to come up with that and then just this morning I stumbled across an issue with print and circuit pythons so just a heads up I did put an issue in but on some of the builds or most of the builds if you try and use the flush keyword in a print statement it will fail um so far I only found it works on the m0 but not on the m4 the on rf or the esp32 or the stm32 so look another thing to look for and then I'll be out next week my grandkids and their parents are visiting so this is the first time since pre-pandemic so I'm kind of excited about that List in an order of importance yes alright and finally I have some notes from Jose David who says last week PR reviewing and status report learning guides updates for the bme280 adding some of my community libraries to pypi working on the si47 13 driver to have the radio stations update i2c addresses learning guide and this week PR reviewing and others and that is status updates so next up is in the weeds in the weeds is an opportunity for more long form discussions things that don't make sense for status updates or things in status updates that turn into long form discussions we move them to in the weeds so I have two topics here the first one involves me and Jose David we were going to talk about the open PR situation Jose David put together this list that is all the current open PR's and what suggestions on what should or what could be done with them um so I wanted to pop this um into oh excellent it was updated last Thursday um I wanted to pop this into the chat and let everybody take a look at it um if anybody's got any opinions on these it would be great to um comment on the PR itself would be the best um way to go about it I think um the list is quite thorough so I don't have a whole lot to add to the list um but I I guess I wanted everyone to be able to take a look at that and if um if anyone has any suggestions for PR's or thoughts on them or it's your PR and you're waiting on us um Jose David has been going through all the PR's so there should be activity on pretty much all of them except for I think there's a few that um we weren't really sure what to do with so there hasn't been comments made yet but um be aware that we're going through all that um I'm thinking uh Jose David that um I will take a look at it more closely later this week um it might not be till next week because this week I've got um a couple of priority guides that need to be finished and then um we'll see what we can do beyond that and on top of that Scott will be back at that point um he's back not next week but the week after so um I don't think we need to go into too much detail right now just because um Jose David is typing yep alright sounds good so the next one is uh the next topic is um also from Jose David uh says could we create different tags for identifying PRs? I'm thinking two labels that could be helpful one is for when the PR could modify some learning guides and the second is when a PR will need a revision change um I think this is absolutely an excellent idea uh if I remember correctly adabot our script can apply not I just not remember correctly I know the adabot our script can apply um new labels to um two libraries so I presume anyway that that would apply it could apply to adding PR labels um otherwise we would need to do it manually which is a slog so I'm pretty sure adabot can do that um I will think on what to call them I know the PR one should definitely or them sorry the learning guide one could definitely be added um the revision change one um we could probably add breaking change is what that one would be called um because that indicates we need to definitely bump it more um yeah that would update learn and breaking change um both of those sound good um so I will uh if you could if you could send me an email about this that would be great so that it doesn't slip my um doesn't slip my radar perfect and I will have Dylan uh do things we need to patch on on the libraries in the next couple weeks um so we'll do we'll do a whole patch for everything um all together okay I think that's about it um I can't think of any other ones but I do agree that we should be um putting labels on PRs I think that's an excellent idea and as we if I mean obviously we can always do another adabot patch so if we um come up with um if we come up with uh more labels that make sense we can add them as time goes flag for unintended consequences yes we'll figure we'll make we'll make GitHub automatically figure out how to add that one um okay I think we're good then um unless anybody's got anything else nope okay I'm gonna go ahead and um wrap up then get down to wrap up here um alright this has been the Circuit Python Weekly for June 14th thank you to everyone who participated if you want to support Adafruit and Circuit Python and those of us that work on Circuit Python consider purchasing from the Adafruit shop at adafruit.com the video of this meeting will be released on YouTube at YouTube slash Adafruit and the podcast will be available on major podcast services it will also be featured in the Python for Microcontrollers newsletter visit adafruitdaily.com to subscribe the next meeting will be held on Monday as usual as far as I know um that's the 21st of June it looks like and um this meeting is held on the Adafruit Discord which you can join at any time by going to adafru.it slash discord to be notified about the meeting and any changes to the day or time you can ask to be added to Circuit Python Easter's role and with that I hope to see you all next week thanks everybody thank you Katny