The Key to Overengineering

Each key on this massive 1,000-key keyboard built by Attoparsec types a full word. It's a terrible design, but in the best kind of way.

Nick Bild
1 day agoProductivity
Now THAT is what I call a keyboard! (📷: Attoparsec)

Have we been doing it wrong all these years? Are we a bunch of suckers for accepting that typing out words, one letter at a time, on a keyboard is “just the way it is?” After all, it would be far faster if a single keypress could spell out an entire word. Imagine the speed and efficiency of such a keyboard. Finally we could compute at the speed of thought! Just when artificial intelligence started to think it was getting the upper hand, we came storming back against the machines! Mwah-ha-ha!

Of course with a few milliseconds of reflection, anyone can see that having a key for each possible word is actually a terrible idea. With close to 800,000 words in the English language, that would be some keyboard. You would have to ride a bike from one end to the other to type a sentence. But the fact that it is a terrible idea did not stop YouTuber Attoparsec from building one anyway, because it is still a cool project, even if it is hugely impractical.

No matter how interesting of an idea it is, 800,00 keys is still not going to happen. So instead, Attoparsec decided to focus on the 1,000 most commonly used words in the English language. Since the word “thousand” was not included in that list, the build was named “the keyboard with ten hundred keys.” That sets the tone for the project, because if you want to use this keyboard, you will have to be ready to make some compromises.

Even at a thousand words, this will still be a very large, desk-sized keyboard. As such, it was split across five separate PCBs. After determining that each word could fit pretty comfortably on a 1.25-unit key, a 12-column by 17-row layout was settled on. With five boards, that would make for 1,020 keys, which is enough for each word and some utility keys like enter and escape.

Because of its small size, Attoparsec decided to use an Arduino Micro to interface the keyboard with a computer. Since the Micro only has 24 digital GPIO pins, yet 77 would be needed, MCP23017 port expanders were included in the build. A control board with five of these chips, each capable of adding 16 GPIO lines, was designed to feed all of the key presses into the Arduino.

Next, a method to produce all of the keycaps was needed. At over 1,000 keys, this needed to be a fast and efficient process. That ruled out 3D printing and some other common approaches. Ultimately, transfer sheets were used to print the words on blank keycaps. With a 3D-printed mold that could hold 16 keys at a time and a used heat press, the job was made manageable.

Naturally, nothing actually worked the first time the electronics were fired up. After some head scratching, Attoparsec found a number of the usual types of mistakes we all make on a big PCB design. The data and clock likes on the I2C interface, for example, did not have the required pull-up resistors. It was also discovered that the SDA and SDL signals got swapped. After resolving several other similar issues, the keyboard was finally doing its intended job.

To finish off the project, a custom case was constructed from six-foot-long aluminum extrusions and laminated plywood. The circuit boards were then installed on standoffs. After that, the monstrous keyboard was ready for some incredibly slow typing.

The keyboard with ten hundred keys worked exactly as designed, but bringing it to life reinforced just how bad of a design it is. Just a few minutes of playing with this beastly thing should be enough to make anyone long for a good old 104-key keyboard. But it is definitely something to see, so you won't want to miss the video below.

Nick Bild
R&D, creativity, and building the next big thing you never knew you wanted are my specialties.
Latest articles
Sponsored articles
Related articles
Get our weekly newsletter when you join Hackster.
Latest articles
Read more
Related articles