 and welcome to the show, it's me, John Park, and we're here right now on John Park's workshop. I'm in the workshop, I don't know why I'm shouting. There's no reason to shout, can you hear me? I'm always paranoid about that. So welcome, first of all, to everyone over in YouTube and in the chat there, as well as the chat on Discord. I'm checking those out. I know we have people tuning in all over the different free livestream places, but that's where I'm gonna keep an eye, so yeah, yeah, my glasses back on. Hey, look, it's Steve, hey, Steve, I'm no longer shouting. Was I shouting? I feel like I'm shouting. Steve Noreco, okay you're on, aka Denki Otto, showed up in the chat with three or four different names. Andy Callaway, Todd Bott, hello, hello. And Dave Odessa, Keith Schlothauser, Patrick Rankin, Randall Bond, Randall Bond over in the YouTube chat said that they just built themselves a touch deck. That's great, mine's right over there, I'm gonna use it when I head on over there. In fact, let's give it a shot, because you know what? I added some camera controls to the touch deck, some cameras that I normally wasn't, actually I gotta make sure that I'm, sure that I've actually got that Wirecast session live, I don't have a button for that yet. But I normally only had camera switchers for three views, now I have them for four views because I've got a lot more buttons. Look, I'm gonna switch to that right there, there is my touch deck, it's gonna get a little out of focus there, sorry. But now I can switch to different camera views for that top view, like so, like so, and like so. And now I can go back to that main cam, the one over there, that's the one I'm usually standing at, so that's an advancement. It's an ever-evolving thing, I think this is onto my third or fourth iteration of DIY camera switchers, which you can use it for a whole lot more as well. That guide is up, by the way, if you're wondering, what is he talking about? Well, I'll tell you, I'm gonna bring up a browser window here, so I'm gonna tap there, about this. Hope that one's right in the way, sorry about that. So, first of all, new thing in Learn, did you see these dice up here? PT and Lady A had talked about it last night on Ask an Engineer, you can now click this little set of dice to get a random Learn guide. Roll the dice, and now you have the Adafrit QT Pi active activity timer and hydration reminder, cool. Yeah, so every time you click that, you get a new Learn guide out of the 2000 and some we have in there. I'm gonna just look in the search here for touch deck. There's the project, so that's what Randall over in the YouTube chat said they built and that's what I built, and I know that FOMI guy, Tim C, who wrote the code for this project, collaborated with me on it, he built one. So that's at least three of them out in the world right now. Music is playing, why is that? Oh, sorry about that. I hope that wasn't too loud. Yeah, I forgot, I don't have a monitor for that but that's something I'll be showing you later, so that must have been quite a bunch of noise. Sorry everyone. Oh, audio problems, they will never fully leave. So this is the Learn guide for building your own touch deck, it's a feather. I'm using a feather RP2040, there's a few different feathers you could use for this, an M4 or an RF52840 should work, but it's tested with this RP2040, and it's paired with the three and a half inch TFT touch display. And this has a little 3D printed case, circuit Python codes, the guide will sort of take you through the parts you need, as well as installing circuit Python, libraries, Moo, and then here's code, the touch deck, this is all about what you gotta load on there and how to, sorry, I'm gonna turn down that binging noise, how to load that code on there, how to load the libraries on there, as well as how to customize. So that's really one of the coolest things about this iteration of a touch deck is that it mimics, in a lot of ways, the way a stream deck works, a commercial product called a stream deck, in that we have layers or different pages of buttons that you can add, different icons, different things can be triggered in HID. And let me see, I think I have a GIF right here. Yeah, you can see it going through a few of those pages right there on the GIF. So there's the Greek symbols and math symbols, which was a suggestion that we got originally from Matambale, one of our community members, said, hey, this would be cool to get a thing that allows me to type symbols in, instead of having to remember them. And then I've added to that the emoji for Discord, as well as these YouTube controls. That was Tim's idea, really cool. And then you saw just a second ago on my custom one over there. I also have my camera controls and some app switching, you can even do. Let's see, what's next? Did you know that we have a help wanted sign up or the world does rather, this is not for us, but for anyone, there's a jobs board at jobs.adafruit.com. That's what it looks like right there. I'll move that out of the way. And you can see, this is a free job board. You can post to your positions if you're looking to hire someone, if you're looking to get someone full-time, part-time, contract work, freelance, remote, in-person, all of those are possibilities. And you can go here, look for jobs. That's free, it's the whole thing's free. You can post your own resume if you're looking for someone to find you and contact you about some work. So go on over to jobs.adafruit.com and check that out. Let's see, let me bring up the Discord chat because I see that there's yet another one in the wild. Another Touch Deck by Jay Furcian, very nicely done. I like your filament color there too, a nice cool gray. By the way, one thing, I don't know if I added this, I think I'll add this to the guide. One thing, I originally made the holes in the Touch Deck M3, sized for M3. I ended up using M2.5 hardware there because it allows you to fit hex standoffs up in there but you can use M3 and that's what FOMI guy did. Used less hardware that way just for M3 screws and for washers just to hold the TFT up to the lid but the screws are actually threaded right into the plastic. You can't do that a million times but it kinda taps itself as you go in and as long as you're not too rough on it, that's another nice way to build that. All right, what else have we got going on here? Let's see, product of the week. So I do a show on Tuesdays at the product pick of the week and this Tuesday I showed, where'd it go? This really cool little sensor here, I built it into some glasses. Let me move this out of the way. There you can see that sensor right there. It's kinda upside down at the moment. I built it into some glasses because it is a really near distance proximity sensor. I used it to blink and caused a little signal to be sent over USB. This has a feather board on it so I'm sending signals with the feather over to the computer but what I'll do is I will give you a little recap of that. This is the one minute version but tune in on Tuesdays for the full 15 minutes. It's the VCNL4040. It's a proximity and luxe sensor in STEMIQT format. If you look here at the display when I get my finger a little closer I've got my little smiley face winking there. This little sensor does a pretty great job tracking whether you've kind of added that little fleshy mass of my eyelid coming down. I'm gonna just use my blink control. I'm gonna use that to trigger the synth. My product pick of the week this week it is the VCNL4040. It is a proximity and light sensor and I'm gonna go ahead and place that on my STEMIQT board of awesomeness. Wink detection is a reality. Let me turn my audio back on there. All right, so let's see. Next up I've got a couple things here. I want to do a sort of gear review, gear report. This is something that my wife got me for Christmas which is a little reading light but it's kind of a task light. You just throw it around your neck so in some ways it's a little more convenient than the ones you wear on your head. It just goes around your neck and you feel like a cyborg because you now get a little pair of headlights that can be individually controlled for three levels of brightness and it's got three color temperatures. I think there's a, that's a like a RGB LED except it's white, cool white, warm white and these are great. So you can see it's just cool looking but it's also fantastic for looking at small parts while you're working on them. So I found this to be really helpful around the shop as well as just for reading at night. So that's, you can pick these up on Amazon inexpensively I don't have a brand name to recommend because I think these things are usually made by one or two factories and then a bunch of different people put their logos on them but just look for a neck mounted light or reading light, something like that. So that's my gear report. I recommend those, they're really useful. Anyone else have any good personal task lighting recommendations, let me know. I know in the past sometimes there've been like little LEDs that go on your glasses but this one's nice because it's got enough space for a big battery back there and it just charges over USB. There's a big battery built into the back of it. Todd Bott says, now I can play like orbital. Let me show you a little picture there. That's right. I need more fog in here. That's what I need. All right, let's work on that. All right, next up right before the show. Less than maybe 40 minutes ago I got a question from someone on Twitter about adding a reset button to a circuit playground express. So the question is how do you add an external reset if you wanted to maybe embed this in something but still be able to double click the reset to load new code on it or just reset it if it's gone into a weird state or whatever. The circuit playground express, let me put it under the down shooter here. It's a little awkward today because I have it both under my down shooter and a microscope because I'm gonna do some fine detail soldering on this. So the question is first of all, how do you figure this out? One thing you can do is head on over. Let me bring up a browser window here. You can head on over to the product page. Let's go to Adafruit and I'll go to the circuit playground express down in the bottom of the product page there's gonna be a link going to the learn guides, go to the learn guide and then you can usually go to the last page which is gonna be this downloads page. If we check here, there's gonna generally be some build files for it, some CAD files, there's also three model file, say there's a pinout diagram here, fritzing and here is a schematic. So one interesting thing you'll see, I think on here I didn't check in advance but we should see the microcontroller itself has a reset pin. So this is, let me zoom in here. This is the ASAMD 21 and when we're resetting the board with that button that's built on, what we're usually doing is just grounding that reset pin that's on the microcontroller chip itself. So this pin here is pin 40 on there that doesn't mean much when you're looking at the physical package because it's got pins running all around the board. You will see however if we follow the reset net here, it's this word reset is tied to this word reset. This is broken out as this little, okay reset goes with a little reset switch to ground. Okay, so that's good. We know kind of what we're trying to do there. You can also check this out with your multimeter. So if I go into this down shooter here, what I'm gonna do is I'm gonna take my handy dandy multimeter and I'll go into continuity mode. So usually there's a resistance mode on your multimeter and if you hit a button, you can go into continuity mode where I'll just give you a beep when you've, it's not in that mode yet. There we go. It gives me a beep when I have continuity. So first thing I can do is just check, I'm gonna zoom out just a little bit here for a moment. And I know I'll have to refocus. So I wanna find out, okay on this reset button here, which of these pairs of pins is ground and which of these pairs of pins is the reset line. So what I'll do is I'll pick a ground, let's say that right there on the board. I know that's ground. And then I'll try the different pins. Okay, so this bottom one is not ground. This top one is, okay. So essentially this runs across to its mirrored image self across the way here. And this down here, that's the reset. So those two are tied when the buttons press, those will be tied across like that. I don't have enough fingers to do it. So now we know this up here is the reset. Another thing we can do is if we see any little sort of probe points, we can check and see, is anything here also the reset? Okay, that's not, there aren't that many on here. There are also some on the bottom side. So this is something that for purposes of programming or testing, sometimes you'll find pads on the bottom that are tied to interesting things, usually ground, maybe I squared C or SPI. In this case, I checked them earlier and I don't think either of those are reset, but that's okay because we're just gonna, we're gonna go for the low hanging fruit here, I think, and just solder to the pin here on the switch. It's an obvious and easy one. One other thing I did want to do though is check and see where that pin is on the chip. So this right here, let me get a little closer still. Sorry, that light is a little crazy bright, it's just built into my down shooter, let me try that. Hello? Yeah, maybe we're better off without that. So this chip up here, this is the Atsem D51. I'm not gonna count all those pins, but what I'll do is if I hold my one probe on the reset line of this switch and then just kind of drag across, oh, I found one, okay, so. That one right there, okay, so that's another option. This is pretty small, I don't think you'd want a solder to that, but you may have a reason to. So just so you know, we found a couple. And then you could also look at the, look back at the download files to see if, I don't know if we have an Eagle board file for this. We might only have the schematic. No, it doesn't look like there's a board file for that. Does there? I don't think so. So that may be our best. You may also look around and see that it's mentioned elsewhere. But that's what I'm gonna do is I'm just gonna solder to those. So you would, you know, soldering isn't necessarily permanent. You may have a really good reason to do this and go for it. Obviously it's a sort of off label use of this board. And so what I'll do is, I'm gonna find some pretty fine wire to use. One option is I grabbed some old ethernet cable, ripped it apart and you get some nice little thin twisted pairs. Those are pretty useful for something like this. Let's do, let's give that a shot. So I'm gonna grab some wire strippers and let me see if I can raise this up for a bit and still put things in focus. There we go, something like that. Let me see, is this light helpful on this thing? Yeah, sure, that's helpful-ish. So I'll take probably the finest gauge on these strippers and just take a little teeny. Nope, mixed. Let's see, those. Oh, that wasn't the finest, that was the biggest. All right, so let's take a little snip off of there and you could just, depending on what your needs, you could solder only to the reset line and then you can use an alligator clip on one of the ground pads. That may be what you wanna do. I think I'll go ahead and solder these both to there just to do it. And what I'll do is I'm gonna get myself a little helping hand because it'll make it easier to record or rather live stream this as I do it. So let me grab some of these kind of, ooh, these are dusty. So I'm gonna grab some little helping hand tool like this so I can hold that wire down on there. Oh, someone said that the first, I'm getting this from Sea Grover, checked in the chat, the first of the three pads on the bottom is reset, TP1 on the schematic. All right, let's test that then because that would be way better than what I'm about to. Okay, that would be great. I think I checked this earlier and may have done it wrong. So let's see. Reason I may have done it wrong is this is actually kind of a tricky operation because what we're trying to do is hold this in the right space here and this over here. Something you can do, depending on your needs, is solder wires to here temporarily and then check those. But what I'll try to do is hold this right there. Oh, let's see. That might've been ground. That's ground, all right. So let's try that first one. That might be power. Let's try this middle one. I'm getting some resistance there which it's possible that that is it and that resistance is to be expected. Oh, and even the, let me open up my, let me show my discord here so you see what I'm looking at. So this is from, oh, that's that file I didn't look at. Let's go back to this pinout diagram. Sure enough, can make that nice and big for you. Thank you, C Grover. Sure enough, let's zoom in. This is alleged to be reset. All right, I'll buy it. I don't know why it's not, it's got about 600 ohms of resistance when I check it here against that. I try real hard to hold that. In place, I'll switch back to this down shooter. Let's see. Actually, I'll do what I said. I'll solder something to it and then we'll make life a little easier. There's nothing you can't unsolder generally. Speaking a little closer. Boy, that light is terrible. It's like a little built-in dinky LED and I think I have some gaffers tape over it so it doesn't want to move. Okay, so let's take a moment and just solder a wire to that. It'll make it easier to do some testing. And I'm just gonna grab some nice, thin gauge, silicone insulated wire that'll be easier to work with. All right, let's see if this is true. Probably is true. Okay, so I've got a little bit longer a bit of wire than I need. Oh, these are not good cutters on here. Let's see. This is just very thin. And now I'll take my helping hand here. I'll tin this first. By the way, that little neck guy here, I'm gonna throw that on and see if that helps with our light. Oops, one, two, three, one, two, three. Yeah, that's nice. So I'll hold this under here. Let me find a soldering iron. So I'll wire that up, get some solder. So, sorry, yeah, you'll see my light source shifting as I move around. There we go. Okay, so I'm just gonna tin this, heat up the iron. This heats up quick. This is one of these funny little USB-C irons that we have, these little portable pen kind of ones. It's pretty great, heats up quick. All right, so I can see that better in this camera than I can in the world. Oh yeah, I'm also got, I don't have any, I don't have a fan here right now, so I will probably have to blow the evil fumes away. All right, so I'm actually gonna, pardon me sticking my head in the camera. I'm just gonna look through this little stereoscope here. There we go. And we'll solder that there, put that there. Try to set no fires. All right, so this'll make it a little easier to test that continuity now, and I'll hold this in here, and strip a little insulation off here. Okay, alligator clips would be good here, but I'm just gonna hold this to one end of my probe, and then let's take this other one, test it on that reset. No, I'm just getting lots of resistance on there. Well, I think it's worth trying though. Let's see if I ground that if it does reset the board. So I'm gonna check that I don't have anything bad going on there, I'm gonna turn, I have a little battery pack on this, so it's gonna turn on the board. Okay, so that's what it looks like. Sorry, it's gonna blast you out. Here's what happens when I hit reset. So you can see it kinda blinks and then restarts itself. So that should happen if this reset button is true. Yeah, it does not. Okay, so that reset may be for, gosh, I don't know, boot loading or something, not could be the programming reset, I don't know. Someone tell me what they think in the chat. Oh, wait, did I do the wrong one? Yep, thanks for the note. Yeah, I'm just checking the chat there. I did it wrong, all right, let's turn this off. First of the three is reset. Yeah, I've misread the diagram totally. All right, sorry about that. And let's, like I say, there's really no harm, no foul with this. It's easy to desolder, solder. And it's the one on the left from this view that I want. Could've saved a minute if I checked the chat. Sorry about that, good enough. Okay, take two. So now we're, that looks right, right? Let me see, wrong again. Oh, everyone said it, yeah, so many people noticed. Thanks everyone. Yeah, someone said, this is the good kind of demo. It's the realistic kind, right? Okay, so let's just try it. Turn the board on. That's just the boot up. Let's see if this grounds it. It does, hey, it works great. Fantastic, sure enough. Okay, so at this point, just to finish up with the original question, take a switch. Actually, I have to check, this switch has, you know what, that's a pain in the neck, because that switch has an LED on it too, and I'm not sure which one is which. Let me look in my, oh my gosh, I have so many that are lighted switches. Do I just have a momentary switch anywhere, anywhere? These are all lighted switches, all right. I think we'll have to check continuity on it. So with this kind of, either of these kinds of switches, we wanna check and see which are gonna be normally open and then get closed when we press the button. On this one, I think I'm gonna, yes, let's see, can I show you here? Yes, all right, so we'll check our probes again. Yes, they're doing their thing. Hold one here. You never have enough hands for this stuff. Let's see, I think that was it. I really should have some alligator clips with me for this, all right, there we go. So I'll hold those like that to those two. Press the button. This button's kind of sticking, there we go. Yes, but that's it, it's those two. So now we just wanna do, we can solder our one end of our wire here to the one post. Either one is fine and the ground to the other. Hold that there, grab some solder, tin some, I'll tin both the wire and the end here. You can also use like crimped connectors on these. I'm just gonna see, sometimes you get lucky. Sometimes there's gonna be a pain to solder to, but this one isn't too bad. You just have to wait for it to cool. It has so much thermal mass that it stays, the solder stays liquid for quite a while. So you have to kind of have a steady hand. And so now we wanna run a wire to ground. So I'm just gonna grab a little slice of green wire here just because that's what I have. The colors don't really mean anything in this case. And strip it, better job than that. Sorry, I don't have this in front of a camera for you. All right, and go ahead. And one of these I'll just solder to my, one of my board's grounds here. I think, like I said before, some of these may be ground, so I think you can get away. In fact, let's do that, might as well. Why not? I'm just gonna check that little point there. Let's see if it's ground. No, let's see this one up here. No, this one. No, are those all V out? No, I don't know what those are. All right, we could use one of the ones on the back maybe also as ground. Rufus says, what kind of workshop are you running without microclips or alligator clips within reach? I think they are within reach. I think they're right in this drawer right here. Let's see. I just organized some stuff, so they're not hanging. Yeah, look alligator clips, there they are. Here's a few. Proof. All right, my daughter helped me organize and I put a bunch of stuff in drawers. So now I should be able to find these things. Okay, yeah, you know what? Since you haven't done that, rather than solder to it, let's use one of those. So I'm just gonna run a clip to ground and run a clip to my button. Oh, this is a kind of busted alligator clip or let's try that other one. That one needs to get thrown out. Sometimes these very old alligator clips don't spring back so well anymore. All right, let's try it. You go there, you go there. Okay, let me zoom out again just a little bit. We're almost there and let's turn on power on our board. I've just got a battery pack running to there. Ready? Hey, external reset, it worked. It works again. So there we go, that's how you, that's one way you could go about doing that, adding your external reset button to the Circle Program Express. Thanks for the question. That was, I'll put in the chat, if that person is not in the chat, I don't remember who it was on Twitter who asked that. Thank you to C Grover for checking the diagram there and finding that we do have in fact this helpful reset broken out right there. That makes it a lot easier to do this. I was gonna solder in on that little nub right there which would have been much diceier. But there you go. So moving on, that was a bit of a diversion but I thought it would be fun to do a bit of a live bodge on something there. And I can actually get this out of the way. And then what I wanted to talk about is the midi feather wing. So the midi feather wing has been out for a little while but we, as Lady Aida said on Ask an Engineer yesterday, we forgot to put the guide out. I think the guide was ready to go but we forgot to put it out for a while. And so the guide is now out. In fact, let me show you the product and show you the guide and then I'll show you. I did a couple of demos. I built a couple of real simple demos yesterday for it that I'm adding to the guide so that if you're curious how to get the midi feather wing up and running and sending some notes, this should answer that question. So let's see, here is the midi feather wing. So midi feather wing. It's feather wing, I've got one right here in fact. It sits, let's see, can I do a, do I have a camera? This one will work. Sure, let me fix, I'll fix this camera. This one's a little, this view got a little funny. Make a little small of me up there. Okay, so this is the feather wing here. And you can see it actually has this elaborate silk screen on it because it accepts a couple of different types of common midi connectors. We have this more modern 3.5 millimeter TRS jack. So it's a stereo jack and you can use those with a lot of modern synthesizers. And then we also have the footprint there for this type of midi. Now I'm just flexing my cabinet organization because I went and found those. For this kind of, as if I'm organized, look around this place. Traditional DIN5 midi cable, which never used the five positions on it. It always just used three for midi, but it does, I'll show it under here. It does fit on this board. And in fact, I'll show you, I have two demos, one of them uses this. One uses this one right here. So this is a traditional midi cable and this will work on a ton of older gear. Of course you can get cables to adapt for you, but you may just have a case where you're like, I wanna plug in a microcontroller into a music instrument setup. If you're curious about midi, what is that? It's a format for having musical instruments talk to each other. Microcontrollers talk to musical instruments. Computers talk to musical instruments. Typically synthesizers, drum machine sequencers. And this wing just takes the serial UART, the transmit and receive lines, TXRX, on pretty much any feather. There are a couple of exceptions and the guide mentions that, but most every feather that you're likely to wanna use this for you will have TXRX available to use to send and receive midi messages. So here you can see I've got this plugged into, this is a Feather M0 Express, but if you've got some Feather 32U4s sitting around or 328s, some really older ones, use those for this because they'll work really well for midi things. Even ones that don't have USB midi, that's okay, because we're not doing USB midi here, we're using the UART. So with this plugged in, let me finish plugging that in, I can now send, let's pop our camera out a little bit and clean up. That soldering iron should be cool by now. So you've seen me use this little guy before, this is, I was using this on the show on Tuesday, this is the little Korg kit, little NTS-1, it's a wavetable synthesizer and it's tremendous. It can do a ton, it can do a lot of the same things, some of the bigger keyboard-based Korg synths can do and it's compatible with their log L-O-G-U-E standard for coding new synth and effects. So this, let me, sorry, let me give you some focus there. And I should really keep an eye on my Discord because Discord's always saving me. Where'd you go, Discord? There you are. So this right now is configured just to send midi out, I'm not doing anything with the midi in. In fact, both of these demos I'll show you in that I'm putting into the guide are just really simple, use a midi library either in Arduino or in CircuitPython and write notes, send out notes. I think in this case, in this other case actually, I'm also sending out some midi control change variables or values. So what I'll do is I'll give this some volume first of all. So this one I'm just gonna play off of its own little, plug it in, play off of its own little built-in speaker. So you're not gonna hear it very loud, but my audio setup got a little elaborate with the thing I have over on the workbench. So I decided this one will just use what's built in. So on its own, this has this little, like two or one and a half octave keyboard. That's just a little ribbon controller. And you can adjust to different wave oscillator shapes. There's a wave table as well. And this one's got some cool harmonics in it. So let me pick one I like, sound of. This, I'm not gonna play much on here. And actually I'm terrible on a regular keyboard. So what I like to do is things that are sequenced or evolving or programmable, use patterns, build on patterns. So what I'm gonna do in this demo is just send out some note patterns to the NTS-1. And all I gotta do is I've got this plugged out, the MIDI output of my MIDI wing to the MIDI input on the little corg there. And I'm just gonna power up the feather. Let me reset it. Power this up and try to convince it to behave. Put my mic a little closer. Okay, so you can see it's a lot of fun to play around with the sound of the oscillator and some of the filters and reverb. There's a lot of cool sounds built into this. But it's not that much fun if you're just poking at this ribbon controller. So you wanna send it MIDI. And in this case, this one is a, this is an Arduino sketch. So let me show you what the code looks like to do this. Again, this is really the most basic form of sending out MIDI stuff. But we thought it'd be fun to give people a little head start on doing that. So let me jump over to Adam here. And let me find it. That is it. Okay, so that's our Arduino sketch. And I just published this to our Learn Guide repo. It's gonna go into the guide real soon. But all we have in here is the 47 effects MIDI library. So I just say include MIDI.h. I create a default instance of MIDI. And then I have some little arrays here of some notes, some velocity values, some rest values, and some modifiers so that I can take my little melody line and put it through some progressions. Then in the setup, we do MIDI begin, MIDI channel omni. This is just gonna, by default, send out over our TX and RX. So in our main loop of the program, all I'm doing is iterating through those sort of pairs or those two sets of arrays with this MIDI send note on. And then whatever the note is, plus its modifier, whatever its velocity is, and over sending it over channel one. And then I have a delay, and then I do the same with the note off and then rest between. So yeah, the question is, one of these jacks is connected to TX, that's this MIDI out, and one is connected to RX, that's this MIDI in. So you can do much more sophisticated stuff if you start doing MIDI read, and then it will check the incoming MIDI port for notes that are being played, program change, CC, and things like that, and then you can do with it what you want. You can make an arpeggiator on here, so you press one note on a keyboard that sends to this, and then it'll send out many notes, that sort of thing. And then what I'll do is let me show you the, this is, can I go to the down shooter over there. We'll go to that as the main view. How about Adam and me? Okay, so that one I'll show you in a second. That is a very similar setup. I'm just using a different holder for it. I'm using one of the quad feather wings for it. And this is running on circuit Python in this case. This code is not as neat. I didn't optimize this as much, but it's also really, I think, clear as to what's going on. So I'll run through it here quickly. I've got some library imports for time, board for pin definitions, bus IO, and Adafruit MIDI. And then from Adafruit MIDI, I'm bringing in the control change note off and note on library, sort of subsections of the libraries, not the whole thing. Here you can see I'm setting up the UART. So on the Arduino example, the library kind of does that and doesn't expose it to you. Here it's a little more laid out, a little more bare. So UART is being set up with bus IO on the two pins or TX and RX. The BOD rate is 31 to 50, which is MIDI's, the BOD rate of MIDI. And then I don't know, I can't remember what this timeout is about, but there's a tiny, tiny little timeout there that's probably useful for buffering or something. MIDI in channel, I'm not actually using it in this demo, but I think you have to set one. So I set it as MIDI in channel two, MIDI out channel one. You can set these anywhere from one to 16. And then I set up the MIDI device. And you can actually set up USB and UART MIDI on the same feather if you want, but in this case, I didn't need to. I'm just setting up the UART MIDI, classic MIDI. Here's, so we set up the MIDI and use the MIDI in out and in and out channels, telling debug to be false, otherwise you can see a whole bunch of output. I have a couple of little variables here for how long I'm holding notes and the rest is a fifth of that. It's just what I worked out for the thing I wanted to play. The one that that one's playing is actually what you heard earlier. It's much more ominous. So I'll bring that in in a second. And then this is all I'm doing on this one is I just kind of go through two different patterns. The first pattern, I send a MIDI CC on channel one, which is like the mod wheel channel of zero. So I'm not modifying that one. And then I write out some notes that are played, held, turned off, so four notes are played. And then I do an adjustment. I kind of crank the mod wheel all the way up. One zero to 127 is the range of those MIDI CC values. And I'm using that, we'll see in a second, I can't remember what I have it plugged into, but it's mod wheel, which can mean different things. I'm using this with a EuroRack synthesizer. So I'm converting the MIDI back into control voltage and gate with a little box. So let's take a look at what that sounds like or listen to what that sounds like. Let me hide the code out of there. And let's see, let me get this set to go over there. I'm gonna move that. By the way, we just have a few minutes left because I know that Scott is gonna be broadcasting a live stream pretty soon. That should work. I'm gonna move this camera here. So I'll bring in, actually I'm gonna bring in this audio and I'm gonna turn on my monitor. And tell me in the Discord, can you hear that music? I know there's a little bit of the delay. This is this kind of crunchy plodding doom thing. I see a light light up from Dexter. It's Dexter Starboard. All right, I'll try to keep an eye on that while I go over here and explain what's what. Oh, and now we see a message. You know what, I don't have a chat window over there on the desk. More volume, okay. All right, you tell me if you end up not being able to hear me. I'll check back with that in a second. But right now, whether you can hear that or not, I'll explain here's the hardware. So this is the Featherwing, this time using the DIN5 MIDI cables. And you can see I have one of those. This is the classic thing you'll find on old synths and old keyboards, even some modern stuff. And then here I have the Feather RP2040. And then I've got a battery plugged into this. So this could be powered by USB. I have it powered by a LiPo battery. So that is running the code that I just showed you, that circuit Python code. And that is writing out, by the way, one little feature here, I don't know if you'll be able to see it, but there's a little blinking LED. And that writes every time the data gets written out over MIDI, we have a little flashing LED on the bottom of the board that shows you, same with input, there's a little bit. So this is sending out those MIDI notes and control value changes. Wow, that sounds horrible, I'm gonna try to fix. I got it so out of tune, it's a pair of oscillators and I don't wanna make it sound terrible. This is this really cool friend of Adafruit, Thea Flowers, has company Winter Bloom and this is a new synthesizer module called Caster and Pollux from Winter Bloom. Before I explain what's going on there, I'm just gonna check again that you can hear me. Okay, your answer is better, okay. Hopefully you can hear my explanation over the sounds there. Okay, I'm gonna get rid of some of the detune there. And what's happening here is that the MIDI is going into this little box, this little dope for box and then the note being played gets converted into control voltage that is telling this what pitch to play at, bom, bom, bom, bom. And then the gate is the MIDI note on or off so it tells it to let the sound through or clamp it off, it controls a sort of amplifier, a little back troll gate here. And then since I have the velocity, how hard you're pressing the key, that's a number I've entered into the code there. I'm using that to adjust the mix on this sort of reverb. And then the last thing is this controller CC, that mod wheel CC, is going to a pulse width modulation sort of width of this pulse wave of that oscillator. You can also add a little glide between notes, which is fun, I think that's it. That should have at least muted the one that you were hearing. So that's a very simple demo of what's actually happening MIDI-wise there, but we wanted to put something together all quick that would get people started. So if you take a look at the learn guide here, let me bring me back up, it's fine. There's the learn guide. So right now it shows you how to put it together, your choices on the two types of jacks, that's what it looks like to start with. He's got a billion holes in there because we have a couple different jack types that can get plugged in. And there it is with the 3.5 millimeters, little pin out on there. I've just added, this is the code block for the Arduino code. This is the little code block for the circuit Python example, I like this one, this one's cute sounding. That other one's kind of mean, this one's cute. And props to our friend Steve. Okay, you're on in the chat because I used his little keyboard OMX27 project, reads out MIDI note numbers as you play it. So I used it to bang out some stuff and not have to then go right down. I played C, E, C, and then figure out what the MIDI notes numbers are. So that was nice. Nice use of the OMX27, maybe not what Steve intended it for, but thanks anyway. All right, I think that's it. Scott is getting ready to stream in a minute here. He's gonna have a deep dive. He's got his notes up in the Discord. So if you're interested in checking out Scott's deep dive, that's coming up in about four minutes. So I'll get out of here. Thank you, everyone. Oh, someone said, sorry Dave, yeah that was drowning out my voice. Sorry about that. Well, hopefully you enjoyed it. Thanks again so much everyone for stopping by. I will be back again next week. I'll see you on Tuesday for the JP's product pick of the week. I'll see you on Thursday with another workshop and a brand new project for Adafruit Industries. I'm John Park. This has been John Park's Workshop. Goodbye, everyone.