Author
Topic: The Humble Hacker Keyboard (Read 62062 times)

A project that I've been working on off and on for more than a year now, the Humble Hacker Keyboard (i.e. a keyboard for humble hackers like me) is an idea for a keyboard that I believe would appeal mostly to programmers, though it could have more widespread appeal. This is a big project for me, and I was hoping to have a complete working version before I made it public, but time being as scarce as it is, that could be a while. In the meantime, since I found geekhack, I thought this would be the perfect place to introduce it to the world.

I've got a page set up at http://humblehacker.com/keyboard (design shamelessly ripped off from some page at apple.com). I've planned to set down all of my ideas there, but haven't had the time yet to do so. If this post sparks some conversation, maybe that might help.

[*]Hand separation: Despite the keyboard being only 2cm longer than a Happy Hacking Pro, it has quite a bit of hand separation (12.5cm).[*]Multiple layers: It has four fn (layer switching) keys, two of which are placed in position easily reachable from the home row. This makes things like embedded cursor keys really convenient and comfortable. All of the punctuation keys, like parens and brackets are available through alternate layers. And none of this is set in stone. All of the keys can be remapped, even the fn keys! You can even create more fn keys if you wish.[*]Non-staggered layout: Those familiar with the TypeMatrix keyboards will appreciate (or not) this feature. I've typed on a Kinesis Contoured keyboard for years, and I believe from this that a staggered keyboard layout is not a necessary feature for a good keyboard.[*]Gestures: The idea for the multiple layers actually came about from my use of the nearly excellent Fingerworks Touchstream keyboard. They had multitouch gestures for just about everything. I realized that keyboard chords are much like gestures, but they are often inconvenient on a standard keyboard. Hence the well-placed extra fn keys.[*]Compact keyboard: We love 'em. Happy Hacking, TypeMatrix, the various Tenkeyless keyboards, Lowpoly's beautiful compact keyboard, etc.[*]Fully programmable: I like the programmability of my kinesis, but the Touchstream again wins the prize here. I wanted my keyboard to be as malleable as possible.[*]Non-tradtional placement of keys: This I got from the TypeMatrix. Once I got the idea of moving the outer keys to the center, a whole avalanche of ideas fell out from there. I realize that the standard keyboard layout is unbalanced and unsymmetrical, with a bunch of hard to hit keys bunched up around the right hand. By moving these keys to the alternate layers, I could keep a very compact size while at the same time separating the hands as much as possible.[*]Control key where it's supposed to be: The Happy Hacking keyboard is the obvious influence here, yet I've been swapping my caps lock and control key for years before I ever saw one. If you've ever used emacs, you'll know it as a near necessity.[*]Thumb operated keys: The Alt (windows) or Command (Mac) keys are bottom center, and very easy to hit. There is also a thumb operated backspace key. These ideas all come from the Kinesis Contoured keyboard.[/LIST]

My TypeMatrix 2030 hacking project that I posted here some months back is the programming side of the project. The firmware for that will eventually become the firmware for the Humble Hacker Keyboard. This is an open-source project, but it's in such a narrow area I'm not sure I could get many people to work on it with me.

The keyboard you see here is a real prototype. It's built using salvaged blue alps sliders. There were many compromises I had to make due to the cost of custom keycaps being exorbitant. For example, the center shift keys were actually supposed to be combined with the center return keys to make them larger and easier to hit. That would have been $1500 minimum. Ouch.

updateThe keys were custom made by Signature Plastics. As I alluded to in the previous paragraph, I was limited to key shapes that they already had the tooling for. Anything more would have been too expensive. Signature Plastics did a great job and were very easy to work with. I expected that they would be resistant to working with someone who is just a hobbyist, but that was not the case.

Speaking of cases, the case was also custom made. This is one of the coolest things ever. I made a 3d model using Google SketchUp, and sent it to ShapeWays. A short time later, an exact plastic copy of my 3d model appeared at my doorstep. Simply amazing.end update

All that remains to be done to make this a working prototype is to build the circuit board and finish the programming. I have also started on a desktop companion application to make creation and sharing of layouts easy. But like I said, time being scarce I'm not certain when that will be finished.

Back from the dead

"Perfect is the enemy of good." This is my new mantra. This project has lain dormant for so long because I could see ahead of me all the work that it would take to bring to life my platonic ideal of a keyboard, and it seemed overwhelming. I finally decided that it just needed to get done, and that I could fix problems later, in version 2. So I bit the bullet, ordered some PCBs and got to work.

I ordered two PCBs from ExpressPCB (minimum order). I decided to assemble one board as a test, and use the second for the final build. It turned out to be a good idea.

I simplified this board from some earlier designs I had done. For one, I decided to use a Teensy++ board and solder to my PCB rather than try to solder all those tiny pins on an AT90USB1287 MCU.

I'm saving my blue Alps sliders for the final build. For this test build, I'm using some white Alps sliders from an Apple Extended Keyboard II. To mount the keys to the PCB, I used a hot glue gun. This way, I could try to align them before the glue set - something that would be very difficult once they are soldered down. After all the switches were glued in place, I soldered them, the diodes, and the teensy++.

Then I mounted one of my two sets of key caps.

With that complete, I just had to load my firmware and I'd be off and typing!

I mentioned that building a test board was a good idea. Here's why. Despite how much time I spent going over the PCB design to make sure I hadn't made any mistakes, I somehow totally missed a very obvious error.

That trace should have gone between those holes, not through them! Doh! So I had to cut the traces and reroute with jumper wires.

The part that sucks the most about this is that I had already mounted my SD card reader to those pins, and I'm pretty sure that I destroyed it trying to remove it. It took me a while to discover what the problem was. I thought at first that it was a firmware problem. Imagine my surprise.

HumbleHacker I - The Final Build

At long last, we arrive at the final leg of our journey to create this keyboard. First, I had to trim the corners off of the bottom of the board so it would fit in the case. Then, learning lessons from the previous build, I first added the previously mentioned jumper wire repair. After that, I mounted the pin headers for the Teensy++ and the SD card reader.

Beautiful keyboard. Great work. How much did the key cost? I love the font on the keys, and I think it would be cool to replace the keycaps on my Filco with a set of those (in black, preferably, but white might be nice, too, similar to what iMav did with his HHKBs). Do you know if they have Cherry interfaces?

Everybody sit down for this one. The amount of money I've spent on this keyboard is rapidly approaching the cost of an optimus maximus keyboard. For $500, I got two sets of keycaps - the ones pictured, and another set of blank black caps. The case was around $200. Circuit board, when I finally get it made, will be another $250, provided I get it right on my first try. Then there's all the components for the circuit board, and a steel backplate to finish it off.

Quote from: itlnstln;97600

I love the font on the keys, and I think it would be cool to replace the keycaps on my Filco with a set of those (in black, preferably, but white might be nice, too, similar to what iMav did with his HHKBs). Do you know if they have Cherry interfaces?

Signature plastics does have the tooling for Cherry keycaps as well as Alps (and maybe others). I looked again at my original purchase order, and my set of blank black keys was $140. Adding labels adds another $300.

Everybody sit down for this one. The amount of money I've spent on this keyboard is rapidly approaching the cost of an optimus maximus keyboard. For $500, I got two sets of keycaps - the ones pictured, and another set of blank black caps. The case was around $200. Circuit board, when I finally get it made, will be another $250, provided I get it right on my first try. Then there's all the components for the circuit board, and a steel backplate to finish it off.

Signature plastics does have the tooling for Cherry keycaps as well as Alps (and maybe others). I looked again at my original purchase order, and my set of blank black keys was $140. Adding labels adds another $300.

Ouch.

It's worth it for a prototype, though. Hopefully you can get it into production and recoup the investment many times over.

Now that I've had a closer look uou do seem to be missing various other common characters characters though, where is equals for example? On one of the blank keys?

All of the keys you're looking for are found on secondary layers. Basically, hold down Fn2 (on the right), and you'll have them all right under your left hand. To give you some perspective, the Fn2 key would be in about the location of the left [ on a standard keyboard - not a difficult reach at all. I'll dig up my layout documents and post these to the article.

[update] I couldn't find any of my current layout images. They're all tied up in xml files and it seems my xml to pdf conversion program has died of bitrot. Until I can resurrect it, here is a very old preliminary image that shows some ideas of what you can expect with the multiple Fn layers.

Everybody sit down for this one. The amount of money I've spent on this keyboard is rapidly approaching the cost of an optimus maximus keyboard. For $500, I got two sets of keycaps - the ones pictured, and another set of blank black caps. The case was around $200. Circuit board, when I finally get it made, will be another $250, provided I get it right on my first try. Then there's all the components for the circuit board, and a steel backplate to finish it off.

Signature plastics does have the tooling for Cherry keycaps as well as Alps (and maybe others). I looked again at my original purchase order, and my set of blank black keys was $140. Adding labels adds another $300.

That's really amazing. It's nice to know it's still possible to completely design a new keyboard at all. So Signature Plastics can make custom keycaps like that? I asked them about keycaps for my siig minitouch which uses alps keys and they didn't seem to be able to do anything... I may have to ask them again...

It's also nice to see you used Shapeways. I plan to use them for an upcoming project. How much would it have cost to get shapeways to make the keys? Or is the plastic not of a high enough grade or something? It cost $200 for a top and bottom from them for the case? Don't they have a thing where subsequent people can order the same design as well? So if we wanted to buy the case from them we could, and you'd get a commission or something?

Who is going to do the circuitboard? Or what are your plans? That's the part that's really going to fascinate me and has held up so many of my ideas....this is really mind blowing to me!!!

It's worth it for a prototype, though. Hopefully you can get it into production and recoup the investment many times over.

its amazing that you can have a completely custom keyboard made at all. I dont think a thousand (or even two thousand by the time its all done) bucks is all that much for a completely custom design from scratch including internal electronics. If I ever have the time I'd love to do something like this from scratch.

It does look very original and neat. I'd have minor quibbles with layout (naturally (for instance, why no home/end keys near the cursor keys? Or are the there and I cant see them?). But if its going to be user-programmable anyway, then even those things wont matter. Also I've never used a non-staggered board, though I did ogle the typematrix for a while.

Really like the concept of multiple Fn keys for multiple layers. My autohotkey layout works similarly (I have "three layers" i guess).

This is really awesome. I like the symmetry of it, but it seems like you've gone overboard with the redundant modifier keys. The shifts in the center don't seem necessary to me. You could put ESC there to satisfy the vim users. And what are those blank keys by 1 and 0?

BTW, it seems like you can almost replicate this keyboard with a rectangular POS type board, for example, the Cherry G86-63400, and a lot of software keymapping. But the layout is completely novel. Now I'm thinking about buying a G86-63400 and trying this out.

It's also nice to see you used Shapeways. I plan to use them for an upcoming project. How much would it have cost to get shapeways to make the keys? Or is the plastic not of a high enough grade or something?

I could use Shapeways to prototype some keys, but I doubt the plastic would hold up under actual use. The plastic, although rigid, is very light. I don't think I would have to try extremely hard to break it. When you get down to something as small as a keycap, especially the point where it attaches to the switch, I think it might cause problems.

Quote from: chimera15;97661

It cost $200 for a top and bottom from them for the case? Don't they have a thing where subsequent people can order the same design as well? So if we wanted to buy the case from them we could, and you'd get a commission or something?

It was $200 for the top case. The bottom is going to be a piece of heavy sheet steel. If I make my design public, then yes, I think you could order one up as well. I don't know about commission though.

Quote from: chimera15;97661

Who is going to do the circuitboard? Or what are your plans? That's the part that's really going to fascinate me and has held up so many of my ideas....this is really mind blowing to me!!!

I've already drawn up the circuit board using one of the free programs out there. My only problem is, I've never done it before and I'd like to have a way to be fairly certain it was going to work before I plunk down $250. I can significantly reduce costs if I put all the major components on a smaller board, and build the bigger board with all the keyswitches myself.

This is really mind-blowing to me too. I've had this much of it done for quite a while now, and I periodically stick in on my keyboard tray and pretend to type with it - wishing that it were already done. I really think it's going to be an extremely efficient keyboard.

its amazing that you can have a completely custom keyboard made at all. I dont think a thousand (or even two thousand by the time its all done) bucks is all that much for a completely custom design from scratch including internal electronics. If I ever have the time I'd love to do something like this from scratch.

Yes, time and money. I never seem to have them both at the same time.

Quote from: wellington1869;97666

It does look very original and neat. I'd have minor quibbles with layout (naturally (for instance, why no home/end keys near the cursor keys? Or are the there and I cant see them?). But if its going to be user-programmable anyway, then even those things wont matter. Also I've never used a non-staggered board, though I did ogle the typematrix for a while.

I expected much more complaints about the layout than I've been getting. There are dedicated home and end keys, btw, just not on the colored image above in the thread. That was a very very early prototype design. Take a look at humblehacker.com, and you'll see all the usual suspects in the center of the keyboard. As far as staggered vs. block layout, it does take a bit of getting used to. I've also imagined another design where the keys are staggered like a regular keyboard on the right, but exactly the opposite on the left. But the whole keyboard would have to be longer for that to work.

Quote from: wellington1869;97666

Really like the concept of multiple Fn keys for multiple layers. My autohotkey layout works similarly (I have "three layers" i guess).

Originally, I only had two Fn keys. It was only later that I realized I could fill out the bottom row and add a couple more. But since that's where you normally find a control key, and I've always hated trying to hit a control key in that position, I don't really know how much I'd use Fn3 and Fn4 in practice. The Fn keys can be programmed to be toggles, rather than momentary, so I thought maybe these two would be good for that. Could be an easy way to switch between QWERTY and Dvorak, for example.

This is really awesome. I like the symmetry of it, but it seems like you've gone overboard with the redundant modifier keys. The shifts in the center don't seem necessary to me. You could put ESC there to satisfy the vim users. And what are those blank keys by 1 and 0?

Overboard indeed. Those center shift keys were a last minute decision when I discovered that the 2-row-high return keys I wanted would have been $1500. I was forced to split them into two keys, and a snap decision means that they are forever to be labeled 'shift'. I almost wish I had just left them blank. The Esc key is a good idea, I could put Esc on one, colon on the other, and call it The Humble Vim'r Keyboard, Special Edition®. Though, as far as redundant modifier keys are concerned, I do like the idea of a right-hand control key that's not way out in never-never land like it is on most keyboards. It remains to be seen whether I actually end up using it, though. For people that can't stand the center return key, the right control key could be remapped to make them happy.

Quote from: pmyshkin;97766

BTW, it seems like you can almost replicate this keyboard with a rectangular POS type board, for example, the Cherry G86-63400, and a lot of software keymapping. But the layout is completely novel. Now I'm thinking about buying a G86-63400 and trying this out.

I thought about trying that out myself. I did program my TypeMatrix hack job with a layout as similar as I could manage, and having the punctuation and cursor movement keys on the separate layers worked really well. But that was as much proof-of-concept I could manage before I jumped in head first. If you do give it a go, let me know how it works out for you.