Hacking the Kinesis Contoured keyboard

Kinesis Contoured Professional QD

With the successful completion of the humble hacker keyboard, I’ve decided to modify one of my Kinesis Contoured Keyboard keyboards so that I can use my firmware to gain additional programmability. I’m going to replace the existing controller with one based on the Teensy++. I’m starting with my second Kinesis board, a “Professional QD”. I don’t remember exactly when I bought this board, but the date on the controller board is 03/18/99.

Step One – determine the matrix

First, we have to discover the keyboard matrix – which is basically how individual keys map to pins on the keyboard connector. For a good description of how a keyboard matrix works, visit Dave Dribin’s Keyboard Matrix Help page.

With a normal keyboard, I would just wire the pins from the keyboard connector to my Teensy++, then load my firmware built in “Matrix Discovery Mode” (see bottom of linked page). Once installed, the matrix can be found simply by pressing keys on the keyboard. But the kinesis is a special case, in that there are essentially 6 individual keyboards joined together. To find the complete matrix, each individual board matrix must first be determined, then the main board has to be mapped out to find out how these are to be combined.

That last bit is not strictly necessary, as I am free to map each individual board however I want, but I thought it best to stick with the original layout. At the very least, someone else may find this information useful.

Below are the individual keyboard matrices. For the most part, I’ve labeled components as they are labeled on the PCBs.

Left hand

Left Hand

Exceptions to the board labeling are:

  • The main connector PL2 had no label
  • Labels with more than two characters have been shortened (e.g. SHIFTLS, TABTB, etc.)


6 7 8 10 11 12
1 \ IN LT RT
2 LS Z X C V B
3 CP A S D F G
5 TB Q W E R T
13 = 1 2 3 4 5

Right hand

Right Hand

Note that the square brackets are labeled incorrectly on the PCB. That is, the left bracket is labeled as the right, and vice versa.


1 2 3 6 12 13
4 UP DN [ ]
7 NS , M RS . /
8 H K J ' L ;
9 Y I U \ O P
10 6 8 7 - 9 0



Left thumb


1 2 3 8
4 SL3 SL6 SL4
5 SL1 SL5 SL2

Right thumb


3 4 5 6
7 SR1 SR2 SR5
8 SR4 SR3 SR6

Left function keys

Left function keys


2 3,6,10 4,7,11
1 ESC F1 F2
8 F3 F4 F5
5 F6 F7 F8

Right function keys

Right function keys


5 8,11 7,10
1 F9 F10 F11
5 F12 PS SL

The two keys PG(Program) and KY(Keypad) in the table above are not actually connected as shown. They serve special purposes and are not part of the normal key matrix when using the Kinesis controller. Instead, they are connected as follows:

1 2

To add them to the matrix above, make the following connections:

  • J4-1 → J4-8
  • J4-2 → J4-7
  • J4-3 → J4-4

The combined matrix

This is the combined matrix based on how each individual keyboard is connected to the controller board.

Keys X1 and X2 in cells 5A and 4L do not exist. These are placeholders for the addition of extra keys below the shift keys.


Since I’m not using the original controller, I’ve rearranged the different blocks and shifted some rows and columns to arrive at the more sensible matrix below.


To obtain this matrix, the rows and columns must be connected as follows:

Row Connection
1 J2-13; J7-10; J3-1
2 J2-5; J7-9; J3-8
3 J2-3; J7-8; J3-5
4 J2-2; J7-7; J4-6
5 J2-1; J7-4; J4-9
6 J5-5; J6-8; J4-3,4
7 J5-4; J6-7
Col Connections
A J2-6
B J2-7
C J2-8; J5-2
D J2-10; J5-8
E J2-11; J5-1
F J2-12; J5-3
G J7-1; J6-3
H J7-3; J6-4
I J7-2; J6-5
J J7-12; J6-6
K J7-13
L J7-6
M J3-2; J4-5
N J3-3,6,10; J4-1,8,11
O J3-4,7,11; J4-2,7,10

Next up: building a replacement controller board!

This entry was posted in keyboards and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>