[size=+2]Introduction[/size]
I've been looking for the perfect keyboard and was disappointed when I did not find it.
I own a Kinesis Contoured and its where I fell in love with the non staggered layout, but I really didn't like some of the layout choices such as putting the +/= on the top left. Sure I could remap it, but there isn't enough room to put it in the right place. So I knew I wanted a keyboard with a more standard layout. Which means TypeMatrix and HumbleHacker were also out.
The other keyboard I regularly use is the Apple Wireless Keyboard. I really like the design philosophy of Apple products where everything is beautifully designed yet functional. This lead me to design a keyboard as simple as possible with the fewest parts.
Keyboards have so much legacy behind them. The keys are staggered because in the original typewriters they needed space between each key for the control rod. Modern keyboards copy the staggering mindlessly. Apple showed us a completely flat keyboard works, which is unlike most keyboards with varying row heights.
I wasn't going to find my perfect keyboard. I was going to have to make it myself. As a result, I made a keyboard called
KeyPoard. I'll let you figure out why the b is upside down.
[size=+2]Layout[/size]
[ Guests cannot view attachments ] 41170[/ATTACH]
This layout emulates the standard Macintosh, except I had room to sneak in another control key. This makes the modifers nice and symmetric.
The keyboard uses R3 keycaps to make the entire keyboard flat like the Apple Wireless Keyboard. The keywells have good hand separation accomplished with an integrated Apple Magic Trackpad in the middle.
[size=+2]Case[/size]
[ Guests cannot view attachments ] 41169[/ATTACH]
The case is machined out of a single block of aluminum. Yes this makes it expensive, but this is what you need to do for simplicy of design. There is no need to screw the keyswitch plate into the case.
The integrated palm rest is to reduce wrist angle. Regular keyboards are terrible for the wrist with their positive keyboard slopes. The keys are as low as possible without the need to reach deep into the keywells to further minimize wrist angle.
[size=+2]Electronics[/size]
I am not creating a PCB for this keyboard. Instead I took inspiration from lowpoly and going to hand wire the matrix like he did with
The Apple M0110 Today. As for the controller I will be using a Teensy 2.0.
[size=+2]Firmware[/size]
The firmware is going to be my modified version of hasu's code which features configuration of which pins on the Teensy are which rows/cols in the matrix.
https://github.com/Pyrolistical/tmk_keyboard/tree/master/fourway[size=+2]Appendix[/size]
Ancestry of KeyPoard is a cross between
HumbleHacker and
Apple Wireless KeyboardFeature Summary:[*]single piece machined aluminum case
[*]flat split true matrix layout
[*]large hand separation
[*]ten keyless
[*]Macintosh layout with symmetric standard modifiers
[*]integrated Apple Magic Trackpad and palm rest
[*]Cherry MX Blue keyswitches
[*]full n-key rollover matrix
[/list]
[size=+2]Progress[/size]
I got the case from the machine shop!
[ Guests cannot view attachments ] 41178[/ATTACH]
I choose a slightly different key switch hole to make it more machinable, but allowed the switch tops to be replaceable without desoldering.
[ Guests cannot view attachments ] 41177[/ATTACH]
Here it is with the Cherry MX Blues. The fit is so tight! There is very little wiggle of the switches even without a pcb. The power of precision CNC machining.
[ Guests cannot view attachments ] 41174[/ATTACH]
And with R3 only blank key caps!
[ Guests cannot view attachments ] 41172[/ATTACH]
I choose R3 only key caps so the entire keyboard would be flat.
[ Guests cannot view attachments ] 41171[/ATTACH]
Hand wired the matrix.
[ Guests cannot view attachments ] 41173[/ATTACH]
The trackpad fits perfectly and clicks without friction! But I did screw up the corner radius so there is a gap. Stupid imperial vs metric strikes again!
[ Guests cannot view attachments ] 41176[/ATTACH]
The radius in the back matches the trackpad perfectly! But there is a gap in order to make it machinable.
[ Guests cannot view attachments ] 41175[/ATTACH]
Like lowploy, I wired the rows and cols with ribbon cable.
[ Guests cannot view attachments ] 41179[/ATTACH]
Wired the ribbon cables to the controller. You can tell I am pro at soldering!
[ Guests cannot view attachments ] 41180[/ATTACH]
For the firmware, I first tried to use Hasu's, but I wired the matrix backwards to what the code expects. I attempted to flip the matrix in the code, but it didn't work and I couldn't figure it out.
So I gave up and tried the Phantom firmware because it was quite a bit more simpler. The code already expects reading from the rows, so all I had to do was reconfigure the code. Unfortunately the code hardcoded which pins are row/cols so I had to generalize that. I've submitted a partial patch back to PrinsValium:
https://github.com/Pyrolistical/Phantom-KeyboardI fired up the code and only found 2 mistakes in the physical matrix and had to resolder the the ribbon cable to the controller to clean up the stray wires.
Otherwise everything just mostly worked! I actually can't believe how little debugging I had to do (ignoring the fact I couldn't get my modified version of Hasu's code to work).
I've been using the KeyPoard for the last few days and its amazing! Since I was used to the Kinesis Advantage matrix layout I was able to go at full typing speeds with relative ease.
Thumbs:
[ Guests cannot view attachments ] 44548[/ATTACH]