 Welcome to the show. It's me, JP. It's time for another episode of JP's Product Pick of the Week, and I am so excited to have you here today. If you want to know where the chat is happening, if you happen to be over in the Facebook or Twitch or one of those places and the chat doesn't seem to have anyone, that's because I encourage you to head over to our Discord, which is this right here. This is at adafru.it slash discord and you can jump into the live broadcast chat channel. Got plenty of other channels that you can go and check out any time during the day, during the week, 24-7. However, the live broadcast chat channel is a really good one to check out during live streams. So hello, Sea Grover and Jim Hendrickson, Thin Man, Debo Dog, who didn't think they were going to make it. You made it. Thank you for joining. Also, I am keeping an eye over on our YouTube and I want to say thanks for Tackle the World and Dave Odessa and Gary T for dropping by. Hello, hello. So what I'll do is, in case you're not familiar with the format, let you know that this show right here, even though it's live and you're probably watching it on YouTube or one of those other streaming services, it also is shown right inside of the product page. So if you head over to this product page right here, it's product ID 5743 or go to that QR code. You'll find this show is embedded right in the product page. You can watch it from in there if you prefer and you'll get a jump start on buying this week's product pick because it is on deep, deep discount, 50% off and you can get up to 10 of them, 50% off, no coupon code needed. Just throw it right in the cart. Check out before the end of the show or just a little bit after. It looks like Rufus in the discord said already ordered. Wow, that was fast, alright. And if you want to get those, like I said, do it before the show ends because we're just going to take that discount off just a little bit after the show is over. So it just is for people who are able to tune in live. We have a lot of coupon codes and things during the week for other shows, but this is the one case where the discount, no coupon code required, we just dropped the price during the show. And thank you very much to the new products team, Angie and everyone else involved for making that all happen. Like magic every week, we really appreciate it. So head on over there before I say anymore about this week's product pick, what I'll do is as I like to do have Lady Ada talk about it during her new, new, new segment from Ask an Engineer. So take it away, Lady Ada. This little gamepad QT, otherwise known as the QT gamepad code. This is something I just really wanted because we were always making little projects or robots where I was like, oh man, I just need like kind of gamepad controller. And I don't want to wire up all the pins. I just want to be plug and play and ready to go. So this is a STEM a QT board that has a two axis joystick, a thumbstick, and it's kind of reminiscent of the Vita, if you've ever used the PS Vita, a portable game system. It's got two little middle buttons and it's got four larger buttons. And there is a little tiny chip that converts the buttons and the two analog inputs into I squared C data. So you can read it over I squared C, which means you can use it with chips that don't have digital converters or you don't want to wire up, you know, the 20 pins necessary, the 10 pins necessary to get all these IOs. So it's got a STEM a QT port. So you can plug it into we have boards that have a STEM a QT on them. But also you'll have boards that go from this connector to jumper headers. It's tiny, it's small. It's like a, you know, one inch by two inches or so. But and it comes with the joystick soldering. So we do the soldering for you. So you've got this like analog thumbstick to select star buttons and then XY AB. So you know, it's kind of in the standard gamepad setup. There's a power LED and an IRQ pin and LED. You can set it up to have the IRQ pin pulse whenever you get button presses if you don't want to spam the I squared C port. And there's two address selects. So if you want to connect up to four of these on one I squared C port, you're good to go. Only thing I didn't do on this is because we didn't have space. There's only one STEM a QT connection. So if you want to chain it, we have a little I squared C hubs that you can use to connect multiple one of these cables to one I squared C port. And as I mentioned, we've got Arduino code and circuit Python code. So easy to use with any blinker microcontroller or computer. Yes, indeed. That's right. That is it right there. Check it out. Oh, my gosh, it's so tiny. And yet it is so so useful. This right here, that's the product pick of the week this week. It is the gamepad QT. It is a seesaw chip based STEM a QT connected gamepad. It has the two axis joysticks. That's analog dual potentiometer right there, as well as the four a b x y buttons and start select you connected over the STEM a QT cable or quick cable to whatever device you're using. You can see here's an example of what is this one? This might be the 400 millimeters that look great 400 millimeter long one. We have a couple of these extra long ones here. And these work great. You can also like Lady Aida said, check out on the back there. There are a couple of jumpers for the I square C address, which means you can get up to four of these on one I square C bus. And in this case, since we only we don't have a pass through, we don't have a pair of those STEM a QT port connectors, you can use a STEM a QT hub if you want to do some sort of DIY multiplayer gaming, which is super, super cool. And in fact, these are useful both for well for lots and lots of things, not just both, but they're really useful for game types of things, especially if you're using little TFT displays or LED walls. They're also great robotics controllers. So I wanted to show you a little demo here that I set up. I'm going to switch back to down shooter here. And let me just adjust that focus a little bit. Okay, so let's let's talk about what we've got here. And I'm gonna move me a little further over to the side and adjust the camera. That should work pretty well. So you can see all the all the stuff I've got inside of there. There we go. So here what I have is one of our cricket boards. This happens to be one that has a feather on I'm using a feather RP 2040. So I'm running circuit Python code. You can see I have a bunch of things plugged into the cricket. It can drive a DC motor in both directions. I've got a servo motor over here. And I've also got a little set of neopixels and there's other stuff plugged in. But that's the stuff I'll demo. And you can see here, I've got the game pad qt plugged in over stomach qt cable to the feather board. And then I can use all the buttons on here to do different stuff. So for example, if I want to move my servo arm there that I happened to have connected a neopixel stick to, I can just move that analog. You can see it's analog. It's not just a button, but I can slowly move that or move it faster. I can set the LEDs to different colors. So I can set those to red or yellow, green. If I want to drive this little motor here, so pretend I'm using some steering on one axis and I want to do some speed stuff on another. You can see I can set the speed variable speed on the DC motor there using that little thumb stick. So it's just a ton of IO all in one place on the little game pad qt. Great for robotics projects, as you can tell there. And of course, you can also pair this with microcontroller that does something like Bluetooth or blue fruit, Bluetooth low energy, and have a remote robot really, really useful for that sort of stuff. And let's see what should I talk about? Let me let me check the chat and see if anyone's got any questions there. So yeah, tackle the world. I square C multiplayer. So again, if you have a complex robot, let's say you're doing some puppeteering. Often puppeteering is done with multiple puppeteers. So if you are doing maybe some eye stuff and blinks and things like that, with one and doing some mouth stuff with another, you could have four people using these little little bitsy controllers, maybe you just have them hidden in your pocket. They're real subtle like for costume types of props. There are so many cases we're having that much joystick or thumbstick and button IO in one place. That's really nice and compact could be super super useful. The product page if we check that out, since I mentioned that before, get that out of the way, you can see right here. So this is product 5743. This is half off right now. So $3.47. It's a great, great deal. You'll notice we also have those nice mounting holes there. I'm looking at 2.5 mounting holes so you can connect that up to things. If you scroll down in here a little bit, you'll get to the link to the primary guide in the learn system by catney. This will give you all the salient details as well as pinouts for this. So you can see I've got it connected over here's a here's a blank one here. I'll plug that into a cable for demo purposes. So here you can see I've got plugged in over the I square C STEM a QT but we also have down at the bottom there that pinout broken out plus a little bit extra. We have the serial clock and data ground power. You also have an IRQ and the UPD I pins. So depending on how you're setting this up on your microcontroller, you can use those. This can be run really easily in both Arduino and Circuit Python thanks to libraries that we have for the seesaw chip. So if you look, let's see if I get a good image of that. I can just click on this one right here. If you look at that chip right there, that is the seesaw chip that's running seesaw on there, which wow, we can get really big. All right, there we go. So that's a 8816, 80, 10, 816 that is doing all of the IO stuff for the input. So it's reading the analog potentiometers in both axes. It's reading all of those buttons. And then it is sending over nice little I square C messages to your microcontroller. So it's very effective, very efficient. Like Lady says, this normally just spams, you'll spam I square C to look for changes. If you need to for your particular application, only send messages when there's something that's changed, you can use IRQ interrupt there to let your code know that's time to check out what's happened on the board. You can also by the way check out if you go to this, there's a link on the main product page that says, hey, do you want to add a cable in here? If you just click on one of those, this is actually one of these pages that has lots and lots of cables on it so you can go through there and look for for an appropriate one for your application. But like I said, you may want to use just the the broken out pin headers there if you're building something into an enclosure and you don't need that flexibility, acting like a joystick cable. But you know, just as a as a point of reference for size, we get a lot of the functionality of something like this is a PlayStation 2 controller. In this right here, obviously, we don't have the two sets of thumb sticks on their shoulder buttons, but a lot of the same stuff, same with like this week classic controller happened to have here. And by the way, this is kind of appropriate because we're looking at the yesterday or the day before was the 40th anniversary of the Famicom, which was the Japanese predecessor a couple years later for the Nintendo entertainment system. So these types of little game controllers have been on our minds lately and we always like using those. So I think they're great for lots of different types of projects. If you want to take a look at the code here, so back to this example, you can see here are things like moving this servo motor based on the potentiometer, setting my motor speed and direction based on also the little thumb stick there, pressing the buttons to change things like the LEDs. This type of code you can see is really easy. This is an example I have running using Circuit Python on my Feather board. You can see the key things here. I'm importing Adafruit CSaw. I'm also importing Cricket and I'm importing from CSaw the Neopixel library. I'm setting up my CSaw object so the whole game controller is being called CSaw here. I have some button mask set up here so we can read the different pins there 62510 and 16 being the pins that we're reading for all of those button presses. And then we're using the CSaw pin mode bulk so we get this message, this very short message that tells us which buttons are pressed or not so it's very effective, we don't have any lag. And then I'm also setting up some Cricket servo stuff, Neopixels. Again you'll see the Neopixels, those are running right on the Cricket there so those are set up also using CSaw, bunch of CSaw stuff going on here. Then I'm doing a little bit of range mapping function here to change the zero to 1023 that we get when we move that potentiometer also left and right. And you can see I'm printing those out so X is zero up to 1023, Y is zero up to 1023. And then I'm turning those into a smaller range of servo motion or negative one to positive one for the motors there. And then when I'm running the main loop of the program I'm just saying hey let's say X equals the CSaw.analog read on 14 and 15, those are the two analog pins here, happen to be inverting those with this 1023 minus that value. And then I'm taking those, turning them into some values that I can use for the servo, same with button presses. So if we do this buttons equals CSaw.digital read bulk button mask it'll grab that whole set of every one of those buttons and then we can say okay what happened did any of those change or any of those pressed then we'll do stuff we'll set the throttle to zero and the neopixels to red, we'll turn on the motor in a positive direction multiplied by negative one to positive one. I also happen to set this one going in the opposite. I see you might use that for something like tank, tread, steering type of configuration on a robot. And that is it. So it's really straightforward to use the code is well documented. We have some nice examples in the CSaw library you can go and check out. And it's also very similar inside of Arduino. So let's see. Sniper time x6 says how ergonomically friendly is such a tiny controller though. Yes, it is not ergonomically friendly at all right I mean you can use it but I wouldn't want to try to speed run Super Mario Brothers with it. Yeah it's very small so that's part of that should be one of the things you're looking for in this otherwise you can you can do this you can build your own you can do something bigger. So the idea here is small scale projects. You can also build this into a small enclosure. I'm not sure if the Reeves Brothers have a case for this built yet but you can pop off these thumbstick covers so depending on your your design that may may be helpful to float the the case between those or just make a large enough hole for that to pop up through the top there. See any other questions that I think is going to do it. So there's a nice little photo front and back there you can see and there's your little jumpers that you can cut to to set those those different I square C addresses depending on what you're doing. All right I think that'll do it for us today unless anyone has any other questions we will wrap it up. So let's see that right there is my product pick of the week this week it is the gamepad QT seesaw gamepad with Stem-a-QT connector. Thanks everyone for stopping by for Adafruit Industries. I'm Jeff Park and this has been JP's product pick of the week. Bye bye.