I wonder if you could please confirm that the following uplink command packet structure is accurate for CYSAT-1?
Previous satellites (equipped with Endurosat transceivers) that I have uplinked commands to used the following packet structure:
A preamble of 5 0xAA bytes, the 0x7E flag as syncword, followed by one byte indicating the packet length, then the packet (length 0 to 128 bytes), and finally a CRC-16 (CRC type = CRC-16/CCITT-FALSE). The CRC-16 applies to the packet and packet length.
Therefore, with a desired payload of ascii “ES+W22F2110A”, I calculate the uplink packet to be:
desired payload: ES+W22F2110A
in hex: 45 53 2B 57 32 32 46 32 31 31 30 41
packet length = 12 decimal = 0C hex
CRC (length + payload, CRC-16/CCITT-FALSE): 49 3D
packet to be transmitted:
AA AA AA AA AA 7E 0C 45 53 2B 57 32 32 46 32 31 31 30 41 49 3D
And then formatted as a .KSS file for transmission into Direwolf:
echo -n -e ‘\xc0\x00\xAA\xAA\xAA\xAA\xAA\x7E\x0C\x45\x53\x2B\x57\x32\x32\x46\x32\x31\x31\x30\x41\x49\x3D\xc0’ > /tmp/kisstnc
… with the following decode:
… ignoring the unused (in this case) ‘dest’ & ‘source’ fields in Direwolf, you can see the decode of your uplink command on the right.
Thanks in advance if you could kindly confirm if this format is correct - or please set me straight on any parts that are not correct for CYSAT-1.
-Scott