 Hello and welcome to a special Circuit Python Day 2023 as seen on the show until it's Friday. It's 7.30. Pretend it's kind of like a Wednesday, but it's not Friday. And it's Circuit Python Day. There was an entire schedule of videos and events and posts and more all throughout the day. And this is kind of capping it off with a show until it doesn't have to be a Circuit Python based project. We have some stuff we're going to show that happens to have some Circuit Python stuff. But this is the theme. You know, we're going to use these graphics. So we'll start with some of our team members that might be shown some Circuit Python stuff. But again, you know, show anything you want just like every single week. This just happens to be Circuit Python Day. All right. First up and happy Circuit Python Day, what's going on? Hi, everybody. You might have seen that I've been doing a lot of PCB art, you know. My first project was this jewelry. My second one was this NASA batch, which lights up some of the stars when you turn it on. And the latest one ups the ante a little bit more. I saw on the interwebs this cool Star Trek L cars door control panel and they have it in various things. I think it's the next generation. So I thought maybe do a take on that except with plexiglass and screen printing or whatever they make it. Again, you circuit boards and have all the hard parts done by a board house. So I designed it in an affinity designer. You can design the graphics, how you pick the layers, which layers of the board represent which colors the logo shows up in metallic currently. And then around it is the bear circuit board. But this isn't just like for show. On the back are places to put circuitry and what I've been doing, I just got these. So I've been bringing up the board. I put a capacitive touch chip that Adafruit has in one of their breakouts. And Lamar has circuit for and I put LEDs. Oh, there you go. You can actually see the LEDs lighting on the back because I'm touching it as I'm holding it. There we go. But the methodology is you touch the light behind lights up to number five. So it is working. It's not working perfectly because if I touch the number nine, the light for number one works. So it's kind of backwards. So that's okay. Circuit boards aren't too expensive, actually. So I will work on some of the circuitry. I know the chip works. I know the design works. I just need to reroute some of the signals to get it to do what it's going to do. And then the next iteration I can wear up all 10. Now, the logical thing is, well, you're just lighting up lights. Well, it does make a cool thing if you have one of these near your door, or you can change up the circuit a little bit and have a microcontroller. And actually, if you enter in a certain code, it unlocks the door and they don't swing open like in Star Trek, perhaps, or, you know, whatever fun thing you want to have when you actually enter and push things. So I just kind of geek out over the aesthetic of this. And it's not too hard. So I mean, you go from Affinity Designer to Winter Blooms, online free utility called Gingerbread, and that converts the drawing outlines to KeyCad. And you import that into KeyCad as a footprint. And then you make your design. And it's kind of automagically, you know, it has all the pretty stuff in it besides your electronics. So I really like it. And I appreciate Lamore giving me the chance to work on this. That's a great project. And what's neat is kind of a combination of the badge art that we see out there. And then this turning into like a functional like heirloom electronics, like something that you'll actually want in your home that's like, hey, look at that over there. I like the aesthetic too. It's like Picard got a like flat screen TV to watch like the space ball game or something like that. So all right. Well, thanks so much, Ann. No problem. And if folks want to find out more about it, where could they possibly? Well, I've been posting some stuff on my Twitter and underscore engineer. This will be written up as a Adafruit Learn Guide with step by step all the files open source so they can either make it or remix it, do whatever they'd like with it once I figure out those little kids. Yeah. Okay. All right. So stay tuned to the Learn System and more everybody if you want to check this out. All right. Thanks so much, Ann. All right. All right, JP, have a circuit Python day. Hey, what you got going on? Happy circuit Python day. So I had a lot of fun doing a panel discussion and a workshop show today. But I didn't build anything. So an hour ago I decided I better build something for the show and tell. And I was able to quickly get together the parts to add on to my joystick PC joystick seesaw adapter demo I did on Tuesday, which allowed me to use an old flight stick. That's this Radio Shack flight stick that I got just a couple of months ago before to it is Lee at the thrift store. And I was using it to drive a little graphic demo on this OLED right at the end of the show. I said, you know, you could use this for all kinds of things, including maybe sort of a XY servo mount shoulder mounted puppet or something like that or other type of props. So I grabbed a couple of servos and brackets that I put together years ago for project, wired them up using one of our little servo feather wings and then added the code in Circuit Python to the QT pie that drives all of this to be able to now pilot this little servo rig and look around to Circuit Python because like, this is normally not the type of project that you're like, I'm about to go live with a video show like just being able to do this that fast is really great. This is really hard to do normally. And it's very fun to kind of just help me get a fellow. Hello. And so I still have the OLED demo going so that shows like some button press stuff happening and I think that could be eyeballs or it could be the mouth or something. For sure. And we've got the support here to do a rudder and a throttle as well. There's sometimes like four potentiometers on these joysticks. Mine has a third one, which is just this throttle you'll see on my OLED. I'm able to move. It already has like a like an alive nature to it. One of the things when we do the Circuit Playground Puppet Show when I was learning puppetry is you keep them kind of moving and breathing all the time because the second they're still. Yeah, they die. So I kind of like that you, it has this very, it reminds me of the little creature that used to hang out on the job with the hud. Yes. It's like it's already like. Yeah, it was like some slapstick humor needed. Yeah. A little rock. And or something. I think he was. He does get it. He had it coming. Yeah, this is this is already neat. Oh, it's interesting is like how hard this used to be with an Arduino like J.P. Like you remember like people doing this kind of project. And here's my thesis. It would be like it would be like weeks and weeks. This is something you're like back down an hour and it's like I can see like, yeah, you probably just read the data and then mapped it and then wrote it. And especially with robotics, you want to have this fast iteration because you're always tweaking like, oh, wait, my X, Y is swapped and then it's inverted. And then there are always eight combos for everything. Yep. Yeah. And it was at first and it was just a. A couple of repel with robotics is really good because you could sit there and like do stuff and do it real time instead of compile. Wait, yeah, wait, I die. Capon is so helpful. OK, this is a really, we didn't plan this. We didn't know you were coming on. This is like probably one of the best examples of a scripting language like circuit Python for rapid iterations for things like robotics. So you're the poster robot of this today. Thank you. I'm not sure. Yeah, take a bow robot friend. All right, J.P. Good work, circuit Python day. All right, Scott, today is a lot of your handy work out in display for circuit Python. Yeah, yeah, right on day. Yeah, but also props to Catney for organizing it. Yeah. If you watch my stream, you know, I was late. So like, I'm not a great organizer. So well, it's all streamed and recorded. So what's late anyways, it's true. It's very true. So I showed this on on my stream earlier, but I wanted to bring it here. So I've been working on USB host. And actually, I want to take John's project and use a USB joystick for that. I think that's cool. But I was doing I'm going to I'm going to sin. I was I expected John to do since then. So can you can you hear it? If I go, yes, the back, the back. OK, that's so what I've got here is I've got like one of these MIDI keyboards is on my lap and it's plugged into an IMX RT 10 60, which is an NXP board. And I've been testing the ability to I wrote a library so that you can read MIDI from a USB device using upcoming like current circuit Python USB host. And I wanted to see how well it works. So the thing that I was having fun with and I've had fun with previously is that this is also a sequencer. So there's like some sort of sequence in here already. So it's doing this thing. But there's also a rate knob so we can see how quick it can handle. So as I increase the rate, it's actually individual MIDI messages going up USB host. So it's it is kind of a good test to see you like how much data you can get going. Crank it. That's as fast as it goes. That's a lot of data. It's a lot of data. And because no notes are stuck, I think we're actually getting all the data too, which is super fun. And it's like the square waves bring back all of these memories. The MIDI keyboard, the USB output is plugged into an RT 1060 deaf board. Right. And then that's running Synthio to generate the tones. No. Yeah. Yes. OK. So there's three things plugged in. This one is power. Power. OK. This is USB OTG, right? So micro B to a USB A. And then this is just to the speaker that's on my desk. OK, so you really didn't make a keyboard powered synth. So you're testing Synthio and USB host. Yeah, I mean, it's it's kind of like the first opportunity I had to play with Synthio and thanks to Todd Bott and I forgot to say this earlier, but Todd Bott, you know, has example code already that takes MIDI and produces Synthio. So I just took the little bits out and said now use USB host instead of the USB device MIDI that this is actually, you know, it's like you've got a little little synthesizer generator going on there. You know, the original Yamaha MIDI keyboard that you had like seven years ago that you like, no, you shall have that. I don't have the big one. I was thrifting for a while and I got some bigger Yamaha old keyboards. But I I only kept one of the smaller ones because I only have so much space, although one thing that I couldn't help myself but pick up when I was at a PC parts store was an old sound blaster. Yeah, so that's also with my closet. I said, I say it's just an 8080 bus. There's no reason why circuit Python can't have ISA support. Yeah, we'll see. So thanks for showing another example of one of the things we like to talk about with circuit Python and Python on hardware, JP of the robotics. I really like it when artists and musicians can do the things they want to do. And the learning curve isn't in the way. Like you'll be able to be able to do stuff like this is usually really complicated and hard. Now it'll be a lot easier. So another another good example of why Python or specifically circuit Python is really good for folks who maybe they've never even done Python programming before, but this is this is a great reason to take right harder to consider it. Totally. Yeah, like if you watch the deep dive I did earlier, I went over the code and it's like 10 lines of imports, 20 lines of setup and 10 lines of loop, right? Like it's 40 lines total to have this demo working. That's great. OK, well, thank you so much, Scott. Congrats on a circuit Python day. Folks can watch the entire playlist and all the videos from the day. And we, of course, do something every year. We also do the what do you want to see in circuit Python the beginning of the year and then we do a circuit Python day. We hope to have like a physical event at some point, but we understand the last couple of years have been a little weird. But that's fine. We'll we'll see everybody soon. Thank you so much, Scott. And next up, Seth, what you got going on? Hey, everyone, happy circuit Python day. You know, you talk about how circuit Python is making it easier for people to do things like art and JP's little animatronic control with the joystick. And so when I started with in the circuit Python community, I really wanted to make FPGAs work with circuit Python. It was it seemed like something that just needed to be done. And so I've been working on so I have this little feather wing here. It's got a little lattice FPGA on it that you can program over spy, because that's how you program this particular one. And I thought, well, it's going to be difficult to set up the timing and everything to get the FPGA to program properly. But it turns out it was actually a lot easier than I thought. And it came together pretty quickly. Thanks to Scott and a few other unity that just kind of like, hey, double check that. And so it came together. And so I've got a little little blinky thing. So there's a little little tiny RGB LED on there. I don't know if you can see it. It's like the size of a grain of sand. But so I've got that set up with a little raspberry or 20 40 boards that I made. And so it'll program it and see the light done like, come on. And then once I move the USB power over to the USB, then. It'll just cycle through the counter. And so for me, this is just, you know, another way that I want to, you know, make circuit Python more enticing to people. And I actually just want to show real quick how how simple the code is for. Fire up and I'll share it into the stream. All right. So this is just like a quick example. And some of this isn't even necessarily like timing, but basically you just you pull in the library. You set up your spy device. You can use built-in spy or best IO, pass it in with a chip select and a reset pin and then your file. And then you just bam program your FPGA and it's done. So we take care of all the heavy lifting in the in the back end and make sure we get all the timing right. So you don't have to worry about it. And then so, yeah, so you can you can take, you know, start using a lot of stuff. PGA is with circuit Python now. It's kind of funny you're making it too easy and you're making it so easy. You can use one non-scrolled panel in move. You can read the code without scrolling. It's it's done in my life. That's pretty impressive. Yeah, I wanted to make it as simple as possible. And I even set it up where you can change files. So, you know, if you've got enough space on your on your drive, your circuit Python drive, you can load multiple bit stream files in there and and just, you know, read one in, do something, read another one in, do something. And it's just it's quick. It's easy. So, you know, so that part's easy. All you got to do is learn, you know, verilog and there's tons of stuff for doing that already, especially people in the community that are doing that. So, yeah, I was talking to some educators in there, like there's no good FPGA stuff. And I was thinking about how if you're going to try to teach this, how would you how would you get someone started? How would you have that five minute time where it's like I did something? Yeah, yeah, something happened like I did something and so and something changed. So, yeah, yeah, exactly. And that's the goal of this is just to make that step easier. So, if you don't have to worry about, you can just, you know, you can do the things that people are doing in large companies with Python now. And I think that's pretty cool. I like the idea that you could even explain how some of this works on one screen. Another thing that educators told us, this was like a while ago when we first started developing Circuit Playground, which ultimately had Circuit Python on it, is, you know, they're doing one screen at a time. They're projecting stuff in a workshop setting or an educator setting, student setting. And they have to talk about what's on the screen there. And it's hard to get a concept of like here's like 10 or 15 lines. And something in there has a concept you're going to explain other than otherwise you have to scroll and scroll and scroll and scroll. So that's a good example. Where can people find out about this? So, it's called IcePython. It's on GitHub. You can, I've shared it on Twitter and I'll throw a link in the Discord as well. It'll be part of the community bundle. I've got a few small things that I want to wrap up. A few more examples. And then it'll be in the community bundle for anyone to use. All right, so that's a happy circuit. Thanks for coming by. Yeah, thank you. Thank you. All right, so our lady is going to show two things. You want to show this rendering of the... Well, how about we show... Or the screens? What do you want to do? Um, either one or two of these here. Okay. Well, why don't we do both? Okay. Because you have a picture of something. Yeah. And then we have some screens. Yeah, so this is a driver order I designed today. It's going to go on CircuitPython, so it's thematic. And I kind of took the Matrix Portal S3, which I just designed, and I sort of took out the RGB Matrix part, and I put in a TFT instead. And also a couple other things changed, like it doesn't have a five-old output, and it has this little LED PWM driver. And this is for driving unusual-shaped TFT displays. There's two standards, it turns out. There's like rectangular, and there's like everything else. And so this is the everything else style display, because these displays, you know, you have to configure them with SPI, and they're, you know, it's not that they're difficult to use, but they're just a little bit more complicated than your in your plane displays. So maybe I'll show, I'll show the plane display. Yeah, I thought I'd pull these up as you, right as you start to show these, because... Yeah. Okay. So this is a plane display. It's rectangular, and it's got a 40-pin connector and a separated capacitive touch. And these do not need any configuration. And they have a very standard pinout, but that's different than, like, there's two pinout standards. So this is your, you know, everyday standard pinout, which I don't make a version of the board that also has like the quote-unquote standard pinout. But these displays are easy. You don't have to do any configuration with them. They just kind of like magically work. And then these are some of the strange displays. So first up, they come in square. So this is like a 3.4-inch square. And these have a 40-pin connector, but it's a different, again, a different pin order. But all the ones I'm showing from now on all have the same pin order, but that it's different than this one. So this is like standard number one, and this is like standard number two. And these ones have the capacitive touch driver chip. You see, these are separate PCB, but the PCB is soldered in. So this is like a 3.4-inch square. You can see, like, this is the TFT, and then there's this ridge where the overlay is bonded on. So this is the capacitive touch square. This is a non-capacitive touch square display. So you can see where the cap touch would be, but it's not there. And this is 720 by 720. I think this is 480 by 480. Here's the 720 by 720, but this one has the, you can see the ridge, again, capacitive touch display. And then, so these are the square ones. And then it's like, okay, square's kind of cool and funky. And then it gets to the bar displays. So bar displays are like, as you expect, they're like candy bar shaped. So these are like 960 by 360. And this is like 960 by like 120 or something. So this is a very long display. And then this is also... Good for cyberdecks. 960. Sloppy drive project. Yeah, this is actually like exactly, this is exactly like three and a quarter inch drive bay. And this is like a three and a half inch drive bay. So that'll be funny to make a little like display for your old tower, but they all have, you know, this 40 pin. And then I also got a version that has the cap attached. This is the same screen, but this one you see has the cap touch display on it. And then I've got, so there's four bar displays. And I've got the round displays. So 480 by 480 round. And it's not like polar. It's as long as, as far as the TFT controller knows, it actually thinks it's a full square and you just don't, the pixels don't show up. So in your software, you have to like cut out the pixels so they don't affect the display. So you can see this is bonded onto the capacitive touch bezel. And then here is another capacitive touch one. This one's huge. I love this one. Four inch diagonal round display. It's going to be very cool. This thing is like 800 by 800 or something. So this is, so we're going to probably be able to do look a really nice eyeball, right? Yeah, more eyes. And then this is, this is kind of, I think the most interesting, this is a half round. So it's like three quarters round and they cut. So again, it thinks it's rectangular. It doesn't know that it's like this weirdo shape, but it's for car gauges, for like little car gauges. But also people just like love this cool shape. It's like, I don't know, it's kind of funky. It's really hard to do round displays with microcontrollers. Like we were just talking before we went live. Like the common thing is like, look at this cool display I found on Alibaba. And then you can't. Or, you know, express. Because you have to configure it. Yeah. And then it's like, oh yeah, like I'll get to it one day because there's no drivers actually, or there's a demo and that's the only thing you can do. Yeah. So luckily, you know, So we can fix that one thing. There's two ways we're going to drive it. You can drive it with the ESP board. The ESP board, you can pop up again. Wonder what happens when I pop up on screen. Oh, it works. So it uses a lot of the GPIO, but again, it can only do 16 bit color, but the display is only 18 bit color. So it's like, you don't really, you only lose like two bits. It's kind of not a big deal. And you have to use the S3 with a lot of PS RAM, but there's a preferred to drive TFT displays. And there's a couple of things I want to add. Like I think I can drive the SPI configurator pins from the iSquared C pins and use the chip select as a, like a disconnect, like I'll connect the pins from iSquared C or SPI because you only have to configure the display once on boot. And that kind of, it saves you two pins kind of, like you don't have to worry about sharing those two pins with anything else. So you can use them for like I2S. And then the two buttons, you know, the thing is I can need like a Neopixel pin. You've got the 16 GPIO pins for the display, plus four control, two iSquared C for Tatra external, one IRQ. It's kind of like all the pins are used. And the end you have at the bottom, like five pins left over and you don't get a lot. So it does use a lot of the GPIO, but there's always expanders. You can plug them to iSquared C. And also you only think about the Pi portal, it didn't really only have like three connections left over at the end. So it also didn't have a lot of pins, but you know, at least the memory is inside the PS RAM and the flash memory. You know, so this is minimal. Like I think like, oh, I could add like an SD card maybe, but I don't know. Well, yeah, like usual, I think we'll see what folks do with this and see what the requests are. And then maybe making some. Yeah, this is just my board. I need a board just to like get these things up and running because I've used displays like this before. I used one on the Raspberry Pi. You have to you have to set up the SPI to configure the driver before you can start blitting. It's a nice glimpse of the future. We want to do this for a while. So we're finally here and like get all, he's going to be really cool weird, cool weird chips. Okay, all right. Well, that is our, that's our show until tonight, everybody. Thanks for joining us on this very special Circuit Python Day 2023. We'll be doing ask an engineer in a couple of minutes. And once again, thank you everyone who participated in Circuit Python Day. We were just saying Circuit Python Day is every single day about, you know, we do have a holiday. I guess I should mention it's a paid day off for our entire team. Yes. At Adafruit. So I think we put a notice up. We did get all the packages up, but some folks have the day off. So we'll get to them Monday morning before the next pickup. So thanks so much, everybody. We will see you next week, Wednesday, 7 30 p.m. Eastern for show and tell. And ask an engineer is once again next week at 8 p.m. But tonight a special Circuit Python Day ask an engineer. See everybody in a couple of minutes.