Make FSK2 great again! :-) PS2x5 - simple, robust and bit-transparence mode
PS2x5 mode (document version 1.1)
PS2x5 is an experimental streaming protocol over FSK2
It can be considered an improved version of AMTOR-FEC (SITOR-B, NAVTEX) with a more
powerful FEC based on Reed-Solomon code RS(31,15) and with much more robust error control.
The probability of receiving a corrupted data chunk is practically eliminated -
a data block (7 bytes) is either received without errors or it is not received at all.
Block numbering ensures that if less than eight blocks are not received that
information about the number of missed characters is also preserved
(unaccepted characters are replaced by underscores).
The full set of single-byte characters (0...255) is supported.
The protocol is insensitive to spectrum inversion
(i.e . USB or LSB selection when the signal is forming as AFSK).
The data rate is about 0.36 of the baud rate.
That is, at a baud rate of 25 bauds data rate will be 9 bps,
i.e. some over 60 LPM.
This is why the variant "25 Bd Speed/50 Hz Shift" is proposed as a starting point
for "medium-bad" propagation conditions.
When the baud rate is changed it is recommended to choose the frequency shift equal
to the speed or twice as much.
The protocol details:
Transmitted text is divided into blocks of seven bytes.
A four-bit block number is appended to the each block.
The first eight blocks of transmission are numbered as 8...15,
the next blocks are numbered cyclically as 0...7.
The seven bytes of data and the block number are packed into 12 five-bit symbols,
then 15 bits (three five-bit symbols) of CRC are added to them.
Then 16 check symbols of the Reed-Solomon code are added to the block. So up to eight
erroneous symbols in a each block can be corrected.
The last block has a different from another blocks CRC and includes the EOT(0x04)
symbol and then zero to six NUL(0x00) symbols (to fill the block ).
It allows to determine the exact number of transmitted bytes and to detect the fact
that the transmission is not fully received.
Then the resulting block of 31 five-bit symbols is transmitted sequentially
(high bit of a symbol first) using differential FSK2-modulation.
0 is encoded by frequency shift, 1 is the same frequency.
The full bit transparency and precise transmission boundaries allow:
- transfer any binary files without additional transcoding;
- use PS2x5 protocol as physical and transport layer of various
packet protocols, including AX25 and APRS.
This mode is implemented in the beta version of TrueTTY (Windows)
and in the beta version of FSKchat (Android)
Windows HAM radio software at http://www.dxsoft.com