 Pat, let's see if I can have a look at the YouTube window there. Yeah, it's still going live. It's live? Hey, it looks like it's now live. That's OK. I was kind of stalling and apologizing for it being a little slow. The upshot is that my operating system and my broadcast software may be having a bit of a disagreement. I'm experiencing some weird behavior, some monitors turning black, but it's still running. So that's good. So if anything happens, Lars did it. All right, let's get started with some stuff, right? First of all, thanks so much to everyone who came by for the unboxing of Adabox. Last week, that was a lot of fun. The next Adabox is coming fairly soon. It's going to be coming in October. So if you are into Adabox or you know someone who might be or you're interested, intrigued, want to try it out, head on over to the Adafruit Adabox site. You can just go to adabox.com, or you can go to adafruit.com slash adabox, either one will work. And you can sign up for the next one. That's going to be Adabox 20. Can you believe that, huh? Adabox 20. Wow, it's going to be a cool one. Uh, might be seasonally appropriate. Can't say too much. What happens in October? Hmm, kind of holiday. All right, next up, hey, we've got a little bit of a help wanted sign up here. Adabot is still trying to get that up there. Not enough glue, but one day that corner is going to stick there. And if you head on over to jobs.adafruit.com, as Mr. certainly just posted in our Discord, you will see some openings available for people looking for work, including this one I just saw on here. This is someone looking for help with the design build of a wearable necklace pendant that buzzes. And that is a contract job. So I believe you can do that remotely. The company is out of Newark, Delaware, but I think you can be anywhere and work on this project if it looks interesting to you. So go to Adafruit's jobs.adafruit.com. It's always free. It's free to post to your positions. It's free to post your resume. And maybe you'll find a work connection. I hope so. Hope you do. Let's see what else is going on. Jebler's in the chat saying that there are a number of holidays in October, including International Day of Older Persons. I didn't know that. NationalToday.com. That'll let you know. So what else? Hey, on Tuesdays I do this show. It's called JP's Product Pick of the Week. That's the logo right there. And in that show, I pick an item from the vast catalog of Adafruit items that we have for sale. Often a new product pick. Sometimes a oldie but goodie. This past week, I spent about 15, 20 minutes showing off a new product. One, in fact, that we'll be dealing with a little bit more today. But in that, I broadcast live from the product page. And this is what this past week's new product pick looked like. There it is. It's the NeoKey 5x6 Ortho Snap-A-Part PCB. So if you watch that show while it's live, you can get a huge discount. It's 50% off for that. And I like to also do a little one-minute recap. The full video that I do with full live stream is some demos and some code exploration. But here's a little excerpt. Enjoy. The NeoKey 5x6 Ortho Snap-A-Part. I have some simple demo code running right now, which just lights up keys when I press them. I wanted to have some non-one-unit standard spacing. So these are actually two-unit spacing. So in order to do that, you can see I've done a little bit of soldering here, where I am running power where it's needed, ground where it's needed. I run the row pin horizontally. And I run the column pin vertically. That allows it to still treat it as a matrix. This one's actually acting as a number pad. 1, 2, 3, 4, 5, 6, 7, 8, 9. This is a delete. This is numpad slash star plus. This is a enter key or equal. Here you can see we are still able to light up the NeoPixels. The Ortho 5x6 NeoKey Snap-A-Part PCB. The NeoKey 5x6, get my auto back. Sorry about that. I had that set to looping. That's the default behavior. I have to remember to set it to hold so it doesn't just play forever and ever. Excuse me. All right, well. Next thing I wanted to do is take us on a little journey called the Circuit Python Parsec. All right, for the Circuit Python Parsec today, I wanted to look at how you can time an event in Circuit Python to figure out how long it took. So what you can see here is a little demo. It's a Feather RP2040 with a sharp memory display connected to it. You may recognize this from a few weeks ago I was showing this. And I'm running here a modified version of some particle code that our good friend, Todd Bott, wrote. And you can see here I'm listing the number of particles that are in the simulation or in the screen right now. And I'm also listing the frames per second, the frame rate that this is running at. And so how you can get that is, I'm going to scroll down in here. And what's important is that we've imported the time library. Once you have the time library imported, you can do things like this. I can set a variable called start time to equal time monotonic, which is the exact moment when you ask it. You get a unique time. That's essentially a ticker that's been counting up since this board came online. New variable called elapsed time equals time monotonic minus that start time. So this is going to tell me in milliseconds, I believe in milliseconds or decimal parts of seconds. Now I can't remember how much time has gone by. It's in seconds, yeah. Then I'm doing a little bit of math to convert this to frames per second. This FPS is an integer based on 1 divided by the elapsed time. And then I'm just printing that into the serial port. So you can see here these are taking about 0.1 to 0.2 seconds, which equates to about 6 or 7 frames per second. And what we can do now is we can, for fun, go in here and adjust the number of squares in the simulation. So I'm going to change this num squares. Let's double it, say 200. Let's see what that does to the frame rate. Oh, my screen is acting up. I don't know what's paying attention to that there. Hold on. I've got a screen dancing around on me. I think I have a suspicion of what that is. I'll check in a second. So first, let's save this. It's going to restart. And we should see. Oh, let's see. Let me save that properly to the board that was saving to disk. All right, so save to this little feather board here. Hit Save. Yeah, I'll replace the code there. Thank you. That's exactly what I want to do. OK, so now it's, oh gosh, did I save that to the wrong board? I sure did. Ha, ha, ha. It's the heat is getting to me. I still need to do that trick to all my, all right, let's try this one more time. All right, let's save that to a board that isn't showing up. All right, I can fool the finder into bringing that online just by turning the board on and off. There it is, circuit pie drive. Hello, that's the one. All right, as if by magic, I'm going to save the code onto there. And now, when it restarts, you'll see I've lost the serial port in the code there. But now, when this starts up, you can see it's running about one, two frames a second. It's actually slower when those are all clumped together. I am not sure why. And now it's getting up to maybe four frames a second. So you can see the difference when we had 100. We're going quite a bit faster. So that is one way that you can time how long an event takes inside of Circuit Python. And that is your Circuit Python Parsec. Yeah, this is a hoot. You'll never believe what's going on. I think, somehow, Wirecast, the software I'm using to broadcast here, it is picking up keyboard shortcuts even when it doesn't have focus. So that could be that something changed, again, like I said in this version of the operating system. My shortcuts that I use with that little camera controller there are just one, two, three, four, five, six. And that switches between some cameras. So I can do it right here if I just press keys on my keyboard, one, two, three, four, five, six. So I think what happened before was I pressed the two key over in code, and it noticed that, which is a huge pain in the neck. I'll switch this to a more obscure thing, just Control-Shift-1 or something like that. But that's really weird behavior. So if it happens again, I don't know how much typing I'll be doing, if it happens again, I'm just going to disable those keyboard shortcuts. But I think it'll be better if I keep those enabled so I can use this camera switcher over here later, and then get myself some more obscure keyboard shortcuts later on. So it is always an adventure. All right, so let's see. What else is going on? Todd Bust says, my code is very bad particle code. See the vertical and horizontal banding? Is it banding? Oh, you mean some particles are staying on a row? I don't know. I think it looks cool. Look at it. Look at this cool stuff bouncing around here. Yeah. So let's get back to it. All right, let's see. Next up, let's start diving into this keyboard numpad 4,000 that I just started calling it, because 4,000 sounded exciting. So if you remember, so here we are. We're on a bit of a journey with these little ortho key break-aparts. So last week, I used it for the first time, Live on Air, which is always a potentially exciting endeavor. This is what we start with. So this is, as we sell it, that's the sheet of 30 connected key sockets. They're diode matrixed, and they have the neopixel running through, actually like this, like a snake pattern. You can use it as is by connecting up to the rows and columns like I did last week. So there we have rows and columns connected, as well as a few extras there for ground power and neopixel. And those, in this case, are running up to this feather. So by reading columns and rows, using the numpad library in Circuit Python, we are able to tell which key has been pressed. So now what I want to do is take a look at what happens when you want to use this board to its full potential. So while it's cool to have a orthographic or rather ortho-linear 30 key little pad here, what you may want to do with it is snap some of these apart to make different arrangements of them. So you could snap this in half and run them diagonally and make a little mini split key, or get two of them side by side, make a split key keyboard. What you'll need to do, however, is connect up any rows and columns that have been separated so that it still works as a matrix. And you'll need to connect up power ground and the neopixel. So in the case of this numpad here, our good friend numpad 4000, I'm going to set this under the overhead here and switch to that for you. So you get a nicer view. And let me focus and adjust exposure there. Nothing is blown out. There we go. Well, it was sharp. And then the control, this thing has a touch screen for focus. I really wish it had a physical knob there. OK, so what you can see here, let me get something to point with a pencil will do. So up here at the top, in fact, I'm going to unscrew this little bottom plate. I wanted to still be able to see what was going on in there, I am covering up some of the messier bit of wiring there. So this is a little sort of stacked, multi-part, 3D printed enclosure that I made for this. And it's hiding the feather board that's running this, the Feather RP2040. So when you're thinking about a microcontroller for this, you just have to make sure that you've got enough GPIO pins to deal with the number of columns plus the number of rows, as well as one pin for neopixel if you're doing that. So let's move some stuff out of the way here. What you can see is in this case, I just used yellow wire for all of the columns. And you can see here, they just run straight down these, what are essentially five columns, right? One, two, three, four, five. And then the one, two, three, four, five rows. Except in some cases, these get a little weird. This first one, actually, I snapped this off backwards because I had the board upside down when I was snapping things apart. So that was just a mistake that I had to reconnect this one. So you can see this one here. I'm going to zoom in just a little bit closer for you. So this one is actually just kind of a repair job. So I'm rerunning a connection that already existed in this little mouse nibble section that you can sort of snap off, so perforated section. That has three traces. You can kind of see them there. So it is connecting up the row, the in, and the ground connections. So I've just bridged those and reconnected those. That was a mistake. Then this is intentional wiring here, which is how you'll always do it. So I'm running the first column pin, the neopixel pin, and the power pin. And that's just by convention. You could put them anywhere you like. They're all wired together, all of the V in. And you essentially want to pick the first pin for the neopixel. Ground is over here. It's a little bit hidden, but you can see there's a black wire there running to that ground. And again, by default, ground is just connected all the way across the board. But when we do things like either make a mistake and have to re-bridge them, or start putting things in non-standard places, then we've got to bridge up some of those connections. I think these are a neopixel out to a neopixel in here. Is that right? Now I can't remember on that one. We'll look at the circuit diagram. I think there's two spots where you can do the neopixel in, out, either horizontally or vertically. So I chose, for some reason, to do the horizontal ones on the sides there. So you can see, in this case, where I've broken these apart to get this non-standard spacing, I'm just running a, I've got this yellow wire here, running column to column. And then again, column to column down here. And then running voltage all the way down. Now voltage doesn't have to be in any particular order. You could run it like a spoke and hub, or hub and spoke. You could wire it kind of any way you like. But I went vertically like that, just because it made sense. The, let me move this out of the way here. The row and ground are taken care of here. So you can see, I've just got to get ground going from somewhere to somewhere. You can pick anywhere you like that's convenient. That one at least kept it out of the way from these two that I had to do, which are running from my horizontal row to the horizontal row. So what that means is, I zoom out a little bit, on this matrix right here. This is a five column row. This is a four column row, because this one stops and I don't continue the row pin on. This one's a five column row. So one, two, three, four that weren't snapped apart, and then this fifth one that we're connecting to. And this becomes important when you start dealing with code, because you need to tell it not only how many columns and rows you have, but how long they are, so that you can actually get correct answers when keys are pressed. Then, let's see, we've got, in this case, since the neopixels run as sort of a snake pattern, they start in this upper corner. And then this one jumps down to the next row and heads to the right, flows down and heads to the left, and does this little jump up to this one, and then snakes back down, goes internally, and then snakes across. So here's a case, again, where I just have extra spacing in here in order to accommodate the 2U width zero key that I'm using on the numpad. And so there, that's just straight up an extension. And you can see this column here is one, two, three, four, five. So it jumps over this power and column pin to this one. This one just stops at four, one, two, three, four. It doesn't head anywhere else. This one is five, and this one is a column of three. So now let's take a look at, I've mentioned this before, so you've seen, this was my intention with this one, is that I wanted to do a more standard numpad style, which involves having some of these nice big keys. And I really like to use these for key entry in particular for number entry, also in spreadsheets and in animation software. There's a lot of places where you start wanting to use something better than a number row. But I like a narrower keyboard. I don't like this to be built right onto my keyboard. So this allows me to place it anywhere I want. In fact, sometimes I like it to be on my left hand side, and that's a little hard to find a full-size keyboard with a left hand number pad. So this is kind of why I'm doing this. And then you can also see I've made this sort of one column wider than your typical numpad so that I get some extra stuff in here we can use. NumLock to turn this into the alternate keys, like arrow keys and so forth. That's a sort of a toggle. I've got a page up, page down, a function key and a control key. So those are all kind of extra and these are more standard. Now, what I wanted to do is actually look at the code for this a little bit. And I'll be doing a learn guide for this that'll have lots of info and the code so you can build your own. So what I'm gonna do, hold on one second, I'll open up the code. In fact, why don't we plug this numpad in and we can see it in action. All right, let me zoom out a little further on this one. Come on, focus. Yeah, all right, so I'm just opening the code that's on that numpad there. Or attempting to, let's see, is this it? Oh, it's not one open, hold on, standby, there we go. Okay, so I can show that here. There we go. And again, we may end up facing some camera wonkiness when I start hitting buttons. We'll see. So let's see, can I zoom this a little bit bigger for you? There we go. So same stuff we've been doing with other keypad projects and importing the board for pin definitions. Keypad is the library that we're using for all the diode matrix stuff. Also works with shift register keyboards or straight GPIO pin keyboards, importing NeoPixel and then USB HID so I can do the keyboard and key code stuff. Here you can see I'm actually telling this, it's a five column and five row layout so you will tell it whatever the largest dimension is on each of those, even if some of them will end up being smaller, it'll still work. I'm telling it the board NeoPixel just because I kind of wanted to light up the one that's on there, don't necessarily need that. These are the pixels that I'm using for the number pad itself. So you can see these are lit up. It's easier to see underneath because I'm using these opaque double shot keycaps so they don't actually shine through. You can just see they're under lighting around the skirts of them there. And then here's setting up the matrix. So you can see the row pins. I'm setting those five, one, two, three, four, five pins that come in sideways to the different rows and the five pins that come in vertically for the different columns. So again, like I said, that you'll just tell it the maximum dimension that you're using, then you'll deal with it being fewer later. The example code that I had been running before had some clever math to correlate the neopixels which are in this S pattern to the matrix pins which are in a sort of start left to right on each row. So that's gone, I can't use that anymore. So instead I've used a couple of little lookup tables. So this is my key code lookup table. And so here's how I'm, when I read which ones get pressed, essentially because it thinks that there's a five by five matrix but some of those are never gonna get pressed. You can see my counting here is a little weird. I go zero, one, two, three, four, five, six, seven, eight. We skip nine, 10, 11, 12, 13, 14, 15, 16, 17, 18. We skip 19, 20, 21, 22, 23, 24 and there is no 25. So that would have been the five by five matrix but essentially we have gaps in what gets pressed because there are just key combos that never can get pressed because of this layout. Then the pixel lookup table, since they go in that snake pattern, I need to correlate those to this matrix above. So I've created a lookup table that correlates and I just, you could figure this out more cleverly than I did, I just pressed stuff and looked at which ones were lighting up and fixed those in this lookup table. This is the key map, so this is just saying what is actually gonna get pressed when a particular keypad event happens. So you can see these are all from that circuit Python HID lookup table. And I can't remember if I've shown that lately but I'll show it now because it's really helpful. I use it a lot. So if I, what I usually do is I end up Googling circuit Python HID key codes and the first thing that comes up in Google, at least right now is this nice list source code for Adafruit HID key code. And this will tell you all the possible key codes and it has their number value and their sort of nice name value. I believe you can use both. I only ever use the nice name value. So if I wanna use a space bar, I just type in the word space bar. Let me zoom it up on this, this is a little small. Boy, everything's lagging on my machine today. Yikes. Oh, that's a little better. So if you look down, since this is a numpad, I just kinda scroll down to see, hey, what can we do on numpad? We got numpad, or rather keypad numlock, keypad forward slash asterisk. So this is nice because that means that you get the dual functionality when it's in numlock or not in numlock mode. So if you add one, that will be a one key unless you have numlock press or rather you toggle numlock off, then it's an end key. So these keycaps only show one function but some keycaps will show you, oh, that's both the eight and the up arrow. It's the two and the down arrow. So those actually exist in these HID key code definitions so we can get to those by using numlock. And I said I would get to something about that in a second. I only have the numlock stuff working right now on, I've been using it on a Raspberry Pi, so on Linux and I believe it works the same on Windows. Mac is funkier and I need to actually try some other stuff and talk to Dan, Halbert, and maybe Scott, Shawcroft to see if they know how that works because Mac numlock command is somehow different. So you could use some software to interpret what you send. You can use software like Carabiner is a good example. You can say, oh, it just saw numlock and instead it'll send what Apple calls clear or shift clear. So there are ways around that but I think we should be able to do it in HID, I hope. So let's see. Howard Evans asks, by the way, over in YouTube comments, does the switch matrix have the diodes needed to do N-key rollover? Yes. So we can do N-key rollover on this. You can, it can read all 25 keys being pressed at the same time or however many you have. And I believe there's a good article that Jeff Epler wrote on N-key rollover and how we're dealing with that. So let's see, let me just look that up. DataFruit.com, let's go to learn and N-key rollover. Okay, we have a Customizing USB Devices in Circuit Python article by Dan Halbert. Okay, I think Jeff also did some work in this. Let me know in the chat. So this talks about how we're dealing with N-key rollover which means being able to press more than six keys at once and having the device on the other end of it recognize that properly. So let's see. Okay, so at this point, let me know if you have any other questions about this one. I can, I'll probably demo this. I'll do a little demo video of this another time running on like a Raspberry Pi. I'll just goof up this computer right now if I try using this too much. I'll do, so let me do a quick demo actually just a little bit. So if we go back to this screen right here, what I usually tend to do is just throw in a comment down at the bottom. It's a little hash symbol. And now you can see, is it gonna switch cameras? Oh, it didn't, good, okay. I pressed the two and I was worried the camera would switch. So you can see here I have the main number keys, delete, I actually have it working as a backspace. This is just more useful for me the way I do stuff. I haven't done this yet, but in the code you could do things like maybe make function delete be regular delete versus backspace, you could create layers and things like that. So these star and slash will just type those or if you're in your calculator app those will actually just work as expected minus plus an enter is actually an equal sign which again acts as enter inside of a calculator app. You could, sorry, you could do something like control enter key here actually is a real carriage return type of enter. Function I don't have it doing anything yet other than typing an F and that's because I don't think I understand how function works on Mac. I think it's, I don't think it's a real HID key code. I think it's just telling the top row of keys to send media key things like volume or if you have the function key pressed to the other one and you can change that in the operating system setting. So right now I don't know that doing things smart. Page up and page down. We'll do page up and page down things and then num lock in this case isn't gonna do anything. So if I do this in Linux when I hit num lock and then four that'll be the left arrow key for example. So that's why I should demo that somewhere else. Okay, so now what I wanted to do is jump over to the workbench and show you how to put together once you've snapped some stuff apart some tips and tricks that I've learned about dealing with that. So let's jump over to the bench cam and let's see, I think I'll also, let me fiddle with something for a second here. I wanna throw an image on the screen as well that we can refer to. I'll just put that one there. How about, okay. So the example here I have is actually, this is the extra stuff I peeled off of that other keyboard. Get that over there where you can see it. So in turning the 30 keys into the 23 keys that I needed or 20, how many do I have? I can't remember now how I'm here on that. The fewer than, 22? Yeah, it must be 22 because I'm left with eight spare. So I end up with these two little boards here and so what I want to do is turn these into a neat little kind of macro pad. And my idea behind this was that I looked at this and said, hey, an itsy-bitsy fits really well there and itsy-bitsy is basically the same size, I think, as a Arduino Pro Micro or a similar board like that, which is really popular for people running QMK keyboard software. So that fit there, that works pretty well. So I figured I would do a little layout like this. So I adjusted my little key plate and model that I built in Rhino and Grasshopper and I 3D printed this thing so that my tip number one is if you're gonna take some of these and rearrange them and keep them on a grid, the easiest way to do this is with a key plate. Now you can 3D print these, you can laser cut them, you can cut them out of some card stock on a like a cry-cut machine, you can do it by hand with an X-Acto knife and a template but the nice thing is that once you mount keys into them, even if it's something somewhat flimsy like card stock or a couple layers of card stock, that's enough to keep things essentially on a jig, this acts as a jig for keeping things spaced properly when you're soldering, otherwise you'll end up, you know, if you're just trying to do it with wires, it could be difficult. You can take things like little bits of jumper wire like this and or jumper pins and bend them to fit but you gotta be pretty exact with that, you might even need a different jig to do that. So what I'm gonna do is, oh man, this camera's really flashing, sorry about that, let me see if that can be fixed. I'm noticing some really weird flickering. Are you seeing that too? I don't see anyone complaining, maybe that's just something I'm seeing, I hope that's just something I'm seeing. Yeah, Jeff Epler says highly recommended to 3D print a switch, a key switch plate. If you don't, it can be pretty difficult. All right, let me move that out of the way for now and just see if we can get a camera to calm down. And so in a case like this, you can probably put a few of your keys in and you'll just wanna make sure you're matching the orientation. So these are gonna be pins up and LED shine through on the bottom. See that has a little slot there for the LED shine through. As well as these are somewhat translucent so you get a bit more light kind of glow. So we can throw a few of these in here and then start fitting them in. This is flexible enough with this few keys that you can actually probably put them all in there and just push them in one by one. Let's do that. It varies. If you're doing a full keyboard, sometimes it's easier to just put a few spare ones and then fill them in later. It's very easy to get one of these backwards if you're not paying attention. These are these really nice Kale box jade. It's really clicky box jade pin key switches. That, I'll save those for after. So now I'm just gonna do a little bit of a horizontal wiggle to make sure those pins don't bend and are in there neatly. Go, let's do these here. So this is the alternate way, which is place some switches in to begin with and others come through both the plate and the PCB. It doesn't make a huge difference but in a small board like this. But there you go, okay? So that's the layout that I'm going for there. And then what I would recommend doing is layout in, oops, you can see I did it in fritzing there or you could just do it on paper or another piece of CAD software. But you wanna lay out things so you have an idea of how you're hooking them up. You can see here too, I was, let me, actually I'm gonna pop this one off. I forgot to file off or trim off some of, whoo, the little rough edge there. And so it was conflicting and these things didn't really wanna be next to each other. So this, let me get a little closer. Is that as close as I can get? It is. Can I zoom any closer? What's the closest I can zoom? Not much closer than that, okay? So what I'm gonna do in this case, I'll just go ahead and take some diagonal cutters and just trim off that little extra bit there. You can also file that off, just be careful that you wear masks so you're not breathing in that fiberglass. It's nasty stuff and it's worse when you file it versus trim it. So another thing I wanna mention, when you're breaking these off of the big board, so here's the big board I put together last week. When you're snapping stuff off, you can pry off if you're not using this bottom piece. You can pry that off using some pliers, maybe press this down against the edge of your workbench and then pry that off. The trick is with snapping these off because when you put some diagonal cutters in there and snip one, you may be putting a little bit of strain on the sort of surrounding connections. And what I found is in a couple of cases, I ended up breaking just one of the three traces in the vertical part. I think this one here, it actually snapped the tiniest little bit of that trace there, so that connection is suspect. So any of them that are sort of neighbors of places that they got snapped off like that, especially when you first start cutting things and there isn't any clearance, you wanna go in there with a multimeter and check and see is there continuity because if not, those two columns, it's not gonna recognize this, those two columns aren't gonna work. So let's refocus here and then I'll grab a multimeter. The nice thing is if that trace was nicked, it can be jumpered with those two pins right there. So any two sort of neighboring pins across these two neokey sections are gonna allow you to, oops, allow you to jumper them. So it's this one, so it's on this side. I know I wiggled one before, so this isn't gonna get any voltage. If we wiggle this, yeah, as I wiggle that, it reconnects. So I know I've gotta jumper that there. So that's kind of the main tips I came across that I wanted to share and then like I said, we've got a, let's grab my illustration here. We've got a little diagram of what I wanna connect from a board to board standpoint. And by the way, since I broke these off the way I broke them off, they're needing to be run horizontally. It's totally feasible that you could make this exact kind of board pattern without needing to re-bridge stuff internally if you just snapped off two. So you could be left with that depending on how you're working. But in my case, they've gotta be connected. So now I'll put this back on here. We should now have clearance because I trimmed that off. You know what, I am gonna grab a file real quick. And I'm gonna turn my head and not breathe. That works sort of too. All right, so that'll fit I think pretty nicely now without bumping into the neighbor. We can just push that right on like that. The jump ring that I'll need to do, if you look at my illustration there, I've got this row to row, row to row, row to row and ground to ground, ground to ground, ground to ground. And then in this case, I'm gonna I think have this as my starting Neopixel because it runs down this way. And then just following the silkscreen, these kind of can vary depending on where they originated in the original PCB. This is the out here for a Neopixel so I can run from out to in here. And then that means I can run my Neopixels just like that. Or you could jump right all the way back up to the top. So it's up to you but we wanna end up with one row and then we'll just use a little lookup table or some math to deal with that. So the, I don't know if we have time to, you probably wanna watch me solder all these in but I'll get it started and I'll share one other trick along the way as we do that which is if you look at, let me grab the numpad. If you look at how these are connected, I wanted to solder the wiring from the bottom to keep the top pretty clean. And one way to do that and then keep these at sort of a consistent length, I needed to have enough to be able to pull that through this hole in this. I wanted to still be able to get it out when I unscrew that. So I have some excess but it's actually all a uniform amount of excess wire there. So to get that uniform or to get it pulled like really nice and straight if you wanna go for real, real clean look. I used some of our, I believe this is 26 gauge silicone covered wire, which you can actually thread up into the holes on most of our microcontrollers. So I soldered one end to the keypad first. So those all got soldered. Then I threaded them up through here and then cut them to consistent lengths once everything was arranged, stripped a little bit of the silicone wire and then soldered it from the top like that. So I ended up with like that real clean soldering and really consistent wire lengths just because you can't just cut them all to one consistent length because they're all splayed across different positions on the board. So I thought that was a helpful tip there for doing some clean wiring is to get wire that's thin enough to thread right up on through and then cut it to length once you have things arranged properly. So then yeah, so for these, you can do this a couple of ways. I think in this case I'll probably just do these as straight jumpers of either solid core wire or header pins. So here's a bent header pin. So you can take these pins that are just direct across each other connections and just tin them and tin a little jumper, solder solder. It'll suck to there and then cut off the excess. I think that these 90 degree header pins actually, I have some spare of these. They work pretty well like this where you can solder that if you see that little leg of the J there, the L, you can solder that just like that and then trim it off later. So let's do one like that and see what that looks like. And sorry I don't have a closer up camera here to look at that. All right, did that just flicker? I'm gonna have to check this in the replay. I think it's just my display setup is gone goofy today. Let's find some solder and get this temperature up. This little iron. So just to get it started, I also don't have a soldering iron holder for that iron so it's always something. And we don't really need mechanical holding. By these wires, so it's okay that they're not running through the holes. Just got a piece of spare solder fell on there. So I'm not worried about actually running a wire down through those and sort of stapling it. That's not necessary. Again, I don't wanna hold that with my fingers. I want a needle nose pliers for that or tweezers and hopefully you can see that it's kind of small. Just gonna come in and jump for that. And that may do well enough with just what was on there. You can see I've got that part to trim off. But I do, once I got it tacked on there, I actually like to go back one at a time and oh, you gotta be quick with it though. Yeah, cause it does heat the whole thing up. Try that again. I was saying I want it to go in there one at a time and get more solder on there. But I will do it like that. Oh, that's on there nice. And like, you kind of have to hold it for a moment cause that retains enough heat to quick there. All right, so those are now joined and you can't see that too well. So that should work pretty well. You could also take the time to cut some little staple style solid core wire if you want. The real proof is can I trim it without it blowing off because that'll tell you if the solder joints are good enough. Yeah, there we go. Got that off of there. Make sure there's not contact with the little end of the kale switch there. So you'll end up with just a little, little row of those kind of guys. Here I did it with some little spare legs off of just some resistor leads I think. So it's a little thinner than this jumper wire on there. But that you'll want to do for the row and ground, row and ground, row and ground. Don't get crazy and do the, don't get overexcited and do the in, in, out, out, out, in. Those are all neopixel things and that'll make things really goofy if you do that. So I think I'll leave it at that. You can use your imagination. I'll probably finish putting this one together just because I think it's cool and then I'll have a little fun itsy bitsy guy that can be arranged different ways. The only thing to be mindful of is the orientation of the neopixels if you're relying on those for some of the cool look. These would all be to the right there, which might be fine, but it probably works best in one of these vertical orientations. All right, so that should get you started hopefully if you're thinking of using these lovely little ortho keypads to do some work. So let me know if you have any questions. And let's see. Someone said that their audio, everyone's audio okay. This Twitch stream stalled, uh-oh. Yeah, we're having some issues, huh? It looks like YouTube is telling me it's not getting a fast enough stream. So my apologies, I'll be doing some testing of this, maybe rolling back an operating system if necessary. So, oh, that's a nice idea. Wagonload said they cut 90% off the long side of the L so you can do a short bend and drop that down into a hole. That's very smart, I like that idea. NBRKN asks, is that a custom enclosure on the numpad 4000 it is? I designed a case and 3D printed it. It's actually kind of a layered setup. So there's a top layer here that covers some of the gap and brings this up a bit higher. There's the plate, base plate there that all the key switches are popped through. And then I made a sort of open bottom there that we can see the cool numpad through still, but really that should be closed off so you don't risk getting Cheetos all over those or whatever. I'll be posting these files up when I put the learn guide together for this so you can build your own numpad. And hopefully you'll be able to use those model files to adapt it in some cases if you want to, let's say, shear off a row. I'm trying to figure out if there's a good way to make it somewhat easily procedural but to be honest, I'm building it in Rhino and Grasshopper and so the tools I have are for doing procedural stuff inside of Rhino and Grasshopper. So maybe this is the sort of thing we should get the Reese Brothers to do in Fusion 360 or if one of you wants to do that to have a procedural switch plate builder that you can pick which, that's what I have now sort of I can pick what size and where they are to some degree and then call the ones I don't need and have it print out the plate for the right dimensions. So let's see, other questions. Oh, how about seeing camera vibrations on the stream and that's showing up as flickers for some people. Sorry. All right. Yeah, I may need to lock that camera down a little harder. It's actually my HVAC I think is blowing on that that camera just enough to cause some vibration. Wee! All right. I think that's gonna do it then. Well, thanks everyone for stopping by and let's see, what have we got? I think we've got a deep dive with Scott coming up tomorrow. We'll have a product pick of the week on next Tuesday, Wednesday. We'll have 3D Hangouts with Noah and Pedro followed by a show and tell and an Ask an Engineer later in the day and then I'll be back with another John Parks workshop next week with a different project and maybe a little final wrap up on any of this stuff if I have any new info on them. That is the very bombastically named Numpad 4000 and I had to finally have a good Numpad back in my life. So I think that's gonna do it, yeah? All right, thanks everyone and I'll see you next time. Bye-bye.