What is Hellscreiber?
Hellschreiber is a teleprinter system from the late 1920s. Instead of transmitting text data, Hellschreiber transmits images of the text. It can be thought of as a transmitter that is fed a long tape of written text, and a receiver that prints a long tape of the received signal.
Types of modulation
There are multiple ways to modulate a Hell signal. The original method, called Feld-Hell, and its variants that only differ in transmission speed use On-Off keying.
There are also different variants that utilize PSK or FM. This page mainly focuses on the On-Off keying variants.
While the original machines had to work within the constraints of electronics available at the time, modern software implementations make a lot of experimentation and improvements possible. These improvements include
- Signal processing methods to extract a less-noisy signal
- Higher resolution by using fractional pixels
- Decoding the signal as a grayscale image instead of monochrome
- Use of different fonts and symbols, instead of built-in characters
The signal is transmitted in columns. The receiver generally displays each column twice, one below the other. This is done to mitigate the skew that can be cause by timing errors.
Each column is sent on equal time slices, and the time it takes to send one column depends on the variant. Here’s a small table that shows this.
|Column time (seconds)
|1 / 17.5
|1 / 17.5 * 8
|1 / 17.5 / 5
|1 / 17.5 / 9
It can be seen from this table that the default method transmits 17.5 columns in one seconds, the faster modes are 5 and 9 times faster, and the slower mode is 8 times slower. A small disclaimer is that I have only tested these values by using software decoders made by other people, since I don’t have a real machine.
The faster variants use more bandwidth and are less resistant to noise, while the slower variants become narrow signals that can be decoded with plenty of noise. If you know the conditions beforehand, you can make a good tradeoff in order to transmit your signal as fast as possible without making it unintelligible.
If the signal is being generated as sound, it needs to be put on a carrier frequency. 1500 Hz can be a good default.