 All right, Lady, what is this? I'm all pink-haired again, and that means it's time for show-and-tell. Actually, those things are not related, but I'm back on my bullshit. And so is everyone coming by here and showing off all their products, whether it be 3D printing or soldering or coding or machine learning or what have you. You're all welcome, even if you don't have pink-hair. I'm gonna be here for about 25 minutes. I'm gonna come by and show off what you're working on, Ata for Peeps and Peeps Home Community. And then after that, we're gonna go to do Ask the Engineer. So let's start off with Sean. Sean in for Digi-Key. Digi-Key, how's it going, Sean? What you're working on this week? Oh, I am just figuring out another visually rather boring demo, but I'm gonna show you the code in just a second here because I am learning about something called AsyncIO in Python and MicroPython and from chatting or seeing Scott's input, CircuitPython, there's been a lot of requests for it for CircuitPython. Share, screen, share, screen. And so what I have done previously is a real-time operating system where we did preemptive multitasking and I've got a whole series on that if you wanna check it out. Yeah, where the scheduler stops whatever task is running to run another task and it lets you run two tasks at once or more, something like this, you say set up and then you start running tasks with multiple while loops. So the other thing you can do is this thing called cooperative multitasking, which I think is super cool and that's where the scheduler doesn't stop a task but you have to write your code in such a way that yields the processor to other tasks. And if you don't do that, well, your tasks are just going to hog the entire processor. So if I bring up Thaunee here, you can see my MicroPython code, I'm using their Micro or UAsyncIO to accomplish this and to do this, and this is new stuff I'm learning in Python, you could actually define these things called co-routines and you can set them up as these tasks with these while forever true statements that run forever, but as long as you are yielding them with these await functions, you can yield the processor to run another task, which I have going on down here. So in this one, here's another while true that awaits a button press and that's what I've got on my little Raspberry Pi Pico here. And this actually executes this function up here and only returns when it senses that button. All the while, this BlinkCode is still running. You can see the BlinkCode going here and when I press the button, and what it's doing is it's using a queue, it times how long it takes me to press the button, between button presses, sends that over to this task up here and then updates the delay function. So it's just kind of a silly demo to show how to run multiple tasks at the same time using Python and I'm going to stop sharing. It's a good, it's straightforward and it shows input and output. So I think it's a very nice demo. Thank you. I hope it gets people excited about the idea of multitasking, which is kind of a weird concept to wrap your head around. Yeah, try it. I think CircuitPython actually does have async.io, so you might want to see how it looks like a Python. We do, I know that we had it and then we did the update merge and then I don't know, take a look, it might be there. It might be similar. I tried seven alpha and it didn't seem to work. So maybe I'll ping Scott about that. Yeah, Scott's in a Bluetooth hole, but when he comes out of it, he can take a look. And we have a bunch of stuff due for seven, so open up an issue if it's not working. Okay, sounds good. Thank you. Thanks, Sean. Thanks so much, Sean. Next up, Melissa, how is the cat situation going at your home? The cat situation is coming along. I showed this off last week, but this is a little, I've created this stand and I attached this wheel with some keys, so it's gonna jingle a little bit as it turns. And so I'm gonna go ahead and start it up here. Sometimes it vis-de-tex because I haven't trained it for every possible situation. So right now I have it pointing at my iPad here and it sees no cats. And then I'm gonna swipe here and it sees a cat. And so it's turning just a little bit here. It'll go like three times and then they'll start going a little bit harder. Okay. Yeah. Second. Number three. That one's gonna be scary. Okay, now, now the cat's not gonna scare the way it is. Yeah, I'm mad. And if it did text multiple cats, it would just get right into it. Okay, yeah, you gotta, you gotta be aggressive. Yeah. Okay, good work. And this is now a live guide on lend.edipro.com, this is Microsoft Love. You did a cool demo with that, with the bakery. And now it's the bakery. Yeah. All right. I'm gonna play this video tonight on our screen engineer as well. All right, thanks Alissa and sorry to the cats. Sorry cats. Hi, Jeff. Jeff, Epler. Hi there. What's going on? Well, I am, well, let's see. First of all, last week I brought my calculator and as of now the guide is live. So check that out if you want to wire that up yourself or to some custom PCBs and all that. But I wanted to show another thing that I've been looking at and give me a moment to switch my camera over here. So this is the other model of the keyboard that I put together, but this is running as a HID keypad and I've got an N key rollover demo. So I'm gonna start by taping over here on my regular keyboard. And after you get to six, you just can't do anymore because that's a common limitation of USB keyboards. But with Circa Python 7, we are doing these custom USB HID descriptors and one of the things you can do is enable a bunch of keys at once. There are 20 keys here and if I could just get them all with my fingertips here, we'd get up to 20. There we go. And it starts typing on the page. But so I've written this up on my personal blog and I think we're gonna add it to a learn guide as well, but it's just some code you can put in your boot pie and then in your code. And you can send, I don't know, at least 20 keys all of this at a time. It's cool. I think what's neat is like the USB support in Tini USB and Circa Python is so powerful. It enables a lot. Like this is for the reason that you can turn, we have HID and we use the regular six key pressed support, which is good for like 99% of people. But if you want N key rollover, you don't even have to recompile your code. You can just reload it when we descriptor and it just like works. It's pretty amazing. Yeah, so Dan Halbert added that and it is a big feature of Circa Python 7 and taking it for a test drive and it works great. All right, so nice job. Thanks so much, Jeff. Looking forward to the page on the guide. So cats might hate the previous project but they're gonna like this one because they wanna type more on the keyboard. That's right. They do. They wanna type all the keys. Yes, they love that. Just sit on the keyboard, just press them up. Next up. All right, next up. Noe, hello. Noe, how's it going? What you got going on this week? Hey folks, this week, I got a little stand for the Macro Pad. So this is a little bit different. It's got two hinges. So there's a hinge right here at the bottom and a hinge right here at the top. So the thing is that you can set this up so you can prop up your Macro Pad. It's so risky doing this with a Macro Pad because like I'm gonna type something and I'm gonna close the far and actually. Yeah, you can have every window. It's gonna order something. I like this simplified design though. It's like very elegant. It's got like a wire frame. Yeah, it's got like a wire frame kind of thing. In principle, so it's all assembled. You can kind of take it apart like this little piece comes off, but you know, that's just a bit of the design. And then the Macro Pad is secured with the M3 screws or they just get tied there. And you can use the back plate if you want or not. I just kind of threw that in there because it looks really cool. It prints without any support. So that's always the thing I try to do. And yeah, it's parametric. So folks want to like modify. They can download the Fusion 360 file and like thicken it up or maybe add some spots here for those rubber feet. I've been thinking maybe we can do that. But I got it thin. It prints in like an hour and a half or so. So pretty good in terms of like printing quickly for something this big. But yeah, check it out. We got a quick little learn guide and shout to Stuart. He actually printed it out already. He printed it twice. And it was nice to see when somebody with a different printer prints your thing and it's got like, you know, a print in place hinge or something that has height tolerances. It's nice to see it work on a different printer because a lot of the time, it's like, I don't know if this is gonna work. Throw it out there. Hey, it worked. All right, we'll be playing this video and also your speed up. Thanks for timing it right with the season finale of Loki as well. Yeah, yeah, yeah, yeah. We're gonna watch that tonight. We're gonna watch that tonight. I was gonna like press your quick button. It's a last. It's on the, it's on the cable. All right. What is it? Yeah, no, no. Thanks very much. Next up, JP, what you got going on this week? Hey, well, here's what I've got going on. I'm doing some macro pad stuff. I was actually working on the macro pad library, testing out the macro pad library that Catney's been writing. And one of the cool things that she's got working now is a simple rotate argument when you create the macro pad objects. So this essentially does all the math for you to rotate the screen and the buttons, either upside down, sideways, that sideways, or kind of regular side up. And the code that I've written for this is actually sort of like a, I called it kind of like a lineman's handset for MIDI. So what this does is it lets you just test out a few notes. It's a small keyboard. No, no, no, no, no, no, no. And I've just got plugged into my laptop here running a free essentially emulator of the old Radio Shack slash Moog synthesizer, the MG1 from the early 80s. But what's particularly cool on this is since we have the screen and we have our rotary encoder on here, I can choose different presets, which is a MIDI command for picking essentially banks of different presets. So you've usually got different sounds that have been patched together and stored. So I can try that one, but then I can. Well, that's a good one. So these are all just rearrangements of the controls that are built onto this synth. It's a subtractive synth that has two oscillators. It has some filters and a little bit of a modulator in there. And so there's a lot you can do with that amount of control, but just going in there and flipping dials, which is fun. Sometimes you just want to try out. You want to see what the designer's created in there in the first place and then maybe diverge from there. So there's one that just kind of does noise. And so that's all being sent as these little bank commands. Then I can also click my little encoder here and switch over to sending some controller change, some CC. So in this case, I'm just going to move that filter and you could set that up to be different controls, even have a lot of them on there if you wanted to. And then also threw in a pitch bent switch banks. Ooh, that's a fun one. So I'm kind of... That's so fun. I might just do that for the next hour so you can tune in and out if you like. So I'm going to be showing this on my show tomorrow and diving into this new library, this macro pad library that makes it even more convenient than it already was to do things like check the keys, light up the keys. You can see here I've got it changing the colors of them as I move through the banks just for fun. I know you can do this for hours, we got to keep moving. Yes, I'm getting out of here. Come by tomorrow. I know, come go to the show and watch. You should do a show. I'm fixing to do just that. I'm fixing to do a show. You can do a show. Well, we're going to play some of this and more on African engineer tonight as well. All right. Awesome. Thank you, JP. Thank you, JP. All right, next up, Liz. Hey, Liz. What's going on? Hey, everyone's talking about keyboards but I have a mouse project. So this is a blue fruit feather and it's using the onboard accelerometer to move around my cursor. Oh, yeah, look at this. Go ahead. And then when I cover up the light sensor, I can scroll and if I go far down, it'll go fast or if I go a slight angle, go nice and slow, we're really fast. And then if I want to click on something, I use the onboard button and we can check out guide. Okay, scare some cats. Yeah. I need to scare mine actually because they're kind of tearing around as I'm doing this. And it's a Bluetooth HID or is it? Yes, it is. Yes. Yeah. That's cool. Yeah. Nice one. Change up my camera so I can say hi. Or of course I'm controlling my mouse while I'm doing that. Yeah. That's fantastic. I think one of the neat things that we wanted to do with CircuitPython and now that we can do a lot of this stuff is have people interact with their computers in different ways. And you saw the project that we just talked about, all these HID descriptors and all that, you can manage 20 buttons, you can do all this. And we have a keyboard, we have maybe mice now. Now people can reimagine like how they want to interact with their devices. Yeah. And one other quick thing I was working on was I started playing with the 2020 open hardware badge which was the watch. And so I wrote like a little thing where you can kind of manually set the time on the watch. And then when you set it, it turns the display off and then when you press the button, it brings the time back on to save battery. And I kind of want to write some stuff where like you have the clock on with one setting and then you press another button and it'll show you like step count because it does have an accelerometer on here. I think like that, do like kind of a disconnected smartwatch. We'll CircuitPython. All right, then you should try out Scott's new Bluetooth programming mode. You might dig that could be a good pairing for your stuff you're doing. Yeah, I've been meaning to try that out. So I'll definitely take a look. Yeah, band tester in practice. All right, thanks Liz. Cool, have a good one. I like the new couch mode, Liz. Thank you. Very country looking. Thanks. All right, thanks Liz. Next up. Yudichio? Yudichio? Sorry if I can't say your name right. I'll mute your mic. I'll mute your mic. Yeah, you should unmute your mic. Hi. Hello. Sorry, how do you say your name? What's the question? How do you say your name? Yudichio. Okay, Yudichio. Okay, show us the project. So me and my father built this project. It is called Hittagula Wi-Fi Watch. It shows the time and the connection on the internet and the data from the website open weather map. Map. I like, it shows temperature, wind velocity, humidity, the day, the month, the year, and the pressure. It shows that the wind moves the one. Basically, it is an ESP8266 that connects with the Wi-Fi. And we also had some libraries. We had libraries for the characters for the dealing with the SP and the holder. And it's totally truly printed. My father shows this model behind with these little cute drawings. I love it. It took like a day for print everything. And it's very nice because we put in a place and we always look at it. And it's very useful for us. And we like it very much. It uses only five volts of tension. It's very low power, you know? And it was very nice. It's in Portuguese. Sorry. No, it's okay. It's all right. All project welcome. We can understand it. Well, this looks great. I love the animations of the LEDs. They look really good. It's very beautiful. I saw that my father, he called it. A lot of things, he's very, very good putting. I think it's a great team up. A great team work. Yes, team work. We do a lot of projects here. It's very nice. All right. Well, congratulations. Well, thanks so much. And please keep coming back and showing your projects that you team up for today. Always for sure, Will. Yeah. Bye-bye. All right. Thank you. Take care. All right, next up. Okay, Mitov. Hello. Mitov. How are you? Hello, guys. Nice to see you again. Yeah. Hello. Well, I have been going lately, generally speaking, metro, variety of metros. I am trying to go through my box that I got a bunch of ops. It's going all over the place. Yeah. But yeah, it's a fair amount of stuff adding all of this that I got from your guys to Visuino. And let me quickly share screen. Let's see. I hopefully know how to share, but do you see the screen? Yep. Yep. Okay, fantastic. So right at the moment, I have a metro with air light, the metro express light. And I think I lost connection, but let me restart it quickly. Connect. And it will connect to the Wi-Fi and it will start getting prices of some shares. This is just a quick project that I built in a couple of minutes. So yeah, it connected to the network. It got the IP address and now it will start getting quotes every few seconds. Cool. So let's give it a little bit of time while we're talking. And yeah, now you can create projects for the metro and the air light in seconds. The other interesting thing that I did is since I was doing the air light, yeah, I think for whatever reason, it lost connection to the internet or the server for the quotation is temporarily down. So unfortunately, I was getting minutes ago quotations from the internet and naturally for the show, it decided to stop. We believe you. We believe you. Oh yeah. It's fun. I'm known as a non-cheater, so don't rush to believe me. What I wanted to show you is I wrote my own air light library, however, which allows you to connect as many as you want air light modules to your project. So you can connect to as many Wi-Fi as you wish until you run out of pins on your board. And they all work together. And the library uses about 60 bytes only to add the air lift module. And it is also a non-blocking library. So it uses preemptive scheduling automatically on all the Arduino boards. So it can work on boards that have really small amount of RAM. And especially if you want to have multiple modules, as example, I already have two modules in the project. How I can connect to a different network or start controlling daily this or whatever I want to do. And so that's what's been happening in the last week or so. All right, awesome. All right. Well, thanks so much and continue to come back and show your projects. Yeah, look at the developer. It's been great to see a girl. Yeah. Thank you. All right, Mark, how's it going? This is dark. It's good. So I have finished my lamp. Yay! This might have been a lot more creepy looking if it wasn't summer and super bright behind me. That's okay, it's pretty good. It has a little creepy hollow vibe to it. Is your head attached still? Everything out again? Sort of. Yeah, so I'm super happy with how it turned out. Now that it's dark in here, I'm probably not gonna be able to show this off, but the bottom now has the buttons and switch. The last part I was waiting for was a switch that could actually hook up to the LiPo battery pack and handle the amperage that was going through to power all the Neopixels inside. I don't have any animations yet, but I can change the color. That's good. Good. Green is creepy. Yeah, so it goes through all the basic rainbow colors. Eventually, I figured I could do a little bit more. Next step is to show this to all my friends. This was initially basically a curbside recycling thing that I found. That's right. I had actually abandoned it at their house and they threw it on my front steps one morning where it sat for about four years. So it's now found another life. Congratulations. Now it's an heirloom. It's reused heirloom, the last forever. All right, next work, Mark, and it's good to see you finish another project. Thanks a lot. Yeah, good stuff. It also could be a good light to put near something you're photographing. Sometimes our photographer and then also sometimes I take photos. I've been using colored LED lights instead of messing around with software and just trying that effect. So that might be something. Yeah, if you can do the light balance automatically, that would be doing a lot of my own photography too. Yeah, that could come in super handy. Yeah, I'm trying to stay away from playing around in apps and just like maybe doing it more with the actual camera and light itself. All right. Yeah. Thanks so much, Mark. No problem. Thanks. All right, that is our show until this week. Thank you, everyone, for making this the best half an hour of our week. Every single week, we very much appreciate it. We're here every single Wednesday, 7.30 p.m. Eastern time, hang out in Discord. We always put the link up and all of these are on the different social media channels and more. Most people watching on YouTube but you can watch it on all participating websites. We'll see everybody next week. Ask an engineer starts in about five minutes. Thanks, everybody. Bye-bye. See you in a few minutes.