 We're back. Welcome to John Park's workshop. It's me. I'm John Park. Here we are. Awesome. All right. First of all, I want to say thank you to everyone who came by last night for the unboxing on AidaBox 19. That was loads and loads and loads of fun. And I really appreciate that I get to do wacky stuff like that. Thanks to all of you. Thanks for supporting our community, buying cool stuff in the AidaFruit store, getting AidaBox's, things like that. It really helps. So, let's see. What else I wanted to let you know this will be a probably slightly more freeform show today or maybe you might think of it as a throwback to earlier shows where I used to sometimes just build something on air. Because I think what I want to do today, I've got a couple of things, normal things to do, some things I'm not doing. I didn't prepare a, or actually I didn't make a like a one minute clip of the last John Park's product pick of the week. So, I don't have a recap to play of that. But I am going to build something. I'm going to take a crack at just the most basic use of our ortho snap apart keyboard on an RP2040 feather from scratch. So, I'll be putting some software on there. I'll be doing a little bit of the soldering of header pins and wiring and looking at diagrams. So, it'll be that kind of thing. Hope you dig it. Thank you C Grover for letting me know. Microphone's peaking a little high. I think I had goosed that up yesterday when I was dealing with audio difficulties. But let's get to it. So, first of all, product jobs. Yeah. That's what I wanted to say. AidaFruit job board. Did you know about this thing? We've got it and it's right here. And if you head on over to jobs.adafruit.com, then you may see something like this. Here's a job opening for a software developer in CC++ Python Arduino. And it is at a company called playlightpong.com. Light Pong. I wonder what Light Pong is all about. I can take some guesses. This is in Chicago. It is a contract job. They're looking for software develop to join the team. Need assistance writing and maintaining a framework for the handheld game device. Ooh. All right. I'm going to click on the link then. Let's see what this is. Playlightpong.com. And ah. Hey. That looks cool. It's one-dimensional Pong. Really neat. All right. Well, that sounds super interesting. So, if you're in the market for a job, and it looks like it's probably an on-site gig, is my guess. They're in Chicago. So, you might want to check that out. You just go to jobs.adafruit.com. We have free postings. We have free job postings and free resume postings. So, head over there and check that out. Let's see. So, next thing I did mention that. Let me switch this screen out here real quick. The product pick of the week was on Tuesday. I don't have a recap video, but I'll give it away. It was this 2.7-inch sharp memory display. Really cool display. A neat display technology. And that was the product pick on display. If you want to go check out that video, I'll be posting the one-minute recap later, and they'll probably play it on Ask an Engineer next week. Maybe not. We might miss that one, because I'll have another show by then. But those were half off during the show, which is a good reason to tune in on Tuesdays for that show, because you get a deep, deep, deep discount. And actually, the other thing is, this sharp memory display I mentioned is featured in that Playdate handheld game machine. A lot of handheld game machines I mentioned today. That is available today for pre-order. So, I'm not affiliated with them. I don't make any money for saying that. I don't have one. If I get one, I'm that close to pre-ordering one. It's between that and a Euro-Rack module I want. But if you want to get one of those, if I get one, I'm going to pay for it. I'm not making any money to get that or getting a free one. But they look cool, and they use that really snazzy monochrome display. Very retro. So, go check that out. And let's see. Next up, let's check in with our Discord. If you're wondering where the chat is at, this is it. We've got a Discord server with, I think, something like 25,000 members or something like that. There's probably a robot command you can type in to ask the number of members in there. It's like, question mark members? I don't know. I won't test that, but maybe one of you will. And head to theatafru.it, that's our URL shortener, atafru.it slash Discord. You'll get an instant, whoa, we've got 30,100 plus members. Thanks, Mr. Certainly. Instant invite, if you head to the live broadcast chat channel, that's where we're hanging out right now. But we have a whole bunch of other channels from everything from announcements, pet photos, off topic, help with CircuitPython, Arduino 3D printing, help with audio, Raspberry Pi, and on and on. Much members, Andy Calloway, that's right. So head on over there. That's where a lot of the chat's happening. I also see some people over in the YouTube chat. Hey, F-A-Z. Hey, Ronald Bone. Nice to see you, Gary T. Welcome. Thanks for joining us. Let's see. How about, looks like no questions. Everything's good. Lars is lurking. You know what? Lars is back there, and Lars has a untitled goose game goose sitting on his head for some reason. Not sure why. You see that? Right there? I don't know why. I don't know what's going on. I think my daughter had something to do with that. Okay, so next up, let's do a little CircuitPython Parsec. Why don't we? Let's get all set up for that, huh? All right, I'm game. For the CircuitPython Parsec today, I want to show how you can read a capacitive touch pin or pad on a CircuitPython device. So here I have a CircuitPython, or rather, here I have a Circuit Playground Bluetooth, and this will work on nearly every microcontroller board that has capacitive touch pins, which is most of them. And the way that this works, you'll see that when I touch one of these pads here, it is both lighting up a little LED right on the device to let me know that I've pressed it, and I'm printing out to my little serial REPL display there, cap pad touched, cap pad released. So that works entirely on capacitance. In fact, it doesn't even require contact. You could put a piece of paper over that. It still works. And it's a super useful way to do input. Here's how it works in CircuitPython. And here's how it works in CircuitPython. It's really simple. I'm importing the board so that I get pin definitions. I'm importing touch IO. That's what we use for the capacitive touch. And in this case, I'm also importing digital IO just so I can light up that LED. Then I set up one of the pins as a touch IO pin with this command touch IO dot touch in, and in parentheses, the number of the pin. I'm using board A5 in this case. Then I'm setting up the LED. I'm setting up a little state variable called last touch. So I know when I've touched and released. And then during the main loop of the program, here's all that happens. We watch that touch pin value. When that value goes high, it means it's been touched. And then I can do some things. In this case, print out the cap pad is touched. And then I'm also lighting up that LED and flipping my state change variable. When I release, it says if the touch value is zero or not, so if not touch pin dot value, and my state variable is true, then we've released it, we turn off the LED and we print released. So that is how you can set up a capacitive touch pin in Circuit Python. And that is your Circuit Python, our sec. Once again, by the way, I want to say thank you to your good friend and mine, Mr. Todd Bot, Todd Bot in our Discord, who has a great Circuit Python tips and tricks page, which is one of my one-stop shopping places to go and grab cool tips that I can share with you all. And that is on Todd Bot's GitHub. So if someone can put that in the chat, that would be great. I can put it in if no one finds it or just Google for GitHub, Todd Bot, you'll find it. Dexter Starboard says Funhouse has CapTouch, that's right. The CapTouch pads on the Funhouse, in fact, are exposed out front on these little three ravens or crows here. I forget which they are. Those are capacitive touch pads, and you can see there's silk screen paint on top, and yet it still works. So it's not based on closing a contact. All right. So let's take a look now at this kind of upcoming project I've started working on. If you recall last week, I started showing how to design a switch plate for mechanical key switches. And the example that I was showing is this sort of big honking number pad sort of thing that I'm building. Interesting thing about this is that it is going to have non-1U spacing on it eventually. So let me look for some other props. Do I have a single, let me grab a thing off of my wall here. Where did you go? There it is. So this was from my product pick show. That is a 1U switch there. I'm going to shoot this on the overhead, in fact, so give me a second to do a little setup. This certainly says they need more chats open. Wow, a lot of chats. Thank you for moderating. We appreciate it. Let's see. I'll pop over a down shot camera there. Hey, why'd that get so small? One second. Wait a second. There we go. And you're okay. So we can unplug this in fact now. Lots of blue tack holding things on. So this is the spacing of a single key switch and key cap called 1U or one unit. And the generally accepted spacing for that is three quarters of an inch or 19.05 millimeters. That's the spacing you want from center to center for a 1U key or key cap. And so these here you can see these are 1U, one unit. But if you look at the keyboard you have in front of you, there are probably some weirdo keys that are multiples of that. So there are or fractional multiples. So you'll find 1.25, 1.5, 1.75, 2.0, 2.25. I think this shift is maybe 2.25. This spacebar is like 6.25. So there's a lot of different sizes that these can be, which means we're not on a grid anymore, which is a little weird, a little scary. So one of the things I'm working on is a setup for building those layouts when they aren't 1U. And in fact this numpad I'm building is going to use some 2U. I believe these are 2U for the enter key, that big zero, and this plus key. So those ones are going to need different spacing. And then there's this one, which I think is 1.75, which is going to have to go down here. And it's not quite going to match up there. So I'm not sure if I'm going to do that or not. I realize that that's not an aesthetically pleasing spacing. So since we want to build things that are not on a grid, that's actually why Lady Aida built this snap apart ortho keypad. So this thing is, let me check my focus here real quick. Peel that blue tack off. That's bugging me. Let's go grab focus. That's better. So you can see that this has the connections between the keys that are necessary to do the diode matrix as well as the neopixel strand. So all of these are connected on traces that are running through. In fact, let me go to the big down cam here. Put me in the corner. So these, is that still not in focus? It's hard to tell when I'm focusing it. You know what? Hold on. That camera is at a low resolution. That's partly why. Hang on. Hang on. We have the technology necessary to fix this. Watch this. Zoom. High resolution. Yeah. So what we can do is snap these apart and lay them out pretty much in any spacing we want. So you could do something like a hugely ergonomic keyboard that's mounted inside of two halves of a couple of bowls and have like a crazy kinesis type of thing or a big weird tower or put them on your pants. I don't know. But I'm going to go a little simpler than that and eventually just snap a few off of one row so that I can do that 2U spacing on the end there and down here at the bottom where I need to. So first step of this is just using the thing as it is. So that's snapping apart without doing anything weird. So that's what I wanted to do today is take a look at how to just set this up and use it with a microcontroller. I'm going to use the Feather RP2040 which is lovely and available and we have enough GPIO pins to deal with the number of columns and rows that we have here. So I'm going to jump over to the Chrome browser again for a second and let's take a look in the learn guides. Just type in ortho in the learn guides and you'll see there's this ortho eight of root NeoKey five by six ortho snap apart guide by Catney. By the way I am still curious if there's like an engineering reason I should just ask Lady Aida why this is being called five by six because I always think of things as width height resolutions of graphic images with height. Your dresser is this many inches by this many inches in the depth. I'm sure there's a good reason actually as someone pointed out to me video you often talk about vertical scan line resolutions if you're just talking about 720p for example but when you talk about the actual thing I always think of width and height. Anyway we'll call it the five by six it's printed on there so Lady Aida wins right there or you can just do that turn it sideways. Now it's five by six. So this guide goes into how the ortho keypad is set up and actually I'll give you a brief aside ortho why is it called that. So let's look at a plonk keyboard. It's called PLANCK. So plonk keyboard where is here's OLKB. So these keyboards here's even a video what's a plonk keyboard. These keyboards are ortho linear they're called which means they don't have a staggered rows of a more typical keyboard. They instead are on a grid so when you're typing you just go straight up instead of off at diagonals and there's actually some pretty good research I've seen saying this is more effective more efficient easier to learn it's not too hard to relearn I don't have one I haven't used it but I'm going to build one and I believe there are claims that the staggered rows we use are just literally a holdover from how you have to fit the mechanical typewriter arms that all of those arms running off of the keys to their pivot to the strikers they can't be straight in a row so I don't know if that's true or not you probably make little bends but so an ortho or an ortho linear keyboard just means it's on a grid so you can you can look into that that's just one company who makes them there's a lot of people who make those out there and so this goes over the layout here if we look at this pinout page you'll see each of these squares on here mini PCBs on the one main PCB they have the kale sockets so that we can plop in a key switch so I'm just gonna try not to bend um wiggle wiggle there we go uh you couldn't see that sorry so I've got a key switch popped onto those two little key sockets that you see there and then they have this neopixel and these are south uh some of these sometimes these are made on the north but you can flip it around like that and use it that way if you want uh they have to be somewhere so those shine up through usually a little light pipe or hole in a key switch it's pretty standard to have have those in key switches uh so that's one string essentially of neopixels and you can see those are running through some traces in this zigzag pattern so if you were to just light them up one at a time like a typical neopixel row you're going to get that pattern that snake snake kind of pattern uh and then you can see here there are um redundant pins for the columns and then there are redundant pins for the rows so we can read a column and a row to determine which key is being pressed you can see here there are also uh in pins for the signal for the neopixel data line and then that's going to be tied to each consecutive one on the out now you don't have to wire uh any of those neopixel connections on here until you start snapping things apart and moving things over so by default those are um all wired to each other and we only need to put a single in data pin power and ground at the beginning of the chain and it'll from your microcontroller run all the way through uh but they're there in case you start breaking stuff apart that's how you re rewire that circuit uh there you can see the top and bottom uh pin rows the left side is the voltage in which will typically be three volts or five volts depending on the microcontroller more likely three volts these days uh and there's a couple ground pins there as well that are shared for neopixel and matrix then if we take a look at the next page on using this with circuit python you have a really nice diagram that catney made on uh if you're wiring up this whole board here's the connections you're going to make and i'm going to make at least some of these today just to see if we can get it working get it started so we have uh a i'm going to take a look at this large blow up here you can see this shows uh we're going to run three volts so three volt or volt in we're going to run ground to ground that's it for power connections and then we have a neopixel in pin uh which is which one are we using for that uh board d five to this snap in so you can see here board d five this green wire is running to the top middle pin there which is how we're going to um run the data line the beginning of the data line for neopixel and then the rest of it runs through uh and then every other connection you see here are sets of columns in row so pairs pairs of uh digital input pins on the microcontroller running to a column in a row column in a row column in a row column in a row column and so if we uh scroll around this image here actually let me go back to this page where it's a little smaller uh you can see we just fan out getting columns and rows all right uh so let's see beyond that uh when we want to code it we can use our uh keypad library which dan halbert wrote and this makes uh easy work of keypad matrix keypad shift register or straight gpio uh per pin switch per pin type of uh keyboards like the macro pad is but this one is way more this is uh 35 switches throughout my math rate 36 36 switches uh six times five right uh 30 30 switches not so good with a quick math uh so we have 30 of these we can't do 30 gpio pins on many microcontroller boards other than uh something like a grand central uh or a mega so we're we're definitely going to use the diode matrix capabilities here and the board actually has the diodes uh built on so it's a matrix with diodes to prevent ghost key switch um presses which is when you press one but it registers multiple uh so the code here imports board for pin definitions imports keypad so we can use all of that good easy uh helper code for for reading the the key matrix and then neopixel as well and you can see this is the key setup right here keys equals keypad dot key matrix and then all of the row pins are called out by name and all the column pins are called out by name then uh we define uh a key to pixel map so that you can do uh light up per neopixel per key if you want to you don't have to do it that way uh and then we uh let me go down to the main code here in the main loop here while true key event equals keys dot events dot get so it just checks for any key events happening on the diode matrix uh and then the um key number is returned and then we can use that to light up a neopixel or do whatever else we want uh so let's see let's start getting some of this setup so i'm gonna put this large screen up on my window so i can see it and then i'm gonna head over to the work bench and uh let's see what we can do so hold on i'm gonna make a screen i can see from over there i should have grabbed a laptop or an iPad but i didn't um and let's get started so hey that's more cameras than i meant to have viewing right now let me turn this one off here goodbye me there we go so i was thinking with this one um i have a couple of these uh boards i've left all of them over here so let me grab one and for testing and maybe for um the construction of the the final thing ultimately what i want to do is make it easy to test some stuff out and uh easy to change some of the wiring and change some of the uh the placement of things so what i'm thinking of doing is attaching some angled header pins where i need them uh under the board so for example i'm gonna break off a row three of these and if i need to use the uh v in column and uh neopixel in here i'll have those ready for some header sockets to plug in while i'm doing testing on breadboard so i'll take this type of uh i love these um sort of soft flexi silicone covered wires so if i place that right like that i'll be able to run that to my breadboard without soldering a wire directly to this um and which gives you fewer options later and if i want to make a carrier board or something like that later i can use a uh some kind of like angled headers to get back down to a pcb so this will be uh this will be interesting for i think for testing purposes and what i'm going to try to do is um at least make like a little mini uh one of these right now rather than solder everything onto there because i think we'd all get tired of that so let me see if i can control my computer over there with this uh yeah there we go that'll work so i've got trackpad over here that i'm using to change a monitor out so what i'll do is uh let me fire up a soldering iron here i've got one of these little pen ones that run off of usb-c they're really nice and uh i can probably just place a few of these to keep everything level even though i don't need these sets of three everywhere set a few in the corners and i'm just going to solder the one i need so something like that uh and then i'm going to try a very tricky maneuver here of flipping it over without making those fall out put some fingers on there flipping it over setting it on the edge of my workbench sliding it on and there we go make sure i put those facing out it's pretty good except for one that missed let me grab a little pick tool to flip that i could have used some tape or some rubber bands or some blue tack too uh but i did not okay that's good but now i lost this one so that's the one that matters let me try to get that back in place without i see you under there all right that's not a puzzle game that i'm going to win there we go whoo all right was it worth it i don't know sorry you couldn't see that fun game okay so i'm going to solder this uh little set right here and i don't have a fume extractor here but i do have a fan blowing from my hvac that is going to disperse those fumes pretty rapidly okay uh so let's see i will um i almost wonder about soldering in those corner ones now i'll leave them because when i start breaking stuff apart i i won't be as happy with those there okay so that one i need and now i'm gonna uh take a set of uh just two and what i one thing i like to do let me sorry let me zoom in here we can get a lot closer uh one thing i like to do with these if i'm doing um if i have a set of three holes there to work with and i only need two of them is rather than it's really terrible to try to solder individual ones sorry let me grab some needle nose pliers um but what you can do is if you have a reason uh to not include one if you're ever trying to um make sure you don't actually accidentally plug into something you don't need you can pull a pin uh right out from there and just end up with with two uh i'm trying to think this is yeah i can flip this over now i'm not worried about those that is an alternate in for um the neopixel data and i'm not going to use that so i think i will signal that to myself so i'm not wondering later hey what are you trying to plug into there so i just remove that pin just drag that right out of there and now we can solder in a pair uh now i think i'm going to end up i don't mind hanging these off the edges um i don't want to point them inward that'll become messy and you can see we've got this uh little space about i think it's like 10 millimeters spacing there's not 10 millimeter what is that for uh i've lost all rulers oh i i moved them that was bad idea uh so this this little border here let's call it five millimeters uh it doesn't exist on the sides but i'll probably add it when i do a case for this so i don't mind hanging these off the edges here so let me place that right there is that the limit yeah that's as close as i can get with this uh so let's go ahead and solder that in all right uh so now we've got uh that's ground up here is power and in fact i'll start connecting up some cables to these luckily i've got a lot of them so let's do power right here and we'll do ground over here my only uh desire for these um cables that we have is i wish they came in more colors because we just get four colors with these i could use eight easily especially for a project like this so now we're going to use um let's see this up above is going to be a row this uh this pin right here so we'll place a cable there and this is going to be a uh column and the neopixel so we'll do a column in yellow just so that the columns and rows are different colors uh and then for the neopixel i'll probably just go ahead with another yellow cable now just so i don't get confused later i'll go ahead and plug my neopixel cable into this pin d5 on the uh rp2040 feather so i think that's yeah that's what we're using there and then i can go ahead and plug power to 3.3 volts by the way this um feather rp2040 one difference between it and uh some of the other feathers is that it doesn't have a v reference voltage uh it just has two 3.3 volt next to each other there uh then i'm going to plug in ground to ground like so uh yeah we can go ahead and plug in the first column in room in fact we'll just do a couple of them and test and see if we can read four keys um i'm not sure if that'll work or not we'll find out so let's see this uh column is going to go over to pin 13 and this row is going to go to d4 okay so the next one we're going to do is just this single pin uh right here so uh for that i think i'll go ahead and i think i will solder in just the set of three it's going to be a pain to deal with singles i don't know making this up as i go along so hopefully we end up with a happy result if i put that in the right way yes and then i'm going to do a row and then i'll go over uh and we'll first of all i want to take a look at discord because i can't see it right now in case people are screaming that something horrible has happened to my audio i'd love to know uh but first let's do one more uh row here so and then like i said all of the traces exist running through these little mouse nibble ready snip off points uh there's actually some tiny perforations there to make those a little easier to snap apart uh if you snap them apart you'll then be bridging connections that currently exist uh okay so let's do one more column and row so i'm just going to use the same color scheme here uh so this is going to be the leftmost pin here and this will be the top most here and these ones go off to 12 and 12 for the column and the row goes to are you going to a three looks like i think i got that right all right so uh why don't we pop in some key switches sometimes you'll test you'll want to test things like this without any components added in case you've screwed up and bridged power and ground but uh key switches are pretty uh immune to problems the only thing i'd be likely to do is fry out uh neopixels if something was done horribly wrong these are some kale box black switches which are linear like a red but a little stronger a little stronger spring in there and so all right i'm gonna bring this over and i'll check the chat and see what's going on where did you go chat there you are hi chat uh is there any reason you could not attach the headers with the pins go under the board keep the square form out without having the you could totally do that uh cryorix uh so the the question is would you just put pins straight up into it definitely can i was actually just trying to keep a lower profile when you put a pin and then the cable into it you add a decent amount of space that i didn't want to do so i was trying to keep things level but absolutely that would work as far as this circuit goes um untitled lars game yikes okay good i don't see any panics happening in the chat right so uh let's take a look then at uh setup for this i'm gonna go to the circuit python setup part of this and let me put a little um down shoot view like that okay so what i'm gonna do is i'm gonna take this here feather rp 2040 and see if i can reach it with this usb c cable boy i love usb c just because i'm not constantly flipping it over three times to match polarity so uh what i'll do is uh i'm gonna hold down boot select and then press set i'm not um sharing windows of it i now see a rpi i Raspberry Pi rp 2 drive show up that's the feather and uh in my browser i'm gonna go to circuit python dot org downloads and if we do rp we get the feather rp 2040 uh i'm gonna actually double check the guide to see and catney i think is in the chat do we have a i'm going to use the circuit python 7 i think i think that's probably not a bad idea with this i don't know if you mention it explicitly but so let's get circuit python 7.0 point oh alpha five i'll download that uf 2 and it's downloaded now i'm gonna go ahead and drag that to the rpi drive it will um flash it and then restart uh and then i i think keypad might be baked into that let's find out this is kind of a fun uh fun way to find out without even heading over to uh to a web page to to look at it i'm instead gonna let's take a look at this view here uh i'm gonna go to chrome or uh atom rather and this one is probably that and let me open and see if there's any code on it that's not the right drive this is okay that was uh okay that was just a memory display stuff i did on that one great so what i'll do and just to prevent problems i'm gonna unplug i started using a macro pad as my camera switcher but i haven't uh done the shenanigans to prevent it from showing up as a drive thing yet uh so let's take a look in the repl here i'll do import board dirt board that's going to show me uh all the pins that are on the uh rp 2040 here that looks right right uh and then to check the libraries that are on it can i check that on the board now i can't remember uh does that have yeah you know what this is a i don't think it is okay this is a bit of a diversion i don't need to take but maybe i'll do that another time as a as a tip when i remember uh how to check which libraries are baked in so what i'll do is back in uh here i'll go to the top hit libraries i'll download the bundle version seven or i can use bundle fly why don't i do that so if we look at the uh code here in the guide circuit python usage this example here has download project bundle uh let's see that's a four by two okay we'll change that a little bit to just be two by two i think that should work so when i hit download project bundle we're going to get a zip file i'll unpack that and that'll include code and libraries so again you won't see this part but i'm going to go ahead and uh drag the contents of that code and library directory to my circuit pi drive here circuit pi drive paste two items dur that's right uh replace replace i'm just overwriting some stuff okay so let's jump back here and see if we run the code just reopen that in case i do anything wrong okay so i'm going to set two rows two columns uh the neopixels on d five yes okay the row pins this is a little different than what i was looking at for that full example so let's let's change those so uh column is d 13 and d 12 oh i have that okay uh row is d 4 a 3 oh it is right okay so i can just get rid of those two uh number neopixels should be four i don't know if there's anything else to change in there so i'm gonna hit save and let's see what happens hey so we've got key zero pressed released key one pressed released key two pressed released key three yay we have success i'm very excited about that uh so that is the uh the real time hey does this stuff really work if you just look at the guide in fact it does so hats off to dan halbert for this wonderful uh library that we're using and thank you so much catney for the very clear uh instructions in the guide there uh so now i think all that's uh that's going to remain is to either wire up more of this or i may stop um adding the pins until i do a little bit of my modification of the layout um so to get some of that two u keycap size spacing uh that i want to do for these you can see that that just doesn't work those those those don't fit like that and you can't just offset them like this so uh there's some pretty specific spacing that we'll have to do to get that to work and that means i'll be removing some keys and uh snippet them off and rewiring them so uh that's that's going to be oh does someone say the led mappings are off oh totally off whoops hey thanks for pointing that out uh jim neal let's fix that okay does anyone see the problem in the code i'm guessing someone did uh let's see uh someone tell me what what you see let's see uh where is the oh sure that makes sense actually right because one two three four one two three four yeah yeah okay so uh the full keyboard goes neopixel zero one two three four five so zero one two three like that so we need to do some remapping here uh unless i were to cut right there and and cut uh or rather re uh jumper that over to this side then we get one two three four um so i guess i won't deal with that in code we would just have to make like a little table that says the neopixels that we're lighting up are not um zero one two and three but would be zero one seven and eight right that's it so thank you good good catch there uh jim neal over in the youtube chat and uh sorry for anyone with um if i'm triggering your ocd with that right there where well that's kind of upsetting all right so i think that's gonna do uh let me know in the chats if you have any thoughts or questions about this i'm gonna go ahead and uh work on my layout stuff over in grasshopper uh and rhino so i can get the the spacings or parametrically so i don't have to just hand hand model that uh and then i'm gonna laser cut myself a nice key plate or three print one uh and then i'll be able to um essentially support the boards with the key switches and key plates from the top and then i'll probably do a bottom plate that screws in and nestles them in there so stay tuned that's what's coming up next i'm also still working on my macro pad for minecraft um and i'm gonna try to commit the code real soon and get the guide out there so that you can do minecraft shortcuts on your macro pad one other brief uh announcement i will point out that hey look macro pads came back in stock this morning and we have 40 left so if you were uh someone who did not get a um ate a box but you saw the ate a box unboxing last night and thought my gosh i'm really dying to get my hands on one of these now's your chance i believe you can get both this uh bare bones macro pad and you can also get the hardware add-on kit um um so those are those are available right now uh and there's a max of one per customer so they should we'd love for each person who wants one to get one and not uh not have people collecting too many all at once right now we'd be happy for you to do that in the future when we get uh more of them in stock but uh so i just wanted to mention that uh and i think that is it yeah so hey thanks again for stopping by i appreciate it and uh i will be seeing you next tuesday for my next product pick of the week and uh then probably continuation of this project next thursday as i build this out so that i can finally have the gigantic numpad of my dreams i still haven't asked my mom if it's okay that i kept these keycaps but i think she's okay with it maybe i'll check now after the show if not i'll be buying myself some dsa profile double shot keycaps because i love them all right uh thanks everyone for watching and i'm john park for eight of fruit industries this has been john park's workshop and i will see you next week goodbye