ITU HF (and VHF) Kurier System 2014

(based on Kurier System; c.1942-1945)

Historical Origins of the Kurier System

In August 1944 the Kriegsmarine (German Navy) began testing an experimental system called "Kurier", designed as a counter-measure against the High Frequency Direction Finding (HFDF). The transmission system was based on a principle now known as burst-encoding.

The principal 3 component Kurier System sending device was connected to a radio transmitter in the work area of the Radio Officer on a U-Boat or weather boat. The system was never experimented with for use with battleships or cruisers.

  • The main component of Kurier was the pulse generator KZG 44/2.
  • The KZG unit was a drum with 85 small adjustable bars.
  • Each bar represented a signal pulse.
  • When started, an arm with a magnetic pickup element made one single rotation, passing the 85 preset bars.
  • Each pulse was 1 millisecond long (Dot, space between symbols), with a 2 pulse Dash taking 3ms (pulse-space-pulse).
  • There was a 3 milliseconds gap between each pulse.
Together with start pulses and pauses between letters, the complete transmission of the short message took never more than 460 milliseconds (under 500ms)!

In an era (1940s, 1950s) where it could take up to 2 minutes (ideally 45 seconds for continuously monitored frequencies) per HFDF fix (within ~2 degrees of accuracy), the Kurier System would have been of great tactical advantage. Yet, the Kurier System was barely used.


The U-Boat Kurzsignal (originally designed for Morse Code use, but adapted to the Kurier System) had to be physically converted into Morse Code bar settings at the sending unit. This was the only design overhead of the Kurier System.

The Kurier System could not send long signals (say of 25 Morse symbols, 5 groups of 5 letters). The lack of ability to send long signals was a huge system design defect.


  • The fundamental time constant of the system was 1/1000ths of a Second, commonly called 1 millisecond.
  • There was a Preamble of 25 pulses at the beginning of each transmission.
  • The Preamble did not convey any information.
  • The Preamble was 100ms long (technically ~97ms). 
  • There was a pause of 20ms between the Preamble and the start of the transmission.


  • Each Dot was 1 pulse.
  • Each Dash was 2 pulses, with a 1 ms empty space between pulses.
  • Each time space between Dot or Dash was 3ms long (a 3 inter-symbol or intra-symbol pause).
  • Between Letters 2 pauses (2 intra-letter symbol state pause).
The Kurier receiver KGR-1 converted the pulses into a light beam that was projected on a rotating drum with photosensitive paper, mainly as an aid to decoding something technologically moot in the current era.

Modern Implications of Kurier System Signal Interception Capabilities
Modern Wullenweber arrays (for which there are remarkably few still existent since the end of the Cold War) can [in array mode] do an HFDF fix to within (+/-) 0.25 degrees under normal conditions for signals lasting 50ms.

Wullenweber arrays take a lot of staff to maintain optimal functionality (in spite of the systems being in their 7th to 9th generation of modernization).

SETI @ Home type signal extraction and decoding for transcription for Wullenweber systems are probably as old as SETI @ Home, with one multicore computer (in a cluster of computers) per 200khz.

Wullenweber Arrays, how many does one need for HFDF?
  • These arrays can operate in Single and Array mode at the same time, their reception range is roughly 40 kHz to 120 MHz (for VHF skip via the troposphere).
  • A series of 24 Wullenweber arrays operating in Single and Cooperative Array Mode would adequately cover the US landmass (and in separate installations in exclaves like Guam and Alaska, Hawaii etc..)
  • For NZ, 4 Arrays would be more than enough.
  • For Australia, 7 Arrays would be adequate.
  • For Canada, 7 Arrays would be adequate.

To what extent Wullenweber systems actually monitor the HF bands for burst transmissions is unclear, but probably all traditional RTTY signals can be extracted at Wullenweber SIGINT locations. The NATO and Echelon HFDF monitoring systems are not what they once were during the Cold War, and although the monitoring systems like this may be fully automated their ability to pick up burst signals is unclear.

Wullenweber systems may somewhat discourage security intelligence people from using a Modern Kurier System for transmitting messages, but for the spy crowd things are technologically better.

Globally -- the security intelligence agencies have access to far more illusive and evasive coding and transmitting technologies. Wullenweber systems are an IT issue to be dealt with, not an overpowering technical or technological problem.

No legal issues for Amateur Radio

For Amateur Radio use in the Amateur Radio bands, there is no reason to worry about using the Kurier System legally or otherwise.

This Modern Kurier specificaiton is not at all like the original 1942 version, but it has many design commonalities with it.

ITU Legal Rules for Amateur Radio Notice

As long as a modulated signal (and or encoding format) is publicly specified in an easily accessible forma

  • there can be no legal prohibition against transmitting that modulated signal (with that encoding format).

This ITU rule was designed to allow Amateur Radio experimentation in encoding and modulating systems, as well as normal operations. This ITU rule allows Amateur Radio operation to be possible accross borders (and inside nation states) while avoiding conflict with any domestic security regime or trans-national secruriy regime (like NATO).

Draft Proposal of a Modern Kurier System
Mode Preamble Pulse Preamble A Preamble B Preamble (A|B) Message 0 Message 1 Inter-letter Inter-word

Duration {PRE A} {PRE B} Spacer {PRS} Dot "_P_" Dash "_P_P_" Spacer # x "_" Spacer  # x "_"

equals # x "_"
aka 'Marker'

into Message {PRS.m}
0 ▷ 0 : 3TC 1 ▷ 0 : 2TC

0 ▷ 1 : 2TC 1 ▷ 1 : 3TC

3TC, "P__" 40 Pulses Not Applicable 31TC
-- Dotty
97 Pulses
19 Pulses
-- Dashey 6TC, "P_____" 97 Pulses 29 Pulses 41TC 3TC 5TC 5TC 7TC

2TC, "P_" 67 Pulses 67 Pulses 67TC, into Message 61
Not Applicable (0)
2TC 77 Pulses 77 Pulses 53TC, into Message 59
Not Applicable (0)

RTTY7P 2TC 77 Pulses 88 Pulses 43TC, into Message 53 3TC 5TC 3TC Not Applicable (0)
RTTY8 2TC 88 Pulses 77 Pulses 41TC, into Message 47 3TC 5TC 3TC Not Applicable (0)

RTTY11 2TC 33 Pulses 44 Pulses 23TC, into message 41 3TC 5TC 3TC Not Applicable (0)


  • Time Constant : TC = 1ms (Fast), or 2ms (Medium 1) or 5ms (Medium 2) or 10ms (Long)
  • Prime Numbers to use to make it easier on the decoder : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131
  • Pulses : Each pulse must have a Spacer.
  • Dot (binary 0) means "_P_" x N
  • Dash (binary 1) means "_P_P_" x N
  • To keep multiple Dashes or 1s from being confused with 0s, a 3TC spacing should be forced for 1 ▷ 1 transitions.
  • To keep multiple Dots or 0s from being confused with 1s, a 3TC spacing should be forced for 0 ▷ 0 transitions.


  • Preamble A : {Pulse + Pulse Spacer}...
  • Preamble B : After Preamble B, but conveys disambiguating source encoding information
  • Postamble Pulses are always 2TC of type "P_"
  • Postamble (Hangup) : Morse Code : 2x (37TC pause then 73 Pulses; 101 Pulses for Dotty or Dashy Morse)
  • Postamble (Hangup) : RTTY : 2 x (37TC pause then 37 Pulses)
  • The default character interpretation of Base127 or Base256 is ASCII.


  • Morse Code : Understood to be ITU Standard Morse (2013) with support for "@" symbol.
  • RTTY6   : Understood to be AIS compatible ASCII6.
  • RTTY7   : Understood to be ASCII7 with no error correction.
  • RTTY7P : Understood to be Base127 + Odd Parity Bit, transmitted the same as RTTY8.
  • RTTY8   : Understood to be raw Base256, but with no error correction.
  • RTTY11 : This is Base256 text encoding, but with error correction : Byte + CRC3.

Message Integrity

  • Message Hashsum : SHA256 or MD5 or CRC32-mpeg should be encoded in standard binary format after the Hangup or Postamble. Technically it may not be needed, but should be provided for those wishing to use it on poorer quality radio circuits.

Message Syntax

This specification does not handle the cryptographic encoding of message content in any way. It is up to user to encode binary files or Morse Messages in any code or cipher they may wish.

Cryptographic encoding may be necessaery to guarentee message or binary file integrity. Open message cryptographical encoding (where the key and code used are in plaintext) is recommended for Amateur Radio use.

Dotty or Dashy Morse Code encodings are not cryptography, as they are technically "Prosigned" Morse.

Formal Transmission Syntax
  • Preamble A or B : {PRE A} or {PRE B}
  • Preamble Spacer : {PRS}, going into actual coded message {PRS.m}
  • Postamble : {KK} 
  • Message Contents : {MMM}
  • Message Hashsum (SHA256 or MD5 will do) : {KK.256} or {KK.5} or {KK.mpeg}

Morse Code


Morse Code (Dotty or Dashy)


RTTY (with no error correction)


RTTY (with error correction)

{PRE A}{PRS}{PRE B}{PRS}{PRE B}{PRS.m}{MMM}{KK} + [{KK.256} | {KK.5} | {KK.mpeg}]


Burst Communications



Error Correction

Created By
Initial Idea
Current Version
Last Change
Revision State

Max Power
10 July 2014
25 August 2014
15 September 2014

Revisable, Updatable