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.
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
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.
Create an account to leave a comment. Already have an account? Log In.
Try changing the frequency in usbconfig.h to 16.5MHz, currently it seems to be set to 16MHz which requires a crystal.
Nice to see V-usb in use still, and yes it will run on 85, you can use the polling signal (iirc 100hz?) from usb when connected to tune the internal RC oscillator up to 12mhz which will be fine (unless the chip's temp goes up 15c)
From the V-USB documentation, "Runs on any AVR microcontroller with at least 2 kB of Flash memory, 128 bytes RAM and a clock rate of at least 12 MHz." Unless you have some trickery I'm not sure how this will run with the ATTINY85's 8 MHz internal clock.
edit: Just looked into this, looks like the system clock can be configured using the internal PLL for Fast Peripheral Clock Generation. 16MHz should be possible. Although you may want to measure the actual F_CPU using an O'scope and update the define. Timing is everything with USB peripherals.
Excuse me, but Real Programmers... uhm, lets not get into that rabbit hole.
The only thing this need is LEDs in the Cherry MX switches for a backlight. It should be controlled by a secret key combination(s)
This is an idea that could well be used on my little? project :-) Nice job.
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.
This. if you haven't already you must set the fuse to disable reset. This will require HV programming.
Ah as far as i remember doesn't need reset disabled, but depending on which setup your using like the two diode version used here is a bit flakey at times. Have had retail boards based on it just not work for 3 months then randomly decide to start working again (digispark). Found USBlyzer somewhat useful to get some more info than window's "don't know what that thing you plugged in is"
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/
Become a member to follow this project and never miss any updates
I just built this and tested all the hardware to be soldered correctly. I can't get it to enumerate either. Read the logs and it never said the OP got it to work, anyone able to get it to enumerate? thanks!