Wednesday, July 8, 2015

Making a Custom Keyboard Part 0

Custom Keyboard Project Summary Page

Ok, lets take a step back (while I wait for the rest of my parts which are coming slow because I am cheap...) Lets look at the designing phase.

As a programmer, I have be taught over and over that design is one of the most important phases of development. When I decided to make a custom keyboard, I started with several important goals. Here is a list of bad design points and what I wanted to do to fix those. I have saved most of the designs I went through so we can track each issue that I wanted to tackle.

Say hello to the first keyboard on this journey, The Super Keyboard:
I had had this basic idea for years. It always bothered me that I only really needed the spacebar on one thumb. The other thumb (my left) just sits there all day doing nothing. Why not free up both shift spots and the capslock spot for keys that are far more useful by putting the shift key on the other thumb! I also really wanted to move in the other control keys. Anyway, back when I made the image I included many of these feature descriptions, so feel free to read about them from that image.

Shortly after that initial design, I created a much smaller version. A 60% version of the super keyboard called the Katana (sorry I don't have a higher res... wish I did):

There are a few minor changes to the function keys at the top, but this version is mostly the same.

As I began to look more into keyboards and how they came to be what they are, I learned that the staggered keys actually come from the early typewriters. In the picture of this beautiful Monarch Typewriter (below,) you can see that the keys are staggered to fit the metal bars on the back of each key.

Now, this stagger was useful back then, and the keys were further apart making touch typing less about resting your hands on home row. (You may also notice that the space bar was even bigger back then. We have shrunken it once already, whats wrong with shrinking more it as I did for the super keyboard?) So, why do we still have the stagger? My guess is that when moving from typewriters to word processors, they were advertising to the same people. We made keyboards as close to the ones found on typewriters, so as to get more customers.

"So, whats wrong with the stagger?" you may ask. Well, lets just look at what keys are used by what fingers. Here is a finger diagram for a classic layout:
As you can see in the diagram above, typing on staggered keyboards means you are typing at an angle! Each finger moves along this strange diagonal path. This diagonal did not mean as much when your fingers were not always resting on home row, but nowadays, it means a lot more. Next time you type, pay attention to each finger and the comfort of hitting each key. For me, the right hand seems fine, but the left hand feels awkward as fingers are trying to reach in a diagonal that goes against the angle that hand is at.

Ok, so the next natural step in my design was to get rid of the stagger (as you probly guessed by now.) Here is the Katana II:
Now, there are a few other minor things here. After straightening out the keys, I noticed that the right pinky has waaaay more keys than the left one. Just look back up at the finger diagram above. The right pinky is one busy finger! So, in an attempt to make things right in the universe, I decided to try to even out the pinkys. I moved some keys like backspace, insert, delete, etc. to the right side. The keyboard was balanced!

It was around this time that I began to look into materials and buying parts. After deciding on a layered acrylic case, I drew an updated mock-up, The Butterfly:

Now, as you can see, the top two rows go all the way to the edge. That is because I discovered it was much cheaper to by acrylic sheets in increments of 12". In order to knock of some dollars, I had to make it strangely compact. I didn't really like it...

So I made The Butterfly II (though the name made less sense with the new shape...):

Notice that I had to change a few things around to get things to fit better. I moved all the edge keys in, shrunk many keys, and added more keys to the bottom row.

After a bit of negative feedback on the oddly shaped edges, I changed the design to be more uniform with The Butterfly III (Note: this one also has the Colemak layout on it instead of Dvorak):

Shortly after that, I found keycaps that I really liked, and ended up changing my drawing to match:


Now, the changes made to standard key positions in the Butterly II were hard to make. At that moment, I had stepped beyond the classic layout and begun moving keys to new locations. Once you throw out that inhibition, the design tends to snowball a bit...

After testing out this layout on paper and a simple mockup, I decided that I didn't like the bottom row still. One of my side goals was to never have to move my hands from home row ever again! The keys underneath my palms seems to go against that goals quite strongly. I decided to change things up a bit, and depart even further from the classic designs. Say hello to The Mantis (sorry again for the low res...):

So, I moved a ton of keys off of bottom row. I also moved the arrow keys a bit. The biggest thing to note is that the bottom 3 keys would now be sitting a full key-height below the rest of the keys (see the side view.) This would allow you to hit both of those bottom middle rows of keys with your thumbs. This felt right. Each finger now had at least 4 keys and the thumbs had that many as well.

I was feeling pretty good about my design. I decided to make another cardboard mock-up. This time I have a picture of it. (Well, most of it. I took some of the keys off later and I don't know where they are at the moment...)


Around this time, I began to program an android version of my keyboard with the colemak layout, so I could start learning it ahead of time. While creating that, I created a secondary keyboard for the numbers and symbols, as most keyboards have. That got me thinking, and eventually caused the birth of what is my current "final" design. The Mantis Hacker Keyboard:

Now, this adds a function key to the bottom most row. This function key would act like the "symbol" key on phones. It would give access to numbers and symbols. I optimized the keys to try to keep the numpad's configuration, and I organized it for programmers by placing all the brackets along the middle column.
Navigation seems more intuitive as the arrow keys are stacked with the end, home, page up, and page down keys. Think about it, now ctrl right moves right one word while 'fn' right will go to the end of the line. Based on what modifier your left thumb is on, you can move different amounts. The modifiers are in the configuration they are to allow for maximum keyboard shortcut access without lifting your hands from the keyboard. There are still a few I would like to tweak for, but it is really close.

I was so excited (and bored) that I created a 3D model of it:

There are still a few small changes to be made, I am sure, but I think I am close enough to the hardware layout that I want. The firmware will be much easier to change if I decide I want symbols in a different place or something.

I even made a nice little mock-up of this version. It even has the lovely cherry switches and white and blue keycaps so I can test it out. So far, I really like it:


Anyway, hope you enjoyed this little journey. If you have any comments, ideas, or suggestions, I would love to hear them.
Thanks,
Cory

2 comments:

  1. Hi I really appreciate your all efforts which is specially for the custom keyboard well done.
    custom keyboard

    ReplyDelete
    Replies
    1. Thanks. It was fun to make. I may make another one some time soon.

      Delete