Rustic Cyberpunk

Coffee & Cabins

DIY Word Processor: Keyboard Ideas

10 min read

I've slowly been working toward building that glorified typewriter I always wanted. There are lots of these in the market as "distraction free" utilities and/or gadgets, but they always seem somewhat unsatisfactory. The fact that some are in the $250-$300 range is a bit of a downer as well.

Many of these also need some kind of cloud connectivity so I'm pretty sure rural areas are out if I want to transfer the writings as files. The non-cloud variety invariably falls into the mid 2000s school duty camp. There's nothing wrong with buying an AlphaSmart Neo from eBay, but the screen size wasn't what I had in mind. Besides that, they all seem a tad delicate.

If I'm taking my writing computer out into the woods, there's no way I'm not getting debris in between the keys. Many of the pre-made writing computers have sealed keyboards and the keys are all but impossible to replace without disassembling the whole device. Most only have replacement keyboards as one unit, not single keys.

I do still take notes on paper, but I prefer to type long-form journals since it's easier to make revisions. Plus I can take my sweet time to write on a low-power device instead of a laptop or mobile without worrying too much about battery life. I plan to have the device solar powered in the long run.

I initially thought about building the keyboard with keyswitches I can find online. In fact, the original plan was to do exactly that. Then I remembered that I didn't quite like some of the keyswitches either. And many of them seemed delicate as well. I think the problem is that they were designed for a completely different quality-control environment that just doesn't exist at the consumer level. Nor is such quality-control desired from a cost perspective for the manufacturer.

But if I'm the manufacturer, I'll take as much care as I need to get the quality I want. And we're not talking about millions of switches here.

Besides, building a keyboard from scratch can still be fun. I can also completely tailor the size, look, and feel of each key, which is impossible if I just used off-the-shelf parts. I'd also like to make the keys a bit more low-profile than standard mechanical keyswitches. Something similar to what I'm used to on older Thinkpad laptops, but without the delicate (and debris-sensitive) scissor movement or squishy rubber dome base.

I'd like to make the entire mechanism using raw materials like sheets of acrylic or HDPE; The same stuff milk jugs are made of. It's harder to glue HDPE, but there are ways around that. For a prototype, I'll probably try acrylic first since it's easier to cut and glue. Also, the materials are inexpensive so I can experiment quite a bit.

A lot of this is inspired by the IBM buckling spring keyswitch. But I'd like it to feel a bit more linear. And I'd like to avoid a separate "paddle" to work as an actuator. The least number of separate parts this has, the better I think it will perform.

IBM buckling spring in action

Since I have no graphic design prowess, and I'm writing this on the laptop, I thought I'd sketch some ideas in ASCII. It's been a very long time since I've tried my hand at ASCII art. I posted the actual text versions on Github and in a separate file since my little blog script eats the formatting. It can handle code, but not ASCII art. Caution: Tor browser seems to seriously mangle the ASCII formatting, at least for me. So you can probably save that HTML file and open it locally. Beware: There are some sites that scan the Tor network for files and cache pages locally so if you're not visiting via Tor browser, then check the file for any script tags.

The keycaps might be cut from a single sheet. That makes it easier to try out various shapes and surface profiles as well. It might even be fun to leave the tops completely blank. The key tops also act as travel stops when the key is pressed down. I think this is better than relying on a delicate stem, which might break "in the wild".

The keyswitch mechanism starts off with a hollow tube of acrylic for the inner stem.

Key stem, top and side view

There's a tiny notch cut in the bottom for the horizontal cross bar stop.

Then comes the spring guide, which I thought might still work well when off to one side. In the original IBM patent, I noticed most of the spring activity only took place in rougly half the diameter of the inner stem. It might be easier to make the spring behave if it's inside a "box guide", which is basically a smaller box tube of acrylic cut to the same height as the stem tube.

Spring guide

This spring guide assembly is then placed inside the hollow acrylic tube (stem). The cross bar stop protrudes slighly out from either side of the hollow tube, which prevents the key from popping out of the key guide. The cross bar itself is just a tiny strip of acrylic. It doesn't need to carry any weight. It just needs to have enough strength to ensure the key movement is only in the vertical direction when typing, no accidental rotation, in addition to acting as a key stop.

The spring guide is flush with the top. The stem height determines key travel height. I'd like to keep this about the same as my Thinkpad, but that might not be realistic for a DIY keyboard from scratch. I certainly don't want the key travel to be as much as a typical desktop mechanical keyboard or be as noisy.

Guide assembly inside stem

The key guide itself can be of the same material as the inner stem tube, but I think I'd like it to have slightly thicker walls. It's the surface that has to withstand the most pressure while typing. A notch is cut on either side of the tube to guide the protruding cross bar of the inner stem. Instead of an acrylic tube, I wonder if it's better to use a rod and hollow it out. But I would need a lathe for that.

Of course, this tube has to be a slighlty larger diameter than the stem so free movement isn't obstructed, but not too much because I want it to still feel smooth while typing. It also has to be slightly longer than the inner stem and its height will determine the overall key height. Again, I want the keys to be relatively low-profile. At least lower than a desktop keyboard.

There's a tiny acrylic piece glued to the bottom on one side to act as a locator. This ensures the key is straight when press-fit onto the base sheet. This can be a single tiny block or a tiny rod cut to size. A rod is probably more durable. We'll see what works when I get to the prototype stage.

Outer key guide

Now that I look at it, instead of a notch, I can simply groove the inside of the key guide to accommodate the cross bar of the stem. That will take out yet another opening to the outside. Ideally, I'd like to avoid anything that acts as a dirt-magnet.

Once the key guide is made, the inner stem and spring guide assembly can fit inside.

Key assembly stem inside key guide

I might use a tiny bit of lithium grease between the inner wall of the key guide and outer wall of the stem to improve movement. But I'd like to avoid using any material that can collect dust and debris later on.

Once the assembly is together, I can glue the top cap. I think a single sheet of acrylic with the top sides rounded might work well here. The top cap is only glued to the stem, not the key guide.

Key stem with key cap glued

Once installed on the base sheet, the spring underneath will lift the key up to the notch in the key guide. I think I'd like to keep the spring weight under 45g. Normally, I prefer a heavier keypress, but writing for hours on a keyboard with heavy keys can be a chore. I'd rather not "notice" the keyboard when I'm writing.

Key assembly with spring inserted

When pressed, the keycap glued to the stem will prevent over-travel. And it will keep the spring from getting crushed, instead of bent, which feels very unpleasant when typing relatively slowly.

Key pressed

Giving some thought to the base sheet which will hold all the keys, I think a single, thick, sheet of acrylic might work well here. Maybe the same type of sheet as the one used for the key caps. That way, I can easily replace a switch by pulling out the whole assembly. Since they're made from scratch anyway, replacing them again should be fairly straightforward. I can also make improvements to the design and operation as needed.

Keyswitches installed on base sheet

I was originally planning some laser-cutting to get the base sheet done, but that's a lot of assembly and precision work that just isn't practical for me at the moment. My old laser tube gave out a little while ago. It was a cheap CO2 tube from eBay that I got a while back. The holes will probably have to be cut with a drill press. I do have one, but I haven't assembled it yet. That's another problem I discovered during my tool audit. I briefly toyed with the idea of making the whole thing out of wood since I'm getting a tad rusty with my woodworking. But the stems and such will definitely need a lathe, which I don't own. The last thing I need to do is buy more tools I'll only use once.

I was also thinking about the circuit and wiring diagram for this. Living in the woods virtually guarantees that I'll get the thing wet at some point. Moisture alone isn't the end of the world. The old "bag of rice" trick might still work, but moisture + dirt is pretty harsh on electrical contacts.

Instead of physical contacts, I think I should go with hall-effect sensors. While they need more involved circuit designs, they eliminate the dirt and moisture problem almost completely. I think I can glue or otherwise attach a tiny neodynium magnet to the cross bar stop in the inner stem of the key to trigger the hall-effect switch. I'll have to adjust the height of the attachment to make sure the sensor triggers exactly when (or very close to when) the spring buckles.

Since there are no electronics or wires in the actual moving parts, that greatly reduces the risk of key failure. And, since I know it will happen eventually, if I damage a key, I can remove it without any de-soldering. No matter how many times I've done it, de-soldering is always a pain and the PCB is never quite the same again.

Surface-mount hall-effect sensors are getting cheaper now too so I can probably get away with having all of the actuation happen on the PCB with the entire key set being replaceable at any time. I don't have too much practice soldering SMD parts, but no time like the present to get more practice on that front. Also, the idea of drilling a whole heap of holes doesn't seem too appealing. I think I'll be testing the 44E switches which trigger on threshold, unlike 49E which are linear. I.E. Actually "switch". That simplifies the circuitry too since there's no need to debounce; No "chatter" or double key presses to worry about.

This is a writing keyboard too so I'm not looking for millisecond actuation to save me from the zombies.

For actually building the keyboard, I'll probably use the DRV5032 series from TI since it's very sensitive and uses very little power. It may be a bit too sensitive, but until I actually test it out, there's no way to be sure.

The keyboard base is a single sheet, to hold all of the press-fit keyswitches, just screwed onto the PCB for support. That should greatly simplify assembly and improve typing feel too. I don't know if I'll have the main CPU also on the keyboard PCB. That will really help with assembly, but it does mean less room for the battery pack. Something to think about.

I think I'm satisfied with this key mechanism overall. We'll see if it actually is a nice keyboard to write my journals once it's complete. I don't know how durable it will be in the long run, but I think it will compare very favorably to factory-made mechanical switches.

The true test will come when I take the whole thing into my cabin and let it survive the winter.