Telemetry Packet
| Field | Size (bits) | Bit Range | Description | Breakdown |
|---|---|---|---|---|
| Header (10 bytes) | ||||
| Start byte | 8 | 0–7 | Starting character $ (ASCII value 36) | $ |
| Data length | 12 | 08–19 | 2-byte length of the data following the header | |
| Num of data packets | 5 | 20–24 | Number of packets (0–32) | 0–32 |
| IMEI | 50 | 25–74 | Unique device identifier | e.g., 887744556677882 |
| packet type | 5 | 75–79 | Integer type:
| |
| Data (= 55 bytes × number of packets) | ||||
| Packet Status | 1 | 80 | Type of packet | 0:History, 1:Live |
| Frame Number | 16 | 81-96 | Frame number | |
| AlertID | 5 | 97–101 | Alert identifier | |
| Operator | 4 | 102–105 | Network operator | 00-Airtel, 01-BSNL, 02-VI, 04-JIO |
| Signal Strength | 5 | 106–110 | Signal strength | Integer (0–31) |
| MCC | 10 | 111–120 | Mobile country code | Integer |
| MNC | 10 | 121–130 | Mobile network code | Integer |
| Cell Id | 16 | 131–146 | Cell tower ID | Integer |
| Location Area Code | 16 | 147–162 | Location area code | Integer |
| Fix_status | 1 | 163 | GPS fix status | 0: No fix, 1: Valid Fix |
| Latitude | 29 | 164–192 | Latitude coordinate | Divide by 1,000,000 for float value |
| NS_Indication | 1 | 193 | N or S | 0: N, 1: S |
| Longitude | 29 | 194–222 | Longitude coordinate | Divide by 1,000,000 for float value |
| EW_Indication | 1 | 223 | East/West Indication | 0: E, 1: W |
| HDOP | 10 | 224–233 | Horizontal dilution | Divide by 10 for float value |
| PDOP | 10 | 234–243 | Position dilution | Divide by 10 for float value |
| Speed | 15 | 244–258 | Speed in km/h | Divide by 10 for float value |
| Altitude | 15 | 259–273 | Altitude in meters | Divide by 10 for float value |
| Power Status | 1 | 274 | Power connection status | 0: Power disconnected, 1: Power connected |
| Ignition Status | 1 | 275 | Ignition status | 0: OFF, 1: ON |
| Immobilizer Status | 1 | 276 | Immobilizer status | 0: OFF, 1: ON |
| Tamper | 1 | 277 | Wire Tamper detection | 0: Tamper alert OFF, 1: Tamper alert ON |
| Supply Voltage | 10 | 278–287 | External battery voltage | Divide by 10 for float value |
| Internal Battery Voltage | 6 | 288–293 | Internal battery voltage | Divide by 10 for float value |
| FuelSensorstatus 1 | 1 | 294 | Status of fuel sensor 1 | 1 if connected, 0 if not connected |
| Fuel Percentage 1 | 10 | 295–304 | Fuel level percentage | Divide by 10 for float value |
| Fuel SensorValue 1 | 16 | 305–320 | Fuel sensor value | Divide by 10 if float |
| FuelSensorstatus 2 | 1 | 321 | Status of fuel sensor 2 | 1 if connected, 0 if not connected |
| Fuel Percentage 2 | 10 | 322–331 | Fuel level percentage | Divide by 10 for float value |
| Fuel SensorValue 2 | 16 | 332–347 | Fuel sensor value | Divide by 10 if float |
| FuelSensorstatus 3 | 1 | 348 | Status of fuel sensor 3 | 1 if connected, 0 if not connected |
| Fuel Percentage 3 | 16 | 349–358 | Fuel sensor value | Divide by 10 if float |
| Fuel SensorValue 3 | 16 | 359–374 | Fuel level percentage | Divide by 10 for float value |
| Analog Input 1 | 10 | 375–384 | Analog input | Divide by 10 for float value |
| Analog Input 2 | 10 | 385–394 | Analog input 1 | Divide by 10 for float value |
| Digital Input 1 | 1 | 395 | Digital input 1 | 0 or 1 |
| Digital Input 2 | 1 | 396 | Digital input 2 | 0 or 1 |
| Digital Output 1 | 1 | 397 | Digital output 1 | 0 or 1 |
| Digital Output 2 | 1 | 398 | Digital output 2 | 0 or 1 |
| Temperature sensor status 1 | 1 | 399 | Status of temperature sensor 1 | 1 if connected, 0 if not connected |
| Temperature 1 | 12 | 400–411 | Temperature in °C | Signed, divide by 10 |
| Temperature sensor status 2 | 1 | 412 | Status of temperature sensor 2 | 1 if connected, 0 if not connected |
| Temperature 2 | 12 | 413–424 | Temperature in °C | Signed, divide by 10 |
| Temperature sensor status 3 | 1 | 425 | Status of temperature sensor 3 | 1 if connected, 0 if not connected |
| Temperature 3 | 12 | 426–437 | Temperature in °C | Signed, divide by 10 |
| Humidity | 7 | 438–444 | Humidity percentage | |
| Odometer | 35 | 445–479 | Odometer value in meters | |
| DateTime UTC | 32 | 480–511 | Timestamp | UTC time in seconds |
| TimeZone | 8 | 512–519 |
Timezone in quarter-hours (e.g., 22 = +5:30). Each unit = 15 mins. Value 22 = 22 × 15 mins = 330 mins = +5:30 Range: -48 to 56, 2's complement || | |
| Tail | ||||
| End Character | 8 | 0–7 | Starting character * (ASCII value 42) | * |
| CRC | 8 | 8–15 | 8-bit XOR CRC of data starting from $ to * (excluding $ and *) | |
Sample Packet
HEX "240370e21aeb7abfd5818011047aca0260081b780000000000000000000000000000307890000000000000000000000000000000000000000000000068a7f192162abf"
{"imei": 862942074896044, "packet_type": 1, "no_packets": 1, "packet_status": 1, "frame_number": 34, "alert_id": 1, "operator": 1, "signal_strength": 29, "mcc": 404, "mnc": 19, "cell_id": 64, "lac": 56256, "fix_status": 0, "latitude": 0.0, "latitude_dir": 0, "longitude": 0.0, "longitude_dir": 0, "hdop": 0.0, "pdop": 0.0, "speed": 0.0, "altitude": 0.0, "power": 1, "ignition": 1, "immobilizer": 0, "tamper": 0, "supply_volatge": 12.0, "internal_battery_volatge": 3.6, "fuel_sensor_status_1": 0, "fuel_percentage_1": 0.0, "fuel_value_sensor_1": 0, "fuel_sensor_status_2": 0, "fuel_percentage_2": 0.0, "fuel_value_sensor_2": 0, "fuel_sensor_status_3": 0, "fuel_percentage_3": 0.0, "fuel_value_sensor_3": 0, "analog_input1": 0.0, "analog_input2": 0.0, "digital_input1": 0, "digital_input2": 0, "digital_output1": 0, "digital_output2": 0, "temp_sensor_status_1": 0, "temperature_1": 0.0, "temp_sensor_status_2": 0, "temperature_2": 0.0, "temp_sensor_status_3": 0, "temperature_3": 0.0, "humidity": 0, "odometer": 0, "dateTime": 1755836818, "timezone": 22, "dateTime_tz": "2025-08-22 09:56:58", "error_code": 0
}
Telemetry Packet Parser
Parsed Output:
| Field | Value |
|---|