Whether you’re a Twitch streamer, a 3D designer, or just about any other type of computer user, macro keypads (also known as macro pads or macro keyboards) can come in handy. Acting as an auxiliary keyboard, these small devices can be loaded with shortcuts, macros, and other keyboard commands to make it possible for you to handle complex actions with a single keypress.

Instead of buying a macro keypad, why not make one yourself? We’ll show you how to use mechanical keyboard switches, an Arduino, and QMK’s keyboard firmware to get started.

The Tools and Parts

macro keyboard tools

You’ll need some tools and parts for your macro keypad build. You should be able to get them all online.

The Tools:

  • 3D printer (or a local 3D printing service)
  • Soldering iron
  • Screwdriver/hex key (to match your bolts)
  • Wire cutters/strippers

The Parts:

  • 3D printer filament of your choice (we used PLA and PETG)
  • Arduino Pro Micro
  • 8 x Cherry MX-style mechanical key switches
  • 8 x Keycaps (re-legendable keycaps work nicely)
  • 2 x M3 bolts
  • Silicon (not PVC) coated wire
  • Double-sided tape or superglue (to mount the Arduino)

How to Build a Hand-Wired Macro Keypad

Once you have all of your parts handy, it will be time to start your macro keypad build. This process can be fiddly and challenging, but it will also be satisfying once you get to the end of it. Let’s dive right into the work you need to do.

Step 1: Print the Case and Backplate

3d-printing macro keyboard backplate

First, you need to print out the case and backplate for your macro keypad. We didn’t make the 3D models for this project; we found them on Thingiverse. The Stream Cheap Mini Macro Keyboard was originally built by DaveM, though we’ve modified the approach to the soldering and keyboard firmware to make it a little easier.

macro keyboard sliced

We used PLA for the base section of the keyboard and PETG for the backplate, but you can use any type of filament you like. Ours didn’t require supports, rafts, or any other additions. It can be worth experimenting with your print settings if you are new to 3D printing, and those using local printing shops will be able to get advice for their print settings.

If you print at home, it makes sense to use the time it takes to print your keypad to work on the other project elements.

Step 2: Build Your Keyboard Configuration

keyboard layout making

Before you can start wiring anything up, you need to build a configuration for your keypad that will enable it to work properly. You’ll need to go to a couple of different websites for this. The first is Keyboard Layout Editor. You can use this site to create a keyboard layout like the one in the image above, then go to the Raw Data tab and copy the simple code found inside.

The next site you will need to visit is called Keyboard Firmware Builder. As its name suggests, this site allows you to create keyboard firmware that is powered by QMK, while also providing you with an easy way to figure out your Arduino pins. This part of the process takes a few different steps.

keyboard firmware builder import
  • Step 1: Paste your keyboard layout code into the box and click Import.
keyboard firmware builder wiring tab
  • Step 2: Make sure that the Wiring tab matches the image above; this shows a basic map of the wiring that you will be using.
keyboard firmware builder pin layout
  • Step 3: Go to the Pins tab and choose pins that work for the microcontroller that you are using (we’re using an Arduino Pro Micro). We used F4 and F6 for our two rows, and B5, E6, B6, and B3 for our four columns. This was done mostly for convenience, as it can be easier to solder wires onto the Arduino when they are spaced out.
keyboard firmware builder keymap
  • Step 4: Now it’s time to set up your key mapping. We used F14 to F21 for our keyboard, as these keys are available in macOS and Windows but keyboards don’t tend to have them. Select a key and click on the box below Configure Selected Key to choose the command you want for each key.
keyboard firmware builder export hex file
  • Step 5: Head to the Compile tab and click Download .hex to retrieve the firmware you have just built.

Keep a hold of this firmware, as you will need it later on. First, though, it’s time to wire up the Arduino and switches you’re using.

Step 3: Wire Up the Arduino and Switches

switches in backplate

Wiring up your Arduino with your switches is a fairly simple process. We started by cutting out lengths of wire in two colors. You need two wires for your rows and four wires for your columns, and we used red and black respectively.

precut switch wire

Next, it’s time to start soldering wires to the legs on your switches. Make sure that your switches are in the right positions clipped onto the backplate before you start this. As the switches need to attach to the wire at different points, we find that it is best to cut sections out of the wire insulation, as seen in the image above.

complete backplate soldering

We started by soldering the wires for our rows to the right leg of each switch, followed by the wires for our columns in the left legs. See the image above for an idea of what this looks like when it is done.

finished wiring on macro keypad

Next up, it will be time to solder the wires you’ve just installed onto the Arduino board you’re using. This process should be easy, as we’ve already figured out where each wire needs to be attached. The photo above shows how this should look when you’re finished. Just six wires, so nice and simple.

Related: The 9 Best Soldering Irons for Beginners

Step 4: Load QMK Onto Your Keypad

qmk-toolbox-load-file-cropped

Before you go any further with the build of the keypad, it’s time to load the firmware you made earlier onto your Arduino to make sure that everything works properly. You will need to download a piece of software called QMK Toolbox from GitHub to go through this process, and the installer you want can be found in the Releases section of the project.

With QMK Toolbox installed, you can plug your Arduino into your PC using a micro USB cable. This should make the board flash, and your OS may give you a notification to tell you that a device has been plugged in.

qmk-toolbox-board-connected-cropped

Now you can load QMK Toolbox. Select Open next to the top bar, and choose the .HEX file you downloaded earlier. Before you can install this file on your Arduino, you need to put your board into its Bootloader mode. This can be achieved by shorting the Reset and Ground pins. We used a small piece of wire to do the job.

qmk toolbox flash board

Once the board is in the right mode, you only have a few seconds to hit the Flash button in the QMK Toolbox software. If you are successful, your screen should look like the one above, but you can always try again if you don’t manage to flash to board in time.

Step 5: Testing the Keyboard

keyboard tester

Testing is important whenever you work with an Arduino, as you can often save a lot of time if you identify issues early on. We used a website called Keyboard Checker to test our work. This site tells you the last key that was pressed, even if not included in the graphic; perfect for a keyboard using higher F keys. Just make sure all of your keys work before going forward.

Step 6: Assemble the Macro Keyboard

arduino in macro keyboard case

It’s finally time to assemble your keyboard. Start by attaching the Arduino to the inside of the case. You can use double-sided tape for this, but we opted for superglue to get the best possible hold. You must make sure that you position your Arduino so that your USB cable can insert fully into the device.

built macro keyboard

Next, it’s time to attach the backplate to the main keyboard body. If you’ve used PLA for your print, you will be able to simply screw your M3 bolts into the holes at each side of the backplate. For harder materials, though, you may need to use a tap to create a thread. Make sure that each key works properly once you have tightened the bolts.

Finally, you can add your keycaps to the top of your keyboard and start using it.

Using Your Macro Keyboard

Most software will allow you to change the default keybindings found within, which should make it easy to use your macro keyboard for a host of different applications. You could also consider the idea of building firmware with more complexity. The website we used earlier enables you to add layers, macros, and even lighting to your keyboard.

Whether you feel adventurous or not, we hope that you enjoy the macro keyboard you make. This project is great fun, while also offering a way to learn about soldering and keyboard building.