I preferred to change the title "CODAN selcall" with "Australian selcall" since this system is used by many manufacturers such as Codan, Barret, QMAC, ..., and its decoding is not unique (see the image at the bottom of this post).
Several 3 KHz spaced channels which use the CCIR-493 "Australian" Selcall FSK 100Bd/170 (4-digit IDs) sometimes erroneously referred to as CODAN-8580, spotted on 8MHz using Hong Kong KiwiSDR:
http://kb7gkh6.proxy.kiwisdr.com:8073.
The system is a synchronous system based on ITU Recommendation M.493 [1] [2], Digital selective-calling system for use in the maritime mobile service, and is very similar to GMDSS/DSC (Fig. 1).
|
Fig. 1- ITU M.493 FSK parameters |
Each data byte consists of 7 data bits and 3 parity bits (10-bit error detecting code), thus the duration of each character is 100 ms. The first seven bits (1-7) of the code are information bits; bits 8, 9 and 10 indicate, in the form of a binary number, the number of B elements that occur in the seven information bits, a Y element being a binary number 1 and a B element a binary number 0. For example, a BYY sequence for bits 8, 9 and 10 indicates 3 B elements in the associated seven information bit sequence; and a YYB sequence indicates 6 B elements in the associated seven information bit sequence.
The bitstreams after demodulation, as the one reported in Figure 2, can be easily parsed according the Table A1-1 "Ten-bit error-detecting code" from ITU M.493-15: the table is published at the end of the post for your convenience. The seven information bits of the primary code express a symbol number from 00 to 127, as shown in Table A1-1, where:
– the symbols from 00 to 99 are used to code two decimal figures;
– the symbols from 100 to 127 are used to code service commands.
|
Fig. 2 - bitstream after demodulation of a CODAN Selcall |
A preamble of dot reversals, to provide appropriate conditions for earlier bit synchronization and to allow for scanning methods, precedes the data block.
As I verified, in all these selcall messages the preamble consists of 50 changes between "0" and "1" i.e. 100 bits(!) and therefore it has duration of 1 second (as also shown in Fig.3). Note that the 100 bits length is not provided in ITU M.493-15 or in other similar documents; quoting a comment from my friend hf_linkz: "it all depends on how many freqs are in the scanning list of each radio of a net. It has to be long enough so radios can detect the preamble while scanning so then stopping on the channel for a decode. On my Codan 9360’s the value is 6 seconds and you can’t change it while on my Barrett 950 & Codan NGT-SR you can set manually the preamble length in seconds. I’m not sure but I guess the radios of this net are not scanning freqs at all, so 1 sec is prob the best value to optimize transfers/min ratio".
|
Fig. 3 - preamble duration |
The preamble pattern is followed by a synchronization sequence called the "phasing sequence" in which the characters 125,109,125,108,125,107,125,106,125,105,125,104 are transmitted. The phasing sequence provides information to the receiver to permit correct bit phasing and unambiguous determination of the positions of the characters within a call sequence (remember that Y = 1 and B =0):
YBYYYYYBBY 125
YBYYBYYBYB 109
YBYYYYYBBY 125
BBYYBYYBYY 108
YBYYYYYBBY 125
YYBYBYYBYB 107
YBYYYYYBBY 125
BYBYBYYBYY 106
YBYYYYYBBY 125
YBBYBYYBYY 105
YBYYYYYBBY 125
BBBYBYYYBB 104
The phasing sequence is followed by the "call content" with addresses and command/control characters. The Specifier symbol establishes the general nature fo the call; these basic options are: allcall and selective call. The Address consists of a special symbol in the case of alcalls and the identification symbols for the required station for selective calls:
YYBYYYYBBY 123
YYBYYYYBBY 123
BYBYBBYYBB 74 called station: 7474
YYBYYYYBBY 123
BYBYBBYYBB 74
YYBYYYYBBY 123
BBYBBYYYBB 100
BYBYBBYYBB 74
YBYBYYBBYY 53 calling station: 5348
BYBYBBYYBB 74
BBBBYYBYBY 48
123 = Format: selective call to a particular individual station using the semi-automatic/automatic service
100 = Category: routine
Messages and "end of sequence” (EOS) follow.
downloads:
|
not-unique decoding of a same sample |