Twitter was established in 2006 and is daily used by people all over the world through modern technology like smartphones, tablets, and computers, all of which are relatively new electronic devices connected to the Internet. We wanted to change that. At least the part about relatively new devices.
Typewriters have been around for ages. Mechanical, handcrafted, vintage, marvelous pieces of metal, which prints one character with each keypress by making ink impressions onto paper.
People seeing an old typewriter for the first time seem to really enjoy it, and immediately start typing away. There is something pleasant about the whole mechanical and robust experience. At least for a short period of time, before it starts getting tiresome. Say, around 140 characters?
We wanted to give our older brother an extraordinary birthday gift for his 30th birthday. All three of us have always been geeks and interested in technology. We love unusual projects solved in weird ways; and when you add wires, microcontrollers, and old fashioned hardware, it becomes something special. So, we decided to buy a vintage typewriter, attach some wires and a microcontroller, setup a Twitter account, and turn it into a tweeting typewriter. Namely the @kvitremaskin.
Time required: A weekend
Step 1: Finding a typewriter
Go online, drive to the nearest antique shop, or ask your grandparents for a vintage typewriter. We went online and bought a Sumitronic 30 from 1970 for around 30 bucks.
Step 2: Add missing keys
Typewriters vary in the keys available. The typewriter we bought missed several, for instance hashtag and exclamation point. Luckily, missing or desired keys are easily created by printing them on photo paper. Find a key on the typewriter that you don’t need, cut the printed symbol to match the size of the key, and glue the newly created key symbol on top. You will obviously not get the correct feedback on the actual paper when typing, but the posted tweet will contain your new character.
Step 3: Wires and soldering
The typewriter is a heavy bulk of mechanical construction. Each key is connected to its own mechanical arm that transfers ink onto paper, through a ribbon, when the key is pressed with sufficient strength. To retrieve each keystroke you need one wire per key. We soldered a thicker wire (1.5mm) to each end of a thin and flexible wire (0.08mm) to make it a bit more solid. People tend to type very hard on old typewriters, so make sure the wires can take a hit.
Cut the 1.5mm wire into 5cm lengths, one for each key on your typewriter. Use the wire stripper and pliers to form these into short hooks in one end, and solder the other end to the 0.08mm wire. It is possible to only use 1.5mm wires, but considering the space between each key and available room inside the typewriter we recommend using 0.08mm wires with 1.5mm wire attached to the ends.
Step 4: Superglue
After forming and soldering all the wires you need, it’s time to start gluing them onto the typewriter. Apply superglue to the insulation and attach it to the mechanical arm using a tweezer. Make sure the hooks have about the same height, making it easier to hit the wire above later on.
Step 5: Elastic band
Mount an elastic band just above the attached wires. The flexible band will allow the user to use the keys as on a regular typewriter, and at the same time allowing the wires to come in contact. This makes it possible both writing on the physical paper as well as receiving all keystrokes electronically. Attach five separate cables, hereby referred to as bars, onto the elastic band. This is done by passing the wire through the holes that already exist in the band. Every time a key is pressed, the wire glued to its arm is lifted. Make sure these wires hit one of the bars on the elastic band. Also, distribute the glued wires evenly among the five bars. We had 50 keys on our typewriter, resulting in 10 keys per bar.
Step 6: Distinguish the keys
Take one wire from each bar, and solder them together into one bundle. In our case, this resulted in ten bundles with five wires each. Make sure the wires in a bundle link to each bar only once, as they will be connected to the same input on the microcontroller. Otherwise you won’t be able to distinguish between their inputs. Also, take note as to which key goes to which bar, in order to translate GPIO input to keystrokes. It might be worth taping together the wires in each bundle to avoid a mess inside the machine.
Step 7: Microcontroller
The Particle Photon with its built-in WiFi module and small size was perfect for this project. Follow the setup guide as described on their webpage. Once connected to the Internet it can be programmed through their cloud service. The Photon has 18 mixed-signal GPIO. Typewriters typically have around 50 different keys. In order to detect all keystrokes, alternate between each bar to retrieve which keys are being read. By toggling which bar is defined as active you should be able to read all keystrokes, one bar at the time. Attach all the wires to the Particle Photon according to the circuit diagram. Then, download our sample code from GitHub and follow the last instructions there. Pull requests are very welcome!
Step 8: LED light
It can be hard to tell the state of a microcontroller without an interface. By installing a RGB LED you can reveal the internal state of the Particle Photon. Blue light means that it is powered on and connected to the Internet. Green light indicates that it receives user input. Red light lets you know that something is wrong.
Step 9: Assembling
Power the machine up and start typing your own tweets from an old typewriter!