Simplicity.
...because real programmers only need a one and a zero. And a space. A return key as well, I guess.
Why have a Happy Hacking Keyboard when you can have an Unhappy Hacking Keyboard. Real programmers only need a 1 and 0 key.
Simplicity.
...because real programmers only need a one and a zero. And a space. A return key as well, I guess.

That is the current state of the Unhappy Hacking Keyboard. More pics:


I have two copies of this board soldered up with the requisite USB hardware. For some reason, Cherry Black switches are out of stock everywhere, and I can't seem to get a Cherry MX Blue/Brown/Black/Red switch sampler pack. That's sort of a bummer, seeing as how a switch sampler pack is the entire purpose of this device. Mouser did have a bunch of blues, so clack clack clack.
The only thing left to do is to get the USB keypad working. I have everything compiling and supposedly enumerating on my Windows 8 box. I'm getting a 'Device Descriptor Request Failed' error in the Device Manager, though. This is good news because I'm probably not fucking up the V-USB code too much. I'll update the project when the entire thing works.
The point of this project is to do something useful with those Cherry MX switch sampler packs you can pick up at places that sell mechanical keyboards. The idea behind these sampler packs being that you can try out each of the different 'flavors' of Cherry switches without committing to buying a whole keyboard loaded down with one type of switch. It's a neat idea, but why not make something useful with those switches?
A Brainfuck keyboard would require at least five keys, so I'll have to settle with my version of a 'true programmers' keyboard. There's a 1 key, a 0 key, return, and a space bar. That's all you need. Oh, and it'll actually be a working keyboard.

There's the board. I'm using an ATtiny85 with V-USB to create a USB keyboard. No switch matrix, just simple pullups on each of the switches. Standard V-USB schematic with zeners and such.
The switches will be mounted to an acrylic or delrin plate unless I can find someone to cut some 16 gauge stainless for me. Switches will be soldered onto the board. it should look pretty nice when it's all put together. So far, the plastic plates are ordered, the PCB is heading for fab, and I'm here dicking around looking for some nice keycaps for this thing. If anyone has any suggestions, drop a note.
Silly question, I see that this project uses V-USB to implement a software USB interface on an ATTiny85.
V-USB documentation seems to suggest you need a ≥12MHz clock and so the internal 8MHz RC oscillator in the ATTiny85 would be insufficient, yet the two pins that would be needed for a crystal (2 & 3) are occupied with one of the USB data lines and one of the keyboard lines.
Is there some trick within the ATTiny85 that lets V-USB run without an external crystal?
As space is just another ascii character, i will sugest to substitute it with a backspace, for correct any bit errors.
Isn't backspace also an ascii character? I guess it really just depends on whether you'd use space or backspace more?
Just curious, did the firmware work as it is on GitHub? I compiled/programmed the firmware using WinAVR successfully, however the device does not enumerate over USB when I plug it into my PC. It shows up as an unknown device because "USB descriptor failed".
It has been years since I've programmed an AVR, so I was curious if there are any blatant 'gotchas' with an AVR VUSB implementation you know of.
For 3 years, I have been teaching CS classes at a college as an adjunct prof. We cover binary number systems pretty extensively. After that part of the class, I always have drawings for "binary" prizes, such as a coffee mug with the "There are only 10 people in the world..." saying, a binary wall clock, a binary watch, etc. This keyboard would be a great addition to the prize pool!
Not only for "programmers" this could also be used for morse code "keying". I once came across this keyboard for an android that only had dot and dash. You could always get the period and hyphen key instead of a zero and a one. Just a though.
I know you made this for programmers but I know alot of people that would find this very useful to play a rhythm game called osu! ( the game requires to keys to click and mechanical switches are a must) https://osu.ppy.sh/
This is an idea that could well be used on my little? project :-) Nice job.