This is a reverse-engineered description of the data mode used by Flare Pepper Kitchen option 8
.
FPK uses binary audio frequency-shift keying (AFSK). The default parameters are as follows:
FPK transmissions consist of a series of bytes framed in the 8-N-1 configuration. That is, each transmitted byte begins with a single 0
bit, followed by the eight data bits ordered least significant bit first, followed by a single 1
bit.
The following sections describe unframed bytes in the conventional most significant bit first order. All multi-byte fields are big endian.
Each FPK transmission is a single packet. All packet types share the following structure:
Byte | 0 | 1 | 2 | 3 | ⋯ | N-6 | N-5 | N-4 | N-3 | N-2 | N-1 |
---|---|---|---|---|---|---|---|---|---|---|---|
Value | 0x5A5A5A5A | CRC | 0x00000000 |
0x5A5A5A5A
sequence. CRC-16-MODBUS is defined by the polynomial x16+x15+x2+1, initial state 0xFFFF
, reflected input, and reflected output; for input bytes 5A 5A 5A 5A 04 00 00
, the correct result is 0xEBE6
.Byte | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | ⋯ | N-7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Value | 0x03 | PC | 0x00 | MD5 | Filename |
0x00
byte.Byte | 4 | 5 | 6 | 7 | ⋯ | N-7 |
---|---|---|---|---|---|---|
Value | 0x04 | BR | Payload |
Each file descriptor is a series of numbered packets:
0
is always an info packet with metadata on the transmitted file.1
, 2
, 3
, etc. are always data packets with fragments of the file, in order from first to last.