
A two-button mechanical keyboard that types ASCII values, one bit at a time - pavel_lishin
https://github.com/Chris-Johnston/BinaryKeyboard
======
deathanatos
At least one of the screenshots[1] has him entering a value such as

    
    
       1001 1010
    

which isn't ASCII (the 8th bit, the MSB, is set; ASCII is composed of 7 bits).

It seems to give him Ü, which is that bit pattern in at least CP 850[2] (the
character encoding used by DOS by computers sold in America / western Europe).
Which every time I look up that Wikipedia article brings back the nostalgia of
seeing [3] on the screen, and playing games like Hack[4].

[1]:
[https://camo.githubusercontent.com/3b29cbd1b405af4a2991e1955...](https://camo.githubusercontent.com/3b29cbd1b405af4a2991e19553f7c38a0863f5f9/68747470733a2f2f7468756d62732e6766796361742e636f6d2f466169746866756c54686f736543726f737362696c6c2d73697a655f726573747269637465642e676966)

[2]:
[https://en.wikipedia.org/wiki/Code_page_850](https://en.wikipedia.org/wiki/Code_page_850)

[3]:
[https://upload.wikimedia.org/wikipedia/commons/9/98/Codepage...](https://upload.wikimedia.org/wikipedia/commons/9/98/Codepage-850.png)

[4]:
[https://en.wikipedia.org/wiki/Hack_(video_game)](https://en.wikipedia.org/wiki/Hack_\(video_game\))

~~~
w0utert
I assume that's because he types the least-significant bit first? That would
make ASCII code 89 for capital Y...

~~~
wruza
>types LSB first

That's pretty disturbing.

~~~
userbinator
For someone who works with hardware a lot, it's probably trivial to switch
endianness mentally.

From the description:

"Each byte can either be typed from most significant bit to least significant
bit (left to right), or least significant bit to most significant bit (right
to left)."

------
winestock
This is such a cool hack. I love it. I want to make one, too. This guy is a
true hacker.

Now it's time to nitpick. It doesn't seem that there's any way to generate
key-codes.

Entering text is nice, of course, but that's not all that a keyboard does. How
about cursor control (arrow keys, PageUp, etc.), function keys, or scroll
lock?

One can make control-key combinations, but that limits one to what's available
in ASCII. For instance, there's no way to distinguish Ctrl-j from the Return
key.

That last point brings up something related. In ASCII, the Control key
modifies the bit representation of the key pressed. That's why Emacs in
terminal mode can't tell the difference between Ctrl-j, Ctrl-J, and Return. In
modern user interfaces, the Control and Alt keys are specialized shift keys
that let the OS and applications tell the difference.

Of course, one could do the same workarounds that terminal emulators perform,
like using escape sequences and such. Then, while using this device, one would
have to know the proper sequences for xterm, or vt420, or, or, or…

Still, nice hack.

EDIT: By the way. Some poor lost soul should be forced to use Emacs with this
keyboard. Any suggestions on who should be condemned?

~~~
brokenmachine
_> Entering text is nice, of course, but that's not all that a keyboard does.
How about cursor control (arrow keys, PageUp, etc.), function keys, or scroll
lock?_

That's easy to add.

In BinaryKeyboard.ino, the SendVal function [1] uses keyboard.write to send
the keys. You can see a list of special keys you can send at
[https://www.arduino.cc/en/Reference/KeyboardModifiers](https://www.arduino.cc/en/Reference/KeyboardModifiers)
but you'll need to use keyboard.press to hold down two keys at once. See
[https://www.arduino.cc/en/Reference/KeyboardPress](https://www.arduino.cc/en/Reference/KeyboardPress)
which even has some example code.

[1] [https://github.com/Chris-
Johnston/BinaryKeyboard/blob/master...](https://github.com/Chris-
Johnston/BinaryKeyboard/blob/master/BinaryKeyboard.ino#L169)

------
xiaq
Related:
[https://en.wikipedia.org/wiki/Chorded_keyboard](https://en.wikipedia.org/wiki/Chorded_keyboard)

~~~
H4CK3RM4N
Also Plover for a modern implementation.

[http://plover.stenoknight.com](http://plover.stenoknight.com)

~~~
camtarn
I'd heard about stenography keyboards, but I hadn't seen any good
demonstrations of them at high speed, so I went looking. This is a really
great side-by-side comparison of QWERTY versus a steno keyboard, playing
'Steno Arcade', a game where you have to type lyrics as they're being sung:

[https://www.youtube.com/watch?v=UtQzTUEuPWo](https://www.youtube.com/watch?v=UtQzTUEuPWo)

Steno Arcade itself:

[http://store.steampowered.com/app/449000/](http://store.steampowered.com/app/449000/)

~~~
H4CK3RM4N
And this folks is a compelling argument for Creative Commons music to exist.

------
mmagin
This would probably be more efficient:
[https://en.wikipedia.org/wiki/Telegraph_key#Iambic_.28dual-l...](https://en.wikipedia.org/wiki/Telegraph_key#Iambic_.28dual-
lever.29_Paddles)

~~~
dunham
Yeah, I was thinking the same thing - a morse code speed key would be better.

And, now that I think of it, a huffman code would help too.

------
erikb
That reminds me of this fake ultimate apple ad. It's not exactly the following
video, but maybe it helps remembering it:
[https://www.youtube.com/watch?v=9BnLbv6QYcA](https://www.youtube.com/watch?v=9BnLbv6QYcA)

~~~
ReverseCold
Is this what you were thinking of?

[https://youtu.be/BGGOn-H7s3Q](https://youtu.be/BGGOn-H7s3Q)

~~~
erikb
Nope, but I also like it!

------
King-Aaron
Very slick, though brings this to mind for me:
[http://gunshowcomic.com/comics/20120227-robotthatscreams.png](http://gunshowcomic.com/comics/20120227-robotthatscreams.png)

------
asciimo
Pretty slick! Though half the keys (and many keystrokes) could be removed if
Morse code were used.

~~~
ralfd
Is Morse Code nore efficient than ASCII?

~~~
circular_logic
Yes, if you consider there are codes for commen phrases i.e 73 for "best
regards".

[https://en.m.wikipedia.org/wiki/Morse_code_abbreviations#Tab...](https://en.m.wikipedia.org/wiki/Morse_code_abbreviations#Table_of_Selected_Morse_Code_Abbreviations)

------
TazeTSchnitzel
So… a telegraph?

------
xmrsilentx
Reminds me of this:
[https://www.youtube.com/watch?v=1KhZKNZO8mQ](https://www.youtube.com/watch?v=1KhZKNZO8mQ)

------
zeckalpha
Death to CW. Long live CW!

------
craig_peacock
Point being? I think I missed something

~~~
kristopolous
Well given the current trends, this will be the only input device offered in
about 2 years.

~~~
0x4a42
It has too much buttons for an apple device though.

~~~
infogulch
No you have to think courageously, innovatively, out of the box: a
_touchscreen_ that has exactly two _software_ buttons.

