When I say that anyone can build a mechanical keyboard with the right parts and a bit of information, I'm not exaggerating. The most interesting part is that we're not forced to go with a 104-key design. We can start with a much smaller number... two keys, for example. Chris Johnston thought similarly, and the result is a binary keyboard based on a Pro Micro controller and a small OLED screen.

Build Your Own Two-Key Binary Keyboard
Binary keyboard

Controller Options

The Arduino-Genuino Micro has a price of 18 euros. The Teensy 2.0 retails for 16 dollars on its official page. And SparkFun offers its Pro Micro clone for 20 dollars. The differences between these controllers aren't huge (actually, all three use the ATmega32U4), but their price is too high for casual projects. This is where Chinese clones available for a couple of dollars on eBay shine. If we're going to do something crazy, let's try to not spend too much, right?

That said, what kind of madness would be appropriate? Chris Johnston made a suggestion: a two-key mechanical keyboard... a binary keyboard, if you will.

Build Your Own Two-Key Binary Keyboard
The tape is to insulate the Pro Micro

How It Works

Enthusiasts of the game osu! have used similar designs to increase their competitiveness and reduce latency, but the only thing this keyboard does is type ones and zeros. The specs boil down to a pair of Cherry MX Clear tactile switches, a small SSD1306 OLED screen (several clones on the market), and the aforementioned Pro Micro. The keyboard has two modes of use: Binary, typing from the least significant bit to the most significant, and what Johnston calls 1/0, in which it behaves as if they were the 1 and 0 keys of a conventional keyboard. The firmware and circuit are available on GitHub, though you'll need to compile (I can't see a .bin anywhere).

Build Your Own Two-Key Binary Keyboard
The LEDs are optional

Power and Flexibility

The keyboard doesn't need batteries, as the Pro Micro is powered via its micro USB port. To finish, I want to highlight that the components aren't necessarily mandatory. In essence, any ATmega32U4 controller should work (including the larger Arduino Leonardo), and the same applies to the switches.

Official site: