Sunday, February 28, 2010

Perfecting the IBM Model M Keyboard

The IBM Model M Keyboard is among the best keyboards ever made.  However, technologically it has shown its age a bit, and even IBM cut a corner or two to reduce the cost of production.  If I had the means, I would make the following improvements:

1.  Make a 103-key Keyboard. 

Some people like to have Windows keys.  Sometimes even I can see their utility.  Windows + D makes a good "boss key".  Learing how to use the key combinations can make working in Windows more efficient.  However, I would prefer a longer spacebar than Windows keys the same size and Ctrl and Alt.  The 101-key Model M has empty spaces, the size of a regular key, in between each set of Ctrl and Alt.  Why not put Windows key in those spaces?  People who hate the Windows key can easily disable it in software.  For Macintosh users, perhaps an option could be made for a shorter spacebar and a "Windows" key the same size as the Ctrl and Alt keys.  On no account would I want a Menu key cluttering up the row, that key's function can be replicated by Shift F10.  However, should one want one, a standard size keycap with the Menu graphic can be included if one was willing to sacrifice a Windows key. 

2.  Improve the internal assembly

The assembly of the Model M, once the keycaps and keystems are removed, is one plastic layer with holes for the keys, three membrane layers, and a metal back.  The greatest dangers to the Model M, regardless of version, are liquids.  I spilled some wine into my Unicomp Model M, and despite the drain holes, the conductive membrane was ruined.  Later, I spilled a little G2 into my 1987 Model M and the B and M keys would give VB and NM when pressed.  In the latter case, I was able to open keyboard up and save the keyboard by wiping up the liquid.  The membrane is NOT internally sealed, nor can it be, but the membrane itself is three sheets of translucent plastic that could easily be replaced. 

The problem with replacing the membrane is that IBM secured the upper plastic layer to the metal layer by melting the upper plastic layer through holes in the membrane and metal layer (in the assembly) and letting the melted plastic cool into studs on the bottom of the metal plate.  There are lots of these plastic nubs throught the back of the keyboard assembly.  The issue is that the can break after a hard impact or by wear over time.  Once all are broken off, there is no way to resecure the plastic layer to the metal layer.  At that point, you had best buy a new keyboard. 

The solution is to use screws instead of melted plastic.  This way the user can unscrew the keyboard and clean or replace the membrane.  I believe this is how the Tandy Enhanced Keyboard operates.  (A nut should be used.)  Yes, it increases costs, but I believe it is better to extend the life time of the investment.

3.  Improve the controller

The Keyboard controller circuit has some issues.  First, it only supports AT & PS/2 style connections.  Since the AT connection is a thing of the past and the PS/2 connector is a legacy port on modern motherboards, the controller should add USB support.  Second, some Model Ms have controllers than can work with the original IBM PC and IBM PC/XT and (with a custom an adapter) the IBM PC Portable (before 2nd BIOS in the latter two cases).  Most do not, I do not have any that do.  I would love a truly IBM PC Compatible keyboard.  The Tandy Enhanced Keyboard works perfectly with an IBM PC 5150 and with any other true IBM PC-compatible computer. 

The IBM Model Ms I have ## 1390120 (ledless), 1390131 (silver logo), & 1391401 (grey oval logo) have a 6-pin RJ-45-like port on the rear to attach a cable.  IBM generally supplied AT & PS/2 cables, coiled.  Why not make a sturdy USB cable?  Since only four pins are used, the other two can tell the controller that a USB cable is being attached.  While there are AT-PS/2 adapters and PS/2-USB adapters (and vice versa), permanency is prized by some people. 

Finally, why not have a wireless dongle attachment?  If it attaches to the back, another dongle can attach to the PC.  Rechargeable through USB. 

4.  Add support for N-Key and 6-Key Rollover

The Model M does not support N-key Rollover.  In fact, depending on the keys pressed, it cannot register three keys at the same time.  Try pressing r y u all at once.  Unlimited key rollover is supported through the PS/2 interface, but only 6-key rollover through USB.  6-key is not that terrible, after all the functional limit is 10 keys unless the user is a rare polydactyl with a functioning extra finger.  In order to have unlimited N-key rollover, each key on the membrane needs to be isolated with a diode.  As this is rather difficult to achieve with a thin plastic membrane, please see my next suggestion.

5.  Use Printed Circuit Board Contacts

The IBM Model F keyboards used a Printed Circuit Board with key contacted etched in the board, and the key mechanism used a carbonized switch to conduct electricity between the two halves of the contact.  This denoted significantly higher build quality.  Also, it gives an easy platform to install the diodes needed for N-key rollover.  Get rid of those flimsy plastic membranes which true rubber domes use. 

6.  Fix the layout shortcomings

The IBM Model M keyboard had a few shortcomings over the older Model Fs.  One, the function keys were relegated to the top instead of the side of the keyboard.  Savvy keyboard users with the space can use extra function keys, so add a set of function keys on the left side of the keyboard.  F11 and F12 would go to the left of the top function key row.  This is nothing new, the Nortgate Omnikey Ultra and Ultra T featured two sets of function keys in this fashion.

The ~` and Esc key can be exchanged using removable keycaps, so no adjustment need be made there.

Some people prefer that the L. Ctrl should be where the Caps Lock key is on a Model M.  All that is required here is to make a Caps Lock keycap and a Ctrl key (since the Model M's Caps Lock has cap and stem fused together).  I would also make two models of Ctrl key, one with the lowered area (so people would not strike it by trying to hit the A key) and one without.  Also, why not make a Caps Lock key without the lowered area. 

L shaped Enter key?  I have no particular views toward or against the big L shaped Enter key, which was a staple of the AT Model F keyboard.  But since it replaces the | \ key, the usual alternatives are not very good.  One option is to put it to the left of the Backspace key, which requires that key to be shortened.  I have never liked this option, which is perhaps the AT Model F's biggest shortcoming.  The next option is to put it to the right of the Shift key, ala the Nortgate Omnikey Ultra and Avant Stellar Prime, which is better but unlike a laptop we are not pressed for space here.  The best place to put it is where one of the Windows keys go.  I do not feel that sacrificing a Windows key to be that great of a loss.

7.  Make the Keyboard Fully Programmable

While the keyboard can be reprogrammed in software, there are times when the keycodes being reported from the keyboard to the system would actually match what the key cap indicates.  This is especially true when you have reconfigured your keycaps to match a DVORAK or AZERTY layout.  No need to load drivers or special software.  Volatile memory on the keyboard contoller should be used to indicate which scancode it outputs for each key, so the programming can be platform independent.  A USB cable may need to be used for the programming option.


  1. Hey man really interested in a guide to programming the ibm model m internally, have you figured out how??

  2. you can't, anonymous. sorry.

    You can remap keys externally (via the OS) though.

  3. I appreciate this post but you should know there have been some advances in using vintage Model Ms
    1. Some have suggested using the right Alt or Ctrl as a replacement Windows Key (more on remapping below)
    2. Liquid is the enemy of all mechanical keyboards, so this remains a shortcoming. However, someone figured out how to fix the melted plastic rivets by drilling them out and using screws and nuts in their place (aka the Bolt Mod). Broken rivets are no longer a death sentence for the Model M
    3. Soarer's Converter has made AT/XT/PS2/(even RJ45 and SDL!) to USB a reality. They can easily be found on eBay for a marginally high price - but still a fraction of the price of a fresh Model M
    4/5. This one's still true, no solution has been found for N-key rollover; and probably never will. But the Model Fs NKR works with Soarer's Converter
    6/7. As mentioned, check out Soarer's Converter, which allows remapping and macros to be added to your trusty Model M

  4. Necromancing, but take a look at the Dell AT101W! It's a Model M (by Lexmark) with Win keys. :)

  5. @Olivier Villeneuve... as far as I could see, Dell AT101W are based on Alps switches, NOT Buckling Springs. Therefore, definitely not comparable to Model M.