When it comes to exploring the potential of your inventive imagination the Raspberry Pi is a great addition to your creative toolkit. Consider pushing your creative boundaries with projects like building an arcade cabinet, space exploration photography, or bringing life to older technology.
A recent graduate was inspired to tackle a unique project using an electronic typewriter as a Linux terminal display, with the help of a Raspberry Pi computer. Let’s take a look at why he decided to take on this project, along with the tools and techniques used to help him along the way.
Learning From Others
Having recently earned a degree in Mechanical Engineering, Riley is no stranger to electronics. He prefers to work on projects where he designs solutions around moving parts. Pairing his dream of him to create his own mechanical keyboard with his love for moving parts makes this project perfect for him.
The idea is initially credited to a high school friend. Together, they worked toward building a computer using a Z80 CPU and were planning to gut an older typewriter, a Smith Corona PWP D350, to use as the keyboard and case. Unfortunately, the keyboard parts have now been collecting dust for six years.
A YouTube content creator, CuriousMarc, used a Teletype machine as a Linux terminal which reignited Riley’s ambition to try again.
This project is a great way for you to understand how moving parts work and how technology communicates together.
Here is what you will need to recreate this project at home:
- Brother AX-25 (or similar typewriter)
- bread board
- Raspberry Pi (running Raspberry Pi OS Lite)
- Arduino One
- Code: Arduino Programming Language
- voltage dividers
- Various cables and connectors
Research and Preparation
A major hurdle involved understanding how the typewriter interpreted external keystrokes. This was solved by manually identifying each pin connected to the typewriter cable and then creating a spreadsheet to keep it all straight. Each key is assigned a number between 0 and 87 to make programming easier.
The multiplexers are used to connect inputs and outputs without needing a lot of extra cabling or connectivity. For example, you can reduce the number of pins used when working with many sensors or motors.
With respect to the typewriter, multiplexers are used to connect many input pins to a single output pin. When changing the selected pins you can then choose which input is connected to the output.
To ensure accuracy between components, wiring an 8 x 11 matrix was required to understand how to map the typewriter traces correctly. You can see this manual discovery take place on Riley’s YouTube channel linked at the end of this guide.
Based on Riley’s research the daisy wheel typewriter mechanism works well with the Arduino. To learn more about this microcontroller, check out our guide on exploring the different Arduino types for details. Why did he end up using a Brother AX-25? This is merely the first typewriter I have found to fit his criteria.
In the picture above, a long rectangle board connects various technologies together. This is called a bread board. The main purpose of this board is to simplify electronic circuits. Check out our guide on how a breadboard works for details.
With a USB keyboard connected to the Raspberry Pi you can then send commands to the typewriter via the Arduino microcontroller. To get a deeper understanding of terminal functions, consult our guide on the history of Linux commands.
The Raspberry Pi runs Raspberry Pi Lite OS which meets the needs of this project well. This is due to the typewriter displaying simple functions through the TTY (or teletype) terminal.
Riley admits that the Arduino could be removed from this equation. Troubleshooting any issues while multiplexers pass Raspberry Pi commands on to the typewriter is more efficient because he has extensive knowledge of this microcontroller. Alternatively, creating a new Linux driver is needed to replace the Arduino. This is not something in this creator’s plans for now.
I have also considered removing the Raspberry Pi and adding a serial port connection between the Arduino and the typewriter. Although he was excited to share that this would mean the typewriter would feel like a real teletype machine, he has opted to keep the general flow of components for the time being.
Choosing to code using the Arduino Programming Language because of his experience using the Arduino for a senior design project in school. This experience came in handy a few times especially when there was a small issue when attempting to tell the typewriter to press two green (function) keys at the same time.
The timing issue was eventually solved by telling the Arduino to press two keys very close together. This actually tricked the typewriter into thinking that two keys were pressed together and enabled the use of the green (function) keys after all.
With respect to power difference considerations between the Arduino and Raspberry Pi, voltage dividers used in this project reduce the 5V power output of the Arduino to the 3.3V power output of the Pi Zero W.
What Does the Future Hold?
Recently Riley shared a live broadcast on his YouTube channel designing a PCB in real-time. Not sure what a PCB is? Check out our guide on printed circuit boards. If you are not interested in sitting through six hours of live broadcast content (describing the design in detail), consider skipping through the video to a section that suits you.
When the schematics are completed he plans to send the PCB design to a manufacturer. When the PCB is completed and received at home, Riley shared that he is excited to take the finished product for a test in the real world one day soon.
Will You Try This Project Yourself?
As you now understand what components are required, and how it comes together, you can also review the code online. You are welcome to view Riley’s open-source serial-typewriter GitHub repository. While you’re there, take a read through the great explainer in the README file outlining a circuit diagram to help you connect all the components together.
If you find yourself needing a helping hand, consult Riley’s YouTube channel, Artillect, for details. You’ll also find that he includes other ways to connect with him as well.
Enjoy giving your electronic typewriter new life as a Linux terminal!