Converting a Brother ML100 Typewriter Into a Teleprinter

Note: I did not capture keystrokes from the keyboard since that would be a lot more work.

Materials used:

Schematic

schematic
Full Size Image
PDF Version

Soldering

Open up the typewriter and remove the keyboard. Take note of where the keyboard connects to the controller board.

top of the controller board
Full Size Image

Flip over the controller board and solder wires to where the keyboard connects to the controller board. (Yellow wires in the image below)

bottom of the controller board
Full Size Image

The net names 'i0-i7' in the schematic refer to the 8 pins farthest from the ink ribbon when the board is installed. 'i0' is the farthest pin. The net names 'o0-o7' refer to the 8 pins closest to the ink ribbon when the board is installed and 'o7' is the closest pin.

There should also be an orange wire and a black wire which supply power to the controller board. These will also power the Arduino so connect them to VIN and GND.

I placed the perfboard with the Arduino and transistors at the back of the typewriter near the power supply so that the USB cable can leave through the same hole as the power cable.

finished internals
Full Size Image

Software

The code for this project is in the following git repo:
https://github.com/yadayadajaychan/typewriter

The typewriter uses a BCD to Decimal Decoder (backup) to pull the input pins (i0-i7) low. It does this one at a time and checks if any output pins (o0-o7) have also been pulled low, indicating that a key has been pressed. It deduces which key was pressed and writes that character to the paper.

The Arduino sketch I wrote reads an ASCII character from the serial port and translates it into an input and output pin. It waits for the specified input pin to be pulled low and then brings the corresponding output pin low (using a transistor).

The Python script reads ASCII characters from standard input and writes it to the serial port that the Arduino is connected to.

Demonstration


480p 720p 1080p