Message Types
There are three different data message types defined:
- IMU
- GPS
- CAN
Special message types:
- Session start
- Packet RTC time
Special Message Types
Session Start (type = 0x80)
Indicates the initiation of a new session, representing the start of a new vehicle activity. The RMS device transmits a session start message under the following conditions:
- The device is powered on
- The device wakes up from sleep state
| Field | Description | Byte order1 | Type2 | Length | Factor | Offset | Unit |
|---|---|---|---|---|---|---|---|
| timestamp | Timestamp | M | U | 4 | 50 | 0 | us |
| session_start | Session start time | M | U | 4 | 1 | 0 | Unix epoch in seconds |
Example: 80 08 00 00 00 00 69 43 DF 8A
- timestamp - 0x00000000 = 0
- session_start - 0x6943DF8A = 1,766,055,818 = Thu Dec 18 2025 11:03:38 GMT+0000
Packet RTC Time (type = 0x81)
Data messages do not contain absolute timestamps; instead, they include a relative timestamp referenced to a specific time point known as the packet RTC time. The packet RTC time is a fixed reference captured when the device powers on or wakes up from sleep mode. Each data message carries a relative timestamp, expressed in microseconds, measured from this packet RTC time.
From an implementation perspective, this message is not transmitted explicitly by the device. The packet RTC time exists at the device TCP packet level; however, the data streamer service expands this information into a distinct message type.
To determine the absolute event time of a data message, the most recent packet RTC time must be combined with the message’s relative timestamp, expressed in microseconds.
| Field | Description | Byte order1 | Type2 | Length | Factor | Offset | Unit |
|---|---|---|---|---|---|---|---|
| rtc_time | Packet RTC time | M | U | 4 | 1 | 0 | Unix epoch in seconds |
Example: 81 04 69 43 DF 8A
- rtc_time - 0x6943DF8A = 1,766,055,818 = Thu Dec 18 2025 11:03:38 GMT+0000
Data Message Types
IMU Message (type = 0x24)

| Field | Description | Byte order1 | Type2 | Length | Factor | Offset | Unit |
|---|---|---|---|---|---|---|---|
| timestamp | Timestamp | M | U | 4 | 50 | 0 | us |
| acc_x | X - acceleration | M | S | 2 | 0,244 * 9,80665 / 1000 0 | m/s2 | |
| acc_y | Y - acceleration | M | S | 2 | 0,244 * 9,80665 / 1000 | 0 | m/s2 |
| acc_z | Z - acceleration | M | S | 2 | 0,244 * 9,80665 / 1000 | 0 | m/s2 |
| gyro_x | X - angular velocity | M | S | 2 | 17,5 / 1000 | 0 | °/sec |
| gyro_y | Y - angular velocity | M | S | 2 | 17,5 / 1000 | 0 | °/sec |
| gyro_z | Z - angular velocity | M | S | 2 | 17,5 / 1000 | 0 | °/sec |
| temp | Internal temperature | M | S | 2 | 1/256 | 25 | °C |
| acc_xf | X - filtered acceleration | M | S | 2 | 9,80665/3000 | 0 | m/s2 |
| acc_yf | Y - filtered acceleration | M | S | 2 | 9,80665/3000 | 0 | m/s2 |
| acc_zf | Z - filtered acceleration | M | S | 2 | 9,80665/3000 | 0 | m/s2 |
| gyro_xf | X - filtered angular velocity | M | S | 2 | 1/50 | 0 | °/sec |
| gyro_yf | Y - filtered angular velocity | M | S | 2 | 1/50 | 0 | °/sec |
| gyro_zf | Z - filtered angular velocity | M | S | 2 | 1/50 | 0 | °/sec |
Example: 24 1E 00 09 13 51 00 21 01 36 0F C3 FF E4 FF 5D 00 06 FD F2 02 BA 02 18 00 4C FF E8 FF 72 00 05
Fields:
| Field | RAW hex | RAW decimal | Value |
|---|---|---|---|
| timestamp | 0x00091351 | 594,769 | 29,738,450 us |
| acc_x | 0x0021 | 33 | 0,08 m/s2 |
| acc_y | 0x0136 | 310 | 0,74 m/s2 |
| acc_z | 0x0FC3 | 4035 | 9,66 m/s2 |
| gyro_x | 0xFFE4 | -28 | -0,49 °/sec |
| gyro_y | 0xFF5D | -163 | -2,85 °/sec |
| gyro_z | 0x0006 | 6 | 0,11 °/sec |
| temp | 0xFDF2 | -526 | 22,9 °C |
| acc_xf | 0x02BA | 698 | 2,28 m/s2 |
| acc_yf | 0x0218 | 536 | 1,75 m/s2 |
| acc_zf | 0x004C | 76 | 0,25 m/s2 |
| gyro_xf | 0xFFE8 | -24 | -0,48 °/sec |
| gyro_yf | 0xFF72 | -142 | -2,84 °/sec |
| gyro_zf | 0x0005 | 5 | 0,1 °/sec |
GPS Message (type = 0x25)

| Field | Description | Byte order1 | Type2 | Length | Factor | Offset | Unit |
|---|---|---|---|---|---|---|---|
| timestamp | Timestamp | M | U | 4 | 50 | 0 | us |
| gps_time | GPS time | M | U | 8 | 1 | 0 | UNIX time in milliseconds |
| latitude | GPS latitude | M | S | 4 | 1 / 100000 | 0 | Latitude in Degrees Minutes |
| longitude | GPS longitude | M | S | 4 | 1 / 100000 | 0 | Longitude in Degrees Minutes |
| hdop | GPS hdop | M | U | 2 | 1 / 100 | 0 | |
| altitude | GPS altitude | M | U | 2 | 1 / 100 | 0 | m |
| speed | GPS speed | M | U | 2 | 1 / 100 | 0 | km/h |
Example:
25 1C 00 3B 1B D8 00 00 01 8F BF 55 E4 39 1C 2D B5 3B 0B 56 EF 3C 00 77 00 00 3E E4 09 EC
Fields:
| Field | RAW hex | RAW decimal | Value |
|---|---|---|---|
| timestamp | 0x00381BD8 | 3,677,144 | 183 857 200 us |
| gps_time | 0x0000018FBF55E439 | 1,716,902,028,345 | 2024-05-28 13:13:48.345 UTC |
| latitude | 0x1C2DB53B | 472,757,563 | 4727.57563 => 47° 27.57563’ => 47.45959383° |
| longitude | 0x0B56EF3C | 190,246,716 | 1902.46716 => 19° 2.46716’ => 19.0411193° |
| hdop | 0x0077 | 119 | 1.19 |
| altitude | 0x00003EE4 | 16,100 | 161 m |
| speed | 0x09EC | 2,540 | 25.4 km/h |
CAN Message (type = 0x26)
| Field | Description | Byte order1 | Type2 | Length | Factor | Offset | Unit |
|---|---|---|---|---|---|---|---|
| timestamp | Timestamp | M | U | 4 | 50 | 0 | us |
| flg | CAN flags | M | U | 1 | upper 4 bits is the channel, lower 4 bits is the DLC (data length code) | ||
| can_id | CAN frame ID | M | U | 4 | most significant bit is the std/xtd flag | ||
| can_data | CAN frame data | M | U | variable | byte array, length specified by the DLC |
Example:
21 0F 00 0B 17 E9 16 00 00 01 9A AF FD E5 7F 00 20
Fields:
| Field | RAW hex | RAW decimal | Value |
|---|---|---|---|
| timestamp | 0x000B17E9 | 727,017 | 36,350,850 us |
| flg | 0x16 | Channel: 0x01, DLC: 0x06 | Channel: 1, DLC: 6 |
| can_id | 0x0000019A | STD/EXT:0, CAN ID: 0x19A | Standard CAN frame, ID: 410 |
| can_data | 0xAF 0xFD 0xE5 0x7F 0x00 0x20 | 0xAF 0xFD 0xE5 0x7F 0x00 0x20 |