How do I make a macro pad?

A macro pad is one of the easiest keyboard projects - perfect for beginners!

What is a Macro Pad?

A small keypad with programmable keys for shortcuts, macros, and quick actions.

Step 1: Design Your Macro Pad

Tell Modo what you want:

"A 9-key macro pad with rotary encoder and RGB lighting"

Popular Layouts:

  • 3x3 (9 keys) - Most common
  • 2x4 (8 keys) - With encoder
  • 4x4 (16 keys) - More options

Step 2: Order Parts (~$35-50)

Essential Components:

  • Pro Micro or RP2040: $8-12
  • Mechanical switches (9): $5-10
  • Diodes (9): $2
  • Hot-swap sockets (optional): $5

Optional Upgrades:

  • Rotary encoder: $3-5
  • RGB LEDs: $5-8
  • OLED display: $5-8

Step 3: Build It (1-2 hours)

With Hot-Swap (Beginner):

  1. Print the case
  2. Press-fit hot-swap sockets
  3. Wire matrix to controller
  4. Insert switches
  5. Flash firmware
  6. Done!

With Soldering:

  1. Print the case
  2. Solder diodes to switches
  3. Wire row/column matrix
  4. Connect to controller
  5. Flash firmware

Step 4: Program Your Macros

Using QMK Configurator:

  1. Select your layout
  2. Assign keys (shortcuts, macros, layers)
  3. Download firmware
  4. Flash with QMK Toolbox

Popular Macro Uses:

  • Copy/Paste/Undo
  • OBS scene switching
  • Discord mute
  • Game abilities
  • Photoshop shortcuts

Project Timeline:

| Step | Time | |------|------| | Modo design | 5 min | | 3D printing | 3-4 hours | | Assembly | 1-2 hours | | Programming | 30 min | | Total | 5-7 hours |

Cost Comparison:

| Option | Cost | |--------|------| | Elgato Stream Deck Mini | $80 | | Commercial macro pad | $40-60 | | DIY macro pad | $35-50 |

Why Build Your Own?

✅ Choose your own switches
✅ Custom layout and size
✅ Learn electronics
✅ Fully open-source firmware
✅ Pride in building it yourself

Related Projects

[RGB Gaming Macro Pad 9-Key
9 programmable keys with RGB lighting

Beginner$35-50](/content/projects/macro-pad-9key/index.html)
[OBS Scene Switcher Control Pad
Dedicated buttons for your OBS scenes

Beginner$30-45](/content/projects/obs-scene-switcher/index.html)