13 March 2016

The Geneve 9640 accepts standard PC/XT Keyboard input. In my quest to have one keyboard to rule them all, I have not been able to find a USB to XT keyboard adapter. The opposite is available for a price, but that isn't what I want. I want to use my USB switching KVM to control my TI-99/4a, PC, Mac, and Geneve 9640. Luckily, with my TI 99 USB Keys project, I had built the requisite hardware, and the XT keyboard protocol is a million times simpler than the TI keyboard matrix.

finished board

So, this was just a matter of applying new software to the Teensy 3.2 in my TI 99 USB Keys adapter.

The new microcontroller software maps the USB keys to the XT keyboard scan codes. It is available in source form on github jedimatt42/teensyUSBtoXT

As you can see in the picture, this is the same hardware as the TI adapter, however, I use G3 for the XT_CLK signal, and G2 for the XT_DATA signal. Power and ground are also from the XT 5 pin din port on the Geneve 9640.

XT 5 pin din  ->   TI 99 USB Keys adapter board
pin 1 - clock  |   G3 - Teensy pin 0
pin 2 - data   |   G2 - Teensy pin 1
pin 4 - Ground |   GND 
pin 5 - +5v    |   +5v h

This adapter should work as a generic USB to XT adapter, Although I may not have mapped Print Screen or Scroll Lock correctly.

XT keyboards also typically implement the auto-repeat feature internally. I did not implement that at all. The Geneve does not implement auto-repeat either.

There is a keyboard buffer implemented to isolate the typing from the transmition to the host computer.


Download the precompiled firmware image from my downloads page.

Refer to TI 99 USB Keys for instructions on applying the firmware, you just have to use the alterative .hex file.