MODELS 14, 15 AND 19

Teletype Model 19 Restoration Series Playlist:

Introduction to Baudot Teletypes and Documentation Archive

The 5-bit Teletypes restored here were introduced in 1925 (Model 14), 1930 (Model 15) and 1940 (Model 19), and are all very closely related, sharing similar mechanisms. They do not use the modern 8-bit ASCII code, but instead they use the 5-bit Baudot code that preceded it. As such, they make very poor machines to connect to computers. However they are incredibly robust text transmission systems. These units are military grade, and were workhorses in the Army and Navy through the second world war and the Vietnam war. They found extended civilian use in the Telex system, and were used in newsrooms until the mid 1980's.

I have uploaded a large set of documentation that we have used throughout the restoration:

The essential individual documents in this set are linked below in context.

Episode 1-3: Main Documents

Teletype Model 19 Restoration

This videos is a demo of our fully restored Model 19 and Model 15 5-bit Baudot Teletypes. Although this was shot at the very end of the restoration series, it provides the best introduction to the machines by explaining the principles and showing them in use.

Here are the main reference documents to the Model 15/19 Teletypes:

Navy Guide to Teletypes

This manual is the best introduction to 5-bit Teletypes I have found. It gives a great introduction to the basic principles and describes various machines and use cases.

Model 15 Printer

This is the main manual for the printer (receiver) section of the Teletype (both for the Model 15 and Model 19)

Model 19 Table

The devilish wiring of the Model 19 table got us stumped for at first. The above collection of schematics helped us disentangle it.

Model 15 Keyboard and Punch

This is the manual for the keyboard and punch section.

Model 19 Base

This manual has the complex wiring for the base that holds the keyboard, printer, motor, polar relay and external interconnect block.

Episode 2: 60 mA Loop Interfaces, TTYLoopDriver and BaudotRSS

5-Bit TTY Interfaces

In this demo we use a modern 60 mA interface to print newsfeeds on our teletype. In this video I use the John Nagel interface that Carl built for me. References are below. Since then, I found the Volpe board to be easier to procure and use, although it requires a separate high voltage supply. Eventually, I decided to build my own, partly based on Eric Volpe's design. Plans for my interface are further below, in notes about the episode where I connect to Linux.

John Nagel TTYLoopDriver

A 60 mA Baudot USB adapter for working with the BaudotRSS software below. Derives its own high voltage supply from the USB power, which is very neat. It is good hardware, but the description and documentation of the project is poor. It says it does not need drivers, but it sure does, and they are hard to find. Carl managed to build one.

John Nagel BaudotRSS

Software to use with the above hardware interface. Can be used to print rss news feeds. Similar to the above, nicely done, but difficult to get going. We eventually managed to make it work when we discovered it only works with Python v2.7. It requires a whole bunch of extra packages. COM ports numbers are off by one (use 0 to talk to COM1!). It eventually worked.

For those that want a ready to go solution, there is an excellent and very inexpensive interface board designed by Eric Volpe :

My own interface, based in part on Eric Volpe's excellent design, is discussed further below in the documentation for the Linux episode.

Chart of Baudot Codes

Baudot codes use only 5 data bits. However, the 5 data bits are preceded by a start bit, always a "space", which is represented by an open line, and followed by a stop bit, always a "mark", which is represented by a 60 mA current (Note: this is for neutral mode line wiring. In polar mode, space is -30mA and mark is +30mA). The stop bit is longer than all other bits, in theory 1.42 bit period but in practice 1.5. This is done to leave enough time for the mechanical receiver to sync on the next start bit. Since it does not hurt to make the stop bit slightly longer (except for the slightly lower effective data rate), it is often made two 2 bits long on electronic computers. On your computer serial port, that's the "2 stop bits" setting. So in total, counting the start and stop framing bits, a single Baudot character is sent using 7.5 bits (1 start, 5 data, 1.5 stops).

The Model 19 uses a transmission rate of 45.5 bauds, so each bit is 1/45.5 seconds, or 22 ms per bit. Many other Baudot rates have been used, notably 50 Bauds in Europe, and faster 56, 75 and 100 Bauds. These speeds are sometimes quoted in the confusing "Word Per Minute" metric, which oddly assumes that a word is 6 characters long. I guess they were not writing in German! So a 60 WPM machine is 45.5 Bauds, 66 WPM is 50 Bauds, 75 WPM is 56 Bauds, 100 WPM is 75 Bauds, and 133 WPM is 100 Bauds. For example, the later Teletype Model 28 can work at 45.5, 50, 56 or 75 Bauds. The change in rate is accomplished by changing a set of gears in the machine.

When there is no other character to send, the stop bit prolongs indefinitely. Which means that an idle Baudot line is the "mark" condition, which is a closed 60 mA line. This is done so that you can immediately spot if a line is working even in idle (or conversely, if a line is broken), a practice that dates back from the first Morse code telegraph lines. This is still with us today, where an idle serial line is in the logic high state, say +5V, and not at logic low as you'd expect. You can blame it on the Morse code telegraph.

Episode 4: Power Supply

REC-30 Teletype Power Supply

This high voltage DC power supply uses blue-glowing thyratron tubes.

Ken Shirriff's in-depth article about the power supply:


Simplified power supply schematics:

Inside the door schematics

This complete schematic was glued inside the power supply door. I took a picture of the damaged original and cleaned it up so we could reprint it.

Episode 5-6: Model 15 Keyboard and Punch

Keyboard and Punch

It takes two episodes to repair the keyboard and the tape punch unit. The punch counter gives us particular trouble.

Annotated punch schematics and actual wiring diagrams

The original schematics and the actual wiring diagrams are very hard to comprehend. These annotated versions developed during our reverse engineering should help greatly.

Episode 9: Model 15 Printer Section

Fixing the Model 15

Getting our Model 15 to work necessitates a deep dive into the actual wiring and adjustments of our particular unit. We unearth a few subtle faults introduced during a previous restoration attempts.

Annotated wiring diagrams

The wiring diagrams for the printer base are very hard to comprehend, particularly the optional neutral/polar relay wiring and the wiring posts. These annotated versions developed during our reverse engineering should help. Note that our Model 15 base was wired slightly differently from our Model 19 base.

Episode 11: Visiting Mr RTTY

Paul Cembera has probably the last remaining collection of spare parts for Teletypes

Tel: (510) 222 3102



RTTY Electronics

PO Box 20101, El Sobrante, CA 94820-0101 USA

Episode 12: Model 14 T/D (Transmitter/Distributor)

Model 14 T/D (Transmitter Distributor)

This units reads previously recorded punched tapes for transmission.

Once again, the original diagrams lack the critical annotations that would make them understandable. The difficulty is that they are two wiring options: one for neutral wiring, and one for polar wiring. This annotated diagram developed during our reverse engineering should help.

Episode 13: Model 19 Table

Model 19 Table Wiring

The complete rewiring of our Model 19 table forces us to finally reverse engineer the apparently incomprehensible wiring arrangements.

Here is the original wiring documentation we recovered:

Model 19 Table Wiring Diagrams Collection

Similarly to all previous diagrams, the original wiring diagrams are devoid of essential annotations necessary to make them comprehensible. Except that the table is one order of magnitude more complicated and one order of magnitude less annotated than the others. However, I have made a complete set of annotated diagrams, available below. This is what I developed during our restoration, and allowed us to make sense of the otherwise seemingly incomprehensible wiring.

Of particular note is the essential user panel wiring, which is further discussed in the demo video section below.

Model 19 table full schematics with plugged in peripheral and main line switch wiring

Model 19 table annotated DC wiring

Model 19 table annotated AC wiring

Episode 14: Adding the Motor Stop Feature

Adding the motor stop feature

Quite a number of features are optional on the series 15. In this episode, we add the motor stop feature.

We found all the parts at Mr. RTTY, referenced above.

Episode 15: Model 14 Reperforator

Model 14 Reperforator

We add one final piece of 5-bit teletype equipment: a reperforator.

Teletype 15 and 19 Demo

Model 15 and Model 19 Teletype Demo

It's done, we give you a grand tour of our two glorious restored teletypes.

Deciphering the user panel wiring

Under a door panel at the back of the Model 19 table, there is a 3 terminal block user panel that is both essential and very poorly documented. This is where the user is supposed to wire up his configuration and external lines, including configuring wiring for full or half duplex, neutral or polar, as well as splicing in the transmitter and the reperforator. Everything is fully customizable.

It looked hopelessly complicated and the wiring notes were not helpful, to say the least. It did not help either that the custom wiring that originally came with our machine was nonsensical. But started to fall in place when I realized that the top connections of the terminal blocks are the fixed wiring end points, which the user is not supposed to touch, whereas the lower connections of the blocks are reserved for the user to put jumper wires between the blocks. After lots of wire beeping, one arrives at the simplified diagram below, which should have been in the manual in the first place! The user jumper wiring (in dashed lines) is the half-duplex neutral configuration I chose to implement. It puts the printer, keyboard TD and reperf in one big half duplex loop, which output is switchable by the front line switch. The external lines connection go the test jacks (providing a locally powered loop) and which I use most of the time, and to Line 1 and Line 2 jacks which I added at the back of the machine. Line 1 and Line 2 assume that line power is provided by the remote end.

Here is the original Shag Harbor UFO message original that I transmit. The document below explains how the 16 line radiogram format should be decoded.

16 lines message format.rtf

TTY as Linux Terminal

Model 15 Teletype Used to Login on Linux

In this project, we build the electronics and software to interface to a modern computer and log into Linux using the Model 15, introduced in 1930. And it does a slow but fine job. We end up printing a lot of ASCII art, although it is really RTTY art.

ASCII Art Files

These are actually more specific than ASCII art files, they are TTY art file, using only all-caps and the few special characters available to Baudot teletypes, restricted to 74 columns, and using overprint. Can't really be printed on anything else than a Teletype, the ones with overprint won't draw correctly on a modern console or a text editor. Caution, the files starting with "miss" are mainly nudes. Scroll all the way to the bottom to download a single zip file that contains them all.

USB/RS232 to Baudot TTY Interface

My Baudot interface box is documented below. I have not made a PCB for it, instead just using a proto board. But all the info you need to make your own box is there.

For those that want a ready to go solution, there is an excellent and very inexpensive interface board designed by Eric Volpe :

The analog part of my interface is actually based on Eric Volpe's very good design.

Finished TTY interface box

60 mA loop analog board

View of the box internal wiring

Arduino Mega board on the left, analog converter board on the right.

Getting a TTY Linux login prompt on a serial port

You have to jump through a few hoops to get a login prompt on the serial port, and it's even worse if you want to do that through USB (see below).

My old machine had a real serial port COM1 serial appeared was /dev/ttyS0 on linux, as reported by

dmseg | grep tty

But acces to it is denied by default. For getting access, one method is to change the permissons temporarily, but it gets quickly annoying as you have to redo it after each login:

sudo chmod 666 /dev/ttyS0

A more permanent fix is to create then add yourself to the dialout group :

sudo newgrp dialout

sudo gpasswd -add ${USER} dialout

Then you want to set the port for 9600 bauds and Xon/Xoff using the following command:

sudo setty -F /dev/ttyS0 9600 ixon

Only then will agetty be able to do its thing and prompt a login on the TTY attached to the serial port. The tty33 terminfo is the oldest TTY description I could find, but was not very effective in modern Linux from preventing the pervasive use of color codes and escape sequences.

sudo /sbin/agetty -L 9600 /dev/ttyS0 tty33

Getting a TTY Linux login prompt on a USB port

If you don't have a computer with a hardware serial interface, it's even crazier to get that to work when connected via the USB interface. The Arduino USB port should simply be accessible through /dev/ttyACM0. But even adding yourself to the dialout group won't work to access this one (it's part of the tty group apparently). And worse, the 'agetty' command does not work as documented, being silently prevented on USB by some overactive security watchdog (see https://bugzilla.redhat.com/show_bug.cgi?id=1514235). I had to resort to launching a service through a script, which feels like and unnecessary and complicated workaround such a simple thing.

My ttystart shell script:


sudo chmod 666 /dev/ttyACM0

sudo -F stty /dev/ttyACM0 9600 ixon

sudo systemctl enable serial-getty@ttyACM0.service

sudo systemctl start serial-getty@ttyACM0.service

To stop the console, a similar script can be used.

My ttystop shell script:


sudo systemctl stop serial-getty@ttyACM0.service

I am still not sure how to specify a terminfo option through these commands.