Hacker News new | past | comments | ask | show | jobs | submit login
A two-button mechanical keyboard that types ASCII values, one bit at a time (github.com/chris-johnston)
79 points by pavel_lishin on April 19, 2017 | hide | past | favorite | 29 comments



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...

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

[3]: https://upload.wikimedia.org/wikipedia/commons/9/98/Codepage...

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


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


>types LSB first

That's pretty disturbing.


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)."


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?


> 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 but you'll need to use keyboard.press to hold down two keys at once. See https://www.arduino.cc/en/Reference/KeyboardPress which even has some example code.

[1] https://github.com/Chris-Johnston/BinaryKeyboard/blob/master...



Also Plover for a modern implementation.

http://plover.stenoknight.com


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

Steno Arcade itself:

http://store.steampowered.com/app/449000/


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


Does anyone use one of these? I was looking for one for a long time and ended up just getting an Ergodox since I couldn't find one I could actually buy(twiddler3 wasn't on sale at the time).



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.


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


Is this what you were thinking of?

https://youtu.be/BGGOn-H7s3Q


Nope, but I also like it!


Very slick, though brings this to mind for me: http://gunshowcomic.com/comics/20120227-robotthatscreams.png


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


I'd keep the second key and use it as a backspace.

(scratch that.. some googling shows there is a backspace in morse - it's "........")


Is Morse Code nore efficient than ASCII?


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...


If I'm understanding this project correctly, it requires that you type the binary code for the ASCII character. E.g. for A, you need at least 8 keypresses for 01000001. In Morse, you would need two: .- (short-long).


So… a telegraph?



Death to CW. Long live CW!


Point being? I think I missed something


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


It has too much buttons for an apple device though.


No you have to think courageously, innovatively, out of the box: a touchscreen that has exactly two software buttons.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: