 Here we are. It's me, JP, and it is time for another very special episode of JP's Product Pick of the Week. First of all, hello everyone for joining over in Discord as well as over in the YouTube chat. Hi. And also important announcement, as you may have noticed, I am excited to say that I got my second shot of the vaccine yesterday, and so they give you a hat. So I got my cool hat to wear. At least that's how it works here in Los Angeles. Did everyone get a hat? I've got a humberg. What kind of hat did you get? Look, that's it right there. That's smart. Yeah, all right. So let's see, let's get on with this thing, shall we? I'm going to hang my hat right here. This is weird things to a sort of pompadourish thing I have going on. All right. So before I go any further, what I want to do is invite you to head on over to the product page because you're going to get, if you point your camera at that, or type in this URL, you're going to head over. You're going to find out in advance what this product pick of the week is this week. And you'll also get 50% off. This is an exciting item. In fact, I'll continue the spoiling of it. Let's pop over to this browser window here. I'm going to refresh the page. Look at that, half off. And we have, they're going quick. We had 70 in stock. We're down to 41, maximum of 10 per person. So if you think you have a few plans for these, go ahead and order some. And look, the video that you are watching is available right here in the web page. So you can watch right from inside there. Why don't you give that a try? All right. So head on over there. And before I go any further in discussing the project or the product rather, let's have Lady Aida tell us all about it. Lady Aida, take it away. QT Pi RP 2040 is finally here. We previewed this. It's now live. It's the same QT Pi that is so adorable that you know and love. Now, you can see on the bottom, it's like super power because people are like, how could you make a QT Pi M4? And I kind of forgot to it, but this is kind of the same. It's going to be as fast as the SAMD 51. It's got eight megabytes of flash memory. It's got that 130-ish megahertz dual core Cortex M0, one circuit Python. There's going to be an Arduino core, one's micro Python. It's got USB-C. All the goodies. So let's maybe let me show it off real fast on the overhead. So actually have it controlling some NeoPixel dots. Okay, so USB-C, little fella here. So it's got power pins. So over here, you've got your 5 volts ground, 3 volts pin. You've got the SPI pins in the same location, clock, data and data out. You've got two UART pins, hardware UART RX and TX. You've got iSquirt C, data and clock. And then here's something different than the original QT Pi for the SAMD 21. This is a different iSquirt C port because there's two ports available on the RP 2040. So this is the second port. So you actually get two extra pins because these don't conflict with these SDA pins. And then you've got the four analog inputs because there's four analog inputs on the RP 2040. You've got the boot button and you've got the reset button. And the boot button after you've loaded your program, you can use this as a GPIO pin input. So you can use this as a user button as well after you've booted. And then on the bottom, you've got the RP 2040, a crystal. Again, eight megabytes of flash memory and capacitors and all that good stuff. And then this little jumper, this is for Bill Binko who always wanted to have a way to have, when this finally has USB host capability published and documented, you can use this for USB host as well. So it's super adorable and small. It's basically pin-compatible as the SAMD 2021 QDPie. But of course, tons more powerful. And of course, it has all the support circuitry. Oh, there's also a Neopixel on the front. I forgot to mention. So you can blink to your heart's content. You know, I would like it. I think this is going to be a fun and popular board. It's really powerful. It's got, you know, 11 IOs available for very tiny projects where you don't need all the stuff that the feather has, you know, battery charging, lots of GPIO pins. This will do the job. It's very cute. And it's also got cast-related pads if you'd like to use those. So I think this could be a good little engine when you need something very small, very portable. And that USB-C is, you know, it's a wonderful connector. Goes either way. It's nice and strong, but easy to use. All right. Well, I'm convinced. In fact, let me go and grab mine from my mystery cabinet of Wonder Things. Bear it back. Thank you so much. I muted, but I got the alert. Thank you. So this is my product pick of the week. It is the QT Pi RP2040. Look at that adorable little one. It has the Raspberry Pi Foundation's RP24 chip on it. It has eight megabytes of flash. So this is an enormous amount of flash to store your circuit python on there, as well as all your libraries. Circuit Python takes about a megabyte. So you've got seven megs to fit lots and lots of libraries on there, as well as assets. If you're doing things with images and sound, they all fit on there, which is terrific. It has the USB-C connector on there. It has the STEMA QT connector on there, the little cast-related pads. Really cute little board, great little board. What I'd like to do is talk about it a little bit, show you some demos. I'll also say we are sold out. So we had some in reserve that we were able to put in the store for this show right here. So thanks to anyone who wanted to get one and got one for people who wanted one and didn't, please fill in the little email checklist so that you can get an alert when they come back in stock. In fact, I'll head over. Just fill in. So, hey, maybe we're streaming again. I'm seeing green. That's good. I'll check in the chat. So, yeah, sorry about that. There were some major outage-like things going on, some red marks. Hey, Ken Santamos, as I see you again on YouTube. That's great. Yeah, sorry about that. I don't know what happened, but we seem to be back. And we've got sound. All right, excellent. Yay, back on Twitch, too. Okay, thanks, everyone. So, let me see. Where were we? So, yes. Unfortunately, we just had a few in stock. I think 70 at the beginning of the show. They went out of stock. As soon as I said those words before, the stream crashed. So hopefully it doesn't happen again. So, I apologize if you wanted one. I'm sure that you will be able to get one soon. We're always making more of these, putting them back into production. If you head to the web page, let me dangerously hit on over there. If you click on that email notify link, you will get an email as soon as those are back in stock and available. So, and, yes, someone asked back orders. Adafruit does not do back orders because we can never guarantee when something's going to come back. So, we don't want to take your money and then have it while we are getting something made, obviously with chip shortages and things like that right now as well. We don't want to make anyone unhappy as they wait for something. So, if you can order it from us, it's because it's in stock. If you can't, it's because it's not. So, there you have it. All right. So, let's get on to talking about this board. Like I said, there's going to be a learn guide coming soon. I mentioned Circuit Python does not ship on it. The other thing that people have been asking about is this board, as Lady Aida mentioned in that video, has two I-squared-C channels built onto it. The Stema QT port, I'll bring this image back up here. It's a little Stema QT port you see on the end there, opposite of the USB-C connector. That is on the second I-squared-C channel. And I'll show you in a second in my code what that looks like to specify it. I'm specifying explicitly the SDA1 and SCL1 rather than the defaults, which are zero. And I think there's some work that Dan Halbert and others are doing in Circuit Python to make that the, you can call it by name as Board Stema QT or Board Stema I-squared-C, something like that. All right. So, let's get to a demo of it, shall we? I'm going to pop into an overhead view here. And let's see. I'll move this a little bit so you can see it. So, there you can see I've got my little QT Pi RP2040 sitting there. And this board has this, among other things, it's fast, but it's also got so much more flash memory on it. We've got 8 megs of flash that you can put a lot of libraries on it. So, that is one thing where a generic, or not generic, I shouldn't call it that, the SAMD21, sort of the original, there's my original from a demo I did before, the original QT Pi doesn't have a lot of flash space on it, so you can't put a ton of libraries. So, what I wanted to show here is I've got a QT Pi RP2040 with a ton of libraries on it. So, I have the Adafruit MIDI added to there. I have the drivers for this display. I have the display IO drivers for shape and text. I have the Nunchuck driver to use Wii, Wii Nunchuck, like this guy right here. I'll hold that up. And then you can see what I'm doing with it is I'm actually measuring this accelerometer in the tilt axis, and I can also measure the joystick. Whoa, it's going to start making noises. And I can measure the tilt on roll axis or x-axis. And I'm just using that. I wrote this little sketch that displays these sort of four parameters, x, y of the joystick, x, y of accelerometer. On this little screen, you can see it's running really nice and fast. It's refreshing pretty quickly. This is our 128x128's grayscale OLED. It has 16 levels of grayscale. And then what you heard there, I don't have this wired up in a fancy way. So, what I'm going to do is I'm just going to hold my microphone near the synthesizer so you can hear this. Let's do a little playing back a sample and adjusting its playback speed with the tilt. Let's see here. I can adjust volume by tilting it forward and backward. All right, well, that's probably, whoa, that's probably as much as you want to hear of that, but it sure is fun. So, let's take a look at the code there. And by the way, one of the funny things that I realized is in the, let me drop a little image down there. In the past with Circuit Python, we have the bundle that you can download from CircuitPython.org, the bundle of libraries. In the very early days, two, three years ago now, I guess it is, we used to say, hey, you know, download the, if using an express board, it has some flash RAM, download the libraries and just put the whole bundle on there. Well, the bundle has gotten pretty big, so we usually don't do that anymore. But in this case, I believe you could fit the entire library and then some on the QDPy RP2040, because it has so much flash. But in this case, I've got, if you take a look at my code here, this is running Circuit Python, and I'm importing all these libraries, time, board for board definitions, bus IO, so I can use the I squared C, display IO, terminal IO for font, the Nunchuck library, the text and shapes library for circle and rectangle with the display IO, as well as the drivers SSD1327 for this little OLED. I'm importing the little simple math libraries that I can do a range remapping. I'm bringing in USB MIDI and Adafruit MIDI, and then a specific MIDI library for the CC or control change, which is essentially knobs in MIDI language. Then we set up the display. Here is this thing I mentioned with the I squared C bus. So this board has two I squared C buses. One is on the little STEMI QT port. One is on the SDA and SCL pins. If you're using the STEMI QT to plug in, like I'm doing here in this case, then you will specify bus IO, I squared C, board SCL1 and board SDA1. We are probably going to put this into Learn Guide, and we're also coming up with an even neater way to do it, but just so you know, if you get one of these boards and you're wondering about I squared C, why it isn't working, you'll see a warning message that says something like I squared C requires pull-up resistors and they're not plugged in. That's because if you use the defaults, which is SCL0 and SDA0, you probably don't have anything plugged into those if you're plugged into the STEMI QT port. Then I'm setting up my little Nunchuck, Nintendo Wii Nunchuck adapter and Nunchuck here on I squared C. That's this little board right here. Then setting up some of the MIDI output, setting up the display, and then creating the different display elements, and then finally after all those things are created, what we're doing in the main loop is reading the joystick and the accelerometer with these calls here, and then taking those raw values, which can vary. You do a little bit of calibration usually. This is a brand new one, so it goes from 0 to 255, but sometimes you'll find ones that do a, especially the Nintendo official ones go from like 60 to 220 or something like that. It's not the full range that you'd expect. Not sure why that is. Then I'm remapping those using that simple map range to take that raw input value, its minimum and maximum, and then I'm remapping those to, in this case, some numbers I'm using for the display where I'm moving things, so inside the boundaries of the 128 screen, and then a different remap for the CC values, which go from 0 to 127. Same thing with the accelerometer. The ranges there I'm using are about 300 when I tilt left, and 700 where I tilt right, same with backward and forward, and then I have these little buttons on here. If you look at my display, you'll see the, let me go full screen here for a second. If you watch right now in no buttons or pressed mode, I'm just moving that one display object up and down, and that's what sets my volume. If I hold down the C button, then it's going to pay attention to my tilt, and that means I can let go of that button and drop that off, so it's not always active, so I can set that sample playback rate where I want it and leave it there, and then same with that Z button on the bottom, I press that, and now I can, whoa, move the joystick around, get some feedback, and change some delay rates. So let's see, the ways that those are being set is I'm just changing the color fill, so I have a circle I call dot, I change its color fill to white, and we can do, I think it's 16 levels of grayscale on the screen, so everything is going to be a gray value of some kind, and then I send out CC for the given channels, otherwise the dot is set to kind of a gray value, which I think is nice, kind of a nice piece of interface. And that is about it, so let's see, any questions in the chat, let me know. The one question I'm seeing, sorry about that, I meant to show this, one question I'm seeing is about the programming languages you can use on the board. Right now there's MicroPython and CircuitPython, is that it? I think that's, and C++, and then Arduino Core is coming, I don't think there's an Arduino Core running just yet on RP2040, but it could be wrong, let me know in the chat. Yeah, it's question Randy Ferrell says, when's the Arduino IDE 2.0 going to support these 2040 Feather and QT Pi? I am not sure, so there's been some talk about it on the social media, the Raspberry Pi folks sent the big huge bucket of chips over to Arduino, so they could start building boards themselves, so I think that those are probably hand in hand with getting the Arduino Core running on this as well as getting their hardware ready. And I think that's it, any other questions? Johnny Bergdahl says, nunchucks are useful, I have to get a little gadget that I can jog my CNC, that's a great idea, yeah, jog your CNC machine with a joystick is a lot of fun. Good, all right, well I thank you for putting up with the stream going crazy, but it looks like it came back with pretty good health. And if you didn't get one, I encourage you to go ahead and sign up so you're alerted when they come back in stock. I think it's gone. I'm just looking very suspicious for indifferent industries, I'm John Park, this has been M.J.P.'s Friday Pick of the Week, bye.