Building a DIY Stenographic Keyboard - Part 1

I'm attempting to build a stenographic keyboard - this is Part 1 of my attempt - There is no guarantee that it'll be successful so there may no be a part 2!

I found the really interesting software Plover and the Open Steno Project which is attempting to make stenography open source. I've tried the Plover driver and had reasonable success using a mechanical keyboard (a Technnet X705) but felt that having proper stenographic keyboard would be much better as trying to use the keys on a standard keyboard is a little bit awkward.

Steno keyboards cost an absolute fortune - hundreds or thousands of dollars for the ones I found - so that was not an option. Enter my 3D printer and a spare weekend!

The first step was to put together a list of components:

  1. A layout showing what a steno keyboard looks like Note: I'm only building a keyboard with these keys at the moment as a test - A real steno keyboard has some extra keys such as the number bar.
  2. 22 Mechanical keyboard switches
  3. 22 Keycaps to go on the switches
  4. Some sort of case to mount the keys on
  5. Some electronics to make the magic happen!

I did some research and found that the Teensy 2.0 board could be used as a keyboard controller and supports NKRO, if you add diodes, which is essential for a steno keyboard. Note: with only 22 keys, I could probably get NKRO without the diodes but I may want to expand this in future.

Playing about with ideas for the switches and keycaps, I decided to buy a cheap mechanical keyboard and use it for parts. If I mount the switches correctly, I can get the spacing of the keycaps correct.
I bought a Zalman ZM-K500 USB Mechanical Keyboard from Amazon. When I tried it, I found that the 'A' key didn't work - I'm not impressed with the quality control at Zalman!

Zalman ZM-K500 Keyboard

I pulled the keys off and played about with layouts, and with sanding the letters off the keycaps.

Laying out the keys

I desoldered the switches (a solder-sucker made this much easier!) then started taking some measurements to let me design the case.

Measuring the switches

I then printed a quick test on my 3D printer - it turned out the holes were too small so I increased both dimensions by a mm (13.5 x 14mm) - I deliberately made the measurements smaller so that I could adjust the hole to make the switch a tight fit.

Test print

I then did a quick design in Sketchup and exported it for printing.

Sketchup model

The print took about 10 hours to run, so I left it printing overnight.

Printed case before cleaning

After cleaning up the print, and shaving the inside of the holes to get the switches to fit, I tested a small group of switches and keycaps to make sure they fit correctly and the spacing was good. I had already decided that the big buttons were too large on my original layout so I swapped them for slightly smaller keycaps.

Test fitting keys

The keyboard actually looks good with all the keys in place.

All keys in place

In Part 2, I'll start wiring!

Home Icon of a house with a precipitous roof Home