 Welcome to the show. It's me, JP, and it's time for JP's product pick of the week. But perhaps you knew that already, because here we are. I see that we've got a bunch of people already over in the YouTube chat and in the Discord. So thanks for stopping by, everyone. If you're wondering what is this Discord chat of which you speak, that is available over at adafru.it slash discord. And you'll get an instant invite to our Discord server. And there you'll find the live broadcast channel is where the discussion is happening. So first things first, head to this link, because this is where today's product pick, or this week's product pick is. If you point a camera or something at that QR code or head to this URL, you're going to end up right here on this very product page. And if you watch as I refresh, we're going to see this is going to come magically into stock at half price. Let's see, we have 39 in stock. And there's a maximum of 10 per customer. So 3.9 of you can jump on that right now or spread it out a little bit. Don't get crazy. You might just need one or two of these. So before we go too far into it, let's have Lady Aida tell us all about this week's product pick of the week. Take it away, Lady Aida. Okay, we've got finally, after many years, this is quite an old design, but I finally got it out. It's the Seesaw iSquared C encoders. These are rotary encoders, which everyone loves, but they're kind of a pain to use. But I put them on a board with a Seesaw chip, a SAM-D09, even a Neopixel on there, and a little bit of support circuitry. And now you can plug it in and chain them over iSquared C. It's a very easy way to add a rotary encoder. Now this actually comes just as the PCB sort of on your rotary encoder. We might have a version that's pre-assembled later, but basically you can connect it to eight because there's three address pins on the back, just select, just solder, close a different jumper set for each one. Here's the demonstration of having three of them connected up, but it's like, if you wanna have a rotary encoder, it's like often very challenging to do. I mean, you can do it, but you have to do with timers and pin interrupts and all that. This is an iSquared C, it works with Arduino. It works with CircuitPython, it works with Python. Very, very easy to use. Okay, so I've got here, this is my feather and four and I've got an OLED. And then, as I twist this, you can see this is just reading the number from here. All the pulse management and debouncing and even the neopixel timing stuff, that's all done over iSquared C using a couple commands. On the back, you can even see there's this little LED here that goes off every time there's a movement, either a twist or a button press. Oh yeah, if I press the button, you can see P for press. There's an interrupt output again, if you don't want to pull iSquared C, because it's constantly asking iSquared C every 50 milliseconds haze or any new data, but you can also use the interrupt pin if you want. And then, use it with anything with a STEM EQT connector or iSquared C for very easy, very fast rotary encoder connectivity. It works with any rotary encoder with a switch, I mean, do you like the switch? They add a great price, compare. Yes, go out there and compare. It's only a couple bucks. And then if people really like these, we can maybe offer a version that has a rotary encoder already soldered in, but we wanted to get these active people real fast. And also, some people like D10s and some people don't like D10s and some people want 10. D10s for rotation, some like 24. Pick and choose your favorite, but I'm really psyched because I've always loved rotary encoders and I've always hated how hard they are to use. Every chip is a little bit different. Circuit Python makes it really easy. This demo's an Arduino and it was a breeze. It only took a few minutes to get this demo together. Yeah, all right, I love rotary encoders too. In fact, I'm gonna head over to my mystery cabinet and grab mine and then we'll take a look at this very cool product. That is my product pick of the week this week. It is the iSquared C QT Rotary Encoder Breakout with NeoPixel. This is terrific. You can plug this in over the STEM EQT cables. That's the SparkFun Quick Connect. These little guys here. You can add a rotary encoder to it. You probably definitely wanna do that. So this plugs right into here. You solder it in. And like Lady Eight has said, we may have a version that comes pre-soldered. But by adding this board, you get a really convenient way to add a rotary encoder to your project. So what I'd love to do is actually, let me jump to a camera, an overhead camera here and take a look at a little demo I built. I'll just set this off to the side a little bit. And I'll pop in over here. There you can see three of them. So I've taken a feather. I have a feather M4 Express. And I'm one of these feather quadruplers here. Feather breakout so we can add a few different things. The only things I'm using in this case are the feather and this OLED display wing. And then you can see the OLED display wing has a convenient STEMA QT plug on it. So I've plugged this into one, two, three, and four of our rotary encoder breakouts. And then you can see we're getting an update on the encoder values of three of them. That's just what fit in the code here. And I didn't modify this. This is the sort of basic example code that Lady Eight have posted with the library. And you can see as I turn that, not only am I adjusting these values, but I'm also adjusting the Neopixel color there. And this will work for any of them. In fact, they'll also work at the same time. So you don't have to worry about timing that stuff yourself. It all is working out over I squared C. So these have up to eight of them chainable on a single I squared C port because they have different address jumpers on the bottom side of them. If we take this here, you can flip that over and you'll see here, I'm gonna put on my glasses, you'll see here we have, let me grab something to point with in fact too. There we go, I'm back. So you have on the backside of this, there's the little Samdio 9 that sorts out all of the breakout pins on this as well as the I squared C. And here's all Neopixel, reverse Mount Neopixel. These are the address buffers here. So you get, I think it's address 36 by default, 37, 38, both of those 39 and so on. So you can do different combinations of those to get eight different addresses. And you can also, instead of using STEM at QT, if you wanna mount this on a breadboard or on a perma proto board, you can use standard header pins right here. And it's also got some little M2.5 holes for mounting. And so that's what I did here. I just designed a little 3D printable that I could plug those into with some standoffs. So you can see those in action. In fact, if I turn one of those, you'll see the little Neopixel changing there from the underside of it. And that's just sort of a temporary thing to keep these things together on a board, but you don't need that. You can just plug these in and have them loose out on your desk while you're prototyping something, which is really terrific. And let's also take a look if you go to the serial output here. So I'm gonna bring this up. This is the serial monitor from Arduino. So this is running in Arduino right now. And there's a circuit Python and Python library in the works. But right now this is gonna work most easily inside of Arduino. And so you can see I'm recording those positions, zero, one, two and three. So there's that kind of fourth one working. And we also get pressing. So if I click these, these are push encoders that have essentially a button built into them as well. So that uses a little bonus of the encoder and of the breakout to be able to register presses, which is a really good element for user interfaces. You can select things with the dial and then stamp them in by clicking on that. If we take a look at the code for this, I'm gonna bring up this little window here. So this is the Arduino sample code that comes with the library called QT multi, I think, or rather, encoder multi, something like that. If we look right here, this is one of the key lines. We can scroll back up, but I just wanted to show you while I have it down here. This is how simple it is to ask for the encoder position. With the library, you just simply call one of the encoders that you've created and say get encoder position and that returns these values that you see scrolling here on the display as I turn that. The other thing that we're doing is setting the pixel color to be a hue wheel using a little function for color based on hue and then showing those values up on the display as well. So looking up at the beginning of this code here, we can see I'm using the LED, so we set this value to true. I'm setting up the seesaw library. So this is really cool. This is what makes something like this work. So a lot of these boards that we use have their own little interface chip on them and their own software that talks over I squared C to your microcontroller. In this case, we're using our little seesaw chip and library, which is sort of like a protocol for talking to a device. So if you look at a sort of bog standard rotary encoder, it's got no smarts on it. It's just some switches in there really. The chip on the back of that, that seesaw chip in this case, it's the SAM-D09, that's running our seesaw software. And then we have a seesaw library running on the microcontroller and the two of those talk to each other over I squared C. So this has digital IO pins. It has a NeoPixel pin. The seesaw chip you're using may have analog pins. The library has encoder, these rotary encoder commands added to it. This is a recent addition to that library, which now mean if the thing that's plugged into the seesaw chip is a rotary encoder, we can talk to it really easily, which is what makes setup easy. So here you can see I set up the seesaw object and then in the definition here, I'm defining the switch, which is that little click switch, as using pin 24 on that seesaw chip and the NeoPixel is on pin six. So again, that's one of the IO chips that's on the seesaw. And then since these are using I squared C and I'm gonna use four of them, we'll set up the base address, which in this case is this default on that board of 36. And then we have some code that kind of goes through and checks, okay, do we have a 37, 38, 39? You could do these manually. In this case, it's a kind of convenience code that runs in and checks those subsequent values to see if they're there. When it finds the encoder, it then sets up the display, sets up serial. If we're using the OLED, it sets that up using the SH-110X driver for that OLED. And then once those seesaws are found, we've set up their addresses and then we can start setting all those pins to be a pull up to use the switch on them. And then we get into the bulk of the main part of the program here, this void loop. And that's where we check for the encoders and then do the thing I showed at the beginning, which is check the encoder position. If you look at, I'm gonna pop back to this Chrome browser for a second. If you look at the product page, so I'm gonna scroll down here, you'll see there's a little link here that says, you can use our Arduino library to control and read data. You can then take a look at the library and this is actually just a subsection of the seesaw library. So this is the whole seesaw library and then there's a bunch of different things that use seesaw like the Neo Trellis, like the Cricut, like the mini TFT wing. These are all essentially using the same protocol of seesaw, just different sections of it. And if I scroll down in here or do a little search, I'm gonna find there is a get encoder position right here. There's get encoder delta, the enable the encoder interrupt, disable it, set the encoder position so you can say wherever it is right now, I'm gonna call that zero to kind of zero the thing out. And those are the commands that we use inside of encoder. Here by the way, there's a nice guide on seesaw. If you wanna brush up on that and take a look at the general seesaw idea as well as this little breakout, that's a good way to familiarize yourself with it. And then this is one of the encoders that you can use. That's actually the one that I'm using here. It has I believe 24 detents, little clicks in it as you turn one full revolution and it has that push click. So that is about it. I'm wondering, are there any questions? Doctor says, say seesaw 10 times fast. I think I did, I must have at that point. Seesaw sees some action. Oh, that's easy to say, right, Doctor? The questions about I squared C yet, it's controlled by I squared C but you don't really have to worry too much about I squared C, that's just the underlying communication between the two gizmos. And so using it in practice, using seesaw stuff, it's as if you're just using an object that's plugged directly in in some cases. You can do a digital write or a digital read to a pin that's on the seesaw. It's just using seesaw rather than board instead of a local board pin in many cases. So it's kind of a convenience library. Let's see, I think that covers most of the questions. Yeah, how are we doing on these? Have we sold out? I bet we are close if we haven't already. Let's go back to the, we were at 39. We are out of stock. Okay, so thanks for buying them. All of you got excited and grabbed some. These are really cool. You can subscribe, just put in your email address and hit notify me and you'll get notified when those are back in stock. And they'll be at their normal price of $5.95. Not terrible, but congratulations if you wanted them and got them at the half price. And I think that's gonna do it. So let's jump back over here and I'm gonna grab my little rotary encoder breakout there and say, that's my product pick of the week. It is the i-squared CQT rotary encoder, Stem-a-QT with Neopixel breakout board. And that's gonna do it for another JP's product pick of the week. Thanks so much for stopping by and I will see you next time. Bye bye everyone.