Close
0%
0%

80s Typewriter Linux Terminal

I'm using an Arduino and a Raspberry Pi to turn a Brother AX-25 typewriter into a fully-functional Linux terminal

Public Chat
Similar projects worth following
A couple months ago, I got a Brother AX-25 typewriter, and since then I've been working on turning it into a computer! It has a custom mechanical keyboard, and can do nearly anything you can do with a Linux terminal.

From the late 1800s to the late 1900s, the typewriter was one of the best ways to write documents. Sadly, they were largely rendered obsolete by the rise of home computers. I didn’t grow up using a typewriter, but a couple months ago I bought a Brother AX-25 electronic typewriter, and I've turned it into a computer

It uses a spinning wheel with letters molded into it and a motorized hammer to type text, rather than type bars (or strikers) like in a traditional typewriter. The sound it makes is unmatched even by the clickiest of keyboards. Each keypress results in a short buzz as the motor selects a character, followed by a satisfying clack.

The AX-25 has a 16-character LCD, 128 kB of ROM for the typewriter’s firmware, 128 kB of storage, and 16 kB of RAM. These specs are pretty terrible by today’s standards. Luckily, it’s easy to repurpose old technology with open-source hardware! That’s why I used an Arduino and a Raspberry Pi to turn my typewriter into a Linux terminal.

The PCB manufacturing was sponsored by PCBWay, the keyboard switches and Raspberry Pi Zero were provided by Whisker and CSTRSK on Twitter.

Inspiration

Back in high school, one of my friends was working on making a computer using a Z80 for a school project. He had it set up on a few breadboards in a briefcase, and after we talked about it for a bit, we decided that we would try to put it in an old typewriter. We wanted to make our own Commodore 64. We gutted an old electronic typewriter, but never got around to putting the computer in it. For the past 6 years, I've had that typewriter's shell sitting in my room.

For a while, I wanted to turn the typewriter into a cyberdeck. I planned on putting a screen in it, and a Raspberry Pi with a hefty battery. I had that idea rolling around in my head until a couple years ago, when I saw CuriousMarc's video about his teletype turned into a Linux terminal. I wanted to do the same to a typewriter, but I never had the time to do it and couldn’t find a typewriter at any thrift stores. After graduating from college, I finally had enough spare time, and knowledge, to turn a typewriter into a computer, so I went to a thrift store and bought the first electronic typewriter I could find.

Functionality

I can use all sorts of Linux commands, and by processing the escape sequences that the Raspberry Pi outputs, it can automatically toggle the typewriter’s formatting features. I can also type commands using the typewriter's keyboard.

I've also used it to print some ASCII art, I think the results look pretty great!

Reverse-engineering

The typewriter’s keyboard is wired up in an 8x11 matrix, and it connects to the typewriter using two connectors, one for the rows, and one for the columns. When you press one of the keys, it connects one of the row pins to a column pin, which the typewriter then detects. To figure out which pair of pins each key corresponds to, I connected each pair by hand one at a time, and wrote down what key was printed. I did this until I had the entire matrix mapped out.


The typewriter uses a 7805 linear regulator to power its 5V components, and I was able to locate an unused 5V pad and ground pad that I can tap into to power my circuit. I had to add a heatsink to the regulator to accommodate for the increased power consumption of my circuit.

Interfacing with the typewriter

The Arduino code is available on my GitHub repository if you’d like to look at it in more detail! My Arduino controls the typewriter using two multiplexers, one connected to each of the keyboard connectors. The multiplexer’s signal pins are connected so they can be used to connect pairs of pins on the keyboard connectors together. To send a key, the Arduino selects a pin on each multiplexer to connect them, which tricks the typewriter into thinking that a key has been pressed.

Image

The current version of the circuit.


The original prototype of the typewriter control circuit.

The...

Read more »

View all 6 components

  • It's done!!!

    Riley10/07/2022 at 04:08 0 comments

    I finished the video about the final assembly of my typewriter! There's a sound test at the end in case you want to hear the keyboard on its own, I hope you enjoy!



  • Finishing touches

    Riley10/02/2022 at 18:32 0 comments

    Yesterday I put the finishing touches on my typewriter and closed it up! Now I can use it on the go!

    I used a piece of foam core poster board to fill in the gap from the old keyboard's faceplate. I'm going to start recording the video about it now, so keep an eye out for that!

  • On the home stretch!

    Riley09/30/2022 at 23:06 0 comments

    I did another livestream on Monday where I continued wiring up the multiplexers

    Once I got the keyboard multiplexers all wired up, the keyboard worked perfectly after some debugging!

    I the next day, I decided I'd work without streaming so I could get more done, and I got the typewriter multiplexers wired up!

    After that, I put the keycaps on and put the top shell of the typewriter back on!

    You can see my typewriter in action in this tweet I posted on Twitter

  • Using jumper wires to avoid soldering SMD components

    Riley09/25/2022 at 23:34 0 comments

    I like to think I'm pretty good at soldering, but these tiny multiplexers were an absolute pain to work with. Luckily for me, I broke one of them, so I can't use them anymore!

    To make my life easier, I decided to wire up the multiplexers I used in the breadboard prototype with a bunch of jumper wires.

    ImageThe multiplexers' channel pins are connected to the columns and rows of the keyboard's matrix, and I went through the PCB blueprint to find which pads to solder the wires to. I still need to wire up the rest of the columns and the control pins for the second multiplexer.

    Wiring up the typewriter control multiplexers should be much easier, hopefully. I'm going to solder some headers onto the nano, and use some jumpers wires to connect the multiplexers.

  • Assembling the keyboard

    Riley09/25/2022 at 02:26 0 comments

    The parts for my typewriter finally arrived!

    My first attempt at assembling one of the PCBs was a failure. I broke one of the SMD multiplexers, and soldered another one at an angle, but I managed to solder one of them correctly. After this attempt, I decided I needed to take another approach.

    For my second go at it, I decided to forgo the SMD multiplexers altogether, and wire up the multiplexers I used in the breadboard prototype using the silicone wire I got. I got the keyboard mostly assembled, but ran out of solder before finishing it.


    Tomorrow, I'll be finishing the assembly of the keyboard, and hopefully have everything working!

  • Designing and ordering a custom PCB

    Riley09/14/2022 at 19:03 0 comments

    Last week, I spent a few days working on the design for the PCB I'm going to replace the typewriter's keyboard with. I livestreamed the whole design process on YouTube, and after all that, I now have a pretty solid design! The KiCAD project files are available on GitHub. I've ordered the PCBs, and they should be arriving about a week from now! 

    Schematic:

    All Layers:

    Front copper:

    Back Copper:


View all 6 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates