 Hey, hello and welcome. What is this? This is the day before Thanksgiving and so it is crickets around here. This typically would be show and tell, but today I think unless someone joins us, we have one thing to show and tell and that'll be a brief demo I'm gonna give about the thing on my workbench over there. But I will stall for a minute or two to see if we can get anyone from the community to join in. If you're curious of how to come on and show your stuff on show and tell, we have a link over on the blog as well as in our Discord. So go look for that, that is a StreamYard link that will get you right into the show and tell. And hey, oh, hey look, that's good news. We've just got someone to join us there and that is our good friend Jephler. So I think without further ado, let's bring on our show and teller, the singular, Jephler. Hello, I am not hearing you. Hopefully you're hearing me, let's see. I've got audio up there. Your mic just came unmuted, it looks like. Try again, nothing. All right, how about- I hear you, nice. As I was saying, I'm sitting here in the dark, things may be going wrong, but- Ooh, it looks interesting. Let me see if I can fix the brightness problem here on the camera. It's very mysterious, it adds a certain genus aqua to the whole, hey there. It's just one of those weeks, I think. But I know if nothing, if all else fails, we can turn this around and I can make you do show and tell. I know you've got some stuff back there. But yeah, if I can just get my browser window back here, I'm gonna open up a window share for you in just a second. It sounds great. What I've been working on is, this is the latest iteration of the Adafruit Pi camera. So this little baby runs circuit Python and it's got like a five megapixel camera, a ring of LED lights to light up your subject. And on the back, it's not showing much at the moment, but we got the LCD and some directional buttons and some start and select type buttons. Super fancy. And up here is the shutter. So you can give that a little click to take a photo. But instead of using it like a handheld camera, I've been working on a web interface for it. So it is time to try to present my window. And is it? Yes, it's this. So if you can bring up my screen share. This looks like amateur hour because I'm not a web coder, but basically it's that camera and it's my little owl figurine. I do not collect owls. Anyone who says I collect owls, they are spreading lies. I just happened to have this owl. Anyway, so. That can be inescapable. Like every occasion from here until the end of time, you're gonna get owl related things. So like with the LED level, it's blurry because it updates the photo each time I take a picture and I was moving the camera. But so I can like set the level of the LED or the color of the LED from the interface. How nice. That's a little rainbow because of course we have to have a rainbow. So anyway, I'll put this back down here and we'll get back to taking a picture of the owl. Yeah, so basically it's a way to see because there are all these settings that you can set on the camera. And if you had a physical camera, you'd have all the knobs, but this is for if you're wanting to do it in a programming way or just explore what it does. So for instance, let's see what else is good here. We can turn on the test pattern with color bar. It's weird. It's not showing the little pop downs. So that's white balance. I don't know what we're doing here. So yeah, if you turn off white balance, it goes from that to, these are terrible lights I've got in my basement. So we'll put that back. But yeah, I was gonna switch it to the color bar test pattern. So you can just mess with all these things. You can mess with the mirroring settings. So this is just a demo to check out. Check out what's going on with the camera. I'm not sure why that is not working. It's a demo. You've got different gamma settings available there. Yeah, so let's see. There's this other setting, which I think maybe it's not applying gamma so the image is artificially darkened. I'm not conversant. I know gamma is very important to having images look right. And this setting looks better. Let's see, I guess the other main one to show is we have some camera effects. So that is negative. And then we've got some color cast effects. And then we've got a solar eyes, which is bright colors are inverted and dark colors are kept as they are, I think is the explanation. And it looks really wild when you turn on the LEDs because you're getting all those bright. Is it specular reflections, but those are turned dark. So it ends up looking kind of weird. But those little dots are the reflections of the different LEDs. So anyway, yeah, that's what I've got going on. And I've been working, I swear, for a week and a half on this. And it really just came together this afternoon. Nicely done. Yeah, so to give a little backgrounder, you are talking to the camera, which is running in ESP32 of some kind, right? So yeah, we'll turn off those LEDs, but this is a ESP32 S3, so it's on WiFi. And with the Adafruit HTTP server program, you can create a web interface. And so this is a combination of some web endpoints that are on this device and then some HTML files. And then there's a JSON document that has all of these and says, you know, to change the gain ceiling, well, these first of all are the, well, you don't see the pop-downs, but it has a pop-down zero through nine because from this JSON file, it's getting that that's the range of it. And so it can put together the web interface. And somebody else could do a much better one than me, but that's kind of my experience a little with it. But anyway, yeah, ESP32 S3, WiFi, circuit Python, lots of memory and a camera, that's so cool. Very cool. And so these are settings that are then going and twiddling variables in your circuit Python code. Yeah, so they're actually going down into the camera module. The camera module has registers just like a lot of I squared C devices. And so to set the color bar, you'd set bit nine of the word at address 3200 or whatever, but you don't worry about any of that. You just, you know, in your circuit Python program, you would say camera dot color bar equals true because it's taking care of all that for you. But at a very low level, it's, you know, low level. That's really cool. And would the, since it's able to send you this latest, it's a taken photo, right? It's not like a live preview or is it a live preview? Right now, each time you change a setting, it will, it will change that setting. I didn't set it down. I set it down to rotate to 90 degrees. That's a good way to tell each time you change the setting, it will download a fresh image, but it's not live preview per se. That would be a nice addition, but I didn't have time to do it. And so presumably you could also look at stored images on the SD card that are. Yeah, this, this program, if you had the SD card in, it could create like some kind of album page. I think that would be pretty doable. We're also talking about whether, what is it, what the web workflow would be able to access those images, but being able to put it into a web server mode, I think, you know, where it would show an album and maybe go by pages or something would be pretty cool. It's really impressive. A thing that we don't have, that we've talked about adding is like the ability to have a thumbnail. So right now there's only the full image. So, you know, if you were capturing your images at resolution number 12, well, it'll take a while, you'll have to, you know, scroll through those a little bit. But, you know, we'll be working on the software and I think you'll get to work on some of that software we were talking about. So, really cool, great work. And congrats on getting this up and running to you sometime. Yeah, Lamore has been working on this board for a while and I've been working on the code for a while and I think it's starting to come together. So, it's exciting. Yeah, very exciting. Great, well, thank you so much, Jeff, for coming by and bailing us out of trouble. It looks like we actually have a Todd bot, a wild Todd bot has arrived. All right, well, you know, I'll stick around and I do want to see you show some of that stuff if you were showing me earlier if we still have time. So, you can bring me back and I'll turn it around. Okay, so we'll bring you back in a moment. Okay, all right. So, next up we got Todd bot. Hey, Todd, I do not yet hear you. So, we'll wait a moment for audio tinkering to go down. Oh, I hear a mic. How about now? I hear a, I hear a Todd. Yes, hello. So, all right, so this is real quick. I just pulled this together just to, just to play or just to see if I could say hi to everyone. Hey. I look for Thanksgiving. So, you know how like I've been playing around with these round LCDs for several years? Like, is this one gonna do something? Maybe? Oh, maybe not. Never mind. Oh, wait, wait, how about this one? Something? Something? Nope. It wants to. All right, yeah, anyway. So, round LCDs, they look like this, typically. About a year or so ago, I made a little, when let's do a little round knob thing. This is a rotary encoder that is a, it's a hollow rotary encoder. So, you can feed the wires through for the display. And then a little 3D printed thingy. But this is a fairly complex solution. And I noticed that like, I just had it fall apart on me. Oh yeah, it's mostly together. So, you might have seen these kitchen timers on the internet, on Amazon or whatever. They're like $10 or whatever. Really simple. They got like a simple outer rotating bit. And then you can push it to trigger it. And so I'm like, how is this working? This must be very cheap because this is not very cheap, you know? And if you take it apart, which I will try to do so without killing everything. Oh, here we go. Everything's dying. All right, if you take it apart, all it is is a horizontally, see if I can get the lighting quite right here. It's a horizontally mounted encoder with a gear mounted, an inner-involute gear mounted on the inside of this ring. So as you turn the ring, let's see if I can. Yeah, I see it. That's great. And so it's a super wonderful. And the thing is, I was starting to 3D design this in CAD to see if like, oh, maybe I could use a, maybe I could use just a normal rotary encoder with a 3D printed gear. And it turns out, yes, someone's already had this idea. And they've mass produced it for like, you know, $10 a piece. So yeah, so that's my little, interesting discovery. If someone, I think someone could probably repurpose this functionality, you know, or just, you know, get another, their own 3D printer, 3D printed gear on a normal rotary encoder and make this and 3D print the ring. And boom, you've got a rotary knob for, you know, pretty cheap and then put whatever you want inside. That's clever. Really cool. So that's what I got. Have a good Thanksgiving. Thanks so much for coming on. Have a happy Thanksgiving to you too, Todd. Cheers. All right, I'll bring Jepler back and flip the tables here a little. Well, hello JP. This is my first time as the host of Show and Tell and I really appreciate you being on to show off some of your projects. So what have you got for us tonight? All right, so I've been working on a guide for lighting up Lego builds. And I have a camera I'm gonna pop on here that shows one in action right now. So these are a couple of buildings from the Winter Village line. This is a line that's been going for about 10 years or so, I think from Lego one a year that they do that there was a bakery and a toy shop and a train station. So they're all these little cute Winter Village buildings and scenes with usually some lighting suggestion that is done with translucent bricks. So you can see here, these are some translucent yellow bricks that look basically like that. And Lego themselves don't really put out many solutions for lighting stuff because it tends to be really fiddly. They don't want things to be fiddly. They wanna be easy. So they have some light up bricks that have one LED in them. It's the size of like a two by three brick as a battery in it. And some of these actually came with those. So you get to like press it and light up the fireplace for a couple of seconds and then let it go because the battery will die. So we happen to sell in the Interfrid store these really tiny 0805 surface mount LEDs which have been, I'm gonna take this screen away for a second actually, which have been pre-soldered onto some very thin wire as you can see there. So that little grain or rice there, that's the LED. This is a warm white LED and it's on single strand like hookup wire, wire wraps style wire. So this wire is so thin that you can see here, you can sandwich it under Lego with zero modification. So there's no need to drill holes and stuff which is what everyone's scared of when they think about lighting these. So these run off three volts and you can do things like attach them to a coin cell battery for a really simple effect. And so I'm gonna put this in my guide as the, I just wanna get some lights that are on when I want them on and off when I want them off and I don't wanna do a lot of complex stuff. So you can see here's one of our little coin cell battery breakouts and I've literally got a switch on there or something. Yeah, you can get ones without or with a switch. I think it's a dollar more for one with a switch. So if I flip that on, you'll see now I've got some lights on this razor crest. It's a Star Wars ship and I'll go to this other camera for that because it's got better lights. You can see we've got some pew pew. There's the little baby Yoda's in there. Oh, I'm not, let me see if I can focus this one out. That's how close can I get? No, there's a little grogu. All right. There's a little grogu up front. Oh, even closer. There he is. There's a big old ear. So I've got a green light in there. And these are, it's really all about just figuring out where you can route those skinny little wires and hide stuff, but it isn't that hard to do. You can pretty readily find places to thread them through and then on this other example over here I've gone and- Yeah, you have lights that we're twinkling and turning off and on. Yeah, so this was something I actually just got working earlier today. So this is a little QT PI RP2040 and it is running over I square C, our AW 9523, which is a 16 channel breakout that can do constant current LED driving, which means they're not flickering on video here because it's not PWM. So to have different brightness values, it is a constant current proposition, which is fantastic for video. So I got that up and running and then earlier today, I wanted to try to get some of these lighting effects where you can see I have, I'm gonna darken my exposure a little bit here further. So you can see I've got some of these twinkling lights like their candles here and here. There's a little candle in the window and this one. And those are kind of running on their own little speed, both semi-rammized speed, randomized brightness. And then I've got some that are always on and then I have these little red and green sort of Christmas light style lights up at the top there. And this was, I think, my first use of async IO in Circuit Python. And it is amazing for this because you can essentially create a whole bunch of little events that you wanna run and they do not care about each other. So they're not blocking and they're not waiting and it's not using regular time. It's using the sort of async IO sleep so that no one gets in anyone else's way. For me, it was very easy to set up compared to like some other prior to async IO, complicated things of counting time monotonic and stuff that kind of makes my head hurt. So this I was really happy about it. It was pretty straightforward to have little animations that are separate of each other and don't. So like, is there a function for those four red and green LEDs that go in a sequence and then a function for the candle that does the thing? That's exactly it. Yeah, yeah. So I set up one little, is it a function even? I think they're... It's an async def. It's a kind of function. It's async def, yeah. So I have async def for those four lights. I have async def for the ones that do the flickering and if the other ones are not in async IO at all, they just turn on at the beginning and nothing ever changes. And these are actually set pretty low. They can get quite bright. You'll see, I think there's a setting where I can fix this but right now, when you plug it in, that board will set all of them full blast. That AW... They did turn on bright for a second when you plug it back in. Yeah, so you can see that just to get an idea of what these will... Yep, there it was. It'll get real bright at the beginning and then I have them all dimming. So a lot of fun, 16 lights off of one is pretty good. I've only got 12 connected on that, so I have a few more. And then I showed this last week on my show, I started to use a little hand drill jig to twist these wire pairs together and then I soldered them to some JSTPH cables so that they can be plugged in. So this whole thing can come off of the board just to manage some of the wiring complexity that's back there. I won't dare try to move that right now but there is definitely a lot of wiring complexity going on. Well, very cool. Yeah, so that's what I've got to show and I'm working on a guide for both the simple and the complex versions of that. And I will say, you can go and find kits. In fact, there are kits, there's about six or seven companies who seem to all make the same thing, which is variations on this. Some of them have little hubs to plug more lights in, little modules to do blinking, little modules to do timing. So there are solutions out there but I don't think any of them are as customizable as this because we've got the control and software to kind of cook up anything we want. And so that's sort of the fun of this. I don't know if one is cheaper than the other to do but it's fairly reasonably priced to build these things but with CircuitPython, we'll have a really nice way to customize it exactly what you want to look. Yeah, it might not fit in with the holiday design but do the nudes work with that particular LED driver board? They do, yeah. In fact, right as I started working on this, I was searching something online and I found someone on one of the big Lego sites doing how I made my own DIY Lego lighting solution and it was literally everything I was planning and he had nudes in his because he was doing like a cyberpunk scene so the nudes make great neon lights. So I'll definitely link to that person because they did a great job on it and it's 99% like the same driver board turns out, yeah, that's a really great driver board to use for this. I think they used Arduino and CircuitPython but other than that, yeah, it's a solution waiting to be found if you're into Lego and if you're into DIY stuff with LEDs, you can pair these up. So yeah, you could also add neopixels to something like this. If you wanted some bigger overhead lighting inside that needed to change might not look as good on video again just due to the PWM issues but this stuff is really lovely on video. So I'm pleased with that. All right, well, people I'm sure looking forward to that guide I guess that'll probably be out before Christmas anyway. Yeah, yeah, I am looking forward to putting it together. Thank you for flipping the tables. I'm actually gonna take over hosting duties yet again and bring on C Grover who has just joined over here. So thank you, Jepler and have a great Thanksgiving. All right, don't eat too much. No promises. All right, hey there, how are you? Hey, good, how are you doing? I'm well, thank you. What's new? Well, you know, it sounded kind of quiet in here. So I thought, well, I'll just jump in and talk. That's kind of you. Some of you know about my little weather chime project. It's now a shrinky dink, got a cutie pie and it's an ESP32 S2 and it has a little lipo on it and it's tiny so that I can hide it inside of some sort of a statue indoors so I can torment people with the sound of a minor little chime that goes along with the wind. Oh, that's great. But the other part of it, I've been and see, these are some of the boards that I produced today, these three boards here. It's an I2S interface based on a TI chip that can output audio, but it can also output CV. So if you want to have control voltage for a Eurorack setup, these can produce that CV voltage, both positive voltage and negative voltage has a built-in boost circuit. Oh, great. So you can get negative CV out of it. And thanks to Jephler, he did some changes to SynthIO that allow it to to control amplitude in the negative direction, which inverts phase and I mean, it's really kind of a cool thing that he did. Oh, that's great. So these are the chip. You're breaking up a bit, so. Oh, I'm testing the internet, I think. But anyway, thanks to Jephler for some of the work that he did on that and we can output CV voltages through I2S now. Oh, that's great. That's so cool. And if people want to learn more, you can have some playground pages up with info on this. Yeah? Stuff on playground. Yep. I put a couple of articles out there, one about the CV voltage trick, one that shows this new board that I've created and I got a couple of other articles out there too. Yeah. Oh, excellent. Yo, well I loved your chime. Anyway, have a great Thanksgiving. I end up using your chime code for my Lego brick glove reader and it was lovely. So I appreciate you putting that out there and sharing that with us. It was really nice. I've been working on a couple of new ones and working on strings and organ. Oh, wonderful. Some other sounds, but yeah. Well, thank you. Thanks for coming on and showing that and yeah, you too have a great Thanksgiving. So, all right. I think that is gonna do it. That's everyone. Thank you everyone for stopping by. Thanks for jumping in our chats and watching the show. Great to have everyone here and just so you know, there will be an Ask an Engineer returning next week which is our polite way of saying it is not happening this week. So go take some of that extra time to prepare your snacks and beverages and have yourself a great little break if you're taking one. For Infrared Industries, this has been show and tell. I'm John Park and I will see you soon. Bye-bye.