Dear Cinisajoy,
Thanks for your reply. Perhaps I'm missing something really obvious. I'll try to explain again all the parts that I'm using.
The PS/2 keyboard is connected via a
PS/2 keyboard adapter to
Teensy++ 2.0. There are four wires: voltage, ground, clock and data. All these are connected to the appropriate pins in Teensy.
From Teensy there are twenty jumper cables going out into
an adapter that converts them to a
20-pin 0.5mm pitch ribbon, which goes directly into the kindle in place of its own keyboard connector.
I added links to all the parts in case that's helpful. The Arduino code and pin numbers are in my original post.
I also took apart my kindle and took photos of the components in case what you're looking for is in there:
https://goo.gl/photos/xMN3uC2BYxKk7DHs9
If there's something else you'd like to know, please don't hesitate to ask. If I still haven't answered your question, perhaps you could tell me the steps to take to get that information for you?
And to reiterate my own questions:
* If the switches are designed for bare contact, how come activating the arrow pins digitally moves them around as expected? This makes me think that the entire keyboard could be controlled that way.
* While the arrow key pins behave as if Pin 20 is always shorted, the other keys behave as if ALL the row keys were shorted/activated. For example, activating pin 12 gives me the output (more or less) of it being shorted with pins 1,2,3,4,5 and 6: "qoj8b". Per chart linked in my first post: Q=2+12, O=3+12, J=4+12. The last two characters are a bit of a mystery, since it's supposed to trigger Back=5+12 and Space=6+12 and I don't think the two of them would make "8b", but it's pretty close. Is it possible to "deactivate" these row keys through Teensy, thus triggering only one key press at a time?