www.robkerr.com
www.robkerr.com

mobile development, cloud computing and building great software

Rob Kerr
Author

Addicted to coding since writing my first programs for the Commodore computers in the 1980s. Currently working as an independent contractor focused on native iOS development.

Share


Tags


Twitter


www.robkerr.com

60% Custom Apple Mechanical Keyboard Build

Rob KerrRob Kerr

I started using computers in the golden age of keyboards -- which in my opinion is from about 1985 until 1995. To this day, if I'm considering a new computer, the first thing I do is some touch typing on the keyboard. If I don't like the keyboard, I really won't go any further. Since 1995 I've actually liked very few newly made keyboards, sad to say...

I understand most people aren't that picky about keyboards, but since I spend so much time typing (10+ hours a day), I'm picky. Unreasonably so...

I love old mechanical switch keyboards, and I type on them every day. I have a collection of favorites...Among them an IBM Model M, a Northgate Omnikey Ultra, and every mechanical keyboard Apple made for the Macintosh line. But my "daily driver" is an Apple AEK (M0115) made circa 1987 that I restored to "better than new" condition. Here is this beast of a keyboard:
I love this board, but I have to admit, it's just enormous! It takes up loads of space, and my mouse is a mile away from the keyboard's home row...which I don't like at all and is just a bit annoying to me. But the sound and the feel--just amazing.

Quest for the Perfect Board

The perfect keyboard has until now alluded me...I love the mechanical keyboards made in the 80s/90s...the feel, the sound, the precision...but I like modern, compact form factors which are just more practical. I mean...do we really need function keys? Do I really need a 10-key on the right side? I understand why most people want dedicated arrow keys, but with thoughtfully designed Fn-overlays even dedicated arrow keys aren't really necessary.

Hooray!

Finally, thanks to a custom PCB I ran across on Geekhack, called the Alps64, I saw that I could have the best of both worlds -- 1990s mechanicals (and nostalgia!), 2017 form factors, and complete customization.

The catch is...I'd have to build it myself.

A note on customization

For those who use any kind of laptop keyboard, you have a "Fn" key, that allows certain keys to have more than one function. For example, a MacBook has an F1 key that is used to dim the screen, or if you press Fn-F1, it acts as the actual F1 key. That's an "overlay".

The Alps64 has seven possible overlays, and is fully user-programmable using the TMK Keymap Editor. Seven is way too many, but the point is if you want to have more than one "Fn Layer", go for it (I use two).

Firmware Programming Layer 1

Build Objective

The objectives for building my perfect keyboard were:

  1. 60% form factor (having 60 keys, no nav cluster and no keypad)
  2. Alps keyswitches -- I prefer both "tactile" Orange made by Alps in the 1980s, Blue Alps or White (either Alps SKCM or Matias clones). I'll mention my inability to choose between these later...
  3. PBT Keycaps with Apple Macintosh legends having that Univers Condensed Thin italic font that they haven't used in ages.
  4. Key layout matching the 1987 Apple Extended Keyboard M0115
  5. Fully user programmable keys and layers

I like the 60% layout because:

  1. The amount of desk space it needs--barely any at all.
  2. Keeping the mouse within two inches of the Return key on the keyboard is simply better ergonomically. I find that leaning over to my mouse/trackpad makes my shoulder and elbow ache after a few hours.
  3. 60% is the only keyboard size you can realistically toss into a backpack and take anywhere.

Which switches? All of the above!

After much internal debate, I decided I'd never be able to choose whether to build this board with tactile (orange) or clicky (blue/white) switches...so I decided to build both of them. Plus I built a third with Alps Cream Dampened switches, which I don't enjoy typing on as much, but are a bit more considerate to use in a shared work environment, library etc.--especially around poor souls who grew up with rubber dome keyboards that make barely any noise at all.

Bill of materials

  1. PCBs from Hasu's Geekhack project. These are custom made and shipped from Japan. Luckily I got in on a group buy drop in January, and had these parts in February. In the meantime, I had to start sourcing vintage boards to use as donors for the other parts.
  2. Alps Orange Switches. I actually have three M0115 AEK boards that could have donated the switches...but since I think the M0115 is the best board Apple ever made (and is somewhat rare), I couldn't bring myself to sacrifice any of them. So I found an Apple Standard Keyboard (M0116) in poor overall condition (i.e. really cheap to acquire), but with good switches. Check.
  3. Blue Alps Switches. Blue Alps switches are very rare (and ridiculously expensive when found), but they are the best clicky alps switches, and this project needed only the best. It took months, but I finally was able to source a 1987 Ortek keyboard in HORRIBLE condition, but with Blue Switches. A third of the 104 switches are not working very well but I only needed 60 good ones, which I was able to find in that board.
  4. Plates. Apple AEK II (M3501) boards donated plates. I didn't feel the same hesitation as I did about the M0115. The M3501 boards are plentiful and cheap, and I easily found them in "non-restore-worthy" condition to use as donors for steel plates.
  5. Keycaps. The AEK IIs that donated their plates also donated their keycaps.
  6. Cases. The new boards would need cases. Since I'm really looking for these boards to be a 60% version of the old AEK models, I went with plastic since the old vintage boards also use plastic cases. I used Sentraq plastic 60% cases, which worked out perfectly.

Preparing Parts

Parts Prepared

Cutting the plate

I really was going for the same feel and sound as the original M0115 AEK, so I cut the original plate down. This actually went really fast with a zip saw and a bench clamp.

After the zip saw, I used a bench grinding wheel to finish the shape, knock off the sharp edges and any surface rust. Then to finish up I re-painted it satin black with a Rust-Oleum spray.
Steel Plate Cut

Assembling the board

Fast forwarding a bit...the Alps64 as delivered needs to have diodes soldered in to every switch position, and then of course the switches are installed in the steel plate and soldered to the PCB. Actually, I found installing the diodes took longer than installing switches. But both operations are simple, and anyone with patience can handle this level of soldering.

Here's the front of the Orange switch board after all soldering is completed.
Switches Installed

And the back-side of the board
Soldering Complete

Once the soldering was completed, I ran a quick test by connecting the raw board to my laptop and check that all the keys register as expected. Afterward, it's time to load up keycaps, mount the board in the case, and customize the firmware.

A fortunate aspect of cutting down the vintage steel plate is that all the stabilizer hardware is on-hand and correct--all parts are just going back into the same plate they came from.
Loading Keys on Alps Orange Version

And loading keycaps on the Blue Alps Switch board.
Loading Keys on Blue Switches

And here's the board installed into the Sentraq case, running through final tests on my laptop.
Finished Keyboard

And finally, the family of three keyboards Blue Alps, Orange Alps, Cream Dampened Alps

Family of Keyboards

Firmware Programming

Like most of the custom PCBs out there, this board is "programmed" using a web-based GUI Keymap Editor. This couldn't be simpler...you point and click to choose what each key does, then download a binary file to flash onto the keyboard using a DFU utility. That might seem a little techie, but if you can handle soldering, flashing firmware is within grasp.

The DFU utility was pre-compiled for Windows, but not for macOS, so rather than compile my own from source code, I downloaded the Windows version in a Parallels VM, attached the keyboard to the VM, and flashed it that way. That worked fine.

Results

Since I type on a vintage Apple AEK M0115 board every day, I can attest that the 60% custom board with the cut-down steel plate, vintage orange switches and vintage PBT keycaps feels exactly like typing on the M0115. I'm super happy to have the same experience on a modern form factor that I can slip in my backpack and take on the road!

There's really no direct comparison for the board with Matias Click switches -- Apple never made an AEK (or any board that I know of) with Clicky White Alps switches. I can compare the 60% Matias Click board with my AEK II that I retrofitted with Alps SKCM click switches (harvested from a non-working Omnikey). The Matias board feels very similar, maybe a little louder and has a little more ping (coil spring vibration) than the AEK with the Alps white keys from the OmniKey board. But it's very satisfying to type on, and I really love it.

Overall, I'm delighted with the outcome of this project, and can't thank Hasu enough for going through the trouble to design and manufacture the AEK layout compatible PCB boards that made these builds possible!

Rob Kerr
Author

Rob Kerr

Addicted to coding since writing my first programs for the Commodore computers in the 1980s. Currently working as an independent contractor focused on native iOS development.

Comments