DIY Macro Pad Keyboard Build from Scratch with Custom PCB and Mechanical Switches

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Cool. Kind of good project for a fusion of electrical, software, and mechanical. I've thought about building something very similar for certain symbols, mostly Ω ± and °, but also ≥ and ≤. The rp2040 is a pretty versatile.

👍︎︎ 12 👤︎︎ u/biff810 📅︎︎ Oct 12 2022 🗫︎ replies

Pretty cool! The big thing about these devices, not to overlook though, is the software.

I use Stream Deck and there are a bunch of plug-ins and features that would take a long time to develop on your own.

👍︎︎ 15 👤︎︎ u/AlexHimself 📅︎︎ Oct 13 2022 🗫︎ replies

Nice!

👍︎︎ 4 👤︎︎ u/ktka 📅︎︎ Oct 12 2022 🗫︎ replies

That is some serious shooting and editing skill on top of a fantastic project. I'd love to see a KMK port of the YAMPad.

👍︎︎ 2 👤︎︎ u/sx-70 📅︎︎ Oct 13 2022 🗫︎ replies

great design, shared on r/macro_pads

👍︎︎ 2 👤︎︎ u/Result_Necessary 📅︎︎ Oct 25 2022 🗫︎ replies
Captions
welcome to the channel I am Salim in this video  we'll design and build the 12 key macro pad from   scratch we'll also add some nice features like  custom keycaps and midi support let's get started I always look for ways to improve  and automate my workflows make my   processes more efficient and  make my work more enjoyable   last year I was given this monogram productivity  console as a gift and I was really Amazed by   the difference this made to my experience  with all the digital tools I use every day   this Improvement inspired me to make my own DIY  mechanical macro pad with some special features I started with this basic sketch  in Figma to figure out a layout   and get a sense of the final form I wanted to have to give him this first one to my brother   so we'll optimize this build for his needs  and preferences he's a front-end developer   and the actions on the keys represent view of the  shortcuts he can benefit from keep in mind that   the macros are completely customizable and you can  adjust them in the code according to your needs   for the brains of this project I went with the  KB 2040 from Adafruit this little guy has the   same size and footprint as the Arduino Pro micro  a very popular choice among the keyboard makers   the RP 2040 is a low cost but powerful  microcontroller from the Raspberry Pi Foundation   compatible with Circuit Python and C++ in terms  of IO we have 20 pins at our disposal which   make this a good choice for a keyboard for the  layout I wanted to go with a 4x3 configuration   featuring Cherry MX style switches two  rotary encoders and DSA Style keycaps   I will also add some RGB neopixels to the  bottom of our PCB for a nice under-glow effect   when it comes to keyboard built-in there are  some challenges when dealing with a large number   of keys it's not the case for our project  since we have only 12 but I figured we'll   go over the basics if you're trying to build  a bigger macro pad or even a full keyboard let's say you want to build a keyboard with 100  Keys you need a way to detect key presses reliably   the first thing to jump to mind is to attach the  switch to a pin and ground and detect when it goes   low for example the same way you would do when  adding buttons to any of your Arduino projects   you repeat this 100 times and  you've got yourself a keyboard right   well yes and no in theory there is nothing wrong  with this approach but in reality if you're using   only a microcontroller in your project you will  have a limited number of pins to interact with   luckily there is an old and  simple solution to this problem   which is a key Matrix instead of connecting the  switches directly to the pins we put them in a   grid and scan for the intersecting signal  this will drastically reduce the number of   pins needed the only thing remaining now is  to add diodes in series with each switch to   avoid back-feeding the rails in producing ghost  keystrokes after we lay down the switch Matrix   in both encoders we connect everything with  Netflix to keep the schematic readable and tidy let's direct our attention now to the  under-glow RGB I mentioned earlier   we'll use four neopixels chained together for  this I was pulling parts and researching and by   that I mean looking at real Engineers reference  designs I noticed that the neopixel chips need 5   volt logic that will be a problem because our  RP2040 signals are all in three volt logic so   we need something called a level shifter we'll  place that between the microcontroller and the   first pixel the remaining three will be just  Daisy Chained and they will relay the signal all right we're done with this schematic it's  always a great idea to do a last check before   moving on with routing all the traces as  I mentioned before this is not a deep dive   video so I won't be going into the details of  PCB design I'm quite beginner myself there is   tons of resources online on the subject  if you would like to get started foreign after this step we can export our manufacturing  files they refer to as the Gerbers   we need to be compliant with any limitations the  Fab house might have check out the website of your   supplier before sending new PCB files this is  going to take a couple days before we receive   it so we'll move on now to the enclosure design  and 3D printing a great thing about using Eagle   for the PCB is the seamless integration  with Fusion 360. we can push our design   straight to the CAD software and reference  it as a separate part this makes measuring   and designing around your board as well as the  iteration process way easier and way more precise for the style of the case I went for something  with minimal geometrical features to fit well   with the aesthetic I prefer one thing to  note here the bottom part of the case is   made to be a removable via snapfit features  and it completely separates from the top   assembly this allow access to the reset  button for the microcontroller and also   allows the light to scatter unobstructed to  give that floating glow look we talked about   you can of course change this to mount the board  to the bottom if you prefer just keep in mind   that you'll have to make the key plate separate  from the top assembly if you're going for that   or parts are sliced and ready to be sent to  the 3D printer the top of the case as well as   the knobs will be printed in matte black PLA the  bottom will be in transparent PETG I found this   material to refract light the best and I was  happy with the diffusion it produces thank you   foreign foreign thank you after a couple of days the PCB  and parts I ordered showed up in the mail   I was really pleased and happily surprised  with the way this project is looking so far since this was my first PCB  experience I only had one question well this actually work well only one way to find  out let's put one together and see for ourselves if you're new to SMD soldering I have one  piece of advice for you flux is your friend   trust me surface tension alone Can Do Magic  if you use flux properly I ordered more pcbs   than I intended to finish to be able to practice  before but the first one turned out really great We'll   give it just a quick clean with some isopropyl   to remove the flux residue  and it's time to test it out first thing we need to do at this point is to  get circuit python running check out the guide   from Adafruit in the description below once we  see the Drive come back that means the circuit   python was able to boot without traffic issues  we'll head down to the qmk repo grab a copy and   get started with the firmware KMK is written  entirely in Python very easy to understand and   great alternative to the C plus plus Solutions  out there that requires you to compile and Flash   each time you want to make a minor change  the code will live on the board itself and   it will be able to change it on the Fly I  wrote this simple map to test all the traces   and it seems that I forgot to solder an entire row  of diodes so I went back off camera to repair it   seems that everything is connected correctly now  I went ahead and put together all the macros and   layers I wanted for this version Let's test  some of them and see if they work as intended one thing I found very helpful to  do is to hide the circuit python   drive by default and have to hold the  key on Startup to activate it again   you don't want the drive mounting each time you  plug your macro pad into the computer to do this   you'll have to change the boot file and check for  key presses on start before mounting the drive   be careful to not lock yourself out  in this step check out the link in the   description to read more about the boot  file and USB devices in circuit python switches before that's because they need  to go on the plate from the other side   for a better mechanical stability and to  relieve the strain on the solder joints as a Finishing Touch I did all the  keycaps Legends in die sublimation   if you're interested in doing  this for your keyboard I will   link a helpful video I found to get  you started with this process at home now let's take a look at the final result I'm really happy with how this project turned out  I learned a lot and it's been a ton of fun to put   together I will give this particular one to my  brother as I mentioned before he is a front-end   developer and he does music in his spare time so  I added an extra bonus feature for him to discover   and play with if you tap rapidly the lock key four  times you enter a secret layer where this becomes   a midi input device how cool is that I will  include all the links you will need to replicate   or mod this for yourself thank you so much for  watching and I will see you in the next one
Info
Channel: Salim Benbouziyane
Views: 381,135
Rating: undefined out of 5
Keywords: macropad, custom macropad, design keyboard, 3d print kayboard, diy macropad, diy keyboard, 3d printed keyboard, mechanical macropad, design your own keyboard pcb, make macro keyboard, macropad diy, macropad with knob, macropad build, mechanical keyboard, keyboard pcb design tutorial, macropad rp2040, kb2040 keyboard
Id: P_oSLBZABGA
Channel Id: undefined
Length: 14min 25sec (865 seconds)
Published: Sun Sep 25 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.