 and welcome to the show, it's me, JP. It's time for JP's product pick of the week and here we are. It's a Tuesday already. How does this keep happening? I am so excited to have you here today and to offer you a deep discount on a really cool new product. Sometimes I do products that are in the store and existing already. Today I've got a brand spanking new one. I believe it's brand spanking new. And before I tell you too much more about it, I will say, head on over to this URL right here, this QR code that will take you to the product page. And this show is gonna be broadcast, is being broadcast from right inside of there, thanks to Jelly and the new products team for taking care of that every week. And for taking care, stash in these so we have a bunch to sell you at this great, great price. Head on over there and you won't need any coupon codes or anything like that, just throw in your cart, it's gonna be half price. I'm gonna, actually hold on, I'm gonna double click, just double check the, oh yeah, the good pricing is there already. All right, so before I go any further though, I'm gonna step back just a little bit in time and have Lady Aida tell us all about this week's product pick, so please take it away, Lady Aida. Yet another RP2040 feather. You're gonna see a bunch of these because I designed a whole bunch in a row. This is the USB host feather. It's a big deal. I like that we're getting really weird boards out. This is a weird one. So this is an RP2040 feather and it's got the ARM Cortex M0, dual core, 133 megahertz, eight megabytes of flash, boop button, reset button, STEMI QT, LiPo battery management so you can take this portable and recharge the battery. USB-C, all that could stuff it on the other end in the space leftover, there's a USB host port. Next, yeah, so this is your standard type A USB port and even though it's a surface mount package, it's quite strong, believe me. I've definitely plugged and plugged many, many a thing and it does not rip off. Although don't try, you could if you really wanted to. And as well as that, there's also got a, to the left of it, you see that big inductor, there's a five volt boost converter and you see that thing that says five kind of above the RX, kind of the bottom right corner, that's a five volt fuse so that if you happen to short the five volt power it won't accidentally damage your battery or your boost converter. And you might be saying, hey, wait, the RP-24 doesn't have two USB ports, what's going on? Do you switch between the two of them? How do you do it? How do you do it? Good question, with a lot of hacking code. So this, the native USB is still the USB-C ports. That's how you program the board, get into the bootloader, do debugging, et cetera. And on the right is a PIO BitBang USB port so you can actually, because this is a thing, the RP-24 does have native USB host. You can use the main port as host but then you have to like unplug it every time you program it and it's like a total pain. So what this does is it has a separate single core dedicated just to PIO BitBanging out USB host and it works. And it works like kind of well actually, like considering your BitBanging USB host, which I don't know who else has done it. It's based off of, I'm gonna mispronounce their name. I think it's Sikong Donok is their name. They're a developer who wrote the PIO BitBang code in Pico SDK and then we turned it in Infrut and TAC, who works for us on TV USB, turned that into a supported interface in TV USB Arduino. So within Arduino, you can now plug in USB devices like mass storage, CDC, USB serial, HID, or if you wanna add other protocols, go for it. I think even hubs work. And you can send and receive data as if it had a native USB port. Now, I'll say it's BitBang, this is not high speed, it's full speed, you're not gonna get that. That's okay, cause there's some really good uses. But there's a lot of uses. And again, it's very, very rare to get a low cost device that has USB host. Usually you have to go to a very high-end microcontroller to get two USB ports. So. What could you use this for? What could you use for? So one is HID. Well, first off, one thing I thought would be cool is you plug in a USB key, and then you do data logging to that USB key. So you can write and read data off of a USB key instead of an SD card where the need, you know, cause then you unplug it and then you're like, okay, my USB key's ready to go. Another thing you can do, which I use it for, is I use this to program microcontrollers. So if you have a board that programs like an ESP32 and you program it over the USB CDC, this can read and write the serial data as if it was just like a normal UART and I use it to program USB, sorry, ESP32 boards over USB. Okay, so here's the caveat, caveat incoming. This is only for Arduino. It's not supported in circuit pythons this time. And I do not know if or when we might be able to get it working. We could use them out. If somebody interested in helping. But we do have it working in Arduino. We've got mass storage, CDC and HID. So not every, you can't necessarily plug in a camera and you can't necessarily plug in like your phone or a candle, not everything is gonna work. Just some of the really basic USB devices. So it's a USB host feather, really neat. Also of course, if you wanna do USB host to something else like you want this to go to I-Squad C or you want to maybe have it read a keyboard and then have that come out through the UART, right? You could still program it very easily because the USB port, you're not doing that hot swap USB port thing. So it doesn't have to be USB to USB conversion. It can be USB to something else or back and forth or whatever. Very cool. So that's this week's new product. Yes, there it is. Check it out. Right there. Front. Back. Look at that handsome thing. Yeah, that right there is the product pick of the week this week. It is the Feather RP2040 USB host. This is really exciting. You don't really see this very often. Microcontroller boards with a pair of USB hosts on them. It occurs. Sometimes I've seen it in the past usually on pretty expensive boards but this is a modern microcontroller at a great price. We'll get to that in a second. And what this does, this gives you a way to do some really interesting stuff with USB devices. So things like your mouse, a keyboard, a MIDI controller, a thumb drive, those tend to be considered USB devices and we want a thing that's called a USB host to be able to host the device and therefore use it in some way. And in this case, rather than plugging in, let's say your mouse or your keyboard straight into a computer, you can use a microcontroller, this one right here to intercept that incoming USB and do stuff with it. That's one of the really neat uses for it. I want to show you a couple of demos that we have. First, I'll mention a couple of other things about this. So this is the Feather RP2040 just like before. So if you ignore the USB host stuff, that stuff right there, you can use this like any RP2040. You could use it in Arduino. You could use it in Circuit Python. However, if you wanna do this USB host stuff, you're gonna be doing that in Arduino for now. It does not exist in Circuit Python, as Lady Aida said. And this is the dual Cortex M0. So there's two cores on there. And that's important because that's how we're actually doing the USB host stuff. We have one core of the two and both of the PIOs doing all of the USB host duties. That leaves the second core for everything else. What else? Yeah, we have this running. This is in TinyUSB. So you'll use the TinyUSB as your USB library or code. And there's some great examples in Arduino that I'll show you. Before I get to that, actually, let me just jump to the site right here. This is it. If you go to aidafru.it slash 5723, that'll get you right to the product. And, or you can just type in USB host. You'll find it pretty quickly. There it is. Right now, $8.75. Maximum of 10 per customer. I think we had 100 of them stashed. So go and get them while they're hot. And the info you'll find at the bottom of the page here includes a couple of links to some guides that are useful if you wanna learn more about it. Head to this. This is the main AidaFruit RP2040 with USB type A host guide written by Liz Clark. This goes into some of the details of the board, the pinout, there's data sheets available in this download section. Circuit Python stuff in this case is just gonna be, like I said, regular Circuit Python on Feather RP2040. The juicy stuff, the interesting new stuff here is this right here, USB host device info in the Arduino section. So if you click on this, this will tell you how to get set up. Excuse me. This will tell you how to get all set up in Arduino. The libraries you're gonna need. You're gonna need to update some libraries. Make sure you've installed tiny USB, latest version. And once you get this all set up, you can try out some of these great demos. So let me, let me change up the camera here about, which one do I want? Yeah, this one right here actually. So I'm gonna zoom out. And to do these demos, I decided to use an Android tablet. I thought that would actually display this pretty well, but this would work just as well on your computer. Let me go ahead and do a little focusing here and a little bit of setup. So I'll turn on the tablet here and unlock it. So you can see here, I'm running just a serial program on my, on my Android tablet. And what I'm gonna do this first little demo is kind of neat. This one is, I've got it labeled there. So remember, this is device info. So I've got my Feather RP2040 USB host. I've got a tiny little USB-C cable, it's USB-C on both ends in this case. So here I'm plugging it into my device. This would be the same if you were plugging into a computer. And then on this other end, on this USB host, and what I can do is plug in a mouse or keyboard and get the USB info on this. So I'm gonna connect to the serial port there. And then when I plug in this mouse, you'll see here it tells me about the device that's been plugged in. This is the product manufacturer's called PixArt. This is actually that little Raspberry Pi mouse. And the product is the USB optical mouse. I'm gonna unplug that and let me grab a keyboard from over here, plug that in. So in this case, I'm not actually reading key presses or mouse info. I'm just saying, hey, what device do I have plugged in here? So let's see, did that one. Let me update here. I don't know if it liked the hot swap. Just resetting the board. So yeah, okay, this showed up. This is gaming keyboard. You can see, in fact, it's lighting up this keyboard. This happens to be one with RGB lighting in it. So plugged through the feather, it's actually got enough juice on here to be able to power the keyboard and all its little NeoPixels that are on there. And it gives me basic info. Now, probably a slightly more interesting demo is gonna be, let me put this keyboard right here where you can see it a little bit. And I'm gonna grab, this is a different feather that has a different code on it. And this is the keyboard filtering code. So this, again, just plugging into the computer or microcontroller, iOS device, tablet, Android, whatever you want. The feather shows up as a USB-HID device to the device that it's plugged into. And then my keyboard in this case that's plugged into there is going to be filtered. So this demo is kind of neat. This, let me just go to a notepad app actually. Samsung notes. Okay, so what you'll see here, I'm gonna reset the board there. My keyboard, I might pull out just a little bit more. You can see here, as I'm typing on it, the caps lock key is off right now and it's typing in capitals. And then if I turn on the caps lock key, it's lowercase. So all that's happening in this code is that, and this is the example that I have right here, it is looking for USB-HID stuff to come from your keyboard to the feather. And then the feather sitting right there is interpreting that data. And in this case, it's just simply flipping the state of the shift key. So it's intercepting it, filtering it. You could do all kinds of interesting things with this. You could do a complete remapping of the keyboard to other keys if you want. You can do prank kind of stuff pretty easily with this. So this is one of the examples, it's called HID remapper. Another interesting one here is mouse filtering. So I'm gonna unplug that keyboard and plug in. I have one last feather. It's the, yeah, it's this first one here. It doesn't, I don't have a label on this one, but this one is going to take mouse information, x, y info from the mouse and apply some logarithmic filtering to it so that it actually slows down the cursor movement when you move the mouse quickly. So this is example here. I'll plug in the same mouse. And I'll put that in view there. So you can see if I move my mouse slowly left and right, it's moving at kind of what I would consider a sort of normal mouse pace. But now if I move the mouse quickly, it actually slowing it down. It's actually making a little bit more accurate, which could be really useful as an assistive technology device. If you have a bumpy ride, you're on the train trying to mouse or something like that. This is just a simple example of taking info, filtering it through this little RP2040 with the USB host and then passing along that mouse info. In fact, if you wanna see that mouse in action without, I'll plug it through an adapter. I can find one. I'm sure I have, this is just to adapt the mouse to USB-C for the tablet. So here's normal movement, right? So you can see when I move quickly, it really whips that mouse around. But when I'm filtering that data through my Feather RP2040, I get a very different result. So the other example that I'll talk about that I can't show because we don't have this yet, but I'm hoping we'll get this, is the ability to take a USB MIDI controller. And these are pretty common. A lot of USB controllers be it button pads, drum pads, knob boxes, faders, keyboards, a lot of those are USB only. They have to be plugged into a host. So that means they normally have to be plugged into a computer. Most synthesizer things that you'll set on your desk won't actually be able to host that keyboard. This changes everything. If we can take this, consider that the host, plug in the MIDI device here, and then simply output regular old MIDI over serial, pretty much just over the TX. Then we can plug that into pretty much every device you can imagine, which is pretty cool. You could also use this for filtering things if you wanted to, let's say, play a regular piano key looking MIDI keyboard, but have it force all your notes into a certain scale. That could be one use for this. Just purpose built, one little gizmo, put that into a nice 3D printed case. For example, we have a nice learn guide here from the Reeves Brothers, which is a little case for the RP2040 USB host. That look cute. Some little tie down straps on the sides there. Couple of sort of living hinge buttons to still be able to use the boot and the reset. A space for the Stemma QT port on there, if you wanna add other things such as a display. And there's even a little hole for a light pipe to see the LED shine up through. The other thing that there's an example of in the Arduino examples is using this to either log data to a thumb drive, so think of every little thumb drive you've ever had, USB flash drive, that plugs into your computer. Plug it into here, you could log data onto it, or you could read data off of it, which I was thinking would be really nice to put just a simple little screen on one of these and then be able to just read the contents of random USB drives just by name. I don't need to do anything with them, but it's just like, what's on this drive? Plug it in and get a list, would be really, really cool. So these are just some of the ideas of things that you'll be able to do. Some of them you can do now, others will hopefully be coming as this gets developed further. Let's see, I'm gonna jump over the Discord and see if we've got any questions. Oh, Todd, thanks. Todd put a link to the example code for the HID remapper, and if you install that tiny USB library or update it, if you already have that in Arduino, you'll get an examples folder that'll have a number of these dual port examples where you can plug in both ends of the controller. So let's see, questions over on YouTube. Derek asks, does this use the USB HID class? Yes, it does. So this side of it can be in that keyboard example, this is showing up to my computer as a keyboard, but then the input to this is the other HID device. So those are USB HID class. There are not examples yet for GamePad. There are examples for mouse and none yet for USB MIDI, but hopefully those will be coming because that's one of the exciting uses for it. And to be honest, in the past, one of the only other devices that I've been able to do this kind of stuff with was a, I think it was a Teensie 3.6, and I think the Teensie 4.1 both have a second full-blown USB port on them. They're not bit-banging it and using this sort of hack technique, but you can't deny the price. It's right now half price, $8, normally 14, so it's quite inexpensive compared to a higher feature microcontroller like some of those Teensies. I think that's it. Chad Lawson says, please tell me more about the flickering dot board. This behind me, actually, this is being powered from another one of our feathers. This is the feather with the USB, oh, you can't see it over there. Is there one here? There's a USB HID or USB DVI video out port on the end there and some sample code from Togbot. I just, that's a HDMI monitor that's just showing that. All right, let's see. Anything else, I think that covers it. So there is the board right there and as Lady has said, there's a boost converter on there to give you a nice solid five volts, which is why you're seeing things like my RGB keyboard light up perfectly fine there as well as a fuse for protection. And you can use a battery with this to make sure you're getting a really nice solid source in case the thing you're plugging it into is a little weaker, like maybe some Raspberry Pi ports, which sometimes are a little underpowered. So head here, that's the URL. Head right over there to that page. Pick up some of these. We still have them in stock. Whoops, sorry, I'm flipping screens all over the place. Get that out of the way. Still have some in stock it looks like and you'll get it just during this show. So that $8.75 price, that's half off from normal. You'll get it for that price just during this show. So go do that. You don't need a coupon code, just get it, throw it in your cart, buy some. Maybe pick up some USB cables. I found these are really neat for some of these little demos I've been doing. Some of these applications is just to have a nice little USB-C to USB-C double-ended, nice heavy-duty little cable. But we've got a bunch of other cables that you might find useful for working with this. I think that's gonna do it. So thank you so much for stopping by today. That's my product pick of the week this week. It is the Feather RP2040 with USB host. Braided Fruit Industries, I'm John Park. This has been JP's product pick of the week. Bye-bye.