Note: I found a VERY useful resource on rejigging a keyboard controller card here:http://www.geocities.com/AirPanther/keyboard.htm
(using a USB controller card in a flight sim application)
As explained in the PROTOTYPE section, different characters are produced by a matrix of combinations of terminals from the LHS and the RHS of the keyboard PCB. This is normally handled by the arrangement of the conductive tracks on the plastic sheets inside your keyboard, so we need to replicate it in our wiring layout:
Separate the three sheets and discard the inner blank sheet as it serves no purpose here. Examine the bottom sheet; you should notice that groups of character terminals share particular conductive traces, all the way back to the region at the top right where they interface with the keyboard PCB.
Select three groups of characters you would like to output, making sure that the three groups each share one particular conductive trace:
I have chosen the following and indicated them on the sheet:
- track 4: F1, 2, W, S, X, \ and CAPS
- track 6: 4, 5, R, T, F, G, V, B
- track 7: 6, 7, Y, U, H, J, N, M
Allowing for (7+8+8) i.e. 23 characters, depending on the number of switches I use. You could build an 8-output board with only 1 group of charcters (and one conductive trace from the bottom sheet)
Now, overlay the top sheet on top of the bottom, and mark the terminals on that one too:
Each track on this sheet will lead back to 1 of 8 terminals at the PCB. You can trace the route by hand (tedious and tricky to distinguish between all the parallel lines) OR you can do it the easy way with a meter. Simply place a probe on the character terminal you wish to trace, then run the OTHER probe along the 8 'contenders' at the top right:
The needle will deflect when you have found the correct one.
I drew a table in Excel with three columns:
Terminal# on bottom sheet
Terminal# on top sheet
And created a matrix of all possible charecters by quickly tracing them with the meter. I.e. shorting terminal 4 on the bottom sheet with terminal 1 on the top sheet will output a F1 character; shorting 4 to 2 gives a 2, shorting 4 to 3 gives a W etc...
Now we need a way of attaching the footswitches to replicate the action of these plastic sheets. The REALLY tricky bit is attaching stuff to the keyboard PCB; normally the conductive traces are held against it by a small metal strip and piece of rubber acting as a clamp within the keyboard case. I am going to replace that with soldered connections... and herein lies the problem; the terminals are approx 1mm wide with only a 1mm gap in between. Also the PCB is covered with a varnish which melts and gets right in the way when you attempt to solder anywhere near it.
To reduce the number of soldered connections to a minimum, I decided to solder some fine 'lead wires' from the PCB to a terminal block, and to make all other conenctions to that.
I had very little soldering experience before I started, and required a bit of practice to get my soldering skills good enough to get it right. I used an IDE ribbon cable in the end, as it has VERY FINE solid copper cores, was reasonably flexible, and could be managed very easily thanks to the ribbon design. First, carefully remove the varnish from the the terminal area of the PCB (5 minutes rubbing with steel wool) so it doesn't gunk up your soldering work. Then tin the terminals and the stripped ends of your wires:
If you do this well, all you need is a very quick application of the soldering iron tip to reflow the solder and make a neat join. TIP: use a bright light and some sort of 'helping hands' device to hold you parts in place as you work!
Was pretty happy with this, considering the ugly, blobby soldering work I did on the prototype. Well worth getting some practice in before you ruin a working keyboard PCB!
I was able to use the original metal/rubber clamp from the keyboard to secure the wires in place (used three bolts to hold it all together:
That ain't going anywhere!
At this point I also removed the CAPS LED from the PCB. If I include CAPS as one of my switches, I can use this to DOUBLE UP on the number of unique characters I can output from my controller. The LED will indicate whether I am sending upper or lower case characters - i.e. BANK 1 or BANK 2...
It was very simple to gently unsolder the LED and replace it with two long wires to run the LED to the front of the case (the LED now sits in a rubber grommit which cost around 7p).