 Hello, everyone. This is the Circuit Python weekly meeting for August 23rd, 2021. It's the time of week when we get together to talk about all things Circuit Python. I'm Jeff and I'm sponsored by Adafruit for my 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 your hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join any time by going to adafru.it-discord. We hold this meeting in the Circuit Python DevTex channel and the Circuit Python voice channel, but there are people around 24-7 in various channels to talk about Adafruit adjacent topics. This meeting typically happens as it is right now on Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except when it coincides with the U.S. holiday. We have a calendar to keep you up-to-date with the meeting time, so you can either view that online from the notes document or add the link to your regular calendar app. In two weeks, we will have an exceptional meeting time due to the U.S. Labor Day holiday. Right now it looks like we'll hold that meeting on the Tuesday afterwards. All right, this meeting is recorded. We record the audio from the voice channel and the video of the text channel. If you prefer not to have your voice recorded, you're still welcome to participate and we will be happy to read off your notes. The video will post up on YouTube and the audio goes out as a podcast on various podcast services. If we're not on your favorite podcast service, please let us know. I mentioned the notes document. It accompanies the meeting and recording. This is where you leave your notes if you can't participate live or hopefully leave them in any case for people who are following along afterwards on YouTube. So if you're watching us on YouTube, there are timestamps in the notes document that will help you skip to the part that interests you the most. This meeting is tended to run about 60 minutes lately, so we understand if you want to skip around or not join us for the whole time. A link to the notes document for the next meeting is posted to the Circuit Python Dev channel on the Adafruit Discord. Check the pin messages to find the latest notes doc. The structure of this meeting. We will have five parts in this meeting. Up next is community news. A look at all things Circuit Python and Python on a hardware in the community. It's a preview of the Python on microcontrollers newsletter. The second part is the state of Circuit Python, the libraries and Blinka where we take a statistical overview of the project. Then we get into the participatory parts. The third part is hug reports, an opportunity to highlight the good things folks are doing and to take the time to recognize the awesome folks around us in the community. Fourth is status updates where we take a few minutes to talk about what we've been up to and what we'd like to accomplish in the next week or so. And the fifth and last part is in the weeds. If we need a time for more long-term discussions, whether you've identified it ahead of time or it comes to light during status updates, this is where we do them. Add your topic to the end of the list and we will take them in the order that they are given. That covers how things we will go today. So I am going to switch over to telling you about community news. First up, JP's workshop, the famous YouTube franchise, has reached 200 episodes, which is a big milestone. So thanks for that. And many projects have been highlighted, including those using Circuit Python. And of course, lately, there's always a Circuit Python parsec to go with JP's workshop. Second, Whippersnapper, the beta continues. Whippersnapper is Adafruit's IoT solution using no code, and we're still in an Invitational public beta. Here is one user's post from Twitter. I finally had a chance to try the Adafruit Whippersnapper beta. It took all of 20 minutes to hook my Funhouse LED to an existing feed from an air quality sensor. The LED now lights up when the air quality is poor. No code required. All right, but if you're feeling nostalgic, Todd Kurt has recreated classic screensavers in Circuit Python, both the famous Flying Toasters and the Bouncing DVD logo. So check that out on Twitter. Let's see. I'm not sure who the byline is, but it says whipped up a quick little 3D printed test jig for the Fibonacci 64 Nano using an Adafruit QT Pi, PogoPins, Perfboard M2 standoffs, and Circuit Python code. And thanks to the links pasted in the Discord chat, I can tell you that is Jason Kuhn. All right, a video that I hear over 100,000 people have watched. Bad USBs are scary. Build one inexpensively with a Raspberry Pi Pico and Circuit Python. Links to YouTube. And we've, of course, featured that on the Adafruit blog. But don't be naughty. Don't be naughty with your USBs. Be awesome. Last up, I submitted one to the newsletter this week. I continue to work on the open source project Linux CNC, and I wrote up an article on using the Adafruit MacPad, MacroPad as a control pendant with Linux CNC. And that wraps up what I've extracted. But there is a lot more in the newsletter. So we invite you to subscribe by going to AdafruitDaily.com and entering your email. That is a complete separate list from Adafruit.com. So no spam, no marketing, just Circuit Python marketing. Anyway, but it's also a community run newsletter. And it's emailed out every Tuesday. The complete archives are at AdafruitDaily.com slash category slash Circuit Python. And it always aims to highlight the latest Python on hardware related news from around the web. We want you to contribute your own news or projects. So you can do that by editing next week's draft on GitHub and submitting a pull request with the changes. You can also tag your tweets with hashtag Circuit Python on Twitter or email cpnews at Adafruit.com. Hope to see you and your project in there real soon. Next up is the state of Circuit Python, the libraries and Blinka. Our kindly Adabot gathers statistics that cover approximately the last seven days and summarizes them. And then we give a little context to all of the numbers. So I will start with the statistics overall, which are any GitHub repo on GitHub. I think only those under the Adafruit organization that we identify as being related to Circuit Python and Blinka. So overall, we had 37 pull requests merged from 17 authors and 11 reviewers. So it's good to see those big numbers. And especially it feels like our author numbers are really, really nice lately. So Pilser and our pelvic are or our pelvic, excuse me, our new or newer contributors. And then we have a lot of the usual suspects. So thanks, everybody. And if you're just getting started to contributing, we hope to see a lot more of you. Issues wise, we had 35 closed issues by 18 people and 22 open by 16 people. So it's good to see those issues numbers going down, some of which Scott will tell you about when we move on to the core, which is up next. Hello. Okay, so for the core, we had 24 pull requests merged from 15 different authors. So thank you to all of those authors, as you said before. We had six reviewers. So thank you to all of our reviewers. As always, we're looking for more reviewers because the more reviewing we can do, the more authors we can support. Of course, we'd love authors as well. We have eight open pull requests, although I think this number has actually gone down since we snagged the stats. And the oldest is 30 days old. Some of these are drafts as well. I wonder if we should get drafts in these. That would be a good idea. I was just going to say, I'm pretty sure that one of those two long open ones is a draft, and it's going to be that way for a while till well after seven goes out. So it wouldn't hurt to make that change. I would also like to say that if there is a pull request that is going to be a draft for a while, it probably shouldn't be a pull request. You can still link to comparisons, like make an issue and link to the, you can make an issue and link to the branch that has work in it instead of a draft. I'm kind of a stickler because drafts still get counted in the top tab. And I use that, I use that as a metric for how healthy a project is keeping up with pull requests. So I think if there are long-term things, then I think they're better served with an issue and a link to a branch. But that's my thinking. All right. Well, we got a little off track there, but I appreciate the reminder. No worries. Okay. So issue-wise, we had 24 closed issues by 10 people. So that's awesome. We had 15 opens by 10 people as well. So we're net down nine for a total of 423 open issues. This is kind of a bit better than we have been. So that's awesome. We've been doing a lot of work on closing issues. We have six active milestones where the 700 milestone is kind of the one we're paying attention to the most right now. That's the milestone that we want to have zero open issues so that we can go to doing like a release candidate and then a stable release for 70. And that milestone has 18 open issues currently. And there are a lot of other issues, but we have four issues not signed a milestone. Those are the ones that need to be triaged as well. Those are the highlights for the issue milestones. And then overall, thanks to Jeff and Dan for grabbing bugs. We're seeing the issue count go down. Beta zero is imminent so please keep testing and hopefully it'll be quick to go from beta to release candidate. Thanks Scott. Next I will invite Ketney to tell us about the libraries. Thanks Jeff. So this section applies to all of the Adafruit Circuit Python library. So that's everything that starts with Adafruit underscore circuit python underscore as well as a few other repos such as the community bundle and our cookie cutter. So we had 11 pull requests merged from four different authors. So thank you to whomever is putting in multiple pull requests and eight different reviewers. We have now 48 open pull requests. In terms of issues, we had eight issues closed by eight people and five opened by five people leaving us with 340 open issues. If you're interested in contributing to circuit python on the python side of things, go to circuit python.org slash contributing. You'll find all of this information and more including open pull requests, open issues, and library infrastructure issues. You can search the issues to see whether there's anything you'd like to work on. Leave a comment and let us know that you're going to work on it. If you would like to get started reviewing, you can check out the open pull requests. If you have the hardware, test it. Let us know you did that. If you don't have the hardware and you want to just check it for syntax or spelling, etc. That's also completely great because we miss those things as well. And you can leave a comment and get started that way. And once you're comfortable with that, we can look at leveling you up to joining the actual review team. In terms of updated libraries or library updates in the last seven days, we have no new libraries, but there is a list of updated libraries which you can find in the notes. Overall, we've taken care of updating all the guides and examples to work with the breaking changes we've made recently. Thanks to FOMI guy and Lee Samurai for pre for all of the amazing work done on this. I'm continuing to see updates to both the Adafruit circuit python in the community bundles, which is great. And to everyone involved, please keep it up. That's what I've got. All right. And to round out the section, Melissa will give us an overview of the Blinka stats. Hello for Blinka, which is our circuit python compatibility layer for MicroPython Raspberry Pi and other single board computers. We had two pull requests merged this week by one author and one reviewer. There are three open pull requests still. And there were three closed issues by two people and two open by two people leaving a net of 60 open issues. There were 8,575 Pi wheels downloads in last month and we are still supporting 75 boards. And that's it. All right. And with that, we will move to hug reports. This section is done as around Robin. So I will go first and then continue down the alphabet with Jerry and so on. And it's a time to recognize the people around us for the good stuff that they're doing, keeping the community humming smoothly and building one another up. It's kind of an antidote to bug reports. Anyway, so I want to thank Dan for continuing to do release management and most importantly write those release notes and issue a group hug. Jerry, what do you have this week? I have a thank you to Dan for the incredibly quick fix diagnosis and fix of an issue that came up last night with the NRF 524840 builds. All right. Catney? All right. So I have hug report for Ask Patrick W and Foamy Guy for staying on top of Cookie Cutter and finding bugs and fixing those. To Jeff and Scott again for taking over running the meetings for a bit while the outside of my building is ground off and replaced. To Les Samurai per pray for finding more libraries that can and should be deployed to PyPI. To Foamy Guy for taking care of all the updates needed to deal with all the breaking changes we made recently. To the community moderators on Discord, specifically Anden for suggesting the idea of the help with community channel on Discord and Mr. Certainly and Anden for writing up the descriptive message to pin in the channel. And to everyone providing support on the Adafruit Discord server, it's amazing to see all the help provided. There's always unread messages and jumping through them. It's great to see folks helping each other out and just everything being such a positive and supportive experience for folks. So thank you very much for that. Thanks, Catney. Next is maker Melissa. Hello. I wanted to give a hug to Tanu for helping me out get up and running with the co-editor setup, mostly for like things that you wanted to see. I want to give a hug report to the Samurai per pray for working with on the Blinka display IO and group hug everyone else. All right. And next I have notes from Mark who's lurking today who has a hug for me and Dan for our comments and reviews of the PR on pin duplication checks. And now it's Scott. Hello. First I hug to Anden, Catney, and the other mods for making a help with community channel. I think that's really cool. And you all do a great job moderating our Discord. So thank you for that. Thank you to the Samurai per pray for the wide variety of PRs and issues. Very cool. They've started auditing the core as well as after having audited a lot of the library. So that's really awesome. A hug report to Trevor for getting pie leap into test flight. I hope some of you are eager to try it. We will share it more broadly soon, hopefully. And then last up, again, a hug report to Dan for the great work on the audio stuff. The audio stuff is a huge slog. I've been there before. And I really appreciate Dan taking a look at all of that. So those are it for me. All right. At the top of the alphabet, Dan is next. Okay. Thank you. Okay. Thanks to Jerry for finding the bug that I fixed on last night. It's really good. I thought we had tested that version, but it wasn't true. And so I fixed that. We're all set. And thanks for the Discord moderators, as we've already mentioned. We've been dealing with threads being introduced into Discord. And we figure out how to deal with that. And revising some of the boilerplate material we have. And also thanks for adding the help with Community Channel. Okay. All right. And next I have notes from Dave Brcetti, who says group hug, good to see you all. And then we come to Foamy Guy to round out the section. Hi. All right. Thanks, Jeff. The first hug is actually to you for adding the auto feature to circup. I used that a few times this week. And definitely really love how convenient that is. I'm not sure how we ever lived without that. To GitHub user, I think it's probably D Griswell. I'm not sure if I pronounced it correct. I apologize if not. But they updated circup to be able to run a few of the commands without a device connected. There's some commands that don't specifically need a device. But there was a check that was causing those to fail. And they fixed that up. And lastly, this week to Mark Gambler for reviewing my boundary fill PR again and catching a few things that I had missed and providing some really great feedback on that. Thanks. All right. Thanks to all of you. Next we'll move on to status updates. As I mentioned before, we would love to hear what you've been up to in the past week. What you hope to be up to until we have a chance to meet again. And the focus is on circupython. But if they're selling outside of that, that you really just want to tell us about, please don't hesitate to. Once again, I'll start and we'll go in alphabetical order. So last week was mostly bug squishing. And because we were talking in our internal meeting about incompatible changes, I was reminded of a very minor incompatible change that I made two weeks ago. The displayed out refresh method does not throw an exception by default anymore. If even if the time between refreshes was long, you can still get the old behavior. If you wanted it, you just have to pass in the minimum frames per second value. And another bug I fixed, remember all those times we tried setting a lower to C frequency to deal with a finicky sensor and it never helped. Well, it turns out that 100 kilohertz is the practical lower limit on the samd microcontrollers with our clock settings. So asking for a speed lower than 96 kilohertz now gets you an exception instead of an undefined speed on the I squared C lines. This week is going to be more bug squishing. I don't know what all exactly. And then coming up in the near future, I will be taking two weeks off. So from August 30th to about September 10th, I will not be on discord as much as I usually am, not responding to issues as quickly and so forth. So just keep that in mind. And next up is Jerry. Thanks. Have a nice vacation. Thank you. So played around a lot last week with the OV 2640 stuff that Jeff has been working on for a long time and was porting it over to work on the Seola ESP32 S2 board and had some good success and some really weird stuff. So I put out a new version. There is a nice demo that Jeff had done that runs on the on the Coluga that lets you use the OV 2640 camera as a webcam going to the Adafruit IO. And that works really nicely and it works nicely on the Seola. While I was working on that, I ran into some really strange stuff. And one of the problems I ran is when I hooked up a display, the ST779 that I'm using, I ran into some just strange problems that I'm still trying to diagnose to come up with a good example. But I kept the system would keep rebooting after a while. I wouldn't be stable at all if I used the display. And that made it really hard to diagnose the next problem. Because I find that sometimes with this sale, I get these funny captures that aren't right, but I don't know what they look like because I can't see them because I can't get the display to work reliably when the problem is occurring. What I do see is that when I send them to AIO, they are seem to be malformatted and AIO won't accept them. So I'll go into that when we get into weeds in more detail and hopefully can explain it a little better. But it's just a heads up that there's some funny stuff going on there. It seems to only happen with the Seola. I haven't seen that problem with the Coluga. So I'm not really sure what's going on. But it's been interesting. All right. We'll talk about that in a minute. But for now, we'll go to Ketney. That's a long list, Ketney. I know it always is. So I tested found bugs with, last week, tested found bugs with an update of the MCP 9600 circuit python library to work with the MCP 9601. That involved updating the device ID. Pretty much everything else was identical. Tested the Arduino MCP 9600 library and found issues with that that LeMore resolved. Became intimately equated with the MCP 9601 addressing address jumpering and pinouts. There wasn't really very much clear information on it. And so to be able to figure out what was going on in the datasheet, I had to actually test it, which was annoying. But now I know what all of the address possibilities are for the 9601 and know exactly what the rest of the pins do. So I guess that's useful. And then subsequently published the MCP 9601 guide. I added MP3 playback to the MacroPad library following the core audio fix. Started a new guide on MP3 playback on RP2040, which will include a MacroPad example and a Pico example. The MacroPad page is done. The Pico page will be the MP3 essentials template, which was on hold due to needing to order hardware, which I now have. Tested some PRs, created the help with community channel and the Adafruit Discord server and rearranged a couple other channels into the help with category on Discord and started the guide for the SCD4XCO2 sensors. Today so far, fixed the MacroPad pretty pins diagram and fritzing object. The STEMIQT connector was reversed on the fritzing object, which meant that the pretty pins one was backwards as well. Updated the basic BLE circuit Python guide to more clearly explain that you must have Bluetooth advertising code running on your board for it to show up in the BLE Connect app. It does not simply show up with generic code running. And then began testing the SCD30 on Raspberry Pi. There's a forum poster that reports it fails after several hours, which has yet to be clarified exactly what that means. It's likely due to clock stretching, not working properly on Raspberry Pi. Tangentially related just for anyone's general information, the SCD41 and also the 40 in that case seemed to run quite fine. I left it running for three days straight. So if you're wanting to do a long-term CO2 sensing project on Raspberry Pi, consider the SCD4X family instead. So the rest of this week, I need to finish the SCD4X guide, finish the MP3 guide, update the INA219 guide for the STEMIQT revision. Also not added to this list because I forgot but or not forgot only found out about it in the meeting immediately before this is the hardware that I ordered for doing MP3 playback on the Pico doesn't have a guide. So we need to do a guide for that. But that guide won't go up until the MP3 guide is done because I'm just going to mirror that example in there and not have to do a whole separate example for it. And then look into what it would take to create an OBS timestamp shortcut key using Neo Key Trinkie or the like on Windows, Mac OS, and Linux. Linux is already done. It's adapting it to the rest of it that I need to look into. And CircuitPython tangential from testing sensors for the guide, either multiple CO2 sensors need to be calibrated or the levels in here are terrible. Two separate sensors are reporting the same about the same so it's probably not the sensors. I sure open a window exactly but we're in the middle of a never ending heat wave and the AC barely keeps up with the windows closed and also there's construction outside my window. And finally a general question to folks is anybody really good with Photoshop or some similar concept because I have a black and white PNG of a taco that I really need made to be higher quality than I have the skills to do. It's for a secret thing. But if anybody is available to help out I just I can explain what I need done with it but it's just not as high quality as it needs to be for the application that it's going to be used for. So that's what I've got. All right, thanks Katnie. I'm sorry if it sounded like I was criticizing your your long list. Scott has it right. You do a ton. Anyway, on to Melissa. Hello. Hi again. Hi. Okay so last week I finished updating the feather wing test for the Arduino EPD library. I worked on the new circuit Python code editor interface which took up a bunch of the time. And this week I'm going to finish up the new interface or I'm going to finish up the new interface. Then I'm going to work on the new 1.69 inch display guide the one full rounded corners. I'll work on if I get that done I'll then I'll work on updating some EPD guides and possibly I might try and look at fitting some of the looking at let me repeat that. Possibly I might try and fit in looking at some of the Raspberry Pi issues in there and that's it. All right. Well Scott is up next but seems to be working on his notes even as we speak. So can you type and talk at the same time? I know you can. Sure. I realized I didn't actually talk about what I had done last week so I thought I would add that. So mainly last week was fixing USB on IMX which happened to be a similar problem that we've had before but I did it in a more general way. So we we had checks where if you we run background tasks and then we sleep and if a background task gets queued between those two things then you can end up not running it for a long time which is bad. So and USB is one of those things so I tweaked that and made it so that we won't sleep if any background task is pending and that includes USB and that fixes USB on the IMX which is also the teensy. There was a forum post about matching iSquared C peripherals on the RP2040 that was like super easy to fix so I fixed that as well and then I did turn on Unicode file system or Unicode file name support on all boards and I also tweaked the wrapper for strings that are Unicode so that they actually print out the Unicode thing. So instead of seeing an escaped Unicode character for an emoji you will now print out a emoji directly instead. So that's what I did last week. This week is all about BLE for me. I need to test PyLeap first and foremost which is now in test light from Trevor and then switching back to doing some slight tweaks on the on the APIs including being able to move files, delete a folder with contents and potentially tweak autoreload as well because right now we reset immediately when you write a file but that can be really annoying if the code or the client is trying to write multiple files at the same time so I think we should actually do a cool down just like we do in do the cool down that we do in USB for BLE as well even though we know when complete files are written it just it'll it'll give the BLE client a chance to start another write before we reset the entire connection so I think I'll probably do that this week too. All right yeah that's it for me. Thanks. Next up is Dan. Okay I submitted PR about which has just been approved thank you Scott to approve handling of DMA audio buffers on SAMD processors which was I know more about SAMD DMA than I thought I had to know so that's good and I'll continue to work on the rest of the 7.0 issues along with the rest of the team and I've written draft release notes for 7.0 beta zero and I hope to release that later this afternoon or this evening after some we're just waiting for some runs to finish basically so it should be out really soon okay. Thanks Dan. Next I have notes from Dave Brcetti who says I was trained this summer to teach the beauty and joy of computing bjc.berkeley.edu is the website to middle school students one unit is about hardware and I may adapt the curriculum to explore circuit python and then once again rounding out the section is foamy guy. All right for last week I worked on new iterations of the boundary fill function to address some of the feedback that came back in the PR including the new thing I learned was how to make an argument be optional inside of a core function so that was fun to learn about and I believe that everything that was mentioned in there is taken care of and I think that that PR might be good to go but I'm happy to have another set of eyes if anyone else is interested in taking a look. I finished up I believe the rest of the breaking changes for circuit python 7 so I think we are ready to go there but I'll be doing a final sweep this evening. I looked into something that came up with pilot on Friday they released a new version of pilot Friday afternoon and it caused the actions to start failing but luckily the maintainers realized it and actually fixed it some time either later that day or early in the day on Saturday so it did not become a larger issue for us. I updated the dial widget to use the newest vectorio api and I also moved it over to its own new repo inside of the circuit python org for this week I'm gonna try looking into see if we can reuse the display shapes library to implement the vectorio api you know in a way that's usable for blink a display IO so right now vectorio is in the core of course and we don't have anything analogous I don't think on on c python for blink a code so I'd like to try to make that possible to use and I think the same thing will probably need to be done with some of the functions inside bitmap tools if we want to be able to use all the same stuff under blink a display IO so I'm gonna look into that and then I will also just be moving a couple more of the widgets out of the display IO layout library over to new repos inside circuit python org and adding them over to that newer newer bundle and that's what I got thank you thank you and with that we are ready to switch to our last section in the weeds where in contrast to the last few weeks we've got several items so first up is scott hello so not um directly circuit by the related but I wanted to take a chance to ask uh or talk about how we feel about discord threads um I am kind of in the camp that I'd like to see him in more places although I know I know it's not on and all channels but um I think generally they're good and I I think maybe when we're helping people with the help with channels we should try to be more aggressive to use them um because that could potentially like allow us to to have more concurrent conversations for in a channel but also keep them better separated um so any other thoughts on threads or do we just want to keep well can you or catney maybe give us an overview of where we are at with threads right now sure so we enabled threads um for well okay so threads were not we're supposed to be enabled by default um on the 17th of august discord pushed that back but we preempted them on the 16th anyway because I wanted to have control over how we deployed them and at the moment they are enabled in the help with category and the live broadcast chat channel um we did that for the purposes of sort of getting the feel for how threads were gonna work um how moderating them would work that sort of thing um and in fact that was part of what spawned the help with community channel um because what we so when we have moderation issues uh we typically would direct message the person who we needed to discuss it with and then we would post a screenshot of that into our moderation channel so that all of us were aware of the interaction that was had and what we're going to be doing from now on is using private threads um and that way all the moderators have access to the conversation and we don't have to worry about DMing we don't have to worry about um you know conversations getting missed that kind of thing um and the help with community channel is also just as a tangential side note available for questions about um like if you don't know if you can post a link or you you know you want to understand something like that better that's what that channel is available for um so in terms of threads like I I feel like we're in a good place with them I think I like I said they're enabled across the board in the help with um channel or the help with channels already uh I I don't see a reason why we can't enable them everywhere but I feel like giving it a little more time for us to just get a feel for it and for everybody to start using them is also a viable option awesome any other viewpoints I found that things it's harder for me to find threads that or find things that I need to reply to like I just found one that somebody had started a thread without posting anything I think in as it didn't turn into a thread it was started as a thread so I'm just answering now but I think that these things are probably things that discord will improve I hope that there's some kind of UI fixes that can happen in the long run I think in principle it's okay I think that it tends to narrow the discussion to only a few people kind of prematurely in some cases so I'd just be wary I wouldn't hold your breath about a UI update the reason being um threads in slack are kind of terrible um you don't know that there's been a reply to a thread like there's no notification about it um unless you see in the list that the thread section is white but if you have scrolled down your list or your list is longer than the thing that isn't anywhere you can see and you just have no idea that you've had any replies to a thread so my point is I think discord threads are already a little bit better than slack threads um which means I'm not sure that um I would expect a huge change yeah maybe that's true I think they just were responsive to these kinds of things that's true yeah I but I do think I mean I think if we see that I think it's you know I think it's worth trying I would be I I would like to figure out a way to have all the threads show up on the left hand side all the ones that are active there's an active threads thing at the top that's for a single channel oh I see what you're saying there's just only two active threads right now that happen to be in the same channel right that's not that's not really what I want I want like I want them on the left hand side like if you if you're actually joined to it like that's what I would like just and maybe maybe it's a matter of like getting a bot that just auto joins me to all of threads like I would actually be okay with that yeah I like to just open open them all like see yeah yeah like I just like to see all the active threads on the left hand side instead of mousing over the thing which doesn't even work all the time correct yeah twice kind of what I started to do is like click the channel then click at the top there's like the threads button for the channel can I make a suggestion sure sorry that one of you should probably put in a feature request right it's just a thought because I mean talking about it is one thing but discord doesn't listen to our conversations so yeah are you sure no I wasn't gonna say that but I was thinking that's god anyway um discord if you're listening yeah so yeah I'll add it to do for myself I think we are currently in a good place um I know threads are on our radar so it's not like this is gonna be forgotten um and we can look at enabling them further once we I think as a moderation team have a better feel for them all right well I'll maybe close this out with reading what Keith posted in the text chat because I think this is an example of yeah we don't want threads in here Keith writes threads in the live broadcast chat might be tough for the broadcaster to keep track of the conversation as they probably aren't free to click around and catch up on more chats so intuitively I agree with that and so that shows that well we don't want to enable it 100 across the board I'm okay I'm okay waiting to enable it everywhere I really I wanted to talk about it also just to like get it on our radar as people who are like conversing a lot and like I would like to see us start to adopt threads for more things particularly when helping people so that if anything is the action item if you're in a help with consider opening a thread for the help you're giving all right with that I will move on to Jerry's topic of the solar and the camera post a couple of screenshots here some or some stuff just to hopefully make this intelligent moment but I doubt I'll succeed um what I've been doing is with what the solar or the aio to the ob 2040 camera webcam does it captures an image then it does this reformat where it goes to this v2a to base 64 and it creates this encoded data file that it sends to aio and aio says oh that's an image and it displays it but what I'm finding is that sometimes when I turn on the board if you look at the at the image on the top the screenshot the ones that begin with 9j what it's showing you there is the first several characters of the encoded image the ones that begin with the 9j work perfectly they're they're very nice they show up just like they should the ones that begin with the slash slash slash why do not and I have no idea why sometimes it comes up sending those and it's why sometimes it comes up sending the 9js and you know if I reboot it that's what I did there it it fixes itself sometimes and then you know once it's running it'll run for hours and even days but I so I'm just looking to see is anyone have any suggestions just to what to look at and what I haven't gone in that I guess I really need to go back and decode the encode and see what it's getting because I don't know if the problem is in the capture if it's in the ob 2640 if it's in it's not in transmission because I do I do dump the I did print out the beginning of the captured image the decoded captured image and it's that is what it's sending so it's not it's not a transmission problem so just curious if anyone's ever seen anything like this and has any clues as to what to do so the first thing that comes to mind is I imagine you probably had to breadboard this camera because there's not a camera connector on that board you're using right and you know I was dealing with the inconvenience of aiming the camera when it's attached to the kaluga board and so I put on like some of those male to female jumpers as an extender and when I did that my jpegs were often corrupted although they'd be corrupted in the middle like halfway down it would all change color or shift okay and I took away I took away that like eight inch wire and then it was great so if it were an intermittent thing that affected I mean when it affected me it affected half of the images but you know like every other images or two out of three images yeah it's not that because yeah and I had similar problems at some point but on the kaluga in fact I put in a long about about a 30 centimeter yeah you know cable that I made and it's rock solid huh and on the what I did find it seemed at least when I first did it with the cell that if I touch things the right way maybe it would change yeah I mean I was definitely handling mine when I was seeing these right and so I suspect maybe it is a signal integrity thing um and so and so yeah and and I would see some funny artifacts in what in the display when I was getting working with the display but again I'm having a lot of trouble with the displays so I'll keep trying that trying things but I'm just curious that this is anything like anyone who's ever noticed so probably not because I don't know anyone's done this very much yeah I haven't heard from anybody but you who's tried this code so um that doesn't mean if anyone uses that demo they may run into this depending on how you attach the I tried swapping cameras um I tried I tried you know there's there's a reset in the power down line that weren't being used I tried using them and none of that seems to make any difference I tried longer and shorter cables and that didn't seem to make any difference either yeah my my kind of gut guess is maybe it's picking up somewhere in the it's not getting the beginning of the image so it's getting the middle of the image but why it would be this consistent pattern that's got to be a clue it is a signal integrity problem is the the only solution is to make it shorter is there any any suggestions for anything that would improve that you'd have to ask an electrical engineer not me okay I just want to raise it if anybody you know sees any issues and has similar complaints probably correct but it's it's been fun to play with and the webcam thing is really cool when it works I really enjoy it well um yeah so probably even though you don't have it fully characterized you should file a bug in the core um if there's a fix it's going to be in the core I think okay so do feel free to file a bug and then maybe someone will come along and say I see this too where in the core would you be looking at this so this is in the the image capture module okay all right well that's maybe all right and that and then so I also played around a lot with the qr one and again it and it works fine except that it's really hard to do the qr codes if you don't have a display because you don't know where the thing is looking and so that's when I try to put a display on then I started running into problems so I need to understand and resolve that issue as to why I can't get the display is to display to work properly did you have any trouble any similar trouble with displays on the kaluga I think so okay I haven't characterized it it's not not nearly as bad but but I am having an issue with the kaluga as well and that's I'll again if I can come up with a good demonstration of it I will certainly put it put it out there and the the symptom is spontaneous reboots that aren't safe mode yes it just reboots and comes back up you know and tantalizes you would circuit pi for a couple of seconds and then you know by the time you try and do something goes away there is an issue that's very similar to that it involves wi-fi and importing some other modules and the relation between you know just what the module is is unclear but that's one of the bugs that's blocking 7 0 and I looked at it for a couple of days without figuring anything out so this may be the same bug just slightly different circumstances so okay in fact now you mentioned I do remember seeing some traffic about the spontaneous reboots so these may be totally independent issues or different issues I mean this that may just be a sense as it happened when you weren't using wi-fi because I guess both of these examples are using well actually is that true no the qr1 well the qr1 uses wi-fi in one incarnation right you know I've been using wi-fi for that I'm trying to think if I just set up the camera so if I'm just running the camera I don't think on the colluga I've had it happen but so yeah I think it has probably only happened when I've had it using wi-fi ah not so on this on the cell because that one I have had had running yeah that one will just run for a while then the then the screen will just go blank and it won't necessarily reboot it just won't show anything um yes it can be different maybe different issues there but that's a good good thing to look at so in the text chat Keith asks is that reboots something that takes place at a consistent time like after the same length of time the one that I was looking into was as soon as you asked it to connect to wi-fi or soon after before it returned from connecting to wi-fi it would restart and if you could get the debug information from the the debug you are at header it would indicate that it was a watchdog timer problem and I can find the bug link after the meeting if anybody's still interested in and looking into that I'll have to go back and look through the timing as to when when mine was doing it it wasn't overly predictable um because it didn't seem like I would sometimes get a couple of images out before it rebooted but oh lots of things to check okay I was just hoping that oh I asked because I'm working with the co2 the sdc 40 and I'm getting a reboot at a very consistent length of time and so that time period is exceptionally consistent it will reboot and I only know I was actually trying to get the code to figure out the time period uh zooming in about twice a day uh no no less often those aren't every day this is it more zoomed in time stamp okay so there was your day month day hour um that would be correct month day hour I'm gonna uh I'll turn off the microphone and pull up some code and try and get that time delta narrowed down to the number of hours or minutes but it's so consistent in my issue that I was wondering if it's related okay for me might never run that long so that would be a considerable victory but made it that long but um that's really interesting okay I'll grab some more information for it after this then all right thanks Keith next up we will head to foamy guys item all right I was asking about the system that bundles the code for projects inside of learn um specifically what I'm interested in understanding is if it's able to pull from like the community bundle and circupython org bundle uh and perhaps others because before I remove the specifically I think icon widget is the one that's in there but before we remove the rest of the widgets from the display layout library uh of course I want to definitely make sure that the project bundler will still be able to find them so that the existing project that uses it I think the steam deck is the only one but there may be others I haven't specifically checked but I know that one for sure uh you know we definitely want to make sure that we'll still grab all the correct libraries and everything for folks once we move that over so that code is not public um but I can definitely get you info and probably put you in touch with our dev that worked on it um and then we can make sure that either we update the bundler to do what we need it to do or we work that particular repo around this particular issue sounds good so I will uh look into that and let you know awesome thank you and as you may already know foamy guy there will be changes needed for the screenshot maker to get things from the other bundles as far as I'm aware yes I think you're right probably uh because it's I think it's hard coded to look at the one json file from the main bundle so it will probably need to grab yeah it also occurs to me it would be really nice if there were some code that was shared between circup and the screenshot generator and the learn system so that we knew there was one source of truth we know that the learn system is going to do things with it that are going to remain part of the private source but maybe there would be a way to structure it so that we could share the same code to enumerate the files so that we knew it was consistent so I don't know if that's anything that would be on the table but you might want to talk about that when you have a chance to chat with them okay does that make sense catney it does um I if I remember correctly whether or not you came to it separately or not it is running similar code they're they're both using find import and then some other stuff but um that may have just been coincidental but no I follow and I think it might be possible to to I mean I guess I don't know I'm just I'm just saying things but it might be possible to make the the bit that does the bundle public and then have that be be able to be shared amongst multiple things versus obviously there's you know stuff on learn's end that is part of learn but I don't think I think it would be feasible to have to have some shared code although some of that that might not be in python at all I don't know what learn what languages learn is written in although there must be some python but yeah I I hope that we could find a way to yeah do do the most sharing while keeping what Adafruit you know may consider as part of the private parts of learn still private so you're talking about shared code across the bundler and the screenshot maker bundler screenshot maker and sir cup sir cup okay that was because those all three have different ideas about I mean not conflict not deliberately conflicting ideas but they have kind of different grasps of this information about what do you need to put on the drive for it to work is they're all independent yeah so it would be maybe a module if especially if learn is using python in all of the adjacent stuff it's something that you could import and you would just say here's my here's my directory it's got a code dot py in it tell me all the things and then you know sir cup could maybe use that for sir cup auto and the screenshot maker would use it so that they would agree on which file extensions to include and I don't know I don't know what all but sharing code so that we are guaranteed we've got the same information coming from these three similar but different sources would be for the best okay I'm making notes thank you and if I can spell um all right so got it I will bring this up with Justin um and I will uh see whether uh filmy guy whether I can put you in touch with him directly or I'm not sure I can but obviously I need to talk to him first and we'll see what we can do to get this sorted out because I I imagine adding the other bundles to the bundler probably isn't that big a deal but if we're going to be sharing if we're going to try and like extract this code for sharing purposes um it may be something that somebody else can work on other than other than Justin um which may be able to make it more extensible uh quicker because obviously there's somebody can focus on that versus Justin focusing on many things okay thank you Tim you you knew all about uh find import because you wrote the image thing right I learned a little bit about it I would not necessarily say I know all about it well I'm just thinking you might be up to writing the code at least to share between screenshot maker and circup I don't know um I'm definitely up for that in in terms of your your knowledge and comfort level so just to yeah definitely something I would be up for okay uh well that I think concludes our last in the weeds topic so I am going to wrap up this uh meeting it has been a nice hour spent with all of you the circuit python weekly meeting for august 23rd 2021 thanks to everyone who participated if you want to support Adafruit and circuit python and uh people like me who work on circuit python consider purchasing from the Adafruit shop at adafruit.com the video of this meeting is released on youtube at youtube.com slash adafruit and the podcast is available on major podcast services it will also be featured in the python for microcontrollers newsletter you can visit adafruitdaily.com to subscribe the next meeting will be held as usual at 2 p.m eastern 11 a.m pacific on august 30th the meeting is held on the adafruit discord which you can join by going to adafru.it slash discord if you want to get notifications about meetings or be able to uh speak during the meetings uh you can ask to be added to the circuit python east is roll on discord we hope to see you all next week thanks everybody thanks everyone