For a while, I've been interested in custom mechanical keyboards and the many custom configurations you can create. I've always been interested in the Elgato Steamdeck since it allows you to trigger specific actions from a dedicated button that doesn't need to be on your keyboard. For photo editing and streaming I wanted to build a Macropad to configure specific buttons to trigger certain actions and in this blog I teach you how you can build one yourself.
MacroPads are very small keyboards with a few keys. It can be used as a substitute for your normal keyboard. MacroPads can perform very specific tasks by configuring the keys. This can be, for example, saving a file, copying this file to another drive for maybe a backup, and deleting the old copy if there is already one just by clicking one button. Or it can be used to control your media, skip, play and pause audio. The foundation is being able to program and set specific actions for these buttons through software like QMK or VIA. I am going to use my macropad to set certain actions depending on the software I am in. So If I am in Lightroom editing photos, I am going to have a button to apply a preset, maybe apply a crop. A button for exporting images with certain metadata and presets is applied. The options are endless.
Like a normal keyboard, there are many manufacturers and projects out there, Macropads come in all shapes and sizes. From pre-build to DIY kits. I started looking around for an open-source project with all the source files online compared to a pre-built one. I have been working with hardware for a long time so I am pretty comfortable with PCB design and assembly. If you have never soldered or assembled hardware projects you can build a Macropad but It might take a bit longer to get used to soldering. Also, a little knowledge of Arduino or software very simple software development is preferred.
I found a project online that is called the dumbpad, it's an open source Macropad project created by imchipwood. It has been modified in a couple of different ways. Keebd made a version of this macropad with a small OLED on board. I will be explaining step by step how I modified and build this macropad and how you can build one yourself.
There are different layouts of the board available with the difference of an OLED screen, hot swap RBG and normal leds. In this tutorial we will be assembling an OLED version of the Dumbpad.
The dumbpad I build has a couple of different configurations and thereby affecting the parts list. I went with the Oled version and one rotary encoder to have a knob for things like volume control or control sliders in Lightroom. You can buy a kit with the main components for this macropad here or source all the parts yourself I will show a quick parts list and then go into every part in depth. The main instructions and project can be found on Github.
1x Dumbpad PCB
16x MX style keycaps
16x MX switches (Preffered with placement pins)
17 x 1n4148 diodes (thru hole)
1 x Arduino Pro Micro
1 x 0.91" 128X32 OLED Display
1 x EC11 rotary encoder with pushbutton (7-pin)
1 x 6mm tactile switch
Switches: you can choose what kind of MX style switches you want to use, desolder them from an old keyboard or buy a set online. I would recommend switches with the 2 pins on the bottom to have them straight on the PCB.
Arduino Pro Micro: The brain of the macropad is this Arduino Pro micro, I have been looking for a Black version with USB-C but availability is low due to the shortage. I added some links for different versions here: Europe, US
Key Caps: For keycaps, there is also such a wide variety of options. Take them from an old keyboard, or buy a keycap set. You will only need 16 keycaps, and I would recommend finding ones that are all the same height.
PCB: If you order the PCB yourself you have some customization options. I wanted to add some logo to the Silkscreen of the PCB to make it a little more custom so I came up with a little DumbPad logo and added my name to the front. This will require some PCB modification which is a little more advanced. Either way, you will have to order your PCB from a manufacturer. I choose PCB way to order 5 boards with a cost of 5 dollars. Unfortunately, I spend over 50 euros on shipping and import fees to the Netherlands. If I would have known this I would not have ordered it probably. But in the GitHub repo, you will find the Gerber file that you will need to upload to a website like jlcpcb.com or pcbway.com, and there you can customize the color I would recommend leaving all the other options default. If you need help ordering the PCB contact me!
Besides the parts you will also need a soldering iron, solder, and some cutting tool.
Step 1: Attach the Arduino Pro Mico to the PCB I soldered my header pins with the long side through the board and snapped them short, after I soldered them. Make sure you keep them straight since otherwise, you can't get your Arduino to fit. I recommend placing your headers into a breadboard and levelling the board with the breadboard and soldering the pins on both ends first to make sure it's straight.
Step 2: Solder the Diodes to the board. I soldered my diodes one by one but you can also do them all at once. Make sure to put the diodes through the board in the right position indicated by the little icon. You can band the pins around your finger before slotting them in. Then flip the board around, solder the wires to the board and snap them off with a cutting tool.
Step 3: Solder the MX switches to the board. I did not order switches with placement pins so while soldering my switches got all crooked. If you don't have the pins on the switches I am working on a 3D-printed holder to make sure they are straight. IF you have ordered more than one PCB you can also sandwich the switches between two PCBs so they don't fall out while soldering. Note: Make sure you choose the location of your rotary encoder first in the next step.
Step 4: Solder your rotary encoder. There are five different positions to solder your rotary encoder and you can use a maximum of two encoders. More information about where to place them can be found on the GitHub repo.
Step 5: Attach your OLED screen. Solder the 128x32 OLED onto your board with 4 header pins.
Step 6: Attach your keycaps. Click your keycaps on your switches.
Step 7: Flash your Arduino Pro Micro. In this tutorial, I will be using QMK Toolbox to flash the firmware file onto the Arduino Pro Micro. Download the latest release of the QMK toolbox here. Click on the assets and select your PKG for MacOs and the .EXE file for windows. I had to approve my download in system preferences on macOS.
The default firmware for the OLED firmware can be found on the website of KEEBD, which sets the keys to a simple Numpad. If you want to create your own firmware file so you can configure every key to you can use the QMK configurator. Head over to the configurator and select dumbpad/v1x_oled. Then choose a key on the bottom left layout and select what kind of input you want it to be. Once you have set all your keys, click on compile and then on the firmware to download the firmware.
You can configure multiple "layers" of different inputs for every specific key, to toggle between the layers you need to set one key to toggle between them. Configure one of your keys on every layer to go to the next one, e.g: set one key on layer zero to go to layer one (LT1 under Quantum) and do this for the amount of layer you wanna use. Make sure to set the last layer to point back to zero so you can toggle between them.
Step 8: Once you have downloaded the .HEX firmware file we can head over to the QMK toolbox and flash the firmware. Plug in your Macropad to your computer and set your QMK toolbox to ATmega32U4 for most Arduino Pro Micros. Press the bootloader button twice and click on flash. Wait for it to say Flash Complete and your dumbpad is ready to be used.
And thats it, you should have a working MacroPad. You can keep changing and configuring your macropad by creating new firmware and flash your MacroPad again. I have created a super simple 3D printed case that can be found here. I am working on a redesign of the dumbpad that has the Oled combined with hot swap and RGB leds and a new case. So follow my GitHub repository to stay up to date.
If you have problems or questions, reach out! email@example.com