IBM LPFK on a Serial Port

IBM LPFK

This is an IBM Lighted Program Function Keyboard (LPFK) Model number 6094-020. It was used as an extra input device when doing computer aided design on the IBM RS/6000 series of machines. It connected to the machine by a special port or by the serial port. IBM also made an attachment kit so that you could connect it to the serial port of a generic PC.

The LPFK consists of 32 keys each with an LED indicator. The LED indicator can be turned on and off by program control. Each time a key is pressed a byte is sent to the host machine to tell it what key was pressed. The lights have to be set from the host machine - there is no automatic mode that turns the lights on and off when keys are pressed.

Internals and wiringIBM LPFK circuit board

Internally the LPFK is driven by an Intel 8051 microcontroller. The circuitry and the lights pull too much power for a serial port so the LPFK is powered by an external AC to DC 'wall wart' that provides up to 500 milliamps at 5V. They could also be powered directly from the RS/6000 on the special port, or by a special cable from an IBM 6091 monitor.

Power and signals are provided over an 8 pin min-DIN connector. When viewing the pins on the plug the pin assignments are:


8 position mini-DIN circuit board connector
1 DC return
2 RS232 signal return
3 +5VDC up to 500ma
4 no connection
5 Transmit Data to host
6 Receive Data from host
7 no connection
8 no connection

IBM LPFK 8 pin min-DIN cable

Note that on the circuit board the DC return and RS232 signal returns are tied together.

On the other end of the cable is a DE-9 connector. A 6 pin connector to plug in the power source is on the back of the DE-9 connector:

IBM LPFK serial cable
IBM LPFK serial cable
IBM LPFK power input
IBM LPFK serial cable: power connector view

The pinouts for the DE-9 are:

DE-9 female connector
Pin Function mini-DIN pin
1 no connection (Normally CD)
2 Transmit Data to host 5
3 Receive Data from host 6
4 no connection (Normally DTR)
5 Signal ground 2
6 no connection (Normally DSR)
7 no connection (Normally CTS)
8 no connection (normally RTS)
9 Ring Indicator / +5V (see note below) 3
Sheild shield ground/power ground Shield Ground
IBM LPFK 8 pin min-DIN cable

Here is the pinout for the power input pins on the backside of the DE-9 and the pinout diagram on the power supply:

IBM LPFK power input pins



1 - no connection
2 - +5VDC
3 - Ground
4 - no connection
5 - shield ground
6 - shield ground

(The plug from the power supply is female.
Remember, the plug pinout is a mirror
image of
the jack pinout to the left.)
IBM LPFK power supply

Any modern USB power supply is capable of replacing the original power brick, as the output is only 500 milliamps.

Protocol notes

Now for the fun part - here is how to make it talk when connected to a serial port.

Protocol: 9600 bps, Odd parity, 8 data bits, 1 stop bit. No handshaking (hardware or software) is required.

Commands: (All commands are shown in hex)

0x01 Reset Similar to the power on reset. Leaves the LPFK in the 'disabled' state with all indicators off.
0x06 Read Configuration Upon getting this byte the LPFK responds with 0x03. Helpful for determining if the LPFK is active on a serial port.
0x08 Enable Tells the LPFK that it may process and send keystroke data to the host machine.
0x09 Disable Keyboard input is disabled. The LPFK will still respond to Reset and Read Configuration
0x94 Set Indicators This command is followed by four more bytes which is a bitmap that represents the indicator lights on the keys. If the bit for a key is turned on, the light will be turned on. If the bit for a key is 0, the light will be turned off. Keys are numbered from 0 to 31.

Responses from the LPFK:

0x00 to 0x1f Keystroke The corresponding key on the LPFK was hit. These responses are only sent when the LPFK has been enabled using the Enable command.
0x80 Retransmit The LPFK sends this if there was an error on the last Set Indicators command and it wants the host machine to retransmit it.
0x81 Ok The LPFK sends this if the last Set Indicators command was received successfully.

Need a template to define your keys?


The LPFK was designed to be used with templates that would define the keys depending upon which application was in use. If you want to make your own templates, save the image to the left, print it out, and cut out the key holes. (The image shown here is scaled down, but if you save the image you will get the full size version that is properly sized for the LPFK.)

Variants

There are at least two other variations of the IBM LPFK besides the one documented here:

IBM LPFK Japanese variant

IBM 48G9995: A Japanese specific variant? This one is interesting because the power supply is integrated into the base of the unit and the underside has an access panel that shows sockets that may be populated with additional ICs.

Photo credit: aucfan.com
IBM LPFK and Dials

A black IBM LPFK pictured with the IBM Dials. Except for the color, it is probably functionally identical to the beige LPFK documented on this page.

Photo credit: RogueScientist007 (Reddit)

Credits

Thanks to a very special source where I work who had an ancient CD that had these command descriptions in it. I had been trying to make the LPFK talk on a serial port on and off for a year and was not making much progress. Recently I had stumbled on the Reset and Read Configuration commands, but it was slow and painful ..



Created August 19th, 2008, Last updated June 16th, 2021
(C)opyright Michael B. Brutman, mbbrutman at gmail.com