First, let's look at the connector itself, so you can figure out which end is up. With the rear cover removed, you can see the keyboard connector in the lower-right corner of the main board. It's a thin white FFC (Flat Flex Cable) type, and has 20 very small pins.
As seen in this picture, pin 1 is at the bottom, and pin 20 on top.
The keyboard itself is nothing more than a bunch of dry-contact switches, which is to say there aren't any sensitive electronics to worry about damaging or cloning. To simulate a keystroke, all you have to do is short two wires together. The trick is figuring out which pairs do what...
For your consideration, I present the keyboard map of the Kindle-3.
(Format: (Short this pin) (to this pin) (to generate this keystroke) )
1 | 7 | Menu | |
1 | 8 | Home | |
1 | 9 | Back | |
2 | 12 | Q | |
2 | 13 | W | |
2 | 14 | E | |
3 | 7 | R | |
3 | 8 | T | |
3 | 9 | Y | |
3 | 10 | U | |
3 | 11 | I | |
3 | 12 | O | |
3 | 13 | P | |
3 | 14 | A | |
4 | 7 | S | |
4 | 8 | D | |
4 | 9 | F | |
4 | 10 | G | |
4 | 11 | Home | |
4 | 12 | J | |
4 | 13 | K | |
4 | 14 | L | |
5 | 7 | Del | |
5 | 8 | Z | |
5 | 9 | X | |
5 | 10 | C | |
5 | 11 | V | |
5 | 12 | Back | |
5 | 13 | N | |
5 | 14 | M | |
6 | 7 | . | |
6 | 9 | Enter | |
6 | 10 | ^ (shift) | |
6 | 11 | Alt | |
6 | 12 | Space | |
6 | 13 | Aa | |
6 | 14 | Sym | |
20 | 15 | FW_UP | |
20 | 16 | FW_DN | |
20 | 17 | FW_LEFT | |
20 | 18 | FW_RIGHT | |
20 | 19 | FW_CENTER |
A simple pushbutton can be used to mimic the stock Kindle keys.
One word of caution - the auto-repeat delay is very short. You don't notice this on the stock Kindle because those tiny little buttons don't maintain contact when pressed. I won't pretend to know much about their internal structure, but I can tell you that a standard button will generate a lot of duplicate keystrokes in rapid succession if held down or even pressed slowly. In my case I'm using a microcontroller to handle all the timing so it's not a big issue. However, if you're just cloning the keyboard with no additional electronics, you might want to investigate a debounce circuit of some sort or you'll get a lot of duplicate keystrokes.
That's it! Once again, thanks for reading!