Selfmade keyboard!

I got interested in making my own keyboard after seeing a few very nice examples online. There's the Brownfox, and Dave's version, and lots of examples on reddit's /r/mk community.

I decided to finish two things in one stroke and make a keyboard for my university's Creative Exploration course.

Layout

Very early on I decided I wanted a fairly minimalistic keyboard. First came some 60% and 70% layouts, which eventually evolved into a split orthogonal layout.

Final layout

I wanted to have many functions accessible without moving my hand from the homerow, so I added a lot of buttons to the thumbs. This certainly worked, but it did take some getting used to.

Materials

Ahtn's firmware looked to be perfect for this build, so I needed two Arduino Pro Micros and a stereo cable plus ports to connect both halves.

  • Arduino Pro Micro clones x2

    €9.00

  • Stereo audio port x2 plus cable

    €5.00

  • Acrylic in 1.5 and 2.0 mm

    €30.00

  • Diodes x100, too many, but doesn't hurt to have extra

    €2.00

  • Switches x 120, Gateron browns

    €33.30

  • Keycaps x87

    €15.25

  • O-rings x150

    €1.97

  • Total

    €96.52

Shopping around for switches resulted in finding a groupbuy for 120 Gateron brown switches for about $33. The switches need to be either mounted on a pcb or in a top plate. As I was planning to handwire the board and not use a pcb, I needed a top plate. This plate needs a very specific thickness of 1.5mm. I wanted to keep costs down by using inexpensive and laser-cuttable materials. It took a while to find a local source of 1.5mm acrylic. An advantage of this being a university project meant that I had access to lasercutting services.

Design

After making the final layout with the keyboard layout editor I used the useful plate and case builder to transform it into a laser-cuttable design file. I made sure to add some extra holes in the case for minor things like 'being able to plug the keyboard in' and 'connecting both halves'.

Librecad

I used librecad as my design program.

If somehow your design looks like the picture below and you can't get it back with ctrl-z, you've accidentally turned on the 'construction layer' in the layer menu. Construction layer

The first cut bit of plastic had a symmetry-related mistake, and there were some other things I wanted to improve. The second cut was much better. Using the MX cutout instead of the MX+ALPS cutout held the keys more securely.

Construction

And so, construction began.

Fitting the parts Test fitting the parts, with overly long bolts and with the protective plastic still on the acrylic.

Fitting the keys The keys all aligned and the right places.

Diodes connected A diode connected to each key and connected in rows. This allows the software to recognize each individual key, even if you press all of them at once.

Columns connected Connecting the columns. Kinda tricky to thread the insulation back on the wire, but better than short circuiting.

Helping hands are useful Little robot hands are very useful to keep your hands free for soldering. I'm not sure if this is the best way to hold sensitive electronics, but mine seem to be unhurt. Especially with the bit-of-paper.

Wires soldered to the chip A pretty, spidery mess to connect the keys to the chip.

Right half bottom All in place.

Left half bottom The pretty, spidery mess was a bother, so instead I made some pretty, straight lines.

Right half top This is what the right half looks like...

Left half top ...and the left.

Selfmade keyboard! Complete!

Firmware

Next came adding the firmware to the chips. I suppose it would've been good to do this before all the soldering, in case one of 'em won't work and would have to be replaced. The soldering was quite fiddly. They did both work, though, and are now running Ahtn's split keyboard version of the TMK firmware. I added the layout, and then I had a working keyboard!

Thoughts

As mentioned in the beginning, the many thumb buttons are a bit tough to get used to. I'm typing this text on the new keyboard, but I changed the layout to one with a spacebar on each thumb that work as function keys when held. That is the focus of my next keyboard design, and it seems to work well so far.