Repository navigation
Serial Protocol
Communication between HOST and RADIO is performed over a USB serial programming cable specifically designed for the RT-880. The default communication speed is 38,400 baud, but this can be changed dynamically using a command packet (see below).
All communication uses a synchronous packet-based protocol, with the exception of Remote Mode, which uses its own asynchronous protocol. The serial protocol is used to control link speed and to read from or write to the radio’s flash storage.
All packets begin with:
-
Signature byte:
0xAA - Command ID byte
And end with
-
Signature byte:
0x55
Any following data is command-specific.
- All multi-byte values are little endian
Changes the active serial baud rate.
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x70 – Command ID (Change Baud) |
| 4 | New baud rate (32-bit unsigned) |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x70 – Command ID |
The radio first replies at the original baud rate, then sends the same acknowledgement again 100 ms later at the new baud rate.
- The radio defaults to 38,400 baud
- This command must be sent at 38,400 baud
- After 5 seconds of no serial activity, the radio automatically falls back to 38,400 baud
- If higher speeds are required, this command must be sent during initialization
These commands allow the host to access the radio’s flash storage. Sequential reads and writes are supported. Due to flash constraints, operations are performed in either 128-byte or 4096-byte blocks.
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x30 – Command ID (Read 128 bytes) |
| 4 | Storage address (32-bit unsigned) |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x30 – Command ID |
| 4 | Storage address |
| 128 | Storage data |
| 1 | Additive checksum of storage data |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x40 – Command ID (Write 128 bytes) |
| 4 | Storage address |
| 128 | Storage data |
| 1 | Additive checksum of storage data |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x40 – Command ID |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x10 – Command ID (Read 4096 bytes) |
| 4 | Storage address |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x10 – Command ID |
| 4 | Storage address |
| 4096 | Storage data |
| 1 | Additive checksum of storage data |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x20 – Command ID (Write 4096 bytes) |
| 4 | Storage address |
| 4096 | Storage data |
| 1 | Additive checksum of storage data |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x20 – Command ID |
Commits all previously written data to flash storage. This should be called after you've sent all write packets for the operation.
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x48 – Command ID (Finalize Write) |
The radio acknowledges with the same packet.
Reboots the radio. Required after writing storage and finalizing so changes take effect.
This command is not acknowledged.
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x50 – Command ID (Reboot) |
Requests the contents of the radio’s Smart Scan frequency memory.
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x55 – Command ID (Send Smart List) |
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x55 – Command ID |
| 4 | Frequency (32-bit unsigned, 10 Hz units) |
| 2 | Heat / activity score (16-bit unsigned) |
| — | Frequency + Heat repeated 50 times |
Starts a Remote Mode session. A baud-rate change is typically performed before issuing this command.
This command is not acknowledged.
See: Technical Data → Remote Protocol
| Data Bytes | Element |
|---|---|
| 1 |
0xAA – Signature |
| 1 |
0x51 – Command ID (Begin Remote Session) |