ARC '25 Kural Kitapçığı
Rover Satellite Communications Protocol
RSCP is a protocol for communicating with a rover over a serial connection. This project is designed for Anatolian Rover Challenge (ARC)
Note: This project includes the final version of the communication protocol for the 2024 ARC Competition. Development of the communication protocol to be used in 2025 is ongoing.
For detailed description regarding the communication system for autonomous mission, refer to this external documentation. It is advised for teams to add this GitHub repository to their watch list, and be notified about the updates.
Frame Format
Start Byte | Message ID Byte | Body Length | Body [N] | Checksum [2] |
---|---|---|---|---|
0x7E (uint8_t) | MSG_ID (uint8_t) | N (uint8_t) | data (uint8_t[N]) | CRC16 (uint16_t) |
Note: The frame format uses big endian byte order on all fields.
Start Byte
The start byte is used to indicate the start of a frame. It is always 0x7E.
Message ID Byte
The message ID byte is used to indicate the type of the message. The message types with their corresponding IDs will be listed in the upcoming release.
Body Length
The body length field is used to indicate the length of the data field in bytes.
Body
The body field is used to store the data of the message. The maximum size of the body field is 255 bytes.
Checksum
The checksum field is used to verify the integrity of the frame. It is calculated using the CRC-16-CCITT algorithm. The checksum is calculated over the frame starting from (incuding) start byte to last element of (including) data byte. The checksum bytes are not included in the calculation of the checksum. The checksum is stored in the checksum field in big endian byte order.
Acknowledgements
This project is developed for Anatolian Rover Challenge (ARC)
License
This project is licensed under the BSD 3-Clause License.
Author
Sencer Yazici - senceryazici@gmail.com