Table of Contents
Background
Bridging the gap between older and newer technology can be challenging, but well worth the resources and time investment when in pursuit of practical and even personal purposes.
Practical purposes may include patches to security flaws - in both hardware and software - to prepare legacy systems and their continued use in the modern digital age. For example, industrial control systems such as programmable logic controllers (PLCs) designed to operate assembly lines, robotic arms, and other physical infrastructure which may have never been intended or prepared for interconnectedness with modern systems via any protocol (e.g. the Internet), must be scrutinized and audited for vulnerabilities due to the reliance placed upon them by society today; failing to do so may lead to catastrophe, and depending on the scope, even the collapse of an entire civilization if a technically sophisticated threat actor is involved (Stuxnet and related operations come to mind).
Personal purposes may include anything from from proprietary business operations to individual interest or technical enthusiasm. Many corporations, especially those with an enterprising scale and influence or subject to intense regulation, depend on the continued functionality of older technology to sustain revenue and thrive in today’s competitive markets. The foundation of their existence is rooted in legacy hardware and software - to migrate off of these systems would demand vast amounts of restructuring, redesigning and re-optimizing - all of which require physical, financial, and sufficient resources to meet modern business needs.
This post is sutured around the latter of these two purposes, and is intended to be a quick and informative read for anyone intrigued by the levels of innovation and the engineering processes involved with integrating a timeless, influential piece of hardware with modern technology: The non-USB (Universal Serial Bus) compliant IBM Model M keyboard (part number 1391401) made USB-compliant with active HID code conversion via programmable cable.
IBM Model M
Design
Despite still technically being in production today, the title of “Model M” typically refers to a group of computer keyboards using “buckling spring” technology which were originally designed and manufactured by IBM starting in 1985 and later by Lexmark International, Maxi Switch, and Unicomp with Unicomp purchasing the licensing, tooling and design rights to continue producing keyboards of the same or similar design but outfitted to be directly compatible with today’s standards and protocols, such as the USB connectivity provided by most personal computers.
While buckling spring keyswitches themselves have proven to be controversial, with many typing enthusiasts remaining critical of the design and noises they emit, the IBM patents for the mechanism surely demonstrate clever and unique engineering processes. These processes are detailed in US4118611A, which illustrate how the coil spring tensed between the keycap and a pivoting hammer “buckles” (or collapses) at a certain point when pressed to make an electrical contact on a membrane sheet inside the keyboard.
The patent filed May 21, 1971 labels this technology “Catastrophically Buckling Compression Column Switch and Actuator” which has been shorthanded down to the common “buckling spring” label, invented by Richard H. Harris of Raleigh, North Carolina.
Sound, Feedback and Popularity
The satisfying tactile feel and auditory feedback characteristics of the Model M give credence to its rise in popularity amongst typing enthusiasts (such as myself), especially in reference to IBM part number 1391401, the most popular iteration of the keyboard. This specific variant is most commonly referred to as the “true” Model M, and is also known as the “Enhanced Keyboard” by including the patented buckling spring design and swappable keycaps.
While Unicomp has continued producing “modern” Model M keyboards, the vintage productions seem to hold the throne and are still in working condition decades later due to their durable and sturdy design (save for their one weakness when referring to part number 1391401, which inherited zero drainage holes). The steel backplates and strong plastic frames have withstood significant abuse and managed to survive so long as the internal membrane and electrical contacts remain dry, a feat which the vast majority of the other products released in the 1980s and 1990s are unable to claim.
Perhaps another important factor of the Model M popularity is related to the alleged ergonomic health benefit they provide by reducing stress on the operator’s hands. Repetitive strain injury (RSI) is a valid concern in any cyclical task such as typing on a keyboard, a risk the Model M helps prevent and maybe even reverse if an injury has already occurred.
Adherence, Influence to Standards
Aside from the aforementioned appeal of physical durability, consistency, auditory feedback and tactile feel, the Model M maintains its validity by adhering to the ANSI 101/102/104 and ISO 102/103/105/122 layout standards. It is estimated that over 10 million of the legacy keyboards were distributed prior to the 1990s switchover to lower-cost dome-switch devices.
The layout that nearly every keyboard uses today is standard because of the Model M layout. ANSI QWERTY has existed since the late 1880s, but the non-arbitrary layout of the Model M was created between 1983-1984 by a specific 10-person IBM task force and most later keyboards (including those today) adapted the same layout due to its influence.
Modern Incompatibility
Relic Model M keyboards, including 1391401, were manufactured with PS/2 and AT interfaces before the later industry standard of USB. In the 1980s and early 1990s, PS/2 was implemented as a bidirectional synchronous serial communication protocol used to connect certain peripherals to compatible computer systems - such as keyboards and mice - designed by IBM in 1987 as a 4 wire, 6 pin (Mini-DIN-6) connector.
Naturally, PS/2 is unlikely to be compatible with many of today’s computers, having since moved on to industry standards such as USB - at least not without some sort of conversion between the serial bits and packet data signal differences of these protocols.
Such hardware converters (e.g. PS/2 to USB adapters) do exist. However, one key advantage of the popular 1391401 was also its detachable cable, which opens the door to more technical possibilities. At the other end of the male PS/2 connector, IBM made the male shielded data link (SDL) connector, a type of electrical connector available in a range of 4 to 16 pins, detachable from the keyboard, thus introducing a new question: rather than adapt PS/2 to USB, can the entire cable be swapped out to go directly from SDL to USB? As it turns out, the answer is yes.
Soarer’s Converter
Soarer’s Converter is a Teensy-based active converter for keyboards, and exists in the form of a programmable cable using specialized software capable of additional functionality including layering, key remappings and even macros aside from just the translation process - a key selling point for typing enthusiasts and automation geeks alike. The software can be downloaded from deskthority.net, where the most recent version available is v.1.12
as of September 2021.
For Windows, the archive containing the executables is nested in Soarer_Converter_v1.10.zip/tools/Soarer_sctools_v1.10_win32.zip
but binaries for Linux, MacOS, and the source itself are included. To actually use Soarer’s Converter, it is helpful to write a .bat
Batch script and execute it against the included binaries. An example named scaswr.bat
is provided in the nested archive:
@echo off
rem scaswr.bat - a drop target for config files
rem Change directory to the location of the batch script file (%0)...
cd /d "%~dp0"
rem Run scas with a default target filename...
echo Assembling %1...
scas %1 %1.scb
if errorlevel 1 goto end
rem Run scwr with that default filename...
echo:
echo Writing %1.scb...
scwr %1.scb
:end
rem Wait for a keypress so the output can be read...
echo:
pause
It is evident from reading the script that Soarer’s Converter uses the .sc
extension for its configuration files, which always expects the following block structure format:
# Layers
layerblock
# Layers here
endblock
# Remappings
remapblock
# Remappings here
endblock
# Macros
macroblock
# Macros here
endblock
Layers define combinations of function keys to access different layers, remappings define remappings either for the base layer or the specified layer if a layer
command is given inside the block, and macros define one or more macros: sequential keypress operations programmed to trigger based on other keypress or keypress combination events (full documentation is available in the Soarer_Converter_v1.10.zip/docs/
directory).
For example, my own configuration prior to taking any interest in the complexity of layers and macros involved a simple remapping; because my Model M (the “Enhanced Keyboard” 1391401) does not have a “Windows” key, I decided to try remapping Caps Lock to function as my Windows key as I generally have no use for turning Caps Lock on at any time during my daily routine. An example of this configuration follows:
# Layers
#layerblock
#endblock
# Remappings
remapblock
CAPS_LOCK LGUI
endblock
# Macros
#macroblock
#endblock
To program the cable, all one needs to do is run the .bat
script above. If the config takes, and the cable is detected, the Caps Lock key will function as the Windows key. The following diagram illustrates the flow of data in the translation operation provided by Soarer’s Converter; the left-hand side the communication protocol of the keyboard, the middle section the actual configuration and translation process, and the right-hand side the USB port of the computer:
It is not always clear how the end device will interpret keypresses from older keyboards. PJRC’s HID Listen program in combination with the official USB HID Usable Tables and Soarer’s HID codes are invaluable resources for mapping HID codes to keys, as hid_listen.exe
monitors both downward and upward keypresses:
Remarks
Upon researching and learning more about some of the popular vintage keyboards and stumbling across the Model M, I knew I had to have one - even if it became a display piece. I almost bought the Model F keyboard instead, the Model M’s predecessor, but ultimately decided to purchase two (in case replacement keycaps or other parts should ever be needed) of the 1391401 Model M iterations due to its adherence to standards and widespread popularity.
In fact, I am writing this post using my own Model M, connected SDL to USB with Soarer’s Converter, CAPS_LOCK mapped to LGUI, manufactured on July 16, 1990 with ID number 4543029 - identification information provided on the backplate by IBM to add a unique feel stamped into this timeless piece of hardware.
The main point of this post, if anything is to be taken away from it, would be a shared enthusiasm for legacy hardware and its capacity to be integrated with modern technology. It is only on rare occasion that a product or line of products is released on the mass market and is able to garner the level of popularity and influence required to surpass its competition and successors decades into the future.
Vintage keyboards such as the IBM Model M clearly fit into this narrow category of cases, as demonstrated by the highly active /r/modelm and related communities taking measures to document, support and update compatibility firmware such as Soarer’s Converter. In 1990, the year my keyboard was manufactured, it would have been surely difficult to imagine the release of specialized software used to enable protocol translation, key remappings and macros installed onto physical cables some 30 years later.
For more information and history, I recommend watching the following Linus Tech Tips video: