How do you feel about this article? Help us to provide better content for you.
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
What do you think of this article?
Figure 1. My 1960 Creed 75 teleprinter awaiting a coat of hammer-finish metallic paint to restore its original appearance. The old paint is worn and scratched, but as the case is made of aluminium there’s no rust to worry about.
The Creed 75 was designed as a communication device, but adapted for use as a computer console on many early British computers. The aim of this project is the construction of an adapter to interface the high-voltage Baudot-coded serial data signals of the teleprinter to ASCII-coded RS-232 voltage signals acceptable to a modern microcomputer.
The first electric telegraph system capable of communicating text messages was based on Morse code and featured a skilled operator with a Morse key at one end of a long cable, sending ‘dots’ and ‘dashes’ to an equally skilled colleague at the other end, who interpreted the clicks of the receiving magnet as letters and numbers. Automatic printing of messages was achieved, but in the end, the whole thing was considered too slow to cope with a massive increase in traffic. Morse code, which relied on the length of pulses to convey information, was replaced by one that used the presence or absence of a fixed-length pulse instead. It was a lot easier to devise machines that could detect the pressing of a particular key on a typewriter keyboard and transmit a series of ‘ones and noughts’ to a distant ‘automatic’ printer via a single telegraph wire. The 5-bit code used was based on the Baudot code, later incorporated into an international standard called ITA2. The makers of my machine, Creed, introduced their Model 7 teleprinter in 1931 for the new Telex service, and versions of it continued to be made until the 1960s!
A major refinement that soon became standard in those telegraphic offices with teleprinters was the introduction of paper tape storage to maximise line-usage efficiency. This meant that messages were prepared off-line on a teleprinter with a paper tape ‘reperforator’. The tape was then run through an online reader unit; transmitted as a continuous stream of characters without the pauses introduced by a human operator.
Figure 2. The covers open revealing part of the complex mechanism inside. When it was introduced in 1958, the Creed 75 was the smallest, lightest and fastest teleprinter ever made. Another unique feature was that it didn’t need a level surface on which to operate. A publicity film showed one working upside down, leading a British airline to fit one in the cockpit of an aircraft to receive telegraphic messages while in flight! Note the neatly stowed tuning fork for checking the motor speed.
Teleprinters and Computers
When the early computer designers were looking around for a way of getting code into their machines quickly, the teleprinter and paper tape combination looked very attractive. In those days, processing time was precious, and it wasn’t wasted while an operator laboriously typed in the program directly. An example of a computer that used this approach to program/data input is the 1956 Ferranti Pegasus. It used a Creed 54 teleprinter, the predecessor to the model 75 I’m talking about here. I once owned a ’54: it was vast and needed at least two people to lift it. Creed introduced modified versions of their teleprinters especially for ‘data processing’ applications. They featured:
- Parallel input/output of 5-bit characters replaced serial. The incredibly complex mechanical UART that performed serial-parallel conversion thus became redundant. Parallel output from the keyboard was easy, just needing the existing set of electrical signals to be brought out to the connector at the back. Printing was more complicated because five solenoids were now required to drive the print mechanism from the parallel input signals.
- The ITA2 coding was completely changed to provide a modicum of error detection.
Parallel input didn’t make the machine print any faster, but it did reduce the time spent by the computer performing an unnecessary parallel to serial conversion. The re-arrangement of the 5-bit code achieved two things:
- The letters A to Z now had sequential codes from 1 to 26. This made alphabetic sorting much easier to program.
- The numbers 0 to 9 were similarly assigned codes 0 to 9. BUT, and here’s the clever bit (pun intended), if the code contained an Even number of ‘ones’ (3, 5, 6 and 9) a code with the fifth bit set was assigned instead to ensure Odd parity. The rest of the Odd parity codes were given to important characters and functions like ‘+’, ‘-‘ and Line Feed. Assuming Figures shift was active, a single-bit error could not cause an incorrect number to be read or printed, only some easily spotted symbol.
The coding of numerical digits in this way was an early technique for error detection in the days when computers were only used to crunch numbers and output the results as tables of numbers. An operator could quickly scan a printout and any characters other than numerical digits spotted – even if they had no idea what the results actually meant!
Figure 3. With four screws and the platen knob removed, the whole case lifts off for maintenance. The hinged covers provided sufficient access for users to change ink ribbons, replace paper and check/adjust the motor speed using the tuning fork. Extracting the paper roll reveals a ‘window’ over the speed governor allowing adjustments to be made without removing the main case like this. A technician would need the whole case off in order to oil the many bearings at regular (frequent) intervals.
A serial-communication teleprinter
There were very few of those parallel I/O machines made. Probably made-to-order, just like the computers themselves; any remaining are likely to be still attached to an installation now preserved in a museum. So, my project starts with the design of a serial interface for my telecommunication Creed 75. Like the TRM250 paper tape reader project, the main issue to be addressed is the incompatibility of signal voltage and current levels with those tolerated by the microcontroller I/O pins. With the exception of some passive components for interference suppression, the machine contains no electronics.
- The motor requires a 115Vac supply. This will come from a 240Vac mains step-down autotransformer.
- The electromagnet which converts the incoming serial data signal to a ‘mechanical’ format used to be driven directly from the line: +80Vdc corresponds to a ‘Spacing’ (logic 0) state with -80Vdc for ‘Marking’ (logic 1). For both states, 25mA was necessary to energise the magnet. This means I’ll need an 80Vdc supply and a suitable high-voltage driver circuit to provide an interface for the MCU. The use of a split-level voltage is called Double-Current operation. Figure 4 illustrates what this means in terms of magnet operation.
- Originally, the serial output ‘circuits’ would also have been driven from the line, but as they consist of switch contacts only, any voltage can be used. I’ll probably go for 5Vdc. It’s possible to do this because the serial output line can be configured isolated from the input. Figure 5 shows the basic operation of the parallel-serial converter (‘serialiser’).
The design of the Creed 75 may have been revolutionary, but at least one sacrifice in functionality had to be made to achieve such a compact format. The old machines had totally separate mechanisms for the keyboard/serialiser and printer/deserialiser. For ‘local-copy’ a leak resistor was connected between the signal lines to provide an echo of the character just typed. In the ‘75 design, the serialiser and deserialiser share the same camshaft so every keystroke is printed as well as being sent to the line. It makes transmission-fault finding more difficult, but it does mean that the interface MCU will not have to echo all received characters back to the printer.
Figure 6. A close up of the ‘Aggregate Motion’ mechanism. This converts a 5-bit code held by a mechanical ‘memory’ of five sliding pins, to the rotary position and height of the printing head. In other words, it brings the selected character into the right position to be pressed onto the ink ribbon and paper.
Figure 7. From right to left: motor, speed-change gearbox, inactivity time-out mechanism, and camshaft drive gears. The gears fitted to this machine enable it to work with either 50 or 75baud signalling rates. Gear selection is similar to that in a car: both pairs of gears are permanently in mesh and a sliding dog-clutch determines which set is actually locked to the output shaft. The time-out mechanism is driven from the gearbox output via its own set of gears and causes a probe to descend slowly through a hole in the base plate, eventually operating a microswitch mounted underneath. The motor is then stopped. If a start bit appears on the line, or a key is pressed, the probe is reset allowing the motor to start. It provides a time-out after about two minutes of inactivity. On the far end of the gearbox shaft is a nut that can be accessed through a hole in the printer’s case. A special key can be inserted to wind the mechanism around by hand to check operation – obviously only when the motor power is disconnected!
Figure 8. Motor with governor. The 140Hz tuning fork with a shutter on the end forms a stroboscope which works with the stripes on the governor can. If the rotational speed is precisely 4200rpm, the stripes viewed through the vibrating shutter will appear stationary. Visible in the picture is the speed adjustment screw accessible through a hole in the governor case.
I hope to describe a working magnet driver circuit for the interface with an MCU GPIO pin. It’ll be in the form of a ‘bridge’ circuit to provide bi-directional current signalling from a single +80Vdc power supply.
If you're stuck for something to do, follow my posts on Twitter. I link to interesting articles on new electronics and related technologies, retweeting posts I spot about robots, space exploration and other issues. To see my back catalogue of recent DesignSpark blog posts type “billsblog” into the Search box above.