Serial Typewriter | The MagPi #122

Riley Groeschel has taken an electronic typewriter from the late 1980s and turned it into a Linux terminal, as David Crookes explains.

It may surprise you to know that some people still use typewriters today. There are government departments which tap away on them because they can’t be hacked and they are used in some capacity by banks, prisons, businesses, and law firms.

Raspberry Pi acts as a serial monitor. An Arduino Uno is connected to it and the keyboard and messages are passed between the two
Raspberry Pi acts as a serial monitor. An Arduino Uno is connected to it and the keyboard and messages are passed between the two

Here at The MagPi magazine, we’re also taken in by a typewriter’s charm; from its immediacy and feel to the sound made as the letters are hammered on to the carriage. So, when Riley Groeschel decided to dust down a Brother AX-25 electronic typewriter and give it a new lease of life, we felt it was something to write home about.

“I’ve turned the typewriter into a Linux terminal,” Riley says, revealing that it wasn’t actually the original proposal. “Back in high school, my friend was working on a computer using a Z80 processor,” he adds. “We planned on taking his finished computer and putting it inside a typewriter so we’d have something similar to a Commodore 64, but we gave up because he never got the computer working.”

Bashing out ideas

At that point, Riley considered using his typewriter shell to create a cyberdeck (a retro-looking futuristic computer). “That idea floated around my head until I saw CuriousMarc’s video where he used a teletype as a Linux terminal and the idea was born,” Riley says. “I knew I had to replicate the experience of using UNIX on a teletype like it was done half-a-century ago.”

serial typewriter magpi 122
The project is a near-fully functional Linux terminal

To do this, Riley decided to put a Raspberry Pi computer at the heart of the typewriter, coming up with a way to fool the old machine into believing a key had been pressed. The aim was to print the output from a Terminal window but, at this stage, a laptop was being used as opposed to the typewriter’s own keyboard.

At first, Riley connected two multiplexers to the typewriter’s keyboard 8×11 matrix and allowed them to be controlled by an Arduino Uno. “My Arduino is connected to my laptop over serial through a USB cable and I can send commands to it through the Arduino IDE’s serial monitor,” Riley explains.

serial typewriter magpi 122
The project makes use of a Brother AX-25 electronic keyboard which has a small LCD display and 8kB memory. Output is via the daisy-wheel print head

“When the Arduino receives a message from my laptop, it forwards it to Raspberry Pi which has the serial code on its UART pins enabled. Raspberry Pi forwards it to the Arduino with the output of the command that it received. The Arduino then ‘sends’ it to the typewriter using the two multiplexers to emulate the typewriter’s keyboard.”

The right type

As commands or words are typed, they’re banged straight out on to paper. Any resulting messages are also immediately printed. “I had to map out the typewriter’s keyboard one key at a time by connecting each pair of pins on the two keyboard connectors together, and I put that all into an array which let me connect the ASCII characters from Raspberry Pi to the typewriter’s ‘keycodes’.”

serial typewriter magpi 122

After that was working, he connected the typewriter’s own keyboard to the Arduino. “The Arduino checks each pair of pins one at a time using the multiplexers until it detects that a key has been pressed,” Riley says. “Once it does, it sends that key to the Raspberry Pi computer for processing.”

Aside from working as a Linux terminal or as a teletype, the machine can also print large ASCII art, including a cool image of the Mona Lisa. Riley is also continuing to refine his project. “I plan on designing a custom circuit board that I’ll install between the typewriter’s keyboard and motherboard,” he says. “I might even replace the typewriter’s keyboard with a custom mechanical one to improve the typing experience.

No comments

Comments are closed