Content created by John Szybowski, Sydney, AU
(original HERE).
Edited by Major Tom.
Introduction
These old IBM PS/2 keyboards have been a long-time favorite of mine. I
really like the positive, mechanical feel of their keys and find that I make
fewer typing mistakes than with the cheap, plastic and rubber membrane ones
which are commonly available today.
The one which I am using was manufactured in 1990 (and (c)1984, according to
the label on its base) and is still reliable in daily use. These keyboards are
broadly known as the 'IBM Model M' and more specifically the one which I am
using is P/N 1391401.
Its probably the only computer component from that era which is still usable
with PC systems today; long after the 16 MHz processors, 20 MB hard disks and
EGA monitors have been sent to landfill.
When I recently upgraded my motherboard to a new ASUS P4T-E, I was
disappointed to find that this motherboard was unable to detect my old
keyboard. So after using a $10 plastic keyboard for a few weeks (and cursing it
numerous times), I decided to investigate the IBM keyboard compatibility
issue.
The solution turned out to be far simpler than I had first expected.
Note: The modification described on this page will
not affect the behavior of the individual keys. It only modifies the electrical
signal levels on the interface and not the way in which the keystrokes are
treated.
Disclaimer: The modifications described here are
a record of those which I performed on my keyboard. If you choose to modify
your keyboard in a similar manner, then you accept all responsibility for any
possible damage to your keyboard and/or other computer system components.
Technical Description
PC keyboards use a bi-directional clocked serial interface to communicate
with the motherboard. There are four conductors used (+5 V, Ground, Clock and
Data). The Clock and Data lines are open-collector logic with pull-up resistors
so that either end of the circuit can pull the lines low. (See links below for
further information).
After looking at the clock and data lines with a scope and comparing to a
newer keyboard, it seemed that the 'logic high' state on both Clock and Data
lines was fractionally lower when the IBM keyboard was connected.
Another relevant factor is that the older technology used on the IBM
keyboard's controller PCB requires more power to operate than newer keyboards.
The IBM draws around 112 mA from the interface, whilst a modern keyboard draws
1.2 mA. These figures are with the 3 status LEDs (NumLock, CapsLock,
ScrollLock) off. Each of these draw around 12mA when lit on both keyboards.
The problem was cured by installing two 4.7k pull-up resistors (1/4 W, 5%);
one each on the Clock and Data lines. The resistors were installed directly
onto the keyboard's controller PCB. The modification was easier than expected
as there were three convenient 'vias' (plated holes through the board) which
were on the correct signal traces and could be used to mount the resistors.
Figure 1: IBM PS/2 Keyboard controller PCB (Modified)
Figure 2: Controller PCB (modified) close-up view
As there was only one hole available for the +5 V connection to both
resistors (just below pin 1 of the resistor network RN2), the first resistor
was inserted through the holes, with the right-hand end of the second resistor
being trimmed and soldered directly to the lead of the first one.
My modified keyboard has been working well with the P4T-E motherboard
to this day.
Other Devices
I have also seen slightly different symptoms of incompatibility when used
with a particular Toshiba laptop. The keyboard works initially, but after some
time (minutes or hours) it will lock up, or appear to have a stuck key (Ctrl in
my case). This modification also appears to fix these problems. Additionally,
the same symptoms have also been reported when using the keyboard with a Belkin
KVM switch (and others). Once again, the modification produced a satisfactory
result.
If you have a PS/2 keyboard which needs this modification to work with a new
motherboard, then please send me an e-mail and tell me the make/model of the
motherboard. I will include it in my compatibility table on this site.
I have also had a report that another keyboard has exhibited the same
behavior as the trusty old IBMs. It is the Northgate Omnikey Ultra keyboard,
and appears to be from around the same period (Mid 1980's). I haven't seen one
of these myself, but it seems that they use the same 'mechanical keyswitch'
technology as the IBM. If you have one of these and you're having problems,
then the 'Interface Cable' solution below may help.
Other Versions of the IBM Keyboard
Note: I have seen some keyboards of this type
which have a different PCB. These can be distinguished by the connection
between the PCB and the 3 LEDs (Num, Caps and Scroll lock). On the PCB
described above, the connection consists of flexible PCB traces the same as for
the key matrix. On the alternate PCBs, the connections are made using wires
with headers at either end. A similar modification may be performed to the
alternate PCBs, but you will have to identify the +5 V, Clock and Data lines as
they are located differently. A reader has kindly send me two photos of his
modification to one of these alternate PCBs.
Figures 3a, 3b: Alternate controller PCB
An Alternative - Make an Adapter Cable
There is another solution to the problem if you have a different type of
keyboard to the one which I modified, or if you don't wish to tamper with its
internal workings. It involves making an adapter cable which plugs between the
keyboard and the motherboard's keyboard connector. The adapter cable contains
the same modification (electrically) as the one which I applied to the
keyboard.
To make the adapter cable, it is best to buy a straight keyboard extension
cable - the type with a male plug at one end and a female socket at the other.
This cable can be cut in half and the wires bared so that the two 4.7k
resistors can be connected appropriately. (And these cables are much cheaper
and easier than buying the individual plugs and wire).
All wires should be re-connected straight-through and then the two
resistors can be added. One resistor connects between the +5 V and Data wires,
the other goes between the +5 V and Clock wires. Take care not to short any of
the wires together and finally ensure that everything is well insulated with
heat shrink tubing or electrical tape.
Update: One of our readers, Ron Bean, has
designed and built a small adapter box. It functions in the same way as the
adapter cable, and is easier to put together. It is connected to the PC with a
male-male PS/2 cable (like the ones used to connect most KVMs to a PC). He has
kindly documented the entire process (with pics). I have posted
his description here so that anyone wishing to build
one can do so. The step-by-step procedure is easy to follow.
Another Alternative - Get a USB to PS/2 Adapter
A USB to PS/2 adapter can solve the problem by providing an alternative
electrical interface to the keyboard, in place of the usual one on the
motherboard. However, as the adapter is now at the other end of the keyboard
cable, it can potentially have the same problems communicating with the
keyboard as many of the new motherboards.
In reports from readers, I have found that about half of these adapters work
well and the others don't at all. So if you're thinking of this approach, check
the table below to make sure that you get one that has been used successfully
by others.
Update: (early 2005) A reader has reported success
in using this USB
to PS2 Adapter (pictured left, attached to the end of a Model M cable). It
is available from www.clickykeyboards.com,
for around USD$12. Their web site says that they have performed a lot of
testing with this unit and it has worked in all cases.
I've recently acquired one of these adapters and put it through its paces.
I've tried it with my ASUS P4T-E, as well as a Toshiba Tecra 9000 and Satellite
4030 notebooks. It worked well in all cases. I was also impressed by the fact
that the adapter is directly supported by my motherboard's BIOS, so it can be
used to enter the BIOS settings screens during the boot process (before any
part of the operating system has even loaded).
The USB to PS/2 adapter pictured at left has been found to work in most, but
not all, cases. It costs around USD$10. Some readers have told me that this is
sometimes branded as 'CP Technologies'. I have seen it on sale at a large
Australian electronics company (Jaycar) for AUD$19.95.
Update: I've had two e-mails from readers
recently saying that the adapter on the left didn't solve their problem, whilst
others have had success. I've also had other emails telling of mixed results
with various other adapters. Many of these adapters were unbranded, so the only
way to identify them would be with a picture.
To sum up, there many other USB to PS/2 adapters out there, some are branded
while others are generic. Some will work and some will not, so its wise to ask
if a refund (or exchange for another brand) will be available if the adapter
doesn't solve your problem.
Which motherboards and laptops are affected?
Many modern motherboards and laptops. You can find a very outdated list
here.
Is your IBM keyboard missing its cable?
A few people have asked me for the wiring connections of the standard IBM
keyboard cable. This information wasn't easily found on the net, so I took one
of my cables and checked it with a multimeter. If you have a keyboard but no
cable, then don't throw it away! Look here for
some information on how to make yourself a cable. I have also included the
wiring details of a standard IBM cable here for reference.
Cable Length
It seems that the length of the cable attached to the Model M keyboard might
have an effect on whether it works or not with selected motherboards, laptops
and KVMs. The Model M's came with two different lengths of cable attached. In
both versions, the coiled section was about the same length, but the straight
section between the PS/2 connector and the coiled part was different. On the
short version, it was around 55 cm while the long version was about 195 cm. It
seems that the short version cables are more likely to work with problematic
motherboards.
Links
|