First off, prior to a few months ago, I had no idea what a mechanical keyboard even was. I was doing some searching on ergonomic keyboards, as I had done many times in the past (I am a CPA/accountant and spend most of my day at the computer and I have chronic pain in my right wrist and arm). But this time I somehow stumbled on something new…a whole new world, really…I found mechanical keyboards, buckling springs, Kinesis, some of the fine work by matt3o, suka and others, and finally hasu’s keyboard firmware.
All of it just came together for me and I thought, why the hell not? So I started a project to make my own keyboard from scratch. But…that project is large and involved, so in the meantime I am getting my feet wet with a “smaller” (haha) project that I am running in parallel. Several have gone before me, so there is already some good documentation and I feel on pretty solid ground. It is a rebuild of an original Apple M0110 keyboard. I’ve seen a few comments about the HHKB being based on the M0110, so I’ve decided to call it my:
Happy Apple Keyboard!
Before I had really figured out what I was doing I bought an Apple M0110A, the extended cousin of the M0110:


(I didn’t think to take a pic until I had already taken the case apart…)
I picked it up for cheap so it became my learning board. I stripped it, desoldered the PCB, took apart a few keys, traced the PCB lines to figure out how the keyboard matrix worked, etc. It wasn’t until later that I settled on rebuilding an M0110. But at least now I have plenty of spare parts!
My next step was buying an M0110. It was in sad shape, but for a price I could live with:

The stem for the 0 key was broken and the key itself was missing. I had plenty of extra switches and a 0 key from my parts board, so I wasn’t worried about that. But…when I received the board in the mail I found that the right shift keycap had been replaced with a large 0 key from either an M0110A tenkey or a M0120 keypad. I didn’t see this in the auction when I bought it so I was pretty upset, but luckily the left shift from an M0110A is the same size as the shift keys on the M0110. Crisis averted!
Step 1: Desolder original PCB


I think the PCB will make a nice bit of vintage computing art. Once it’s completely desoldered and cleaned up I plan on mounting/framing it.
Step 2: Build new keyboard matrix – rows and diodes
First, I replaced the switch with the broken stem for the 0 key. I also replaced the locking switch for the Caps Lock key with a standard linear switch from my parts board. I plan on using the Caps key as a tap(Caps)/hold(Control) key. More on that when I discuss the firmware in the next post.
Wiring the diodes and making the matrix rows:


(Credit goes to lowpoly and his “The Apple M0110 Today” freestyle wiring method)
I used 1N1418 diodes, pretty standard it seems. One little twist (if you will excuse the pun) with my method was twisting the diode lead around the switch contact, as you can see in the pics. This allowed me to prep an entire row and solder one key after the other very quickly.
Step 3: Build new keyboard matrix – columns
I used old telephone wire that I had salvaged recently. So I had 4 different colored wires to alternate. I think it adds a fun look to the matrix…black, yellow, green, red…


I used the same twisting technique to I could prep and solder several wires at once.
Step 4: Wiring the matrix to the Teensy 2++
I used some old IDE cable that I had laying around.

The cable is too short to reach all the way across the board, so I decided to meet in the middle. I was going to have 2 strips of 7 wires each (to cover the 14 columns) and another strip of 5 wires running down the center of the board (for the columns).
But…I realized that I could get them all on the same ribbon:

Matrix completed! My only gripe was the way I finished the rows on the right edge of the picture. When I was twisting and soldering the diodes I just did them all the same direction. The ones on the end should have been bent the other way. I will probably go back at some point and fix this to make it nice and clean.
Temporarily wired up to the Teensy:

A sharp eye might notice I connected one of the wires to D6, which is the built-in LED pin. I didn’t even notice until I saw the little light flashing when I pressed certain keys! And yes, it works just fine, even connected to the D6 pin. (I’ll get to the firmware in the next post…)
Step 5: Cleaning the PBT Keycaps
I cleaned the keycaps in soapy water to remove all the grime:

I cleaned the case and the spacebar as well to prep for retr0briting…hopefully this coming weekend.
I went ahead and placed all the clean keycaps back on the board:

And dremeled out the extra long Caps Lock stem mount.

This requires a steady hand and a sharp eye. If you grind away too much of the mount then the key will either sit too low or not fit as tight on the stem as it should. I wasn’t TOO worried since the Caps key from my parts board was the same size. But I didn’t end up needing it, first try’s the charm.

It fits nice and snug…no wobble. And yes, I was making homemade Christmas tree decorations at the same time…


Looks pretty good so far…
To Do
Retr0brite the ABS parts – case and spacebar:
I’ve bought all the ingredients. Now I just need some time during the day so I can monitor it while it does its thing. I live in Texas so I should have plenty of light during the day, even in December.
Attach Teensy wiring and USB cable – permanent solution?
Finalize firmware (see the next post)
Oh, and one more thing… (I know…shameless)
I noticed that the M0110 keycaps don’t have any home row nubs. Traditionally they are found on the F and J keys. However, the M0110A *does* have nubs, but they are on the D and K keys…Still not sure if I will use them or not…
