Building Handwired Dactyl Manuform Keyboard
In this guide, I’ll walk you through every step of building my Dactyl Manuform keyboard—from soldering diodes to flashing firmware. This was my very first keyboard build, so I didn’t go fancy with customization or aesthetics (I didn’t even use a bottom plate, as I’ll explain in the Post-Mortem Analysis section).
If you don’t have soldering experience yet, don’t worry—you will by the end of this. Just be prepared to dedicate a weekend to it. Hopefully, this guide will make things smoother for you than it was for me.
Why the Dactyl Manuform?
Honestly, I didn’t have a deep reason. Out of all the ergonomic split keyboard builds, this one looked the coolest and felt closest to the Kinesis Advantage, which I admired because of its curved keywell.
Size and Layout
I chose the 5x6 layout with 6 thumb keys. To me, it felt closest to the Kinesis Advantage 360 (which I couldn’t afford).
If you’re considering this build, I recommend printing a low-quality prototype first. That way, you can get a feel for hand placement and size before committing.
Also, if you’ve never used QMK or keyboard layers before (like me), you probably don’t need all the keys you see on your laptop keyboard. Layers replace that.
Materials
Here’s what I used:
-
Key switches: 100-pack (only needed 68, but extras never hurt).
-
Keycaps: Salvaged from an old keyboard. Finding the right set for this layout is tricky, so I didn’t bother. If you do buy new ones, make sure they’re the same height profile.
-
1N4148 diodes: One per switch, plus a few extras.
-
Arduino Pro Micro: One for each half. I avoided USB-C versions since I read they can be problematic; stuck with the cheap micro-USB ones.
-
TRS or TRRS jack + cable: To connect the two halves. I went with a 3.5mm headphone jack for simplicity.
-
Wires: 24 AWG for rows/columns, plus jumper wires for Arduino connections. Jumpers make debugging easier.
Building the Keyboard
Step 1: Bending Diodes
Before soldering, bend all your diodes. Make a little loop on the anode side (the side without the black stripe), snip off the excess, and repeat for every key.
Step 2: Choosing Wiring Direction
You’ll need to pick either Row-to-Column (Row2Col) or Column-to-Row (Col2Row).
Row2Col:
Col2Row:
I went with Col2Row. Functionally, it doesn’t matter as long as you set the firmware correctly.
Step 3: Wiring & Securing
-
Solder anode side to switches, cathode side to columns/rows.
-
Tape off areas where columns and rows might short.
-
Use hot glue to secure switches in the body.
Step 4: Connecting Halves
Wire the 3.5mm jacks—just make sure the pin order matches on both sides.
Step 5: Arduino Connections
Solder one jumper per row and column, then connect them to your Arduino pins.
Firmware & Testing
-
Install QMK:
python3 -m pip install --user qmk qmk setup
create your new keymap
qmk new-keymap -kb handwired/dactyl_manuform/5x6_68
Openkeyboard.json
and check:
matrix_pins
: row/column pin assignments.-
serial_pin
: TRS connector pin. -
diode_direction
: set toCOL2ROW
orROW2COL
.
config.h
and add:#define EE_HANDS
#define SPLIT_USB_DETECT
#define SPLIT_WATCHDOG_ENABLE
Flash firmware:
Reset the Arduino by bridging
RST
andGND
.Repeat for the right half with
-bl avrdude-split-right
.
Tip for Fedora users:
to give temporary write permission.
Post-Mortem Analysis
After a week of use and ’m typing this post on the keyboard right now
-
Too many keys. With layers, I really didn’t need this many, and I think it actually hurts ergonomics.
Still adjusting. It works fine, but it’s not the “perfect” typing experience I imagined.