Freematics Packed Data Format is a text based data format used for data transmission to Freematics Hub by UDP or HTTP POST. The stream is chunks of PID/value pairs separated by comma. PID is a hex format (0~FFFF) that identifies the type of data. Value can be integer number, floating number, or consisting of multiple numbers (e.g. accelerometer data). Multiple elements of data are separated by commas.
<PID 1>:<value 1>,<PID 2>:<value 2>,<PID 3>:<value 3 part 1>;<value 3 part 2>;<value 3 part 3>,...
Standard OBD-II PIDs are used straight. A set of custom PIDs are defined for GPS data, motion sensor data and other data. Following are some commonly used Mode 01 PIDs in OBD-II standard.
- 0x104 – Engine load
- 0x105 – Engine coolant temperature
- 0x10a – Fuel pressure
- 0x10b – Intake manifold absolute pressure
- 0x10c – Engine RPM
- 0x10d – Vehicle speed
- 0x10e – Timing advance
- 0x10f – Intake air temperature
- 0x110 – MAF air flow rate
- 0x111 – Throttle position
- 0x11f – Run time since engine start
- 0x121 – Distance traveled with malfunction indicator lamp
- 0x12f – Fuel Level Input
- 0x131 – Distance traveled since codes cleared
- 0x133 – Barometric pressure
- 0x142 – Control module voltage
- 0x143 – Absolute load value
- 0x15b – Hybrid battery pack remaining life
- 0x15c – Engine oil temperature
- 0x15e – Engine fuel rate
Custom defined PIDs in mode 0 (0~FF) which OBD-II does not use
- 0x11 – UTC Date (DDMMYY)
- 0x10 – UTC Time (HHMMSSmm)
- 0xA – Latitude
- 0xB – Longitude
- 0xC – Altitude (m)
- 0xD – Speed (km/h)
- 0xE – Course (degree)
- 0xF – Number of satellites in use
- 0x20 – Accelerometer data (x:y:z)
- 0x21- Gyroscope data (x:y:z)
- 0x22 – Magnitude field data (x/y/z)
- 0x23 – MEMS temperature (in 0.1 Celsius degree)
- 0x24 – Battery voltage (in 0.01V)
- 0x25 – Orientation data (yaw/pitch/roll)
- 0x81 – Cellular network signal level (dB)
- 0x82 – CPU temperature (in 0.1 Celsius degree)
- 0x83 – CPU hall sensor data
PID 0 is reserved for indication of the timestamp of following data whereas followed value is a 32-bit integer data in milliseconds (usually the device system timer).
Example:
0:68338,10D:79,30:1010,105:199,10C:4375,104:56,111:62,20:0;-1;95,10:6454200,A:-32.727482,B:150.150301,C:159,D:0,F:5,24:1250