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:
- Arduino Nano
- 8 Transistors
- Perfboard
- 22 Gauge Wire
Schematic
Soldering
Open up the typewriter and remove the keyboard. Take note of where the keyboard connects to the controller board.
Flip over the controller board and solder wires to where the keyboard connects to the controller board. (Yellow wires in the image below)
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.
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.