Teletype Model 28 60wpm

I found a beautifully maintained Model 28 with fascinating features. It has a paper winder, switch on the keyboard to activate a radio key for transmit, and it included a terminal unit. It is geared for 60 words a minute so this is what I would need to participate in on air teletype contacts. Not having been confronted with the need to connect to a radio for transmit with the other teletype, ill have to figure this part out. I have listened to RTTY on the air, but never attempted to transmit on it and the details of this are not obvious. A place to start seems reoccurring RTTY nets at 3905 Century Club, figure out reception, then work on transmit.

This machine will be a great addition to the M35a2 setup, but ill have to make some choices on layout, ill likely be able to fit it with some shuffling and some way to shield it from shock while moving.

Raspberry Pi as Ham Radio computer

I have seen a few people recommend a Raspberry Pi as a ham radio computer/controller, notably Off Grid Ham Radio OH8STN, at least in the past. Having incorporated a Raspberry Pi4 in my setup for a few years, I find they are well suited for this.

Raspberry Pi in the top left corner next to IC7300

My setup is a Pi4, powered by a large 12v battery (Duracell deep cycle gel type) connected to a 12v to USB-C (60w) device from Coolgear. I use the device from Coolgear since standard USB power seems to be to little to drive the Pi, it frequently indicates low power unless I use the Coolgear device which provides higher wattage. The battery will keep the Pi alive for at least a couple weeks and can be charged by solar or using a 12v charger. The Pi gets time from a u-Blox7 USB GPS receiver, since Internet access is not usually available at places I camp and time, at least the seconds portion, is important to digital modes. The GPS receiver is in a PVC pipe outside the truck and can be seen at the top right, the GPS does not work in the metal enclosed truck. This Pi connects to the IC7300 and I have rig control and access to digital modes from the Pi. I use VNC (Virtual Network Computing) to then operate the Pi from a regular computer, or even old IPads. Since the Pi can operate as a WiFi hotspot of sorts, albeit without internet, I can VNC from anywhere in the vicinity, even a cot in the tent away from the radio.

The advantage of using a Pi is its very low power draw allows sessions to be sustained without interruption for days, much longer than I would ever operate POTA. If my display computer runs out of battery, I can charge it without losing track of received messages. I generally just let the Pi run for the entire trip without having to worry about it, ill just VNC whenever I want to use it. The Pi is also incredibly inexpensive; I got a kit from Vilros for about 60ish dollars that came with a very nice metal case.

A disadvantage of the Pi is that it isn’t a very fast computer, but it is just fine for handling digital modes. A variety of logging software I have tried lags though, enough to hinder fast moving activations. I generally log on a regular computer to log contacts. I have been using HAMRS for logging.

My preferred digital mode is JS8 using the software JS8Call. I do enjoy voice contacts, but voice is a bit difficult for me with my howitzer hammered hearing. Digital modes allow me to make contacts without having to depend on my ears. JS8Call uses signaling that is stated to be effective even at low signal levels, and this seems to be true in my experience. I like the idea of being able to pick up even faint stations. JS8 isn’t a very fast protocol, and it isn’t a very good choice for racking up log entries, but usually I am not after numbers for POTA or contests anyway, I am more focused on what can I get my equipment to do. For most POTA trips or contests I’ll try to log at least a handful of JS8 log entries.

My Method of setting up a Pi as a radio controller

  • Install the Pi Operating System
  • Use the AmRRON setup script to install radio specific applications
  • Resolve problems with JS8Call
  • Connect the radio using FLRig, resolve audio connections and audio levels for JS8Call
  • Set up time with GPS and Chrony
  • Add final add on applications

Installing the Pi OS (Bookworm)

Any computer that is updated over time, adding and removing software, gathers some unwanted stuff laying about. Every year or two, I start with a fresh install of the current Pi software, beginning with the Raspberry Pi Imager. I have a computer monitor that I use to get the Pi off the ground after first boot, VNC is not turned on by default. You have to turn on VNC using raspi-config or using the “Raspberry Pi Configuration” under preferences after you boot up. Turn on SSH as well.

Raspberry Pi wants you to use the “Raspberry Pi Connect” application, but it requires a login with it’s service and gives global access to your Pi, which I don’t really want or need for this application. RealVNC Viewer works to access a Pi with VNC active. If you have trouble getting a VNC session to display, try other video modes using the “Screen Configuration” app under preferences in the Pi GUI. From here, do a standard update; the Pi has an icon in the top right indicating updates are available and choosing to install updates takes care of this process for you. After this the base OS is ready. It may be a good time to backup what is completed so far using the SDCard copier under accessories, you will need a second micro SD Card to make this backup.

I have found that while RealVNC server (the previous default VNC server on the Pi) was very stable, the new wayvnc server that is stock with the Pi sometimes flakes out. To restart it, SSH (PuTTY is free) to your PI and use:

  • run – sudo systemctl restart wayvnc

Install Radio specific applications with AmRRON setup scripts

To then install the software, there is a tool created by AmRRON that largely automates the installation process. You can find this tool at AmRRON setup-scripts where you can also find a very helpful guide on using this tool. I haven’t used all the applications it installs, but I am primarily interested in FLRIG, as the interface to the radio; JS8Call, as the digital mode software I use most often; and Fldigi, a program that gives access to a large number of various digital modes. I also occasionally use WSJT-X to see what I can reach given my equipment and location. I do need to make time to explore the other tools it installs, such as the packet radio applications. This install script take quite awhile to run, so be prepared for an hour or two of watching compile screens. This set of scripts also states it is written specifically for Linux Mint, so some software needs help, specifically JS8Call more often than not.

Some software fails, just try reinstalling, except JS8Call that needs extra help

For a variety of reasons, some installations may fail. Note them and reattempt them. I have found that the servers where this software comes from have temporary problems which is the most common problem, except JS8Call. With the exception of JS8Call, all the failed applications in the screenshot above worked on a retry. JS8Call often has issues with installing on the Pi OS, and every time it is software dependency that is the cause.

Resolve problems installing JS8Call

The official JS8Call install instructions to build JS8Call from source code located at js8call/INSTALL at main · js8call/js8call · GitHub also fails due to unmet dependencies, but this may change over time so it is worth trying.

To resolve the reoccurring issue with JS8Call on the Pi at least one potential method is the article at Building js8call and wsjtx under Raspberry Pi OS – Bullseye. To summarize the article:

  • run – sudo nano /etc/apt/sources.list
  • uncomment (remove the # symbol) from the last lines beginning with #deb-src like below. Use control-o to write the file and control-z to exit. The article references the previous version, “bullseye” but the Pi is (currently) on “bookworm”. This change permits the Pi to access expanded libraries of software
  • run – sudo apt update
  • run – sudo apt upgrade -y

From here, I tried the compilation method detailed in the article, which does work and installs version 2.1. You can skip the Hamlib sections as the AmRRON script will have already installed this. I would rather have the more recent version vs 2.1, however. I did find a method at How do I install a .deb file via the command line? to attempt the version currently listed at files.js8call.com/latest.html, which is version 2.2. It also fails dependencies, but using the following:

  • run – sudo apt-get install -f
  • run – sudo dpkg -i js8call_2.2.0_armhf.deb (after downloading this .deb file, and using cd to go to the directory its located in. Change the file name if the version number changes)

This finally worked for version 2.2 on a Raspberry Pi Bookworm. The packages will catch up eventually, but Raspberry Pi often seems to have difficulty with standard JS8Call install packages when the Pi bumps versions. I have more often than not had to spend significant time getting it installed, but with JS8Call being my favorite digital mode, it is worth the hassle.

Setting up FLRig and audio levels

I found setting the audio levels when I first started digital modes very difficult. It took me quite a while to figure out why I couldn’t receive, and when I finally could receive, why I couldn’t be heard.

FLRig is a great program that acts as an intermediary between your radio and the various software that accesses your radio, at least for ‘rig control’.

After connecting the radio to the Pi with USB (or whatever your radio model uses) you can run FLRig and see if you can get connected to it. The documentation for FLRig is flrig_help: IC-7300 Setup, and there are pages for various radios. I am using an IC7200 in this example, but the setup for a 7300 is similar, you may have to mess with Baud. Use a faster baud if it works for you:

You can also have a directory of frequencies and modes saved to quickly jump between these. When initially setting at a POTA campsite I normally monitor 2.5, 5, 10, 15, 20 Mhz from Radio Station WWV | NIST to get a sense of what bands might be doing well and to get audio feedback that my antenna and radio are working. Having these frequencies saved in FLRig makes it easy to switch between these. This directory of frequencies is per radio and the file that contains these frequencies often gets eaten so I have made a habit of saving this file elsewhere. It is located in the Pi’s home directory /home/.flrig by default and the file ends in .mat. I have an IC7200 and IC7300 so FLRig has a different .mat file per radio, but I can simply paste the contents of one radio’s .mat file into another. the .mat file wont be created until you save a random frequency using the memory menu and then exit FLRig like below:

Below is an example .mat file (for specifically an IC7200):

580000 2 39 "WIBW"
710000 2 39 "KCMO"
1440000 2 39 "KMAJ"
21078000 7 34 "JS8Call 15M"
24915000 7 34 "FT8 12M"
24920000 7 34 "PSK 12M"
24922000 7 34 "JS8Call 12M"
25000000 2 44 "WWV"
28074000 7 34 "FT8 10M"
28078000 7 34 "JS8Call 10M"
28120000 7 34 "PSK 10M"
50290000 7 34 "PSK 6M"
50313000 7 34 "FT8 6M"
50318000 7 34 "JS8Call 6M"

You may have to massage this file if moving it from one radio to another, which is easier than recreating it from scratch for each radio. The (sparse) documentation is here flrig_help: Memory Dialog, but the basic jist is the first number is the frequency, the second is a radio specific mode, and the third is a radio specific bandwidth. I just copy this file from one radio to another, save an example, eg a data mode, then use the data from it to modify the rest of the list. I keep a large list of various frequencies, voice and data, so I can easily switch from one to another with FLRig.

Once you get FLRig working, you can tell its working if you tune the radio and the FLRig display matches the radio, you can start working on the audio.

When you first run a digital mode software, in the above example, JS8Call, it will not display an audio waterfall. You have to figure out what input and output audio source to use. For a Pi and 7200/7300 combo it seems to consistently be:

If the audio receive is working you will see an audio waterfall:

For the next part – the transmit, keep your power low and find a quiet spot on the airwaves. You will have to transmit to find the optimal output audio level. The AmRRON install script offers PulseAudio as the Pi audio levels application and I have found it to be straightforward. You will need to pay attention to the output power of your radio, which should be greater than none and close to the power level you selected.

You also need to pay attention to ALC (automatic level control). The summary of the ALC feature of some radios will attempt to compensate for being overdriven (to much audio input) and this distorts your signal and potentially signals nearby. A good article discussing this can be found at Clean Up Your Act! Proper digital mode level adjustment in Windows 10 – West Mountain Radio. Although it covers Windows, the concepts will be the same for the Pi and PulseAudio.

For an IC7200/7300, and other radios I assume, make sure you are set (on the radio) in a digital mode. The “D” to the right of the frequency indicates the 7200 is in a digital mode.

Start with a lower output using PulseAudio:

Use the SNR or CQ to test the output – use halt after you get a result:

If your audio from the Pi is driving the radio, you will get power out on the PO (power out) meter:

I’m using very low power to not interfere with other stations

If you aren’t matching the output you selected on the radio with what is actually being transmitted, increase the volume in PulseAudio until you are. Eg if you selected to output 20 watts, you should be getting at or close to 20% on the PO meter.

Next is ALC, on the IC7200 you can long press the “ANF METER” (top right) button to select the various meter modes.

With your Pi audio driving the radios transmit, keyed up using the CQ or SNR buttons in JS8Call observe the ALC meter. Ideally, it will show nothing, but it can safely bounce on the first notch:

From here you can attempt a QSO on the various JS8Call frequencies listed at JS8Call | The official site for JS8Call

This is an overview covering specifically the Pi and a 7200. For a more detailed document see JS8Call-Guide.pdf, a high-quality reference from the author of the JS8Call software, Jordan Sherer KN4CRD. There is also a video featuring the author explaining, setting up, and using JS8 at JS8Call Setup and Demonstration by Jordan, KN4CRD

Time, at least seconds, is important to JS8Call as it frames all its signals in intervals. The Pi does not have an internal clock and will drift wildly if you don’t give it time from somewhere. By default, the Pi OS assumes you have internet access, and it gets time from NTP over the internet. If you don’t have access to the Internet to get the Pi time, you will have to set it fairly precisely manually or use a GPS to get time. There are also hardware clocks that you can get for the Pi, but I have not tried them.

A GPS Device and Chrony, a Network Time Protocol (NTP) client

I am using the Ublox7 USB GPS devices. They are very inexpensive, and I haven’t had one fail in the last several years. Since it is USB, I can run the GPS device outside of my vehicle, which is critical since the GPS signal is weak. Any GPS device that can connect to the Pi should work for time, but ill detail my setup.

The first challenge is figuring out what port name is given to your GPS. If it is USB, I have used this method:

  • sudo apt install gpsd gpsd-clients chrony
  • Plug in the UPS GPS
  • Use gedit or some other text editor to create a script, I called mine usbfind.sh
  • Run – gedit usbfind.sh
  • Paste the below script into this new file (this suggestion found at Stack Exchange)
#!/bin/bash

for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
    (
        syspath="${sysdevpath%/dev}"
        devname="$(udevadm info -q name -p $syspath)"
        [[ "$devname" == "bus/"* ]] && exit
        eval "$(udevadm info -q property --export -p $syspath)"
        [[ -z "$ID_SERIAL" ]] && exit
        echo "/dev/$devname - $ID_SERIAL"
    )
done
  • run – chmod +x usbfind.sh (to permit this new script to run)
  • run – ./usbfind.sh

In my case the GPS was – /dev/ttyACM0 – u-blox_AG_-www.u-blox.com_u-blox_7-_GPS_GNSS_Receiver, the important part being /dev/ttyACM0

  • run – sudo gedit /etc/default/gpsd
# Devices gpsd should collect to at boot time.
DEVICES="/dev/ttyACM0"
# They need to be read/writeable, either by user gpsd or the group dialout.
# Other options you want to pass to gpsd
GPSD_OPTIONS="-n"

# Automatically hot add/remove USB GPS devices via gpsdctl
USBAUTO="true"

START_DAEMON="true"
  • run – sudo usermod -a -G dialout *yourusername* (add your username to the group dialout, change *yourusername* to whatever your username is)

Some suggestions above are from Millisecond accurate Chrony NTP with a USB GPS, Set up GPSD with U-blox7 GPS Dongle on Linux, and Using NTP on Linux with Chrony – Pi My Life Up, NTP for Raspberry Pi with GPS PPS in 2025

Important commands to use to verify your GPS is working, and to have it adjust time if you are not connected to the internet

  • run – chronyc sources (this will tell you where your Pi is getting time from, NMEA should be listed if the GPS is working)
  • From chrony documentation:
    • ^ means a server
    • = means a peer
    • # indicates a locally connected reference clock.
    • + indicates acceptable sources which are combined with the selected source.
    • – indicates acceptable sources which are excluded by the combining algorithm.
    • ? indicates sources to which connectivity has been lost or whose packets do not pass all tests. It is also shown at start-up, until at least 3 samples have been gathered from it.
    • x indicates a clock which chronyd thinks is a falseticker (i.e. its time is inconsistent with a majority of other sources).
    • ~ indicates a source whose time appears to have too much variability.
  • run – cgps (this will show what satellites are being tracked and signal strength of those. use ctrl-c to exit)
  • run – sudo chronyc makestep (this tells chrony to adjust the time in a bigger step. I often have to run this many (many many) times to get the clock correct if the Pi has been turned off)
    • Note – digging into this, I found chrony – chrony.conf(5) documentation on the configuration of chrony. The item of interest is the makestep configuration line there. One concept at play is slewing – time software avoids making large time jumps since this has bad side effects on normal systems (reference – NTP and Slewing). A potential solution would be to set the chrony.conf makestep option allow several more large time jumps rather than the default 3. Since the Pi does not have a clock, its time will always be wildly off when it first turns on and has no internet.

Conky, a system monitor and information display

The AmRRON script includes Conky, which displays information about the system and other things that you include. I modified time to show my local time zone, and most importantly, where I am getting time from. If it is my GPS, it will show NEMA as a time source.

The AmRRON install script will not autoload conky on startup on the Pi. To do this on Bookworm add a file in /etc/xdg/autostart with the following contents

[Desktop Entry]
Type=Application
Name=conky
Comment=run conky --pause=10
NoDisplay=false
Exec=/usr/bin/conky

A potential method would be to run the GUI file manager as root:

  • run – sudo pcmanfm

Copy one of the files that is close to the contents above (I used env_display.desktop) and rename it to conky.desktop. then use

  • run – sudo gedit

to open, and edit the conky.desktop file to include the contents above.

You can edit the configuration file, located in your home directory, called .conkyrc

You can modify conky to display any information you find useful

You can add the NTP time sources using this snippet in the .conkyrc file after you add the chrony services

${color1}${font Roboto Mono:style=Bold}\
NTP Time Sources$color$font $hr
${color grey}${execi 30 chronyc sources | awk 'NR>2{print $5"\t",$1,$2}'}

Web server and mediawiki as a notes/documentation place

One practice I have done is installed a webserver and mediawiki to keep notes on my items, link things like user manual .pdf, and whatever else I want. This isn’t needed to operate a Pi as a radio controller, but it is handy. I may cover this topic at a later date since I find having a wiki useful.

Transit Case for Chelsea Clock, M1, Army Message Center

Summary – Final dimensions as 10″ H, 9″ W, 6″ D.  The two critical elements are that the two halves fall equally when opened to provide a stable base for the clock to sit when in use, and that the box hinge open without collision with the top of the clock face.

There are no officially documented blueprints for the construction of an M 1 or 2 Message Center Clock box (that I could find), although several pictures are available online.  One such picture was available from the IMA website, which gave outside dimensions of the box as 9″ W x 4.5″ D x 10″ H (although these dimensions ended up not working on our example with the materials we had).

The box appears to be made of oak, based on the grain pattern and has no visible fastening on the outer surfaces to indicate nails or screws.  This would suggest the construction is primarily held together with wood glue, with possible pegs or wedges acting as secondary support.  Given that I do not have a box to deconstruct for reverse engineering, I cannot verify the exact construction.  Tongue and groove reinforcement does not seem to be likely, however, given the lack of evidence on the internal edges.

When I constructed this box, I purchased readily available 3/4 inch oak boards from the local hardware store.  These are listed online at Menards or Home Depot.  It is not unlikely the genuine box was made from different thickness lumber, as modern dimensional lumber varies from historical dimensions due to construction conveniences (hence why a 2×4 is measured at 1.5 x 3.5).  In any case, this thickness appears fairly appropriate to the pictures available.  I purchased 10″ wide boards, which were 9.5″ dimensionally.  This allowed for the correct width of the box without need for edge gluing.  I Measured the clock and I had to be just under 6″ (around 5 7/8 inch or so), so this left roughly 1.5 inches in the internal area if two 3/4 width boards are factored in.  When placed on its backboard, the depth of the clock was just under 4 inches.  This would not have worked with the dimensions available on IMA, since two board thickness would have left only 3 inches on the internal area.  So I opted to go with a 6 inches of depth for the box.  This left final dimensions as 10″ H, 9″ W, 6″ D.

The box front and back boards were 7 1/2 inches wide, to allow for the side pieces to run to the front, as it looks in the photos.  These were overcut to around 10.5 inches, to allow cutting width of the blade when making the opening.  This was also true for the side pieces, which were 6 inches wide.  The angle of the box cut was approximately 30 degrees.  I first attempted a 45 degree angle but the height of the box appeared odd.  30 degrees allowed a good fit between the top and bottom portions of the box.  To do this correctly, I made the cut from the back ends of the side pieces, marking the start of the cut at 5 inches, and setting the saw miter to 30 degrees.  Doing these cuts at the same time prevents angle ambiguity in resetting the miter, which prevents headaches in future assembly.  Cut both side pieces, then partially assemble the bottom portion with both front and back.  Mark the area where the bottom of the angle meets the front piece and cut the front with a 30 degree angle on the blade.  You can trim the excess wood from the top before final assembly.  For the back piece, since there is a hinging mechanism, the angle would impede on opening, so make a straight cut at 5 inches.  This should be verified with the dry assembly as well.  The bottom and top caps can then be cut based on how the pieces fit together, or roughly 7 1/2 inches W x 4 1/2 inches.  Test fit these pieces together, trim as needed, and glue or screw into place the pieces.  I found pre-drilling and countersinking the holes are needed, as oak is prone to splitting.  For a static display box glue might work, but if this used as a transit case, screws or dowls would be needed for durability.  This example will be used as a transit case thus screws were used.  This introduces the holes seen in the photo, which isn’t in the originals, so dowls may be an option if you want an unblemished example.

The next factor to determine was construction of the backboard itself.  The wood edge around the clock looked to be around 1/4 inch, so I cut a roughly 6 1/2 W  x 7 1/2 H slab.  This allowed me to find the center of the semicircle by placing a compass where it met around the top and both sides of the boards.  I scored a line to mark the edge of the semicircle and cut the circle out with multiple cuts on the table saw, finished with a belt sander to meet the line.  This could also be done on a bandsaw or scroll saw, but I wanted to get cleaner edges.  I placed the clock on the centerline of the board and roughly placed it where all edges looked equal.  This allowed me to mark the top hole for the screw and pre-drill.  This let the clock hang so I could mark the bottom two holes when it was partially installed.  The backboard can then be fixed into place within the box by drilling two holes into the bottom of the box and running screws into it.  Additional support can be provided by a screw in the front of the backboard, running through the back of the box.  Just make sure it is a short enough screw that it does not penetrate through the back.

Stain and a layer or two of protective coating (I prefer Tung Oil), then you can install the hardware. Hardware itself is available at any hardware store, but mine came from Rockler.

Carpentry and article by Troy

Getting started with a teletype, my consolidated notes on restoration

  1. Finding Manuals and Wiring Diagrams
  2. Terminology
  3. Procedure I Used in Restoration
  4. Interfacing With Your Teletype
  5. Finding Consumables and Parts
  6. Links

Since my setup is approximating a 50s-60s era military communications shelter, a natural addition is a teletype. The military used these extensively until the mid/late 90s, and without the modern digital systems we have today, it was great way to send bulk text at least vs sending over voice communications. My unit in the 91 Gulf War used teletype for brigade <-> battalion communications over long distances. While adding a teletype device does improve a setup that is going for a military appearance, there is an extensive learning curve for someone not familiar with these devices.

When looking for a device, I really didn’t know what I was getting into. While I still do not know much, I did want to share some terminology and knowledge from ‘Greenkeys’ that I picked up.

Greenkeys is a mailing list and you can find info on reading the archives of it and joining at Greenkeys@qth.net. Greenkeys is referring to the green keys of the Teletype Corporations keyboard of the Model 15

Model 15 Keyboard from Restoring a Teletype Model 15, the source of the ‘GreenKeys’ name

The Greenkeys group is the most helpful technical group I have ever been involved with. There is an ocean of experience and knowledge that they are willing to share, which is great since electromechanical devices really don’t have any modern equivalents so people coming from GenX and later won’t have much of a frame of reference for these devices.

Finding Manuals and Wiring Diagrams

To understand a device, there really is no escaping reading, and reading quite alot. For Teletype Corporation devices, and I assume other manufacturers, there are several variations in a model family so looking at the correct document is a challenge, and even then finding specific things I found to be a challenge. Almost every document can be found at US Navy Radio Communications – 1950’s & 1960’s – the Navy in the name of the website does not limit the scope of the documentation, it includes most models in commercial and military use. To find a document specific to your device, look for the data plates on the assemblies – as an example, I have a Model 28 KSR wall mount, and the keyboard/base assembly data plate shows:

My keyboard/base is an LK type, found in the code portion of the data plate. I can then find the specific documents and wiring diagrams by searching for “LK” in the directory of Teletype Corporation documents:

The correct main document for my specific model of keyboard/base is 573-116-100TC

For wiring diagrams, it seems that Teletype Corporation consolidated several variations of diagrams in a single document, so you will have to refer to the bottom right corner of the diagrams to match your specific model to the document:

I received this very helpful summary guide to navigating documents from John, a Greenkeys member:

Short course on docs.
Original Teletype bulletins 0 to 999 Description, theory, adjustments, lubrication in general, later version were simply a listing of the BSPs that contained the information.
More bulletins 1000 to ?  Parts manuals

Military manuals contain everything in one document.  sometimes hard to find the right place in it for your information.  I only got there if I can't find it elsewhere.

BSP (Bell System Practices), my preferred sources.
573-000-000, index of 28 series
573-115-100 description of printer
573-115-400 wiring diagrams
573-115-7xx adjustments and lubrication
573-115-800 parts
873-116-xxx keyboard etc.

Last 3 digits can go all over the place for exceptions to the general case
e.g. parts for LESU-72 are in 573-133-804 (IIRC) instead of the generic -800

Also a TC suffix mean Teletype Corporation issued BSP rather than through the chain of command to Bell System.  Sometimes you'll see both on navy-radio with slightly different issue date. 

Terminology

Teleprinter terminology is unique, many concepts and terms have no modern equivalents.

TermExamples
TeleprinterA device that prints characters to/from a transmission medium such as radio or wireThere are several, some made by the Teletype corporation, like the Model 28 series Teletype Model 28 – Wikipedia and the Model 15 series, but there are other manufacturers. Teletype is a corporation name, teleprinter is the term for these devices regardless of manufacturer
ASRAutomatic Send Receive – Large machines with facilities for paper tape to store and send text. They key feature of ASR is the ability to send a message repeatedly using a paper tape with punched holes that encoded the textModel 28 ASR – TELETYPE MODEL 28 ASR COPYING ITTY – MUSEUM OF COMMUNICATIONS – SEATTLE – YouTube
KSRKeyboard Send Receive – relatively compact machines that can print received text and send text via a human operated typewriter like keyboardModel 28 KSR – kb8ojh.net – Station Information – Teletype
BaudotData transfer protocol used in many teleprinter devices, it is a 5 bit encoding of various character setsBaudot code – Wikipedia
BaudMeasurement of data transfer speed used for Baudot
45.45 baud, or 60WPM is common, with 75 baud at 100WPM is also in use. There are a small handful of other baud rates around as well
Baud – Wikipedia
LoopThe part of a circuit that carries the required current to drive the selector electromagnets Current loop – Wikipedia
Terminal Unit (TU)Device that converts audio into electromagnetic pulses that the teleprinter can use to set code levers to represent characters in BaudotThere are several, but the HAL ST-6 is a common model – HAL ST-6
AFSKAudio Frequency Shift Keying, a common method of encoding teleprinter data for transmissionFrequency-shift keying – Wikipedia
Not Black Magic: AFSK
RTTYRadio Teletype, sending encoded characters over a radio transmission mediumRadioteletype – Wikipedia
ITTYInternet Teletype, sending an audio stream over the internet to be decoded by a terminal unitInternet Teletype
Teletype News Services
New York Times News Wire
Running opena teleprinter will repeatedly strike a blank character when not connected to a loop
Mark Space“Mark” is generally identified with the binary digit “1” and “space” with the binary digit “0”. (From Wikipedia)Mark and space – Wikipedia

Procedure I Used in Restoration

When looking at a teleprinter it may be tempting to plug it in and see if it works, but you may want to do some checks before you do this. When I first got the Model 28 KSR, I referenced the manuals and disassembled the major components. The Model 28 is surprisingly easy to get apart for maintenance. My primary goal was to look for obvious damage and thoroughly inspect wiring for brittle or shattered insulation to ensure there were no shorts. Either the model I got was stored well, or it was just made to be durable (or both), but all the wiring was in good shape. I did find some rubber parts that didn’t hold up well, but nothing that would cause damage if powered on. I found some rubber on Amazon and cut some replacements for these parts where I could. Fortunately the platen was in good shape since I would not be able to DIY such a thing.

To clean, multiple people recommended Simple Green degreaser, and it was quite effective. Avoid saturating electrical items (eg the motor), but for the mechanical items I placed the assemblies in a large plastic tub and sprayed liberally. I used a soft bristle toothbrush to gently scrub stubborn dried oils, or a toothpick to get the really set in grime. Avoid tools that will scratch. I rinsed thoroughly with water and set in the sun to dry. When it was dry I used penetrating oil to give a light coat of oil to prevent corrosion. Using the manual, Adjustments and Lubrication series, I used machine oil and a silicone grease to get the machine lubricated.

Typing Unit before cleaning
Typing Unit after cleaning

Once you are confident the machine will not be damaged by powering on, you can plug it in and see where you are at with it. At least with the Model 28, it will be normal to power on and immediately start repeatedly striking blank characters (called running open) if the unit is not connected to a ‘loop’ or signal source. Some models have a test mode if you want to power this up and test it without connecting a loop. In test mode, you can type on the keyboard to see if the keyboard and printing mechanism is working properly.

Test switch is on the LESU (electrical service unit) on my model

My machine had a broken part which took awhile to figure out. Having no experience with these machines it took a lot of reading referencing the documentation to see how all the mechanical parts interacted. The people from Greenkeys were a key part of pointing me in directions or things to look at. I did have to manipulate each part and gain an understanding of its purpose and function to finally get to a resolution. It took a few weeks in my case, so if you run into this situation, be patient and methodical. It may have been a benefit to have to run down this problem since it compelled me to get a basic understanding of the mechanical part. There is a lot going on with these devices, with a myriad of necessary functions, all relying on mechanical actions to do them. It really is impressive that the engineers of years past were able to accomplish all these complex actions in a device that still functions decades after it was made.

Interfacing With Your Teletype

To summarize – you cannot directly plug a teleprinter to a computer.

When I was looking for a teletype, I assumed that a standard serial port would be sufficient to send and receive data from the device. I was vaguely aware that some sort of translation from ASCII to Baudot would need to be done, but I was fairly sure connecting the device would be straightforward. This assumption was quite incorrect.

The actual interface these devices used was known as a current loop. Signaling is based on the presence of current, or no current, cycling on/off to represent Baudot code. This current kicks around electromagnets (directly or indirectly) to set mechanical levers that ultimately represent the bits mechanically.

Explanation from W6IWI

Teletype stuff uses a current loop (normally 60 ma, but sometimes 20 mA)
at a voltage of about 100 volts. The selector magnets in the printer
detect the current (mark) or lack of current (space). So, that's different
from RS232 which is a voltage (typically -12V for Mark, +12V for space)
instead of a current. Further computers normally work with ASCII (7 bit
characters) instead of Baudot (5 bit characters). Finally, most USB to
serial converters will not go down to 45.45 bits per second (the baud rate
for 60 words per minute).

The common cable used for current loop teleprinters are Tip/Sleeve and Tip/Ring/Sleeve cables. One of my devices requires a Tip/Sleeve cable, while another requires Tip/Ring/Sleeve. Musical instruments and other audio applications still use these cables, so finding them is possible.

From Wikipedia – Tip and ring – Wikipedia

The youtube channel Deramp5113 does an excellent job of explaining the concepts of how current loops set mechanical code levers in the video series https://www.youtube.com/playlist?list=PLB3mwSROoJ4JoPgcLzZ3kMKmQI5eN-4No

From a practical perspective, there is no modern equivalent to the current loop interface in common use, some industrial systems use similar concepts for signaling, but there is no way to -directly- connect a teleprinter to a computer.

There are two options that I am aware of, get a vintage terminal unit or one of the recently created interface devices.

Terminal units come up for sale from time to time, but you will have to research your teleprinter to discover what type of signaling it requires as there is variation. 60 milliamp current loop is common, but there are 20 milliamp machines. I ended up with an iRL FSK-1000, which I am still researching before use. Reading the manuals of these devices thoroughly is encouraged as they throw fairly stout voltages/currents around and misconfiguring them can damage things (or hurt you). What a terminal unit does for you is convert audio AFSK, from any audio source like radio (RTTY) or any other audio stream (such as ITTY) and pulse Baudot to the current loop which in turn prints whatever has been sent.

A helpful comparison of various Terminal Units can be found at RTTY Terminal Unit Comparison by W6IWI.

A handful of hobbyists have made interface boards that emulate a terminal unit. One device, specifically made for the Teletype Model 15, but adaptable to the Model 28 is made by DeRamp and can be found at Model 15 Interface

DeRamp Teletype interface, from Model 15 Interface deramp.com

The DeRamp device takes either standard computer serial input, via a DB-9 to RJ11 conversion cable, or from any audio source (ITTY, radio) and sends Baudot pulses to its current loop output. A microprocessor performs the signal processing needed to accomplish this, along with providing some helpful utilities like inserting carriage return/line feed at intervals you can define, and ASCII to Baudot character conversions/substitutions to accommodate characters available in ASCII that are not available in Baudot.

There are other hobbyists making interface devices, one would be W6IWI DSP TU Part Two and a handful of others.

Finding Consumables and Parts

Teleprinters use paper and ink ribbon, and fortunately these consumables can be found, but they may take some searching. The ink ribbons I have were made in the 70s and still print clearly, quite impressive for something 50ish years old.

I found the unusual paper my machine uses (8 1/2×11 tractor feed, which isnt standard) at Label Printing & Shipping | Label Outfitters Label Outfitters. They were very helpful in confirming I was ordering the correct thing before expensive shipping. Another vendor appears to be 8 7/16″ White Bond Paper Roll, 12 rolls/case POS Supply.

Currently_available_Teletype_SUPPLIES_200602.pdf – Mr Cooper, W2JC has various new old stock supplies and is very helpful.

For parts – Mr Rtty has a huge inventory and is very helpful.

Links

Amateur Radio Teletype (RTTY) – General information and ITTY feeds

US Navy Radio Communications – 1950’s & 1960’s Navy Radio with extensive documentation and information on teleprinter and related equipment, commercial and military. It isn’t limited to Navy equipment

W6IWI RTTY Notes – W6IWI’s notes on his teleprinters

Model 15 Interface, deramp5113 – YouTube – Information on older computer systems, including teleprinters

kb8ojh.net – Station Information – Teletype – Notes on the Model 28

Restoring a Teletype Model 15 – Notes on the Model 15

Greenkeys@qth.net – Greenkeys is a very helpful group (mailing list) focused on teleprinters. They have extensive archives to search where you may find information related to question you may have

Things for your teleprinter to print and the significance of RYRY in teletype Baudot

When I got my teleprinter working, I was immediately faced with the problem of what to print. One source are the Audio Frequency Shift Keying (AFSK) Internet Teletype (ITTY) audio steams from various sources:

The first thing I printed was the Gettysburg Address text copied from some website, which would not have worked without the feature of the interface I happen to have that automatically carriage return line feeds (CR/LF) at a column defined in its settings. Without that feature it would have stopped at the end of line and just typed the same spot over and over. Even with the feature, the formatting was not perfect. In fact, formatting text is a bit of an adventure, particularly if you don’t have software inserting CR/LF at the end of the typing line on your machine.

Unlike modern word processing software, type width is fixed and lines do not “wrap”, meaning the CR/LF has to be placed reliably at the last printable column, which appears to vary from machine to machine. I am using 70 characters per line.

For demonstration, I wanted a military document and I found Operation Atropian Iron at PAVILION Example OPORD_202102 copy. For people who have done military staff exercises, you should be familiar with the “fictional” nations of Atropia, Gorgas, and Donovia. Besides the operations order format, the typical formatting of a TTY message that may have been sent between military teletype machines would be 16-line message format – Wikipedia.

The document below is the operations order in 16 Line format, but assuming software inserted CR/LF. If you don’t have this feature, you can use Notepad++ to insert the CR/LF, which actually would look better since words won’t break in the middle at the end of line.

I have seen the RYRYRY sequence from time to time and wondered what that would be for. The sequence of The quick brown fox jumps over the lazy dog – Wikipedia is something I am familiar with, being every letter in the alphabet, to test type. The RYRYRY sequence is to test and toggle each bit in the electromechanical parts that represent Baudot – RY (test signal) – Wikipedia. From that article – “The characters R and Y are “01010” and “10101” in 5-bit ITA2 code”. So sending the RYRYRY sequence then alternates the mechanical levers that determine the letter to be printed every character. This is useful if you want to test the device, lubricate the assembly, or just exercise it. I made an RYRYRY file and include it below, a 69 column file with alternating RYs.

I am using a Deramp interface board to send text. Using putty to paste text does not seem to work, I am using TeraTerm – Tera Term Open Source Project – to send text as file, using File/Send File, using the binary option, and 110ms delay per character. Large text files seem to overrun the teleprinter without the delay.

Model 28 Teletype chasing down squealing noises

While waiting for a serial interface (DB9 to RJ11) so I can use the Deramp interface board (Model 15 Interface) I have been chasing down some occasional screeching noises. These noises were loudest when cold, then smoothed out, returning on occasion. There are a handful of ball bearings in the typing unit and I used silicon grease in each. The grease turned orange after some use, so I cycled grease until it stayed clean looking. This and plenty of oil in all the places the manual calls for did not silence the squeals. I finally found the source, the motor.

There are ball bearings in the motor, but they aren’t very easy to reach. The motor manual (Bulletin 295B) does show that there are oilers for these bearings

You press down on the 4 (2 on each side) ball seals and drop oil in there to lubricate the bearings, but if the old grease is polymerized (like old cosmoline) it wont help a bit, shown in the picture below.

Getting the motor apart was not too bad, there are two long bolts holding the motor together, I marked how everything was oriented so I wouldn’t put it back together incorrectly. The old grease was stiff like a tough wax and I had to pick it all out with a tough plastic pick. I used a Rothco gun cleaning pick set I found at the Fort Riley Post Exchange. There are two bearings and I cleaned both, then repacked with modern grease. The bearings seemed fine, no play when moving them and they spin much better now. This service quieted the squealing sounds and hopefully this machine will keep on clacking away.

Chelsea U.S. Army Clock Message Center, M1

I have never seen or heard of this sort of thing, besides the Skillcraft government clocks that you find in almost every government installation, a clock purpose built for army use. The Chelsea clock company is still in business but this particular example was made in the 40s sometime before brass was limited as a strategic material and Chelsea converted to a Bakelite type of case. Chelsea made a large number of clocks for Navy use and some for army message centers where logging times of message traffic is important.

Before futzing around with this clock, as I did find these are fairly rare, I decided to take it to a professional and found that KC Clock in Overland Park, KS ( Kansas City Watches and Watch Repair – KC Watch | Overland Park, Kansas ) has someone familiar with the Chelseas. He stated it was in good shape internally and to leave it be as it is. I would have polished the brass, but apparently there is a coating on this that would be damaged if I had done that. I also would have been tempted to repaint the illuminated spots on the face, but KC Clock discouraged that as well to preserve its original state and I will take their advice. If I do need it worked on, I will definitely take it to KC Watch as they were very helpful and willing to share their knowledge on this clock.

This clock is completely mechanical, powered by an internal spring wound with a key seen to the right using the shaft on the numeral 6. Time is set with a dial on the left side. I wound it a few turns and was very surprised to find it lasted at least a week and held time the entire cycle. Ill have to wind it fully and see what its endurance is, but I suspect quite awhile.

I will have to build the wooden carrying case that it would have been issued with, but it will be a neat addition to my overall communications shelter setup.

Model 28 KSR Wall Mount Progress

I fully assembled the Model 28 and it looks great. It is working in ‘test’ mode, where the device ignores the signal loop and behaves like a typewriter. It is a bit loud, however.

When I got it, there were foam panels stuck inside the housing, but the foam had thoroughly disintegrated. This foam was there to deaden some of the noise this machine makes when operating. Replacing this isn’t straightforward, since these haven’t been made in decades, and these likely wouldn’t have been a part offered by Teletype in any case.

Cleaning the interior of the housing was quite a chore. The foam was easy to remove as it turned to powder when touched, but the adhesive was some tough stuff. I used citrus oil based GooGone which was effective, but needed significant soak time to soften the adhesive, then quite a bit of scrubbing to remove it. It took a couple of cycles of this to remove most of the old adhesive. To finish, I scrubbed with dawn dish soap to remove the citrus oils, then finished with simple green.

I thought through some ways to replace this material, such as quilting something. It occurred to me that carpet squares may be just the material for this. They are light, somewhat rigid, and I was able to find a decent color approximation.

Making the templates from scratch paper and cutting the carpet is fairly straightforward, but the adhesive on the carpet squares isn’t sufficient for a vertical installation. They do offer a spray adhesive with the carpet squares that seems highly effective. When using it, it sticks quite firmly very quickly so placement has to be accurate. These carpet squares should be durable and dampen the noise of the machine without looking out of place.

Next project is the loop interface to a computer provided by Deramp – Model 15 Interface. It will take quite a bit of assembly, so I don’t anticipate a fast build, but with a signal loop I’ll be able to use this close to its original purpose.

Model 28 Teletype back in business

You can see a video of this machine working at Model 28 Typing (odysee.com)

This thing is quite complicated mechanically, and it took a bit of doing to find the manuals, find what manuals applied, how to find things in the manuals, then learn the terminology, and so on. The problem turned out to be a broken part that needed replaced. The broken part was responsible for resetting the keyboard after a key was pressed, so you could press a key once, then manually had to reset the code bars to press a key again.

Doing this required disassembling the major components, then disassembling the ‘signal generator’, which is the assembly attached to the large geared shaft

This assembly has a bunch of tiny parts and I am surprised I didn’t lose anything. Reassembly took quite a bit of fiddling with adjustments, fortunately the manuals run though these and I got a better understanding of what all this stuff does.

While I had it apart, I did disassemble the main drive gears to determine the speed of this machine. The nylon (ivory color) gear in the center is one gear that determines speed, but the part number isn’t visible when assembled. Disassembling this permitted me to pack the roller bearings with grease and find the part number – 195997 found in 573-116-800TC-iss3-7012. The speed of this machine is 100WPM.

Now that it is working mechanically, I can start trying to figure out how to interface this with a computer. 100WPM is not common on amateur radio, so getting this to work directly on the air wont be practical, but I can use it indirectly with fldigi and send text to it as a way to print text. This does get me interested in a machine that I can use directly on the air, maybe a Teletype Model 15 at some point.