 All right, Lady Ada, what is this? Hey, everybody, and welcome to Show and Tell. It's us, Lady Ada, Mr. Lady Ada. Here as your hosts, also with us, is an ultra-intelligent, hypercube AI streaming line. This is Agatha, the AGI, that's taking over our jobs. This is the new host. May everybody meet your new host now. It's a little cute little demo. So this is from the Feather DBI, and we're using this in graphics for our show. I just thought it reminded me of the backside drum background. So some of the folks are gonna show this. It's artificial graphical intelligence. Some of the folks on the Show and Tell are gonna probably show some projects with this, and we're gonna also show it off and ask an engineer. But I thought this was neat because we use StreamYard and we can use camera at another camera, and this just shows up as a camera because I have a HDMI to USB capture. So this is neat. You have green screens, you can do more, so you'll see some of this in the show. All right. Back to the topic it had, it's Show and Tell, which means we're gonna have people from the Aidful community, the Maker community, and anybody who really comes by the StreamYard, we post the link in Discord. Anyone's welcome to come by. Let's go right to Liz because Liz has a demo using this. Well, let's check out what she's up to. Hey, Liz, what is your AGI doing? Well, this is spot. I did the Arduino videos and projects, and so with the Circle Python support, I've been trying to port some of the demos over. So this is the Feather DVI-Rang Circle Python, and I took Phil B's Bouncing Circle demo and brought that in, and then I have a couple others I can quickly queue up. So I'll go into the REPL, and then there's Proof, the Truning and Circle Python. Proof of life. I love that you just got the embedded video input. Oh, you know, one thing you do, here's an idea for a future thing to you. If you make the background, I don't know, we'll have to talk later. You can make the background green, and that could be a green screen, and the text would just float above some of your video. That'd be kind of cool. That's definitely something I want to try. And then this is the Synthway demo, and so this is just moving the lines, and then if I press this button here, the sun will rise. Oh, this is like, is this of advertisements for a beach in Tron? Yes, and then the other one that I got going was static, because it's pretty simple. You're just drawing random pixels, and let me save and reload. It's all pretty quick. So there we go. So then I've got some sliders that can change the color of the palette, and then, or off, and then if I press the button, it all goes white. So I'm gonna try to port a couple others and see what they're, but it's been really nice doing a circuit pipeline because the only thing with the Arduino is you have to compile and everything, so it's a lot faster to iterate. Like if you forget to change one color value, you're not wasting another two minutes. Yeah, no, it's fun. You do this magic eye, things where you kind of stare at it for a while and a picture emerges, or is this already that, is it happening? I mean, while I'm working on it, it definitely starts to have that effect. I can see like a cube or something from that. Okay, this is super cool. Cool. Thank you. Thank you. A good one. Okay, next up, let's go to Scott and then after Scott, we'll go to Brandon, and then Chip, Larry, and then we'll just keep going down the line here. Scott, what you got going on? Hello. I have been working on Circuit Pirate, but I've been mixing other stuff in because I'm doing a lot of like parsing stuff and it's a bit taxing. So I had this project that I saw this on the blog. Somebody made the e-ink frame where they were using pirate weather, which is a weather forecasting service. And they have these like neat icons for the like the 24 hours of today and tomorrow and then each daily one. And I thought that was really neat. And I wanted to reproduce it on the inky frame, which is a Pimeroni board with the seven color e-ink on it. And I took an existing weather thing that we have on the learn system and I switched it over to pirate weather and it uses or it presents the dark sky API, which turns out to be kind of too much for the PicoW on the inky frame to handle memory-wise. So somebody had mentioned like, oh, maybe we should do a streaming JSON API. And so I looked at what existing libraries were made and saw one that kind of like made sense to me called JSON stream. And that's what I re-implemented. So what I have up here is like import a to fruit JSON stream as JSON stream. And then when I do the load for the request, what I'm saying is parse the JSON but from the content iterator that the request response has for it. So it never has to load the giant chunk of the whole text because it's like 32K of text. You don't want to load it all. I tried, it doesn't work. And then what you can do is the object that it returns that I'm here calling JSON data, you can just treat it like any other JSON object that you would, but there is a huge caveat that you need to know in that it's dynamically picking all of this stuff out of the stream. So you have to access things from JSON in the order that you get it. Which is kind of a trick. And if you don't do that, it won't be able to find the key that you're looking for. For example, like offset here, if I had gotten it once, I can't get it again, for example, because I'm already by it. So it looks the same and it acts the same but it has this property where you really have to know the order that things are gonna come to you in. And in this case I do and it means that I can spend a lot less memory doing the parsing. So what I'm doing here is I'm accessing the things as I need it and then storing them in data structures that I'm gonna use later to actually present it on the display. So it allows me to not load a bunch of data that I'm not gonna use. I can go through it as it comes in and pick up the things that I actually wanna use. So- With the pipeline of the MagTag, I remember we were doing demo projects and sometimes the feeds that we were hitting was just like the classic photo of like a snake eating an elephant. Right. Yeah, wow, I can't do this. Yeah, so it does use allocations but it's kinda doing it one value at a time. And it uses the built-in JSON library under the hood to like parse the strings and stuff. So it's just like what you're talking about. It's like you don't have the big animal going through the Python, you get lots of little small things going through it instead. This is handy. All right, when, where, what can people find out more about this? I'll, I'm done for today, pretty much after this but tomorrow I'll post it and you can find it, you know, Adafruit, CirclePython, JSONStream. If you wanna know kind of more, you can take a look at the JSONStream library that already exists but it doesn't use the built-in JSON for parsing. So it's like a lot larger. But the one that I made here is like somewhere on the order of 200 lines. Yeah, this is really great. Especially you mentioned for the PicoW because you're already losing so much memory to the SSL stack that you kind of need it. Like, you know, we talked about like the S3, there's like ESP32, S3s that have like four megabytes of PS RAM. But, you know, on the PicoW you're limited. We got, yeah, and I actually experimented with trying to like change CirclePython to give me more memory and that still wasn't enough. So. All right, well this is a little useful though. I mean, there's like JSON's that like, I get that like 500K, you know, there is a, at some point you're like, uh-oh, I guess you can't fit it. Yeah, so hopefully like, I think that the requests, the Adafruit request implementation, I think is actually good enough that like, it will only load so much data before, like it'll, it should, I think push back all the way to the TCP level of like ingesting the data as you, as you need it instead of like, so you'll never get the whole response if you can't. Okay. Well, this might be neat to combine this with some of the DVI, the screen stuff because you could get some really interesting data sources and then display them on a TV. Very cool. Yeah. Very handy for when you're memory limited. Yeah. Yeah, we were doing the DVI that this new product this week is the DVI cowbell and I definitely like choked out. I was like, oh my God, I want to do some cool data stuff. And I was like, oh my God, I have flat gate free. Yeah. Yep. Yeah. So it does use memory, it will churn memory, but it won't do super big bulk stuff, hopefully. Okay. Yeah, almost got. People are posting in the chat. Cool things they want to get to now. Yeah. They're going to test this out. All right. Thank you guys. Thank you. Got. We're going to go to Brent and then... Brent. Brent, what you got going on? Hi. Also doing optimization related things. I'll share a video of like an issue I hit this past week and I'll talk about how I got over it and I'll share that. So I have the video, I don't know if you can add that to the show. Yeah. So this is LVGL, which is a lightweight graphics library running on a FunHouse. And the FunHouse is also running our wood for snapper application, which is our no code way to do IoT projects. And this is where it's at. It's really nice. It has this little status bar on the top. It also has tips that rotate around, kind of like a video game loading screen. And it connects to Wi-Fi, it attempts to connect IO. This issue I'm currently working on. But, and then there's like an error screen when it doesn't connect to IO with like the wrong credentials. But once you connect to Wi-Fi, there's a really jarring issue where it sits at 100% CPU usage. And that was starting to hit me last month and I worked around it with Phil B who came up with the, we have this library called LVGL Glue. So all of the Adafruit displays can use LVGL in a really easy to use way and Phil B, Peter Dragon developed it. And I was working with him on like getting around this issue because it seems like every single time you do a project and you bring in the overhead of Wi-Fi or the overhead of display and Wi-Fi and NeoPixels, like you're really starting to constrict like what you can actually do. So this issue cropped up again and again and again and it got past it, but it didn't get totally past it. So today I spent time working on, so like I realized that LVGL isn't thread safe. And what that means is like the ESP32 runs on real-time operating system and there could be like memory corruption between things trying to access when the Wi-Fi is connecting and also LVGL trying to render. So I currently have a board running nothing, like this is just running LVGL. And hold on, of course I just bumped it. Great. So I got it, I don't know why it's resetting right now. I got it down to like four to 6% utilization when it's running LVGL now. So it puts it on another core and it puts the Wi-Fi on a separate core. And every time it needs to call LVGL within like the Whipper staffer application code, it like locks the resources as well. So like everything is now done really nicely. And then if people are looking to make their own projects that use this, I'm going to work on making it like a nice easy-to-use API. So people who want to do IoT projects and display their data in a really nice way and send it to the internet, which is like what everybody wants to do, can actually do it. Yeah, definitely it's, because you're trying with me and I'm like, it is a color like system integration and this is the hard part. It's like, okay, you've got the graphics. Okay, you've got the Wi-Fi. Okay, you've got the status messages. Okay, you've got NQTT, but then you actually try to put it together and that's when things get complicated. Really get solutions. You're like, okay, I'm going to use mutexes and I'm going to use multiple cores. You know, there's a lot of stuff out there for microcontrollers that's not thread safe. It's not, it wasn't designed to run on free RTOS. But sometimes it's still faster to, you know, figure out how to do your own memory management than we write the libraries that you're using. But it is definitely a thing that happens. Everyone's bumping. Or you will bump into it. And I guess like our job here is to prevent people from bumping into these things as well. Yeah, we think all the mistakes spend all the time so you don't have to. Yeah, there's actually a three-year-old thing in Circuit Python. Scott was like really focused on like, how can we lock resources because we don't want to have two things trying to connect to the I-Squared-C interface but you can have an OLED on I-Squared-C and still connect to a sensor. And it does the right thing. It magically never corrupts the data. That's not true in Arduino all the time. Yeah, especially like the ESP32 board support package. Like it's such a deep, deeply integrated like package that it's like they're in our house and there is one. Is there a package on the progress, is this? Yeah, so once like now that it's working faster, I want to actually show it working completely. Okay, but it's going to show the struggle. Yeah, yeah, yeah. Sure, work here. It all just doesn't come out perfect for a strike. Nope. All right, thanks so much. All right, Jeff, what you got going on this week? Hello, we're in a little bit different perspective on me because I got a new to me computer. I was at an estate sale a couple of weekends ago and I saw this and the keyboard and I'm like, well, that's interesting, but I mean, what would I do with it? And then I saw the two eight inch floppies and I'm like, that's cool, but it's not like it's going to work, right? And so I wired it all up in this guy's basement and booted it to CPM and I'm like, I can't say no anymore to this. Yay! I brought it home and I was playing with it until suddenly the smoke started coming out of this capacitor, so that was no fun. And now I've recapped some power supplies, so super power unlocked. Anyway, so I was going through my four boxes of floppies and let's see if we can get this on the screen here. Not Runt. Runt! Okay, how do you recover from this? Well, you know, I was going to run a program but I typed Runt and now we're just done. Is it going to take too long to recover? That's it, now you have to buy a new one. And that's it. Can you move it? Come back to me in like two minutes. I don't want to have the drive box on because it sounds like a washing machine. But I'll reload everything and then we'll go back to you. Yeah, we'll come back to you. Yeah, did you try to plug it in and plug it back in? Oh wait, no, it's running. Here you go, it's running. Okay. You recover. I'm going to get a letter prize. Yes. Yeah, so here we are. Your orders are as follows. Destroy the 18 Klingon worships which have invaded the galaxy. Yeah. This is like a classic, classic game reported to a lot of systems of the era. It's because what Google showed off at Google IE today, this is their AI. And I have no idea how to play it. So we'll figure that out later. But yeah, I'm just really excited to have this system. And I'm also going to figure out how to not put Sergipython on it, but connect Sergipython as a device to it to enable something. So we'll come back when that's ready. But that's what we've got, a 1980s computer. Yeah, it's super cool. So what's the total age on this is what? Probably 50 years? No, it's 1981 or 1981. Okay. New hardware. So it's comparatively new. It's younger than me. Okay. All right, still a spring checkup. Okay. Very cool. Yeah, you can have it, I'll put to DVI. You can have a check to the internet using Sergipython as an intermediary. A lot of objects. Yeah, there's all sorts of possibilities. Just have to write some CPI code to do it. Track dot BAS. Thank you, Jeff Lark. You did good work. Thank you, Melissa. What you got going on, Melissa? Okay, if you want to show my screen here, I have been working on some little bit of code here for the platform detect for Blinka. So one of the issues we've been having is they add a lot of new web codes and we currently have just like this list that we're just kind of looking up on. So it doesn't really do much on it. So I've been writing some stuff to decode it all and so this is just a little test script here but it's using a class that I wrote. So if I do something like D03114, then it's gonna go ahead and tell me all the information about that rev code. If I want to run it again and do one of the old-style rev codes like that, it'll go ahead and decode all that stuff. And if I go ahead and I run it and we give it like an invalid rev code, something like this, then it'll... Yeah, it's not valid. Yeah, I ran this earlier and it wasn't... I'm not sure what that is. I don't know if I need to fix, I guess, but we'll try that again because it didn't do that earlier. Maybe it started with a zero and it parsed, is it like optillers? Yeah, see, that's what it's supposed to do. I think the exact same thing here and it worked. Anyways, we'll say this code is invalid. All the blocks, yeah. Great. All right, and then where are your folks want to find out more about this? Where, when, when, what, how? Well, I am going to go ahead and submit a pull request soon. So I just want to go ahead and, well, fix that by first of all and then I want to modify it so that it just goes and checks it on the platform detect. Yeah, check out Blinka support and circuit python.org, all the different boards that we support through Blinka. Yeah. All right, thanks so much, Melissa. All right. Thank you, Melissa. Next up, JP, what's here going on? So I was just typing over here because Scott is actually trying to push the Jason streamer thing and he was asking me about the sports viewer that I had on MagTag. So he's serious about this. He's in real time putting this thing out during the show. So I decided to have as many scrolling things as possible because that's the theme today. The main thing I want to show though is this little guy here. I'll just hold it up. It's going to be blown out. Sorry, I can't control this camera for that but this is what I was showing. Yeah, I'll keep it up. I was showing yesterday on my product pick of the week is I was using a matrix portal with one of our nice 64 by 64 LED displays and I happened to figure out through just playing around with it that that display is exactly 18 Lego studs wide. So it's very easy to make your own Lego case for the 64 by 64 3.5 millimeter pitch which is what I did. This has some of our acrylic LED plastic to help with diffusion a little bit. But that's all I wanted to show is that I had a fun Lego build and I've got a little cool guy there who's very mysterious. One of those cosmic coincidences just like the moon is the same size in the sky as the sun. That's why we can do total eclipses. Super freaky. Why would it be 18 exactly? Why? Why? Why? I can't answer that. How'd that happen? Check out Jeffy's conspiracy, you two. Listen guys. That was deep. So tomorrow, what are you gonna show on your show? Tomorrow we'll be playing around with some Synth IO stuff that Jeff has been developing and that I am building into the computer perfection 1980s toy, ashtray, sci-fi prop thing that we've all discovered. And speaking of Robert Smith, not the cure singer but a well-known Robert Smith now is doing some toy controller hacking and just posted up on Twitter. Lots of people are posting up there, wishlist things. We put some photos up on our flicker of the USB-C version of the one that you made and then Robert put up a guide. So if anyone wants to hack like toys that weren't meant to be game controls, we have a new guide. Yeah, it's really neat. That's great. In fact, I have something also from the Fisher Price line that is on the clock for something at some point. It includes a spring-loaded cartridge that, I don't know, I just wanna know on all of these now. Yeah. All right. Well, thank you so much, Javi. All right. All right, next up we're gonna go to Dishy Poo, then Dil Tee, and then DJ Devon. Dishy Poo, I haven't seen in a while. Hello, what's up? What you got going on? Oh, I'm mute your mic. I mean, you had a chance. No, it's... Yeah. How you doing? I'm great. So the show is a bit late for me because I'm in Europe. Yeah. So that's why I'm not coming here. Which you're working on? Yeah, well, you probably... So I posted photos of this. You saw this... Yeah. It was cute. We've built a couple dozen of those recently on the Cadet Berlin. And yeah, it's basically a server walking robot, what's like this. And because this is an ESP32S2, it also exposes a website. Yeah, such a shame you can see it. Yeah, it's all good. We believe you. Basically with four buttons that you can use to control it. So it's a remote control robotic crab spider. Yeah, basically that. I also developed a number of... Because this is the S2 mini development board. So you can use any of the shields that are for D1 mini or S2 mini. And I also developed a number of shields you can use as a face. For instance, this nice round display. You can put different faces on it. That's a friendly crab. But you can also put a sensor. For instance, a distance sensor or a gesture sensor on it so that you can train it to do tricks depending on what gestures you do in front of it or things like that. So with Jeff doing a lot of work some year ago with the camera, I also made a camera shield for it. So you can put a camera on it. And you can actually modify the HTTP server in circuit Python to stream from that camera. So then you can, on that website you have with those four buttons, you also have to stream from the camera. Meet. I don't have that working right now. As I said, you need to hack the HTTP server library a little bit to not close the socket because I'm using async IO internally to do several things at once, stream from the camera and walk at the same time, for instance. This is Sivreni. If folks wanna build these, where can they find out more information? Right. I put everything on hackaday.io. So all the documentation is in there. I will post a link in the discord. Oh, thanks. I just wanted to quickly show one more. Yeah, Russia. Guy. So I'm using those LiPo batteries that are quite convenient for me. Those are mostly used for vaping. And I found there is a battery that is a little bit smaller. Oh, that's cute. But looks the same. And there are also those servers that are a little bit smaller than what you were saying. Oh, that will make you a cute batteries and service. I decided to make a robot battery. Oh, that's a cute battery. They say what is smaller. It's the same kind of battery. Yeah, about a kilogram. Okay, it's a little friend. And it uses the, I don't know if it's actually at the fruit or if it's Sivstudio. This one is Sivstudio's shower board, but. Oh, that makes sense. You can use a little cutie. Oh, that's cute. That's cute. Are you gonna put that up on your hackaday.io? Perfect. There is one problem. You can't buy those servers anymore. Oh, you can't buy them anymore? Okay, well. Yeah, so I will put the design files up there because it's possible they will come back at some point. Yeah, that's really nice. Those are from Hoplicking and they discontinued them like five years ago. I like how the movement is really nice. It looks very organic. Yeah, that's because of the Async.io where I can have several layers of animation at the same time. So I can move it forward. At the same time, a separate thread is moving the legs up and down. So it's very organic because of that because you don't really have steps. Yeah. It's all happening. All right, great. We were just in a meeting a lot too long ago and I had watched like a show about how everything eventually evolves to crabs in nature. Like everything eventually on a long enough timeline. So that's great. This is starting to make me think it's true. All right, well, thank you so much. It's been great to see you. All right, we're going to go to Delty and then DJ Devon's going to play us up. Delty, what you got going on? Hello, hello. Can you hear me? Yeah. The long awaited, finally returned of Rolling Thunder. Woo! Yeah. We have re-outfitted it with NeoPixels and we've got a fresh Raspberry Pi 4 on the back. It does a Wi-Fi hotspot. It projects a Galaxy projector. That's a little spaceman in the upper corner there. It has a sound system and it runs KissMet in the background. Well, yeah. So I just today got this back going after a complete refit of the motor assembly and fresh batteries and re-wiring. So the Pi goes back on next and then all new code in time to roll this down the street to DEF CON. Yay! Outstanding. That's awesome. And even more fun over on the bench, this is a gift for a friend of mine. Back in the 1980s, Radio Shack made these little toy fireman's hats. And you can see it had a little battery and a rotating motor and it would just rotate around and it was literally a physical motor and a piece of metal and an old light bulb. So I gutted it and I put in a little Adafruit board, a little NeoPixel or two. And when you hit the switch... Oh, cool. I don't know if you can hear it. Just a little bit, yeah. It plays the beat-o alarm from Minions. Nice. Yeah, hold it up a minute. Oh yeah. Thank you. So, and it's programmable through the USB cable. But you can see I've kept the original structure and just took out the original parts and there was like battery acid everywhere and it was just pure evil. But I modded it up and it's gonna get cleaned up a little bit, a little coat of paint and going back out to one of my friends. Sweet. Excellent project. And if you have any photos of either one of them, let us know and we'll post them out. This is a piece of ancient technology called a craft access terminal. It's very similar to what people call alignment handset except you had a 300-bod modem in it and you could use it to connect to the switch to turn your phone on or off if you were a lineman doing your job. What I've done is I have gutted most of it because who needs a 300-bod modem anymore? I replaced the screen with a pie portal which fits perfectly right in that spot. I'm getting a GPIO expander board so I can use the original keypad to do touch tones and it's gonna become a pie portable lineman set using pie portal. Oh, that's cool. So it'll be a dialer, it'll do your various boxes. I've already started on the code but I'm missing a few parts which are on their way to me which I ordered two days ago so I'm very, very excited about that. All right. And again, I hope to have that all good to go in time to show it off at DEF CON. Outstanding. All right, well thank you so much and send us any photos or put them in the chats with folks if I know more. Yes, this I will do. All right. All right, watch out driving down to DEF CON because people are gonna think that you're part of like some casino display. They're gonna be like, they're trying yanking things on you to see if coins come out. All right, DJ Joe, place out. Oh, can you hear me? Yeah. Okay, there's been a lot of feather DVI projects so I did like a temperature thing. There's temperature up here, pressure and then humidity over there. And let me one second here. What's the 1015.9? That's the pressure. All right, looks great. And then I cheated because you can't put the airlift on there, right? Because it's just not enough RAM and I tried GIF-IO2 and it just doesn't work like that. So I cheated and these are three different browser windows open and obviously you guys and Brent will probably recognize whipper snapper is running in the background. So if you combine that with that and I used, I bought from Adafruit in HDMI capture. So I capturing this, overlaying that and we get this. Oh, that's a good idea. Oh, check that out. That's a good idea, that's a good idea. A pragmatic use of the feather DVI. Yeah, yeah, this is neat. This is what we were hoping people would do with this because you can kind of mix and match a bunch of different data sources and then you could do some neat things with video overlays and then you get your own like dashboard the way you want it. Exactly. Yeah, it's pretty cool. All right, just- As you can see, and this will be on my GitHub under feather DVI because I have like boards, Raspberry Pi, feather DVI. I organize my boards just like you guys. All right, this is a great project. Nice work. As you can see, it's getting pretty hot in Florida and I'm pretty sure that I got a fever right now. There's only one prescription. Work out well. Yay! All right. It's a party at DJ Devon's house. All right, that was an excellent way to play our film. Thank you, DJ Devon. Also known as dragon, jockey, Devon. All right, so that's our show and tell for the night. I don't even know what I just saw. We'll be back next week. Thank you so much, everybody. Amazing projects and more. Thanks for making this the best half an hour. Every single week, we love seeing the projects. We'll see everybody on Ask Engineer in just a couple of minutes. All right, buddy. Bye, everybody.