You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
OBD-II Modes and PIDs<br />
OBD-II defines a standardised set of on-board diagnostic functions, which are described in the SAE J1979 and ISO 15031<br />
standards.<br />
Modes<br />
The first byte of an OBD-II request message specifies the mode of operation. Modes 0x00-0x0F are reserved for<br />
standardised (legislated) functions, of which nine are currently defined:<br />
Mode<br />
Description<br />
01 Show current value of specified PID<br />
02 Show stored (freeze frame) value of specified PID<br />
03 Show stored Diagnostic Trouble Codes (DTCs)<br />
04 Clear DTCs and stored values<br />
05 Test results, oxygen sensors<br />
06 Test results, non-continuously monitored<br />
07 Show pending DTCs<br />
08 Special control mode<br />
09 Request vehicle information<br />
Modes 0x10-0x3F are defined in ISO 14230. The precise details of how these modes work (eg. parameter definitions) are<br />
manufacturer specific.<br />
PIDs<br />
For Modes 01 and 02, the second byte of the request message is the PID of interest. The table below lists some of the<br />
standard PIDs. Refer to the standards for more details.<br />
The first byte of the reply message is the mode byte with bit 6 set (eg. 0x41 for a reply to a mode 0x01 request). The second<br />
byte is the PID, and the third and subsequent bytes are the actual data value.<br />
PID<br />
(hex)<br />
Data Size<br />
(bytes) Description Scale Offset Units<br />
00 4 PIDs supported b31..0 = PIDs 0x01..0x20<br />
01 4 (Mode 01 only) MIL (Malfunction Indicator Light) status,<br />
number of DTCs, test status<br />
02 2 (Mode 02 only) DTC associated with freeze frame data,<br />
if 0 then there is no stored freeze frame data<br />
b31=MIL status, b30..24=num DTCs,<br />
b23..0=test status<br />
DTC code, see below<br />
03 2 Fuel systems #1 and #2 status (1 byte each) bit encoded<br />
04 1 Calculated engine load<br />
05 1 Engine coolant temperature 1 -40 °C<br />
06 1 Short term fuel % trim – bank 1 (- lean, + rich) 0.7812 -100 %<br />
07 1 Long term fuel % trim – bank 1 (- lean, + rich)<br />
08 1 Short term fuel % trim – bank 2 (- lean, + rich) 0.7812 -100 %<br />
09 1 Long term fuel % trim – bank 2 (- lean, + rich) 0.7812 -100 %<br />
0A 1 Fuel pressure 3 0 kPa (gauge)<br />
0B 1 Intake manifold pressure 1 0 kPa (abs)<br />
0C 2 Engine RPM 0.25 0 rpm<br />
0D 1 Vehicle speed 1 0 km/h<br />
0E 1 Timing advance 0.5 -64 degrees<br />
0F 1 Intake temperature 1 -40 °C<br />
10 2 MAF air flow rate 0.01 0 g/s<br />
11 1 Throttle position 0.3922 0 %<br />
12 1 Secondary air status bit encoded<br />
13 1 Oxygen sensors present b7..4=bank 2 sensors 4-1<br />
b3..0=bank 1 sensors 4-1<br />
14 2 (byte 1) Bank 1 sensor 1, oxygen sensor voltage 0.005 0 V<br />
(byte 2) Bank 1 sensor 1, short term fuel trim (0xFF if<br />
sensor not used)<br />
0.7812 -100 %<br />
UM-0086-A2 <strong>CANgate</strong> User’s <strong>Manual</strong> Page 40