Jeff Epler's Quick-and-Easy CircuitPython Adapter Brings an Old IBM Model F Keyboard to USB PCs
Using a classic IBM buckling-spring keyboard isn't as easy as just plugging it in, but Epler's adapter is nearly as quick.
Maker Jeff Epler has penned a guide to bringing a classic of vintage computing input devices to modern machines, converting an IBM Model F buckling-spring keyboard to USB using CircuitPython.
"When I saw this keyboard in a pile of stuff a friend was giving away, I recognized the classic IBM PC keyboard design with the function keys at the left hand side, and grabbed it with both hands," Epler writes of the acquisition which spurred the project. "Good thing, too, because it weighs about 8lbs. This keyboard is commonly called the 'Model F,' though so is the later keyboard for the IBM PC/AT. The AT Model F has a much more conventional layout and seems to be more common, so double check which one you have."
Predating the better-known Model M range of buckling-spring keyboards, the Model F is considered something of a "grail" device for mechanical keyboard enthusiasts. Unfortunately, even if you're lucky enough to find one for sale β or given away by a generous friend β actually connecting it to a modern machine isn't as straightforward as plugging in the cable. Instead, you need an adapter β which is what Epler has built.
Based on a compact Adafruit QT Py RP2040, which in turn runs CircuitPython on a Raspberry Pi RP2040 microcontroller, a five-pin DIN jack that is handily both the connector used by the keyboard and for more common MIDI cables, and a couple of resistors β primarily as a means of protecting the 3.3V RP2040 microcontroller from the keyboard's 5V.
A CircuitPython program running on the adapter converts between the original IBM keycodes and modern USB keyboard equivalents, while a programmable input/output (PIO) state machine handles monitoring the clock line and copying the data into a buffer. "Messages are shown on the serial REPL [Read-Evaluate-Print Loop console] for each event read from the keyboard," Epler notes.
The full guide, including source code and wiring instructions, is available on the Adafruit Learn portal; finding a Model F keyboard, though, is left up to the reader.