 All right, hello everybody How's it going Dexter and seagrover? I have one of those today. Okay, let's chats are live looks like we got sound Going into OBS at least See here a couple more. Let's turn off this preview. We don't really need this one Way be out of how's it going over in YouTube? Happy Friday yet again mark. Yep. Happy Friday to you and everybody Tammy makes things How's it going? So Let's do a quick introduction and then I'll get going Actually, let's see. I'm gonna shuffle these chats just a little bit more Make it easier for me to see both of them at once And I'm gonna make sure this didn't mess up OBS. I don't think it will. Yeah, it doesn't change anything on that side. Perfect Okay Tgif definitely agreed there. How's it going to Shippu? Love the factory Ola to Colorado From Kansas City to Colorado. So how's it going? So introduction to anybody who may be new Catching the stream for the first time or watching it You know the recorded one on YouTube later on my name is Tim and I go by foamy guy on Get hub and discord in some other places online and we are gonna be Working on circuit Python related things. This is the deep dive program. This is a weekly program that occurs Fridays at It's 4 p.m. Central time, which is my time, but it was originally More typically billed as 2 p.m. Eastern time. No, no, no, excuse me 2 p.m. Pacific time US Pacific time And then five Eastern time. So we have lots of different time zones Scott the lead developer of circuit Python is the one who originally started the show He was out for a while for Paternity leave and he is back now, but he's still getting ramped up So he is not quite ready to take back over the stream yet. So I'm still here But he lives in the Pacific time zone. So that's why 2 p.m. Pacific always was the time And of course Adafruit is in New York, which is in the Eastern time, which is also a very commonly used time zone For things all across the US even outside of the Eastern time zone. So anyway enough about time It's that time of the day right now for us to get into the deep dive. And if you don't know What this is about we are working on circuit Python stuff If you don't know what that is though circuit Python is an implementation of Python that runs on these tiny computers called microcontrollers There are a bunch of different ones on this page listed here the downloads page Which this is on circuit python.org which is where you can learn more about circuit Python if you do want to learn about it Today, I'll be looking actually at the circuit playground express Which is right here the circular one and I actually have it and it's you know older sister if you will the circuit playground blue fruit, which is kind of the next generation of Circuit playground this one has Bluetooth and a couple other differences, but those are the devices that I'm going to be looking at today Um, so the Python is an open-source project Anybody can get involved can contribute code Can help us with pull requests and adding devices and updating drivers and adding new features and doing all that sort of stuff Anybody can help if you go to circuit Python org There's a contributing link up at the top, which you can click Which will get you a list of all the open pull requests and all of the open Issues including the good first issues, which is the place we tend to point folks who are just You know getting started in their journey of helping contribute to Python So circuit Python like I said, it isn't an open-source project, but it is primarily funded by this company Adafruit. This is their website Adafruit.com So they pay the folks that work on circuit Python full-time like Scott who I mentioned before The lead developer They also pay a couple of other folks that work on the project full-time as well as some folks who work on the part Project part-time like myself So if you want to help support the project but not necessarily get involved in development Something that you can do is purchase hardware at Adafruit They sell the microcontrollers the devices that run circuit Python. They also sell sensors, you know beepers buzzers lights All kinds of things that you can hook up to the microcontrollers to do stuff with like read values from sensors or You know take inputs from buttons or set LEDs to be fancy colors You can find all kinds of fun stuff over on their website at Adafruit.com and definitely all of us Who do get paid to work on the project appreciate you purchasing hardware from them to help support them Living in Python land watching out for the blue smoke meanies who smoke meanies. Oh, they sound very very menacing Paul Shulinick and Charles Burnford. How's it going over on the YouTube chat? So today Specifically what I'm going to look at are a couple of PRs that are in regarding the circuit playground Library and as well the the core circuit Python Project because it freezes in certain libraries including the circuit playground one So this PR is from near doc community members a hug report to near doc for figuring this out and making the PRs for it Basically, this is an attempt to save some space in some of the tightest circuit Python builds a couple of which are the circuit playground builds in particular some of the ones for other languages are Actually a little bit tighter in space than the English ones even and One of the things that takes up space are frozen copies of the libraries Which is this Guide published. I don't know catney was just writing this week even a lied a Learn guide that's all about libraries and frozen in versus imp you I crossed and Everything you could ever want to know really about libraries and which ones are where and what the implications are I don't know if it is live yet. If not, it should be pretty soon But that's a good place to go if you do want more Information like high-level information about what I'm talking about. Maybe it's in here libraries Libraries Yeah, this I think is the page Yeah, totally is. Yeah. Yeah, so this tells you all about different libraries how they can be, you know Where they come from in the bundle how they're published online You know in PY libraries versus frozen in libraries versus just Python libraries all that kind of stuff is Covered in this guide as well as like troubleshooting, you know when you're missing a library the error So this is a really good place to learn more generally about libraries Because the the topic that I am looking at in this PR is pretty down in the weeds is the deep dive And so we are going to some pretty low depths in this one You know, we're going to be getting into the circuit Python core and making some custom builds with this updated version of the library So basically one of the things that consume space on this circuit playground Express build is this library the circuit playground library. We want this to be built in that way folks don't have to install it You know, it just comes like, you know out of the box so to speak You can just start playing with the onboard peripherals, which is definitely awesome Um, but if we can make this library smaller than we can save space on that device And so what this PR does is not necessarily make the library smaller per se But what it does is it kind of adds this new sub directory This one here frozen cpx Adafruit circuit playground library right here and this has uh What are not actually files? I think they're pointers or symbolic links. That's what this is called Uh symbolic links to some of the other files So basically this is a sub directory which contains links That point to the files that are actually needed by the circuit playground express Uh because this one library Does support both the circuit playground express as well as the circuit playground blueprint So the same library actually works on both of these devices But this one the circuit playground express Is a sam d 21 which is uh one of the smaller microcontrollers and it also has um You know a limited amount of storage space. I think there's maybe like two megabytes or something about that In storage space on this thing to to hold circuit python as well as your libraries Need to fit inside of there whereas this one is uh nrf 52 8 40 which is kind of a you know a generation Higher sort of than that sam d 21 The main chip is you know bigger centrally. It just has you know better Specs a little bit more storage a little bit faster cpu a little bit more ram All of those things are scaled up a bit And this one is not really tight on space at all It would be nice to save extra space You know nobody's ever going to say no to extra space, but we're not really hurting for space on this one Whereas we are essentially on this one. We basically For this one for a little while now we've had to like you know not Um, you know not take uh new features into the library because there was just no space Left in some of the builds. Um, so if we can save a little bit of space Then we would be able to add a few new features with that space Um, so that is what this pr is all about and I will be taking a look a closer look into it and Building circuit python with it and testing it out on these devices uh attack of the blue meanies a cultural reference uh to a movie Let's see a movie made about the we uh, we all live in the submarine song yellow submarine blue uh blue meanies Yeah I am not familiar with uh The movie about it, but I am sort of familiar. I should say I've heard of the song I don't know that I would call myself familiar with the song. I probably I'm I don't know. I may recognize it if I hear it. I think that's part of the lyrics Isn't it all live in the yellow submarine? So probably recognize it from that but Um, so to start with we are going to try to make a build a circuit python that includes this modified library here Uh, and so there's actually two prs open for this one of them is on the library itself And one of them is on the core um The core one is basically changing the directions of What gets frozen in to the circuit playground express to that frozen, uh directory And there's three different builds for the circuit playground express, um the the you know standard, uh cpx build The cricket build which is uh kind of an extra peripheral that you can use alongside the cpx and then The display io build which also goes along with an extra peripheral in this case the uh the gizmos screen Which is actually this thing on the back here. I have mine attached to my circuit playground blue fruit Uh, but you can actually use this uh screen attachment with the cpx as well But due to the fact that we're so tight on space. We actually have to have different builds For those different add-on modules because there's not enough room to put all of them Into the build so that's why there's three different builds. That's why there's three different changes Um, and that's what we'll be testing so to start with i'm just gonna get uh main I'm gonna get switched over to main and updated here Um, let's see here main a different main Let's do that and then update And then what we will do is Check out the pr that Is in the core here Inside my local repo Then we'll go into the frozen directories and check out the branch from this pr over here on the library Then we should be able to make a build install it on our device and see How it goes How's it going keith uh the ee. Hope everybody's doing well. Yep. Definitely agreed there and back at you as well. Hope you're doing well Um, okay, so we're let's see. We're still fetching Is that actually visible? It's probably under the chats, isn't it? Yeah fetching thing. Yeah, not really so the Oh The youtube chat is it cut off like or i get oh, okay. There's only a couple of messages in it I'd say This happens to line up at the baseline there Um, so the little fetching progress bar updating is kind of behind Scooted over right there kind of behind the chats there. I got them on partially transparent But it looked like it was still pretty hard to see behind there Um, right updating I don't uh, I don't necessarily update the My local repo super often and usually just when I sit down to Work on something specific. So sometimes it's a little bit out of date Um, and it does take a minute to update. Hopefully it won't be too much longer here There we go, uh partially updated though. I wonder Don't I wonder what uh, we don't have changes. Do we oh we have Okay, so these I uh, let's see a bunch of these are The uh pre-commit changes in different files Uh, which I've been dealing with that in my local copy for a minute now This one I don't necessarily expect to see though. I'm not sure why this would be different Um We're gonna be changing that anyway because this is basically The file that determines which version the frozen circuit playground library is uh Basically like which commit it's pegged at Um Or actually why that would be different. Maybe I tested something else It's prior and it uh It changed back Let's look at what is actually in Name for real Be like, uh I can't look at it on here actually because it would be inside modules But oh, but this doesn't have the commit not if I look in here do we see? This has at least part of it f8 2 D3ef is at the end or the beginning or what is beginning? f8 2 My version okay, so my version is different I think we want this one This is what's in main right now. Of course, we're about to change it anyway I can't But I do think we should start from the same thing that's in main. We were like in a known Spot although, you know actually how I mean would it be well get modules we looked in there and it didn't have Have the commits modules thing in here. I'll be honest. I'm not super like I don't have a lot of experience messing with sub modules So I don't know all of the All of the exact ways to do everything here Reference big loomini is the name of the villain in the movie. I gotcha I'm in the villain Is it would it be inside of dot get somewhere? I know there's like dot get Oh back to root Yeah, it's looking here. It doesn't show me this one for some reason in my Uh For here is it in modules? I mean I mean, I probably something in here could set it, but I have no idea I guess this is why right here because this is on ad square wave But yeah, I did I did test something but this is Let's get another new one of these Let's go in here. Let's try changing it the normal way and see what it does after that Yeah, I think this is probably just already on So let's go list Check out Checked out So now I guess it's different. There's actually a difference But not circuit playground any which is Weird, uh, maybe we need to also go make fetch The modules this actually might Change Branch that's checked out in the uh circuit playground library Not actually sure Those will change it back again. Hopefully this will make it so these ones don't differ though Ideally, I'm just trying to get as close to like real actual main as I can And then make my change and then start testing so that like hopefully I'm Be close to main Would club or existing tag Suppose it will just work if I run it again seems wishful thinking, right? Yeah, I don't know about that. I mean we'll keep going Because that's an error that I don't recall seeing before though Do a picture I guess we could just copy paste this text, right? What is it pico sdk? Oh, is that the meanie blue meanie? Nice Looks pretty cool I really claws on them So I don't know also if this is the last one or if it stopped because it failed on this one Uh, I do notice these things these differences here went away That's cool. What does this say now clear? Okay, so yeah, this is actually back to main now You can actually look out this one and then go make build for it so, uh This is what ls We'll just do the stock build first And we'll install this on the device and verify it a couple of different ways like we'll make sure that It actually doesn't get the blue fruit stuff Um Try to import that and make sure it fails And then we'll make sure all of the cpx stuff Works as expected. So let's uh, let's also pull up the your playground main guide which will have a bunch of uh Cpx library examples in it These look direct Yeah, here we go. This is the guide we want The other guide was mostly like, uh without using the circuit playground library And it was showing you how to do a bunch of similar things But it was showing you the you know the manual code the code without the library The library turns a lot of those into just like one liners, you know import the library and then I'll either set or get the uh, everything you're interested in Okay, so here, uh, we got our build and uh, one thing we can tell is it does say 1576 bytes free. Um, so one thing we could do Oh, but you know what we didn't do is uh, we didn't actually check out Yeah, we didn't check out the Didn't check out the core pr So on main You do actually need to do oh no go back Okay, six three four six Okay So now let's actually make another new build I'm also gonna do that. Well, no, I want to keep that actually 1576 I'm gonna do clean again But theoretically it should be Well, it should be uh bigger it should have more bytes free this time I understand right because the last time it would have included the blue fruit stuff But this time it will not because inside of ports atmel words Playground express build main this one now points it to frozen cpx only Which doesn't contain the blue fruit one but theoretically we have we should get more free space this time Uh the great grand great great grandfather of the blue smoke monster Put a lot of teeth Blue smoke, uh, this guy here sparky Sparky we got a sparky don't we this guy always like sparky I mean you never like to see sparky coming out of your projects, but The character spark is pretty cool Ah, yeah, and so like right here actually we can see Files and it does not have any Blue fruit ones, so I guess actually we probably see up here in fact. Yeah, so here it does Have the blue fruit ones But it's looking like we do properly, um Have it limited now to less to to not the blue fruit file essentially Which is where our space savings is coming from because that blue fruit library that blue fruit Um file inside of the circuit playground library. That's never going to get used on the circuit playground express In the library so that it can support both circuit playgrounds the express and the blue fruit. Oh wow Dang look at that Wow, so we that's actually a lot. That's more than I was expecting honestly. That's like We had 1500 And now it's up to 5900 So that's like over 4,000 like 4,200 4,400 There's actually I mean, it's obviously small compared to like modern DCs and hard drives and stuff, but in the Microcontroller land that's actually a Pretty good chunk of space This plugged in you want to sit Fish oh, there we go. Okay Oh, it's frozen. Oh, we killed the overhead cam You live I have in the preview on the phone, but not uh So let's just restart this back here third server page Oh, yeah, do these open now Serious up today Hmm. All right, I'm gonna try restarting it one more time if it's not gonna work though then I'll uh Just move on without the overhead. We don't necessarily need it full app restarting experience Get any better Good again After I folks said no, it's not anymore Huh All right. Well weird Okay All right, so what I'll do is I'll just close this for now. We'll move on but You can all you can still see my screen, right? I just want to be able to see the camera for a minute I'm gonna try I'm gonna reboot the phone if it comes back. We'll try it one more time If it's still messed up, I won't bother with it though, and I will just go on for now from here. So we've got our Firmware, I'm gonna double press restart What I was gonna try to show Quick boot up on that phone We got our boots. We're gonna go cp from build us firmware two over two media Me As soon as I focus at Pages acting really weird too like now the previews Usually have uh trouble with this thing. I don't really know what's going on with the You came back focus, but it's Alive and also this I pressed f12. This is f12 and it's not even like You can't even like load the browser F tool. It's like this page is really wonking it out for some reason Let me check back to this. Okay, so I was doing Load testing earlier for work on something and I was like I didn't leave that running with like Hundreds of connections open up to this other server. Did I maybe that was like using up my bandwidth or something but I don't have that running and it seems like the The stream here shows well, it does have yellow a bit, right? I don't know if that's uh I don't know what it normally shows. Honestly, I don't usually keep an eye on it We'll go with no camera for now. I got another phone. So, uh I'll try it again before tomorrow stream if it's still not working. I can uh Have a different one I can sub in One of these days. I'm going to get a different top down camera as well Keep saying that I also want to get a difference like straight on the camera that shoots me but Um, anyway, we got our We got our thing installed, right Here, we'll open up this I think let's also grab Look here There were jp. Yeah wires. We can still blame liars. I'm down for that So we should not be able to We should not be able to import Blue fruit one That work though Oh, I got a pink. Oh, is that over in the circuit path on dev? Uh, there's a 131 now It's just How do I fix it though? Just trying to make it such so this is like brand new. Maybe they like just did it well 25 days three days one minute Do you have around four of it? Does this pass now? Not sure I understand And whoa great dot ink diagram Curiosity normally I would not Click on Think that looks this It'll fails on 130 on 30 And scott would not probably taste and that's uh, I can't see him SVG I can't tell what it's, uh PD I can't tell what it's mapping. I don't it's not letting me zoom in You have a 131, but how do we Scott too You know, I guess I don't know where That one's not frozen I guess maybe you go to wherever that's at uh Wherever that one's at maybe you go to it and then like get Check out uh one three one or That's sure I don't know how to update it um This though We should not be able to import blue fruit, which is basically what this does So this should fail and I will need to not do the dot only Oh, oh speaking of That this is not what we want This would be This I think Okay And but express would work Yeah And then now we have cp object so we can Do like this Red LED And it turned on You can see the camera because the camera was wigging out on me, but It turned on You're Oh, okay. Yeah, the waveform thing And so now it's uh, just gonna look for the switch and print something when it changes Oh, actually it would not just print what It would print all the time, wouldn't it so that's not working Yeah, because it should spam I just put this in the wrong file You like there could be a bunch more than it should by now See I copy paste codepie. I give it a new name because I want to back it up And then I go and paste whatever code I'm actually trying to put into codepie But I paste it into the one which is automatically open Uh, which gets automatically opened whenever I do the copy paste over here If I copy paste it as my backup file It opens it up and I don't realize it and then I paste my code into it and of course, it's not codepie, so There we go. Yeah. Yeah Okay We're looking good there And I mean I assume all of these will will probably be fine Like the fact that we got a couple of them to work I think means it's very likely that all of them will work I will test out a few more though like I want to You know, it's a Very very very beginner oriented device. It is perhaps the most beginner oriented device Uh for circuit python, so we definitely want to make sure That we are not accidentally breaking any of the basics Is this like, uh Back to tap. What is it looking for double tap? Oh, it's looking for double tap That's probably working about Did I do it? Single or double It's actually Pretty good at detecting the doubles now that I know it's looking for doubles I mean, it was good at detecting them the whole time, but obviously I didn't know what it was doing So I didn't uh, I wasn't doing double taps interesting. Okay. I didn't actually know about that functionality This is this one's Similar, I would assume Single tap Getting anything with that No, I'm shaking it pretty hard I don't think uh I'm gonna get any six. I think that that's very likely threshold That one All this 30 decreasing should make it easier Oh, oh, you know what? Oh, no, okay. All right, one second knocked over the, uh USB hub knocked the USB hub off my desk Uh, yeah, I think just the threshold is a little high for for my particular device for it I also don't have very much room to shake it because it is still underneath the uh Overhead and I don't want to like whack the overhead within a bunch either. So I can get 10 pretty easily and I thought for a minute like maybe it only was working in the z Orientation because that's how I had success in 10 I went back to 20 and I tried that we got one on 20 there I kind of I really um use the Use the USB cable as a spring a little bit. I can get it on 20 Uh, okay. So that's that's working You know, especially if we tweak the threshold I certainly don't think That that's like related to this Change I suspect that that behaves any different under The current version We could go back and try it still too though Bill Ooh, so I don't get any pick. Oh, there they are. Okay. They were just a little So actually maybe that took a little that took an extra second. I'm not used to the same d21s Uh, and I think this import actually does take it a second now that I'm Now that I'm remembering back, um, maybe I was shaking Before this import was complete and therefore not You know Like it wasn't actually looking yet That could be Like I mean not for every single time, uh, but some of the time I bet you I was shaking before It was actually got to the main loop Uh, let me check on this real quick. Otherwise, this will just popped up here Okay, sorry this, uh This is not circuit python Circuit python stuff, but it's still pretty big and exciting news in my world, which is this person I was just talking to We're hiring him at my uh, my work my non circuit python work The the other developer left us recently So I was uh alone again as the sole developer But we were working on bringing in this new person and uh They just got the just got the offer today and just wrote me to tell me that they had accepted it and sent it back So awesome news in my world for sure Um, so let's do something other than red. Maybe You pink Oh, yeah, that takes actually That's actually a couple of seconds before uh Look at um Which I mean this is part of the trade-off of the library The library has a ton of setup and helper stuff going on which makes it so when you want to use the code You know, you just use whatever you want. You don't have to set anything up That's kind of the trade-off is like it's doing all the setup in here Uh, but of course that does cost time. I'm a little curious though how much time um And so we would go new time Minus before 4.27 seconds Well, you know not an eternity I mean pretty long in computing times, but also you got to think too like this is a samd 21 This is kind of the smallest Of the microcontrollers that circuit python works on. Um, and it's running an entire circuit python interpreter inside of there, right like Uh, it is an insane feat for what it is doing Um And to do all that in four seconds is still really really good Um, and I did get pink so I think we're fine here Light sensor. I don't really have a well. I can use Hopefully this is gonna turn the pixels back off So the other thing I'm gonna do is uh, use the blue fruit as well and actually make sure that it's not impacted by this new version of the library either light 11 11 higher low quite low in fact Where the exact this the sensor is get it uh bounce up though by shining my phone light on it Do a couple more and then we'll switch over to the uh, blue fruit else do we need to Make sure to test I mean there's a ton of circuit playground Learn guides, but Well It's not all of them necessarily use the library some of them might use uh the more direct stuff Do a good number of them use the library. Maybe we'll look up a a couple of the learn guide projects And just try those out as well I mean as long as we get all of these examples working. I think it's very likely that um Any other projects should be working as well, but Use them as inputs. So a 2 a 3 A 4 a 5 6 and 7 and 1 Tap touch And it's true if you touch them. Oh a 1 only though. This code is only a 1. Okay Oh, yeah, which works fine. There we go Okay, so this is where the uh square wave was added here and the square wave was actually the kind of inception of this effort got our two tones this probably didn't come through the Um microphone, but I definitely heard them This microphone is very directional and then I also have a noise gate inside of obs on it. So It only does it just physically not point that direction it uh So filters out stuff that's too quiet Yep, it's working. This one requires extra stuff They're in p3s even Weird there would be wave files Oh, it says wave here Oh, hmm. Oh, that's interesting. Uh, oh Huh, so it tells you That it needs it, but it included one It was mp3 Take a quick, uh Or grab a whole uh exploration into this I think let's uh take a look in the learn guide repo So I guess this is probably just circuit Figure out Maybe circuit python circuit playground It was play file. Um, I guess what we could do is like Oh Okay, this one's not in the learn guide repo. This one is in so then are the files in the examples So it has the mp3s, but it also does have the waves I have no idea though how This button chooses which files To include Very mp3 stuff on this page. Oh, this is sound level One the same Yeah Uh, if using imu to control color, what's the typical throughput speed with lower power micros like the samd um If you mean control color like neopixels or what do you mean control the color of? And then also, well, yeah, let's start there. I guess What do you mean the color of if you mean neopixels or something different? Um, and I I will also warn I probably am not like I can probably point you towards resources to help you find out But I'm also probably not the person who just knows The uh, the real limit, um One place I could tell you for sure to take a look if you haven't You'll learn about that sort of thing is the uber guide If if you are talking about neopixels, I'm making that that assumption so far This guide right here though uber guide neopixels um This has got stuff about like all kinds of different variations of things that are commonly called neopixels um As well as like how it hooks up and the communication protocol and Limits and all kinds of different things They do check that out. Also. I think like dot stars are a very similar kind of thing, right? They're an rgb led Um, you know, they're controllable individually in a strand, but they have a different communication protocol Um, and I I want to say they're faster. I don't You know, I'm not necessarily the expert on that so I could be wrong don't necessarily quote me, but um, I want to say dot stars are kind of like more efficient basically so Either faster and or you can control a longer strand um Then with neopixels, but it it you know, it doesn't matter unless you're trying to control a whole lot I think because you can also control lots of neopixels Yeah, if you can expand I can uh Try to point you in the right direction. Otherwise, I would say if you are talking about neopixels check out this uber neopixel guide Um, this one's got a ton of really good information about them packed into it um, okay We need to get the wave one as well. I'm going to go straight to the Multi file one here I'm going to delete those mp3 files buttons 5k instead of like So the way mp3 I think has more compression So Feel like I pasted that in there and that's why it opened this which is weird because this is not even a text file Like it's not going to be able to show me anything useful in there really Others Well these also came through with the word examples in their name What are they in the repo? These are in the library repo Oh, that is Super weird. So This link goes to dip wave So github is Change the name of the file I always do that. I mean, I assume these would have been this name at some point in the past, right? And like github changed the behavior to do this Uh, biota, let's see you can control those in hardware such as by using spy instead of uh Kindling having a loop go through the pin related comment. Yeah, I think uh You mean probably the neopixels um control via spy instead of just a uh Sort of single pin doing the neopixel protocol You think that's true. I'm not super familiar with like the trade-offs though. Is that faster or slower or That part I don't know necessarily Now we've got our files. They're actually named the same thing That the script has I don't know what they sound like so I guess we'll find out when I play one I'm gonna let it wait a second so that we can Actually get to the loop Here we go Okay, yeah dip goes down in pitch It kind of like sounds like that but rise Sounds like that other way I assume that's which ones which I still don't actually I didn't look but one of them sounds like that The other one sounds like the other one. So And that's which ones they are it did work fine once we renamed everything We mentioned about these buttons being wrong too Or I mean they're not wrong. I I don't know what's wrong You know It feels like github is wrong because github knows the name of the file and just changed it randomly Um, I mean not randomly it put the folder in the name. It's not like it Just shows it out of thin air, but it did just change the name for Some reason that's unclear to me at least So weird it really should not like it knows the name of the file right there It just should not what's wrong with just serving it as the file it is It seems That seems like it's gonna break so many things that would just assume that the name of the file is gonna be correct Oh, we're on glue now That is weird. I don't like that Microsoft if you're listening, please don't do that Right new pixel needs the right timings with the other you can have a lot of jitter The signal and it won't care. Oh, I got you. Okay with spy. You can have more more jitter And it's not as sensitive. Basically. It's like a more resilient to weirdness So we might as we're almost to the end of all of these we might as well Just go ahead and run through all of them I probably won't do all of them on the blue fruit, but I will check a couple on the blue fruit And then I'll also check maybe one or two other projects from the learn guide system just to make sure that there's no No issues with those Again, this is kind of like really really really throw testing A lot of times I would do maybe not quite as thorough not run every single example But again, this is like one of the things targeted at the newest users Um, like targeted specifically for the newest users. So we really really don't want anything To be going wrong with it because they're not gonna understand it Um, and actually if I would read better, then I would see that this is actually the expected thing here, which is that This one doesn't work on the Express which I'm sure this page probably tells me. Yeah. In fact, it's like Big and orange right there and I scrolled right past it And there's a picture of a blue fruit and I scrolled right past that um And so yeah, even users that are not new users are Gonna overlook stuff sometimes I just did Can't actually use this one, which is fine And then I think that's actually the last one though. So we did make it to the end And to get creative. This is probably more of like a prompt like yeah Okay, but there, uh, there are some links to other guides though. So Touchpad or PWM Oh, but okay, but that's for the servo I think is the latch probably Yeah Ah, you turn it it's acceleration. Okay That's a neat idea. I don't think I've ever seen that before Do you actually rotate the board as as if you you know, as if it were like a combination lock As if it were like one of these spinny locks right here. You rotate the board It uses the accelerometer to know You know what orientation it's in And then the different points are mapped to letters So you set your combination in some series of letters. That's actually really cool. I don't have the servo Ready to go. So I can't really hook this up For myself. I mean we could do something other than the servo um I probably would rather test something that I can But I don't need external hardware for If there if there is anything I guess it's also You're not going to be the case but broken picture So this one's like makey makey pretty much Had all that fruit right here basically Touchpad so I could probably run this one Just try it with uh Obviously, I don't have the limes, but I Bet you the touch pads work Remainance a lot of jitter and the bolts come loose That star spy has clock and data signals Oh and outputs as well signal inputs and outputs speeds are much higher because the clock separately synchronizes the data Rather than the neopixel a method of extracting The clicking from the single data line. Oh, I see. Okay, so That stars have a separate clock signal going up and down at a known You know static frequency or whatever I this is my understanding again, so I don't I could be wrong still But that's what I'm understanding what seagrover's saying here and then A neopixel just it has just the one line the data line, but it It kind of toggles it Not only to represent data, but also to represent the clock speed Uh, which does Does sound familiar because I think neopixels are pretty picky about The speed of everything happening Difficult for me to touch one and not the other. I guess that's where the limes come in look like Got all of those working independently though, so Get here It's the url Which can be slower on the dot star for the same reason. Oh interesting. Okay So if you if you specifically want slow animations, it gets difficult because you have to keep up the clock speed For it to tell time never thought about that Whereas on the other one you could just slow down the clock signal You're not interfering the data. This is so weird that it would change the file name. This is like Some of the things people do sometimes in software just make no sense to me like somebody spent time Writing logic that changes the file name And like 95 plus percent of the people who use it are going to assume that it doesn't do that and they're not going to want that No one is going to assume that github is just randomly going to change your file name, right? Like such a bizarre thing for them to do. Here's our actual piano That's some color action And tones when we touch each of the ones Oh interesting switch Oh continue So the switch is like a main switch if you turn it to off Whatever way that is it will uh It will not go through the rest of the stuff because it continue I don't use continue very much. So it throws me for Pardon the pun. It throws me for a loop a little bit when I see it um I don't know it's just not It wasn't a basic building block that I learned very early in my coding life. And so it just I don't uh It's not something I I tend to use regularly There are there have been a few places where I found a need For it specifically and it was like the best tool that I came up with to do the job But a lot of times the the way I write code ends up being differently enough that I don't end up using it Um I forget about it a little bit But I think that's what's going on here if the switch if this trips then this will cause it Not to do any of the rest of this stuff and instead just loop back around Um and check the switch again and it will just keep checking the switch until It's flipped to the other orientation then it will allow it to go on So that is like it's like a you know override power override switch If that's off then you can't play any songs. I almost just tried to pull up the camera, which of course we can't do Uh, I guess we'll go in here at least See something I saved this no not yet. Okay. How's it going Johnny? How are you doing today? Yeah, Dan says that's totally weird Seems like a miss feature Okay, so our switch is off which means yeah, we can't play so if I touch the Touch pads nothing happens. And so if I flip the switch I'll stop printing that stuff And now I can touch we get lights we get sound and again, it's probably not getting picked up. Maybe if I pull it up here On both sides And the edge How's that for a song? You see my face lighting up cannot make out the colors necessarily too much Basically each of these touches has a different color Well, it's a different sound and this camera is not it's all washed out. It's not going to pick it up very well but That is working fine Be a lot cooler if we had lines, but it does work. So Count that one as a win Um What else is there another one that well, let's do the let's jump to the blue fruit I've done all this on the express so far Let's test out a bit on the blue fruit as well Because we do want to make sure that we're not breaking it on that device either because it's you know The same kind of thing right these are both targeted at very very new users so we don't want to like turn them off of You know circuit python or programming in general or anything right we want it to be super duper easy Because that's the purpose of this library and these devices There are other devices that are you know have more More complex functionality and don't have helper libraries that make everything quite as easy but these are like Really really meant to be able to just hand someone who has no programming or electronics experience Uh, you know spend maybe five or ten minutes showing them a few things and then they can like Take it from there and run with it and make their own projects with it like that's The uh the level of user like someone brand new should be able to With a minimal amount of direction should be able to uh start making stuff right away with it so Anything that does go wrong tends to like really throw them off Um check this one out to 117 Check out and i'll just use the python versions. We don't need this isn't built into bluford. Well. Yeah, because otherwise it would be Now i'm second guessing myself. This isn't built into bluford is it? I think so. I think it's built into express because there's less room Ram maybe much Storage space or ram that's the ultimate constraint that limits it but Oh, okay, so this won't be uh samd. This will be nrf Okay, not built in in fact. There's nothing built in So we will be able to just copy this put it on our bluford And then we'll know that we are uh Using it that doesn't have a frozen end one I used dot stars exclusively for all those reasons one of the best parts uh is you can also do super slow Software spy routine on an old slow processor Synchronous protocols are much more flexible Bring this on the circuit python repo down one. Maybe that it doesn't do it from trick c redirect It just downloads in the browser That is so weird though. I shouldn't do that um Copy that we got the bluford plugged in. I'll probably update the bluford. I have no idea what version we're on here. I'm sure it's Probably out of date. I don't know. I don't recall the last time I used the bluford Okay, it's not as old as it could have been truthfully 710. That's pretty Really new so this is bluetooth something Advertising I don't think we need this. I think it's a uh, I think it's a stock sample Try this one first Oh It has no touch a7 You notice that there is not one marked a7 on the blue fruit actually Maybe that's just an actual hardware difference. There aren't very many but Maybe one of them It does look like this was targeted directly at the express I Bet you that everything probably works save for the a7 would be my guess The Oh, there was a uh Oh, I see Huh interesting. Okay The if you touch either or you get these branches if you touch both you get this one That does a third thing if you touch both each one has their individual action and a third action if you're touching both Um, yeah a7 tx is in the spot, but it doesn't have the a7 on the silkscreen. I wonder It may not be able to support touch On that pin. I guess we can always try it, right? Well, but it would be called I guess it would be called it would be called touch, uh Touch tx I do know not every pin Interesting. How could that Pasting is not working, right? I have this is, uh This is deja vu. I've had this before Did it again too. Oh Okay X Good to just try it in the code. I figured this would be super quick and easy to just test and look here. Yeah There totally is a tx I figured that would be super quick and easy. I don't know the uh, the pasting does not want to work right on this, which I Think I've seen this before and I think it was on the clue, which is the same Main chip as this. I wonder if uh, nrf has a more general problem with pasting into the repl I think maybe it's not processing correctly when we paste stuff. It's not receiving everything that we pasted Really? So I won't actually print anything when it's because I already flipped the switch Which one is it two and three that have the uh, yeah for those Find a place to grab it that I'm not touching anything else A3 does not actually respond very well Yeah, A3. I don't get anything on Thought I did once. Is it red? No, then A2 is blue I guess it'd be a little pink on You have the screws on there as well And the gizmo so like this is kind of connecting some of these pins to other stuff It could cause just enough interference that the touch doesn't want to work right I do know touch input on pins like this is kind of a Very analog thing like it's looking for uh different analog inputs and sometimes You know more or less stuff connected or longer or shorter wires and stuff like all of that In factor into what it's reading I think there's actually some tuning you can do as well Uh lower level than this library right this library wants to make everything super high level You know don't worry about the details, but Um, I think if you do it more manually you can Put it like a threshold or something that Changes the sensitivity essentially Also, I think even like ambient stuff like uh humidity and stuff maybe in the air I think can affect that possibly um Your pixels were cheaper and they have rgbw Much of the time you have plenty of cpu to waste that's true I think this might be a browser Oh my gosh Well, I was In In firefox Firefox That is even more silly Oh my good I get the same actually That's not You're saying it didn't actually do some Ran into that when I was doing the Blue fruit examples rework for picon ran into, uh, which Yeah, okay. Yeah, you put a cross out on the uh, I see Yeah, that's true the blob versus like the file versus the uh the Page versus the file that's another distinction. Yeah, so he did Cross out there. So it's not different. That's not different in browsers. I think which is good, right? That would be Even more bizarre for a browser to decide to change The name of a file that you are downloading Um It's bizarre enough that github seems to be choosing to do that a browser would be even weirder Touch sensitivity is automatically adjusted each time codepy runs Look at the environment pin capacitance, etc. That's why it's not a good idea to touch any pins. Oh Uh, I don't remember if I was touching it or not, but I do I mean the screws are all screwed in and I assume like Being connected to the gizmo could probably affect that as well, right? um Like that could be throwing things off as well Would not be surprised at all The tx pin does work though, which is uh in here Yeah, it's a print say seven still but it plays its tone now and Changes its lights to the color So let's do just a few of the non-project ones real fast And then if uh, if everything is still looking good, then I'll leave feedback on these prs Let's do okay, so like this is the most basic one. We shouldn't have any trouble with it Red led on Yep Slide switch we know the slide switch Uh, we know the slide switch works because we did it in the piano. We know tap works because we did it in the piano Uh, let's skip shake for now Let's do neopixels And I guess we did some neopixels already. Maybe we should go back and do shake. Actually, I'm curious compared to the other one Neopixels red works fine actually Oh tap that's a different tap though. That's uh that's tap accelerometer detection not touch input shake I do still I don't get it on default, but we did have to lower this one, right? It was uh, what was the big threshold or 10 is where I found it to be a lot more, uh easy to trigger neopixels light sensor One of the other differences. Got a left baseline Works when I put the light on it Gizmo connections could foil the ability to sense the touch. I got you And it seems like it's that one pin is not doing it. So I wouldn't I would not be surprised if that something But I think I have another Bluford around here somewhere acceleration No, this is probably working because the shake worked Actually, I don't think I tested this one on the cpx think of it But it you know the tap and the shake are both ultimately using this so And we definitely have the edited library, right our library definitely Do do still Okay, so this is its own a whole other this have like Problem this Build the dock could happen with Yeah, the the mpy cross. I wonder if anything weird will happen to the mpy cross That's done like when a release is made I don't think so, right? It's because it's gonna just ignore this basically Pretty much all the existing infrastructure is just not going to care that this exists The one place that's changed to handle it is inside the core and that seems to work fine We do have the newest one. It's just there was not actually a change You know in anything that matters for the Bluford so Yeah, we should definitely expect for this to not Change anything on the Bluford which hasn't so far so It seemed to be in the right direction here be interesting to Freeze it in That's definitely beyond the scope of what we need to test for this So a button pressed red led on and it doesn't have an off but Stop sprinting your uh Never setting that back to false so Okay, uh, I'm pretty satisfied on both of those. I don't I didn't see anything On either one really that seemed problematic It doesn't have overview Most always the first page is called overview. I think we still have that that was a while ago be in here still, right? Here we got like 50 something Gained quite a bit of space. Honestly. This is actually really good 5900 right Got that like 4400 bytes. Um, I'm gonna Do the other one as well I guess, you know, one thing we didn't check was the square wave Should maybe make sure that functionality works because I got merged in I think the way this works is you just do Yeah, start tone and then you can do waveform Sign is the default but you can do square I don't even know if these are these might not even be strings. Honestly Yeah, no, they're not frequency duration waveform the one It would be square Could also import it and use the name for it, but uh, okay, so this I guess though the reason is because this We're using yeah, so we're This was made after This was made Uh after Well, it was made before the square wave stuff was merged in So this probably started from main Before the square wave stuff existed therefore it's not in this branch when this gets merged into main though You know, then it will contain both Uh, so yeah, we would not expect the square to work When it's updated though to main then then maybe it would work Then I mean then I believe it would work not really maybe I think it would and then I don't think we really need to mention the Blue fruit in this one because the core pr doesn't really affect the blue fruit at all um the library pr You know kind of does arguably obviously it because of the nature of it. It shouldn't affect it So we and we tested it and it didn't and that's good. That's what we want to see um But you know like arguably it it could have affected it where this change in the core absolutely cannot affect anything on the blue fruit because The only files that it touches are the Express ones I guess when we Update the fruit well no because it's not frozen in so yeah even updating the frozen module still will have no effect on the blue fruit The blue fruit doesn't have a frozen module. So I don't think we need to mention anything Blue fruit wise here. I should say also thanks to nerda So weird like it knows Them it knows who they are the pop-up works fine, but it didn't want to autocomplete for whatever reason And it's like the last person to comment you would think that would be pretty high in the list of things to check but Okay About two hours. Let's see I may Call it a night there. Maybe we'll look for Maybe another project to try out I don't necessarily have anything else in mind The other thing I thought about getting into which there's definitely not enough time to really start getting into it was um Network testing stuff Either playing with web sockets, which is something I want to play with in circuit python or um Doing some testing on this requests pr that I saw go by earlier today These were kind of the other things I had in the back of my mind for if we had a bunch of time left after Doing this stuff. So I'll show what I'm talking about and then maybe uh Maybe I'll end up working on it tomorrow on the stream So this issue here is new And it's basically just saying with basic servers With a basic node js server And just a looping client that fetches stuff Eventually It's messed up But pretty much the same server Written in flask python flask Works fine But something about the way the node js server works in combination with the request library or ESP spy stack or something Is causing trouble and scott had asked about native sockets I think what I'll plan on is tomorrow Tomorrow morning during my stream. I'll probably be playing with network stuff I'll probably test this out if no one has done it by then And then I may I think also look into web sockets, which is actually another Another near a doc production Or doc. Well, I thought we could do web sockets and that's what it'll find actually because I just looked this up earlier Top result right there is near a doc Sockets for sir python This is something I'm kind of interested in this is uh This is something I've been playing around with a lot this week for work for my other work Is a web socket server um, it Probably is unlikely to ever need microcontrollers to connect to it directly, but There may be some room for me to like Build a project that microcontrollers do connect to and learn Some stuff that will carry over to my other project. So I may dive into this a bit because I'm getting interested in kind of the intricacies of web sockets and How many of them can connect uh to a server stuff like that so Um, I play with this stuff Stuff is on my mind this week. So Let me catch up with what dan mentioned here. Web sockets gets my vote struts Okay, well probably I mean, I'll probably end up doing some of both this testing on the request stuff. I don't think this will uh I don't think this would take long enough to need a whole stream Um, so we may do some of that testing and then jump into web socket stuff dan mentioned here um Note the equals Ah, so it was the slash weird Hopefully that's like a misconfiguration in github. Hopefully that's like not intentional and they're gonna fix it relatively soon It's very bizarre for it to change the name of the file This makes it seem like it would be a misconfiguration like whatever part of their system chose the response file name Inside the uh inside the response It looks like didn't parse correctly Got the last two Sections of the full path and it should have taken just the last one Probably an oversimplification of it. I'm sure there's probably more going on in there than Then I'm privy to certainly but that's what it feels like to me is something Was parsing out segments and it got uh more than it needed Oh nice opened up feedback on uh Probably does that overwrite the chat That totally does. Sorry. I didn't know uh Back I didn't know about this Repo, this is a repo Their file You'd me in a code of conduct. I had no idea this existed Discussion, what are discussions? That's different than issues Oh, I think I've ever Discussions but we're actually upvoted Anything when I upvoted I think it must Think it must have not done this in the past I'm like I'm like 95 percent sure if it didn't do this if it if it didn't use to behave this way It would have Like the code in the guide would have gotten written with example in it If this had been the behavior all along I'm like 90 plus 95 plus certain that the uh That this code here would have had example in it because the person who wrote this page would have like Downloaded it and then written the code Based on what it what it had I think I think it's or and or like somebody would have complained by now right because based on the Instructions on this page like you go, you know due to do I'm following the extractions I put this code in and it's not going to work the way it is now so like Somebody would have reported that I think by now and again because this is like You know circuit python 101 stuff like very very new users use this It is you know, it's it's pretty far down the list of examples But it's still like amongst the first examples that people use I have to think somebody would have uh You know made a form post or come to the discord with that problem Network stuff gets my vote too, of course. I'm still interested in wrapping up this one. What is this one? 6236 Oh, is that uh, was that the cpx one? No Oh, right I do kind of remember this now And this one fell off of my radar at least I remember Remember back when this guy created I'd be up for looking into this a bit too Because I think you found did you find like found the part of the code, right? So you're do I understand uh correctly cedar your theory is um If we drop this to uh, where does it sit one? One kilohertz. So We dropped this to a thousand or less theoretically we think then the We'll get the full range of brightness And then basically what we need to do is try that validate that it works to give us the full range and then also make sure it doesn't cause any other issues Okay Yeah, that seems Seems straightforward enough we could give that a try as well I am uh, I am always I'm always a bit of a sucker for display IO stuff This is kind of tangentially related to display IO stuff. So this is like In the world where I'm spending a lot of my time in the course. So I'm pretty familiar with it Uh, and I'm always willing to dive in and and look at stuff. So Maybe we will I think we will uh, I will try to take a look at this as well because I It shouldn't I don't think it will take too long just to make a build and test that out. So Um, we could probably have enough time to do that and then get into some network stuff as well Tested it 500 her 500 hertz worked fine We need a test for audio interference. Okay Audio uh on the speaker or somewhere else So like we'd run this and then also play some stuff on the speaker We can do that Okay Yeah, thanks for mentioning it. Um Yeah, I do I do remember back when this came up, but it definitely had fallen off my radar Um, so yeah sneak, you know a bit of a sneak peek there for uh for what tomorrow's stream will be So tomorrow morning at 10 a.m. Uh, which is What uh 12 16 ish hours a little less than 16 hours from now I'll be back. Um Streaming I will not be on the Adafruit channel like right now We're on the Adafruit twitch and uh in youtube as well as I think some other places twitter Um Be some more places. I'm not entirely sure where all it goes, but uh tomorrow i'll be on my own account. Um, phome guy On um on youtube phome guy underscore twitch on twitch The easiest thing to do though is if you just come to the live broadcast chat the same chat That's right down below me here on the screen right now I'll paste the links right when i'm getting started in the morning. So there'll be links right in there Um, so yeah, I will work on this stuff tomorrow Thank you to everyone who is watching. Um, thank you to dexter Uh, let's see beata over on youtube dropping some neopixels knowledge on us. Uh, charles. Thanks for hanging out paul Um, keith, let's see. Thank you. See grover's, uh struts. Thank you for Your vote for web sockets. I think we will look into that. So come hang out tomorrow and we'll get into that a bit Uh, ham's lab Johnny Thank you, uh, as always for watching love the factory. Thank you from colorado. Not really you're in colorado I'm not but thank you to colorado to shippu I think that's the gang we had in the chat today. Uh, so again, thank you to all you folks and um, yeah