0% found this document useful (0 votes)
431 views29 pages

Obd-Ii Pids: HTML Markup

OBD-II PIDs are codes used to request diagnostic data from vehicles. The document details the standard PIDs defined by SAE J1979 to retrieve various vehicle data through the OBD port, including engine parameters, component monitoring values, and diagnostic trouble codes.

Uploaded by

fer1567
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
431 views29 pages

Obd-Ii Pids: HTML Markup

OBD-II PIDs are codes used to request diagnostic data from vehicles. The document details the standard PIDs defined by SAE J1979 to retrieve various vehicle data through the OBD port, including engine parameters, component monitoring values, and diagnostic trouble codes.

Uploaded by

fer1567
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd

OBD-II PIDs

From Wikipedia, the free encyclopedia

Jump to navigation Jump to search

This article uses HTML markup. Please help by changing HTML markup to Wiki markup
where appropriate. For help finding or replacing the problematic tags, see instructions.
(August 2019) The specific tags found on this page (there may be others) include: tt
OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle,
used as a diagnostic tool.
SAE standard J1979 defines many OBD-II PIDs. All on-road vehicles and trucks sold in North
America are required to support a subset of these codes, primarily for state mandated emissions
inspections. Manufacturers also define additional PIDs specific to their vehicles. Though not
mandated, many motorcycles also support OBD-II PIDs.
In 1996, light duty vehicles (less than 8,500 lb [3,900 kg]) were the first to be mandated followed
by medium duty vehicles (between 8,500–14,000 lb [3,900–6,400 kg]) in 2005.[1] They are both
required to be accessed through a standardized data link connector defined by SAE J1962.
Heavy duty vehicles (greater than 14,000 lb [6,400 kg]) made after 2010,[1] for sale in the US are
allowed to support OBD-II diagnostics through SAE standard J1939-13 (a round diagnostic
connector) according to CARB in title 13 CCR 1971.1. Some heavy duty trucks in North America
use the SAE J1962 OBD-II diagnostic connector that is common with passenger cars, notably Mack
and Volvo Trucks, however they use 29 bit CAN identifiers (unlike 11 bit headers used by
passenger cars).

Contents
 1 Services
 2 Standard PIDs
 2.1 Service 01
 2.2 Service 02
 2.3 Service 03
 2.4 Service 04
 2.5 Service 05
 2.6 Service 09
 2.7 Bitwise encoded PIDs
 2.7.1 Service 01 PID 00
 2.7.2 Service 01 PID 01
 2.7.3 Service 01 PID 41
 2.7.4 Service 01 PID 78
 2.7.5 Service 03 (no PID required)
 2.7.6 Service 09 PID 08
 2.7.7 Service 09 PID 0B
 2.8 Enumerated PIDs
 2.8.1 Service 01 PID 03
 2.8.2 Service 01 PID 12
 2.8.3 Service 01 PID 1C
 2.8.4 Fuel Type Coding
 3 Non-standard PIDs
 4 CAN (11-bit) bus format
 4.1 Query
 4.2 Response
 5 See also
 6 References
 7 Further reading

Services
There are 10 diagnostic services described in the latest OBD-II standard SAE J1979. Before 2002,
J1979 referred to these services as "modes". They are as follows:

Service
Description
(hex)
01 Show current data
02 Show freeze frame data
03 Show stored Diagnostic Trouble Codes
04 Clear Diagnostic Trouble Codes and stored values
05 Test results, oxygen sensor monitoring (non CAN only)
Test results, other component/system monitoring (Test results, oxygen sensor
06
monitoring for CAN only)
Show pending Diagnostic Trouble Codes (detected during current or last driving
07
cycle)
08 Control operation of on-board component/system
09 Request vehicle information
0A Permanent Diagnostic Trouble Codes (DTCs) (Cleared DTCs)
Vehicle manufacturers are not required to support all services. Each manufacturer may define
additional services above #9 (e.g.: service 22 as defined by SAE J2190 for Ford/GM, service 21 for
Toyota) for other information e.g. the voltage of the traction battery in a hybrid electric vehicle
(HEV).[2]
The nonOBD UDS services start at 0x10 to avoid overlap of ID-range.
Standard PIDs
The table below shows the standard OBD-II PIDs as defined by SAE J1979. The expected response
for each PID is given, along with information on how to translate the response into meaningful data.
Again, not all vehicles will support all PIDs and there can be manufacturer-defined custom PIDs
that are not defined in the OBD-II standard.
Note that services 01 and 02 are basically identical, except that service 01 provides current
information, whereas service 02 provides a snapshot of the same data taken at the point when the
last diagnostic trouble code was set. The exceptions are PID 01, which is only available in service
01, and PID 02, which is only available in service 02. If service 02 PID 02 returns zero, then there is
no snapshot and all other service 02 data is meaningless.
When using Bit-Encoded-Notation, quantities like C4 means bit 4 from data byte C. Each bit is
numerated from 0 to 7, so 7 is the most significant bit and 0 is the least significant bit (See below).

A B C
A7 A6 A5 A4 A3 A2 A1 A0 B7 B6 B5 B4 B3 B2 B1 B0 C7 C6 C5 C4 C3 C2 C1 C0 D7 D6 D5 D

Service 01
PID PID Data
Min
(hex (Dec bytes Description Max value Units Formula[a]
value
) ) returned
Bit encoded
PIDs supported [01 - [A7..D0] == [PID
00 0 4
20] $01..PID $20] See
below
Monitor status since
DTCs cleared.
(Includes malfunction Bit encoded. See
01 1 4
indicator lamp (MIL) below
status and number of
DTCs.)
02 2 2 Freeze DTC
Bit encoded. See
03 3 2 Fuel system status
below
100 255 A
{\displaystyle {\tfrac
Calculated engine {100}{255}}A} (or
04 4 1 0 100 %
load A 2.55 {\displaystyle
{\tfrac {A}{2.55}}}
)
A − 40
Engine coolant
05 5 1 -40 215 °C {\displaystyle A-40}
temperature
Short term fuel trim— -100 99.2 (Add % 100 128 A − 100
06 6 1
Bank 1 (Reduce Fuel: Too {\displaystyle {\frac
Long term fuel trim— Fuel: Too Lean) {100}{128}}A-100}
07 7 1 Rich)
Bank 1
08 8 1 Short term fuel trim— (or A 1.28 − 100
Bank 2
Long term fuel trim—
09 9 1 {\displaystyle {\tfrac
Bank 2
{A}{1.28}}-100} )
Fuel pressure (gauge 3 A {\displaystyle
0A 10 1 0 765 kPa
pressure) 3A}
Intake manifold
0B 11 1 0 255 kPa A {\displaystyle A}
absolute pressure
256 A + B 4
0C 12 2 Engine RPM 0 16,383.75 rpm {\displaystyle {\frac
{256A+B}{4}}}
0D 13 1 Vehicle speed 0 255 km/h A {\displaystyle A}
A 2 − 64
° before
0E 14 1 Timing advance -64 63.5 {\displaystyle {\frac
TDC
{A}{2}}-64}
A − 40
0F 15 1 Intake air temperature -40 215 °C {\displaystyle A-40}

256 A + B 100
grams/se
10 16 2 MAF air flow rate 0 655.35 {\displaystyle {\frac
c
{256A+B}{100}}}
100 255 A
11 17 1 Throttle position 0 100 % {\displaystyle {\tfrac
{100}{255}}A}
Commanded Bit encoded. See
12 18 1
secondary air status below
[A0..A3] == Bank 1,
Oxygen sensors Sensors 1-4.
13 19 1
present (in 2 banks) [A4..A7] == Bank
2...
Oxygen Sensor 1 0 1.275 volts A 200 {\displaystyle
A: Voltage -100 99.2 {\frac {A}{200}}}
14 20 2
B: Short term fuel %
trim 100 128 B − 100
Oxygen Sensor 2 {\displaystyle {\frac
A: Voltage {100}{128}}B-100}
15 21 2
B: Short term fuel
trim (if B==$FF, sensor
Oxygen Sensor 3 is not used in trim
A: Voltage calculation)
16 22 2
B: Short term fuel
trim
Oxygen Sensor 4
A: Voltage
17 23 2
B: Short term fuel
trim
18 24 2 Oxygen Sensor 5
A: Voltage
B: Short term fuel
trim
Oxygen Sensor 6
A: Voltage
19 25 2
B: Short term fuel
trim
Oxygen Sensor 7
A: Voltage
1A 26 2
B: Short term fuel
trim
Oxygen Sensor 8
A: Voltage
1B 27 2
B: Short term fuel
trim
OBD standards this enumerated. See
1C 28 1 1 250 -
vehicle conforms to below
Similar to PID 13,
but [A0..A7] ==
Oxygen sensors
1D 29 1 [B1S1, B1S2, B2S1,
present (in 4 banks)
B2S2, B3S1, B3S2,
B4S1, B4S2]
A0 == Power Take
Off (PTO) status (1
1E 30 1 Auxiliary input status
== active)
[A1..A7] not used
256 A + B
Run time since engine
1F 31 2 0 65,535 seconds {\displaystyle
start
256A+B}
Bit encoded
PIDs supported [21 - [A7..D0] == [PID
20 32 4
40] $21..PID $40] See
below
Distance traveled with 256 A + B
21 33 2 malfunction indicator 0 65,535 km {\displaystyle
lamp (MIL) on 256A+B}
Fuel Rail Pressure 0.079 ( 256 A + B )
22 34 2 (relative to manifold 0 5177.265 kPa {\displaystyle
vacuum) 0.079(256A+B)}
Fuel Rail Gauge
10 ( 256 A + B )
Pressure (diesel, or
23 35 2 0 655,350 kPa {\displaystyle
gasoline direct
10(256A+B)}
injection)
Oxygen Sensor 1 0 <2 ratio 2 65536 ( 256 A +
AB: Fuel–Air 0 <8 V B ) {\displaystyle
24 36 4
Equivalence Ratio {\frac {2}{65536}}
CD: Voltage (256A+B)}
Oxygen Sensor 2
AB: Fuel–Air 8 65536 ( 256 C + D
25 37 4 ) {\displaystyle
Equivalence Ratio
CD: Voltage {\frac {8}{65536}}
26 38 4 Oxygen Sensor 3 (256C+D)}
AB: Fuel–Air
Equivalence Ratio
CD: Voltage
Oxygen Sensor 4
AB: Fuel–Air
27 39 4
Equivalence Ratio
CD: Voltage
Oxygen Sensor 5
AB: Fuel–Air
28 40 4
Equivalence Ratio
CD: Voltage
Oxygen Sensor 6
AB: Fuel–Air
29 41 4
Equivalence Ratio
CD: Voltage
Oxygen Sensor 7
AB: Fuel–Air
2A 42 4
Equivalence Ratio
CD: Voltage
Oxygen Sensor 8
AB: Fuel–Air
2B 43 4
Equivalence Ratio
CD: Voltage
100 255 A
2C 44 1 Commanded EGR 0 100 % {\displaystyle {\tfrac
{100}{255}}A}
100 128 A − 100
{\displaystyle {\tfrac
2D 45 1 EGR Error -100 99.2 %
{100}{128}}A-100}

100 255 A
Commanded
2E 46 1 0 100 % {\displaystyle {\tfrac
evaporative purge
{100}{255}}A}
100 255 A
2F 47 1 Fuel Tank Level Input 0 100 % {\displaystyle {\tfrac
{100}{255}}A}
Warm-ups since codes
30 48 1 0 255 count A {\displaystyle A}
cleared
256 A + B
Distance traveled
31 49 2 0 65,535 km {\displaystyle
since codes cleared
256A+B}
256 A + B 4
{\displaystyle {\frac
{256A+B}{4}}}
Evap. System Vapor
32 50 2 -8,192 8191.75 Pa
Pressure (AB is two's
complement signed)
[3]
Absolute Barometric
33 51 1 0 255 kPa A {\displaystyle A}
Pressure
Oxygen Sensor 1
AB: Fuel–Air
34 52 4
Equivalence Ratio
CD: Current
Oxygen Sensor 2
AB: Fuel–Air
35 53 4
Equivalence Ratio
CD: Current
Oxygen Sensor 3
AB: Fuel–Air 2 65536 ( 256 A +
36 54 4
Equivalence Ratio B ) {\displaystyle
CD: Current {\frac {2}{65536}}
Oxygen Sensor 4 (256A+B)}
AB: Fuel–Air
37 55 4
Equivalence Ratio 256 C + D 256 −
CD: Current 0 <2 ratio 128 {\displaystyle
Oxygen Sensor 5 -128 <128 mA {\frac {256C+D}
AB: Fuel–Air {256}}-128}
38 56 4
Equivalence Ratio
CD: Current or C + D 256 − 128
Oxygen Sensor 6 {\displaystyle C+
AB: Fuel–Air {\frac {D}{256}}-
39 57 4 128}
Equivalence Ratio
CD: Current
Oxygen Sensor 7
AB: Fuel–Air
3A 58 4
Equivalence Ratio
CD: Current
Oxygen Sensor 8
AB: Fuel–Air
3B 59 4
Equivalence Ratio
CD: Current
Catalyst Temperature:
3C 60 2
Bank 1, Sensor 1
Catalyst Temperature: 256 A + B 10 − 40
3D 61 2
Bank 2, Sensor 1 {\displaystyle {\frac
-40 6,513.5 °C
Catalyst Temperature: {256A+B}{10}}-
3E 62 2 40}
Bank 1, Sensor 2
Catalyst Temperature:
3F 63 2
Bank 2, Sensor 2
Bit encoded
PIDs supported [41 - [A7..D0] == [PID
40 64 4
60] $41..PID $60] See
below
Monitor status this Bit encoded. See
41 65 4
drive cycle below
42 66 2 Control module 0 65.535 V 256 A + B 1000
{\displaystyle {\frac
voltage {256A+B}{1000}}}

100 255 ( 256 A +


B ) {\displaystyle
43 67 2 Absolute load value 0 25,700 %
{\tfrac {100}{255}}
(256A+B)}
2 65536 ( 256 A +
Fuel–Air commanded B ) {\displaystyle
44 68 2 0 <2 ratio
equivalence ratio {\tfrac {2}{65536}}
(256A+B)}
100 255 A
Relative throttle
45 69 1 0 100 % {\displaystyle {\tfrac
position
{100}{255}}A}
A − 40
Ambient air
46 70 1 -40 215 °C {\displaystyle A-40}
temperature
Absolute throttle
47 71 1
position B
Absolute throttle
48 72 1
position C
Accelerator pedal
49 73 1 100 255 A
position D
0 100 % {\displaystyle {\frac
Accelerator pedal {100}{255}}A}
4A 74 1
position E
Accelerator pedal
4B 75 1
position F
Commanded throttle
4C 76 1
actuator
4D 77 2 Time run with MIL on 256 A + B
Time since trouble 0 65,535 minutes {\displaystyle
4E 78 2 256A+B}
codes cleared
Maximum value for
Fuel–Air equivalence
ratio, oxygen sensor
255, 255, ratio, V,
4F 79 4 voltage, oxygen 0, 0, 0, 0 A, B, C, D*10
255, 2550 mA, kPa
sensor current, and
intake manifold
absolute pressure
Maximum value for A*10, B, C, and D
50 80 4 air flow rate from 0 2550 g/s are reserved for
mass air flow sensor future use
From fuel type table
51 81 1 Fuel Type
see below
100 255 A
52 82 1 Ethanol fuel % 0 100 % {\displaystyle {\tfrac
{100}{255}}A}
53 83 2 Absolute Evap system 0 327.675 kPa 256 A + B 200
Vapor Pressure {\displaystyle {\frac
{256A+B}{200}}}
Evap system vapor
54 84 2 -32,767 32,768 Pa ((A*256)+B)-32767
pressure
Short term secondary
55 85 2 oxygen sensor trim, 100 128 A − 100
A: bank 1, B: bank 3 {\displaystyle {\frac
Long term secondary {100}{128}}A-100}
56 86 2 oxygen sensor trim,
A: bank 1, B: bank 3
-100 99.2 %
Short term secondary 100 128 B − 100
57 87 2 oxygen sensor trim, {\displaystyle {\frac
A: bank 2, B: bank 4 {100}{128}}B-100}
Long term secondary
58 88 2 oxygen sensor trim,
A: bank 2, B: bank 4
10 ( 256 A + B )
Fuel rail absolute
59 89 2 0 655,350 kPa {\displaystyle
pressure
10(256A+B)}
100 255 A
Relative accelerator
5A 90 1 0 100 % {\displaystyle {\tfrac
pedal position
{100}{255}}A}
100 255 A
Hybrid battery pack
5B 91 1 0 100 % {\displaystyle {\tfrac
remaining life
{100}{255}}A}
A − 40
Engine oil
5C 92 1 -40 210 °C {\displaystyle A-40}
temperature
256 A + B 128 − 210
{\displaystyle {\frac
5D 93 2 Fuel injection timing -210.00 301.992 °
{256A+B}{128}}-
210}
256 A + B 20
5E 94 2 Engine fuel rate 0 3212.75 L/h {\displaystyle {\frac
{256A+B}{20}}}
Emission
5F 95 1 requirements to which Bit Encoded
vehicle is designed
Bit encoded
PIDs supported [61 - [A7..D0] == [PID
60 96 4
80] $61..PID $80] See
below
Driver's demand
61 97 1 engine - percent -125 130 % A-125
torque
Actual engine -
62 98 1 -125 130 % A-125
percent torque
256 A + B
Engine reference
63 99 2 0 65,535 Nm {\displaystyle
torque
256A+B}
A-125 Idle
B-125 Engine point
1
C-125 Engine point
Engine percent torque
64 100 5 -125 130 % 2
data
D-125 Engine point
3
E-125 Engine point
4
Auxiliary input /
65 101 2 Bit Encoded
output supported
66 102 5 Mass air flow sensor
Engine coolant
67 103 3 °C
temperature
Intake air temperature
68 104 7
sensor
Commanded EGR and
69 105 7
EGR Error
Commanded Diesel
intake air flow control
6A 106 5
and relative intake air
flow position
Exhaust gas
6B 107 5 recirculation
temperature
Commanded throttle
actuator control and
6C 108 5
relative throttle
position
Fuel pressure control
6D 109 6
system
Injection pressure
6E 110 5
control system
Turbocharger
6F 111 3 compressor inlet
pressure
70 112 9 Boost pressure control
Variable Geometry
71 113 5
turbo (VGT) control
72 114 5 Wastegate control
73 115 5 Exhaust pressure
74 116 5 Turbocharger RPM
Turbocharger
75 117 7
temperature
Turbocharger
76 118 7
temperature
Charge air cooler
77 119 5
temperature (CACT)
Exhaust Gas
Special PID. See
78 120 9 temperature (EGT)
below
Bank 1
Exhaust Gas
Special PID. See
79 121 9 temperature (EGT)
below
Bank 2
Diesel particulate
7A 122 7
filter (DPF)
Diesel particulate
7B 123 7
filter (DPF)
256 A + B 10 − 40
Diesel Particulate
{\displaystyle {\frac
7C 124 9 filter (DPF) °C
{256A+B}{10}}-
temperature
40}
NOx NTE (Not-To-
7D 125 1 Exceed) control area
status
PM NTE (Not-To-
7E 126 1 Exceed) control area
status
7F 127 13 Engine run time seconds
Bit encoded
PIDs supported [81 - [A7..D0] == [PID
80 128 4
A0] $81..PID $A0] See
below
Engine run time for
Auxiliary Emissions
81 129 21
Control
Device(AECD)
Engine run time for
Auxiliary Emissions
82 130 21
Control
Device(AECD)
83 131 5 NOx sensor
Manifold surface
84 132 1
temperature
85 133 10 NOx reagent system
Particulate matter
86 134 5
(PM) sensor
Intake manifold
87 135 5
absolute pressure
88 136 13 SCR Induce System
Run Time for AECD
89 137 41
#11-#15
Run Time for AECD
8A 138 41
#16-#20
8B 139 7 Diesel Aftertreatment
8C 140 16 O2 Sensor (Wide
Range)
8D 141 1 Throttle Position G 0 100 %
A − 125
Engine Friction -
8E 142 1 -125 130 % {\displaystyle A-
Percent Torque
125}
PM Sensor Bank 1 &
8F 143 5
2
WWH-OBD Vehicle
90 144 3 OBD System hours
Information
WWH-OBD Vehicle
91 145 5 OBD System hours
Information
92 146 2 Fuel System Control
WWH-OBD Vehicle
93 147 3 OBD Counters hours
support
NOx Warning And
94 148 12
Inducement System
Exhaust Gas
98 152 9
Temperature Sensor
Exhaust Gas
99 153 9
Temperature Sensor
Hybrid/EV Vehicle
9A 154 6 System Data, Battery,
Voltage
Diesel Exhaust Fluid
9B 155 4
Sensor Data
9C 156 17 O2 Sensor Data
9D 157 4 Engine Fuel Rate g/s
Engine Exhaust Flow
9E 158 2 kg/h
Rate
Fuel System
9F 159 9
Percentage Use
Bit encoded
PIDs supported [A1 - [A7..D0] == [PID
A0 160 4
C0] $A1..PID $C0] See
below
NOx Sensor
A1 161 9 ppm
Corrected Data
mg/strok
A2 162 2 Cylinder Fuel Rate
e
Evap System Vapor
A3 163 9 Pa
Pressure
Transmission Actual
A4 164 4
Gear
Diesel Exhaust Fluid
A5 165 4
Dosing
A ( 2 24 ) + B ( 2
16 ) + C ( 2 8 ) + D
10 {\displaystyle
526 385
A6 166 4 Odometer 0 km {\frac {A(2^{24})
151.9
+B(2^{16})
+C(2^{8})+D}
{10}}}
Bit encoded
PIDs supported [C1 - [A7..D0] == [PID
C0 192 4 0x0 0xffffffff
E0] $C1..PID $E0] See
below
Returns numerous
data, including Drive
C3 195 ? ? ? ? ?
Condition ID and
Engine Speed*
B5 is Engine Idle
Request
C4 196 ? ? ? ? ?
B6 is Engine Stop
Request*
PID PID Data
Min
(hex (Dec bytes Description Max value Units Formula[a]
value
) ) returned

Service 02
Service 02 accepts the same PIDs as service 01, with the same meaning, but information given is
from when the freeze frame[4] was created.
You have to send the frame number in the data section of the message.

PID Data bytes Min Max


Description Units Formula[a]
(hex) returned value value
DTC that caused freeze BCD encoded.
02 2
frame to be stored. Decoded as in service 3

Service 03
PID Data bytes Min Max
Description Units Formula[a]
(hex) returned value value
Request trouble 3 codes per message frame.
N/A n*6
codes See below

Service 04
PID Data bytes Min Max
Description Units Formula[a]
(hex) returned value value
Clear trouble codes / Clears all stored
N/A 0 Malfunction indicator lamp trouble codes and turns
(MIL) / Check engine light the MIL off.

Service 05
PID Data bytes Min Max
Description Units Formula[a]
(hex) returned value value
OBD Monitor IDs
0100 4 0x0 0xffffffff
supported ($01 – $20)
O2 Sensor Monitor 0.005 Rich to lean
0101 2 0.00 1.275 volts
Bank 1 Sensor 1 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0102 0.00 1.275 volts
Bank 1 Sensor 2 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0103 0.00 1.275 volts
Bank 1 Sensor 3 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0104 0.00 1.275 volts
Bank 1 Sensor 4 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0105 0.00 1.275 volts
Bank 2 Sensor 1 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0106 0.00 1.275 volts
Bank 2 Sensor 2 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0107 0.00 1.275 volts
Bank 2 Sensor 3 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0108 0.00 1.275 volts
Bank 2 Sensor 4 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0109 0.00 1.275 volts
Bank 3 Sensor 1 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
010A 0.00 1.275 volts
Bank 3 Sensor 2 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
010B 0.00 1.275 volts
Bank 3 Sensor 3 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
010C 0.00 1.275 volts
Bank 3 Sensor 4 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
010D 0.00 1.275 volts
Bank 4 Sensor 1 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
010E 0.00 1.275 volts
Bank 4 Sensor 2 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
010F 0.00 1.275 volts
Bank 4 Sensor 3 sensor threshold voltage
O2 Sensor Monitor 0.005 Rich to lean
0110 0.00 1.275 volts
Bank 4 Sensor 4 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0201 0.00 1.275 volts
Bank 1 Sensor 1 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0202 0.00 1.275 volts
Bank 1 Sensor 2 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0203 0.00 1.275 volts
Bank 1 Sensor 3 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0204 0.00 1.275 volts
Bank 1 Sensor 4 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0205 0.00 1.275 volts
Bank 2 Sensor 1 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0206 0.00 1.275 volts
Bank 2 Sensor 2 sensor threshold voltage
0207 O2 Sensor Monitor 0.00 1.275 volts 0.005 Lean to Rich
Bank 2 Sensor 3 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0208 0.00 1.275 volts
Bank 2 Sensor 4 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0209 0.00 1.275 volts
Bank 3 Sensor 1 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
020A 0.00 1.275 volts
Bank 3 Sensor 2 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
020B 0.00 1.275 volts
Bank 3 Sensor 3 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
020C 0.00 1.275 volts
Bank 3 Sensor 4 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
020D 0.00 1.275 volts
Bank 4 Sensor 1 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
020E 0.00 1.275 volts
Bank 4 Sensor 2 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
020F 0.00 1.275 volts
Bank 4 Sensor 3 sensor threshold voltage
O2 Sensor Monitor 0.005 Lean to Rich
0210 0.00 1.275 volts
Bank 4 Sensor 4 sensor threshold voltage
PID Data bytes Min Max
Description Units Formula[a]
(hex) returned value value

Service 09
PID
Data bytes Min Max
(hex Description Units Formula[a]
returned value value
)
Service 9 supported Bit encoded. [A7..D0] = [PID
00 4
PIDs (01 to 20) $01..PID $20] See below
VIN Message Count in
PID 02. Only for ISO
01 1 Usually the value will be 5.
9141-2, ISO 14230-4
and SAE J1850.
17-char VIN, ASCII-encoded and
Vehicle Identification
02 17 left-padded with null chars
Number (VIN)
(0x00) if needed to.
Calibration ID message
count for PID 04. Only It will be a multiple of 4 (4
03 1 for ISO 9141-2, ISO messages are needed for each
14230-4 and SAE ID).
J1850.
Up to 16 ASCII chars. Data bytes
not used will be reported as null
04 16,32,48,64.. Calibration ID
bytes (0x00). Several CALID can
be outputed (16 bytes each)
05 1 Calibration verification
numbers (CVN)
message count for PID
06. Only for ISO 9141-
2, ISO 14230-4 and
SAE J1850.
Calibration Verification
Numbers (CVN)
Raw data left-padded with null
Several CVN can be
06 4,8,12,16 characters (0x00). Usually
output (4 bytes each)
displayed as hex string.
the number of CVN and
CALID must match
8 if sixteen (16) values are
In-use performance required to be reported, 9 if
tracking message count eighteen (18) values are required
for PID 08 and 0B. to be reported, and 10 if twenty
07 1 8 10
Only for ISO 9141-2, (20) values are required to be
ISO 14230-4 and SAE reported (one message reports
J1850. two values, each one consisting
in two bytes).
In-use performance 4 or 5 messages, each one
08 4 tracking for spark containing 4 bytes (two values).
ignition vehicles See below
ECU name message
09 1
count for PID 0A
ASCII-coded. Right-padded with
0A 20 ECU name
null chars (0x00).
In-use performance
tracking for 5 messages, each one containing
0B 4
compression ignition 4 bytes (two values). See below
vehicles
PID
Data bytes Min Max
(hex Description Units Formula[a]
returned value value
)
1.
1. In the formula column, letters A, B, C, etc. represent the decimal equivalent of the first,
second, third, etc. bytes of data. Where a (?) appears, contradictory or incomplete
information was available.

Bitwise encoded PIDs


Some of the PIDs in the above table cannot be explained with a simple formula. A more elaborate
explanation of these data is provided here:

Service 01 PID 00
A request for this PID returns 4 bytes of data (Big-endian). Each bit, from MSB to LSB, represents
one of the next 32 PIDs and specifies whether that PID is supported.
For example, if the car response is BE1FA813, it can be decoded like this:

Hexadecimal B E 1 F A
Binary 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0
Supported? Yes No Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes No Yes No Yes N
PID number 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 1
So, supported PIDs are: 01, 03, 04, 05, 06, 07, 0C, 0D, 0E, 0F, 10, 11, 13, 15, 1C, 1F and 20

Service 01 PID 01
A request for this PID returns 4 bytes of data, labeled A B C and D.
The first byte(A) contains two pieces of information. Bit A7 (MSB of byte A, the first byte)
indicates whether or not the MIL (check engine light) is illuminated. Bits A6 through A0 represent
the number of diagnostic trouble codes currently flagged in the ECU.
The second, third, and fourth bytes(B, C and D) give information about the availability and
completeness of certain on-board tests. Note that test availability is indicated by set (1) bit and
completeness is indicated by reset (0) bit.

Bit Name Definition


A7 MIL Off or On, indicates if the CEL/MIL is on (or should be on)
A6-A0 DTC_CNT Number of confirmed emissions-related DTCs available for display.
B7 RESERVED Reserved (should be 0)
0 = Spark ignition monitors supported (e.g. Otto or Wankel engines)
B3 NO NAME
1 = Compression ignition monitors supported (e.g. Diesel engines)
Here are the common bit B definitions, they are test based.

Test available Test incomplete


Components B2 B6
Fuel System B1 B5
Misfire B0 B4
The third and fourth bytes are to be interpreted differently depending on if the engine is spark
ignition (e.g. Otto or Wankel engines) or compression ignition (e.g. Diesel engines). In the second
(B) byte, bit 3 indicates how to interpret the C and D bytes, with 0 being spark (Otto or Wankel) and
1 (set) being compression (Diesel).
The bytes C and D for spark ignition monitors (e.g. Otto or Wankel engines):

Test available Test incomplete


EGR System C7 D7
Oxygen Sensor Heater C6 D6
Oxygen Sensor C5 D5
A/C Refrigerant C4 D4
Secondary Air System C3 D3
Evaporative System C2 D2
Heated Catalyst C1 D1
Catalyst C0 D0
And the bytes C and D for compression ignition monitors (Diesel engines):

Test available Test incomplete


EGR and/or VVT System C7 D7
PM filter monitoring C6 D6
Exhaust Gas Sensor C5 D5
- Reserved - C4 D4
Boost Pressure C3 D3
- Reserved - C2 D2
NOx/SCR Monitor C1 D1
NMHC Catalyst[a] C0 D0
1.
1. NMHC may stand for Non-Methane HydroCarbons, but J1979 does not enlighten us. The
translation would be the ammonia sensor in the SCR catalyst.

Service 01 PID 41
A request for this PID returns 4 bytes of data. The first byte is always zero. The second, third, and
fourth bytes give information about the availability and completeness of certain on-board tests. As
with PID 01, the third and fourth bytes are to be interpreted differently depending on the ignition
type (B3) – with 0 being spark and 1 (set) being compression. Note again that test availability is
represented by a set (1) bit and completeness is represented by a reset (0) bit.
Here are the common bit B definitions, they are test based.

Test available Test incomplete


Components B2 B6
Fuel System B1 B5
Misfire B0 B4
The bytes C and D for spark ignition monitors (e.g. Otto or Wankel engines):

Test available Test incomplete


EGR System C7 D7
Oxygen Sensor Heater C6 D6
Oxygen Sensor C5 D5
A/C Refrigerant C4 D4
Secondary Air System C3 D3
Evaporative System C2 D2
Heated Catalyst C1 D1
Catalyst C0 D0
And the bytes C and D for compression ignition monitors (Diesel engines):

Test available Test incomplete


EGR and/or VVT System C7 D7
PM filter monitoring C6 D6
Exhaust Gas Sensor C5 D5
- Reserved - C4 D4
Boost Pressure C3 D3
- Reserved - C2 D2
NOx/SCR Monitor C1 D1
NMHC Catalyst[a] C0 D0
1.
1. NMHC may stand for Non-Methane HydroCarbons, but J1979 does not enlighten us. The
translation would be the ammonia sensor in the SCR catalyst.
Service 01 PID 78
A request for this PID will return 9 bytes of data. The first byte is a bit encoded field indicating
which EGT sensors are supported:

Byte Description
A Supported EGT sensors
B-C Temperature read by EGT11
D-E Temperature read by EGT12
F-G Temperature read by EGT13
H-I Temperature read by EGT14
The first byte is bit-encoded as follows:

Bit Description
A7-A4 Reserved
A3 EGT bank 1, sensor 4 Supported?
A2 EGT bank 1, sensor 3 Supported?
A1 EGT bank 1, sensor 2 Supported?
A0 EGT bank 1, sensor 1 Supported?
The remaining bytes are 16 bit integers indicating the temperature in degrees Celsius in the range
-40 to 6513.5 (scale 0.1), using the usual ( A × 256 + B ) / 10 − 40 {\displaystyle (A\times
256+B)/10-40} formula (MSB is A, LSB is B). Only values for which the corresponding sensor is
supported are meaningful.
The same structure applies to PID 79, but values are for sensors of bank 2.

Service 03 (no PID required)


A request for this service returns a list of the DTCs that have been set. The list is encapsulated using
the ISO 15765-2 protocol.
If there are two or fewer DTCs (4 bytes) they are returned in an ISO-TP Single Frame (SF). Three
or more DTCs in the list are reported in multiple frames, with the exact count of frames dependent
on the communication type and addressing details.
Each trouble code requires 2 bytes to describe. The text description of a trouble code may be
decoded as follows. The first character in the trouble code is determined by the first two bits in the
first byte:

A7-A6 First DTC character


00 P - Powertrain
01 C - Chassis
10 B - Body
11 U - Network
The two following digits are encoded as 2 bits. The second character in the DTC is a number
defined by the following table:

A5-A4 Second DTC character


00 0
01 1
10 2
11 3
The third character in the DTC is a number defined by

A3-A0 Third DTC character


0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
The fourth and fifth characters are defined in the same way as the third, but using bits B7-B4 and
B3-B0. The resulting five-character code should look something like "U0158" and can be looked up
in a table of OBD-II DTCs. Hexadecimal characters (0-9, A-F), while relatively rare, are allowed in
the last 3 positions of the code itself.

Service 09 PID 08
It provides information about track in-use performance for catalyst banks, oxygen sensor banks,
evaporative leak detection systems, EGR systems and secondary air system.
The numerator for each component or system tracks the number of times that all conditions
necessary for a specific monitor to detect a malfunction have been encountered. The denominator
for each component or system tracks the number of times that the vehicle has been operated in the
specified conditions.
The count of data items should be reported at the beginning (the first byte).
All data items of the In-use Performance Tracking record consist of two (2) bytes and are reported
in this order (each message contains two items, hence the message length is 4).

Mnemonic Description
OBDCOND OBD Monitoring Conditions Encountered Counts
IGNCNTR Ignition Counter
CATCOMP1 Catalyst Monitor Completion Counts Bank 1
CATCOND1 Catalyst Monitor Conditions Encountered Counts Bank 1
CATCOMP2 Catalyst Monitor Completion Counts Bank 2
CATCOND2 Catalyst Monitor Conditions Encountered Counts Bank 2
O2SCOMP1 O2 Sensor Monitor Completion Counts Bank 1
O2SCOND1 O2 Sensor Monitor Conditions Encountered Counts Bank 1
O2SCOMP2 O2 Sensor Monitor Completion Counts Bank 2
O2SCOND2 O2 Sensor Monitor Conditions Encountered Counts Bank 2
EGRCOMP EGR Monitor Completion Condition Counts
EGRCOND EGR Monitor Conditions Encountered Counts
AIRCOMP AIR Monitor Completion Condition Counts (Secondary Air)
AIRCOND AIR Monitor Conditions Encountered Counts (Secondary Air)
EVAPCOMP EVAP Monitor Completion Condition Counts
EVAPCOND EVAP Monitor Conditions Encountered Counts
SO2SCOMP1 Secondary O2 Sensor Monitor Completion Counts Bank 1
SO2SCOND1 Secondary O2 Sensor Monitor Conditions Encountered Counts Bank 1
SO2SCOMP2 Secondary O2 Sensor Monitor Completion Counts Bank 2
SO2SCOND2 Secondary O2 Sensor Monitor Conditions Encountered Counts Bank 2
Service 09 PID 0B
It provides information about track in-use performance for NMHC catalyst, NOx catalyst monitor,
NOx adsorber monitor, PM filter monitor, exhaust gas sensor monitor, EGR/ VVT monitor, boost
pressure monitor and fuel system monitor.
All data items consist of two (2) bytes and are reported in this order (each message contains two
items, hence message length is 4):

Mnemonic Description
OBDCOND OBD Monitoring Conditions Encountered Counts
IGNCNTR Ignition Counter
HCCATCOMP NMHC Catalyst Monitor Completion Condition Counts
HCCATCOND NMHC Catalyst Monitor Conditions Encountered Counts
NCATCOMP NOx/SCR Catalyst Monitor Completion Condition Counts
NCATCOND NOx/SCR Catalyst Monitor Conditions Encountered Counts
NADSCOMP NOx Adsorber Monitor Completion Condition Counts
NADSCOND NOx Adsorber Monitor Conditions Encountered Counts
PMCOMP PM Filter Monitor Completion Condition Counts
PMCOND PM Filter Monitor Conditions Encountered Counts
EGSCOMP Exhaust Gas Sensor Monitor Completion Condition Counts
EGSCOND Exhaust Gas Sensor Monitor Conditions Encountered Counts
EGRCOMP EGR and/or VVT Monitor Completion Condition Counts
EGRCOND EGR and/or VVT Monitor Conditions Encountered Counts
BPCOMP Boost Pressure Monitor Completion Condition Counts
BPCOND Boost Pressure Monitor Conditions Encountered Counts
FUELCOMP Fuel Monitor Completion Condition Counts
FUELCOND Fuel Monitor Conditions Encountered Counts

Enumerated PIDs
Some PIDs are to be interpreted specially, and aren't necessarily exactly bitwise encoded, or in any
scale. The values for these PIDs are enumerated.
Service 01 PID 03
A request for this PID returns 2 bytes of data. The first byte describes fuel system #1.

Value Description
1 Open loop due to insufficient engine temperature
2 Closed loop, using oxygen sensor feedback to determine fuel mix
4 Open loop due to engine load OR fuel cut due to deceleration
8 Open loop due to system failure
16 Closed loop, using at least one oxygen sensor but there is a fault in the feedback system
Any other value is an invalid response.
The second byte describes fuel system #2 (if it exists) and is encoded identically to the first byte.

Service 01 PID 12
A request for this PID returns a single byte of data which describes the secondary air status.

Value Description
1 Upstream
2 Downstream of catalytic converter
4 From the outside atmosphere or off
8 Pump commanded on for diagnostics
Any other value is an invalid response.

Service 01 PID 1C
A request for this PID returns a single byte of data which describes which OBD standards this ECU
was designed to comply with. The different values the data byte can hold are shown below, next to
what they mean:

Value Description
1 OBD-II as defined by the CARB
2 OBD as defined by the EPA
3 OBD and OBD-II
4 OBD-I
5 Not OBD compliant
6 EOBD (Europe)
7 EOBD and OBD-II
8 EOBD and OBD
9 EOBD, OBD and OBD II
10 JOBD (Japan)
11 JOBD and OBD II
12 JOBD and EOBD
13 JOBD, EOBD, and OBD II
14 Reserved
15 Reserved
16 Reserved
17 Engine Manufacturer Diagnostics (EMD)
18 Engine Manufacturer Diagnostics Enhanced (EMD+)
19 Heavy Duty On-Board Diagnostics (Child/Partial) (HD OBD-C)
20 Heavy Duty On-Board Diagnostics (HD OBD)
21 World Wide Harmonized OBD (WWH OBD)
22 Reserved
23 Heavy Duty Euro OBD Stage I without NOx control (HD EOBD-I)
24 Heavy Duty Euro OBD Stage I with NOx control (HD EOBD-I N)
25 Heavy Duty Euro OBD Stage II without NOx control (HD EOBD-II)
26 Heavy Duty Euro OBD Stage II with NOx control (HD EOBD-II N)
27 Reserved
28 Brazil OBD Phase 1 (OBDBr-1)
29 Brazil OBD Phase 2 (OBDBr-2)
30 Korean OBD (KOBD)
31 India OBD I (IOBD I)
32 India OBD II (IOBD II)
33 Heavy Duty Euro OBD Stage VI (HD EOBD-IV)
34-250 Reserved
251-255 Not available for assignment (SAE J1939 special meaning)
Fuel Type Coding
Service 01 PID 51 returns a value from an enumerated list giving the fuel type of the vehicle. The
fuel type is returned as a single byte, and the value is given by the following table:

Value Description
0 Not available
1 Gasoline
2 Methanol
3 Ethanol
4 Diesel
5 LPG
6 CNG
7 Propane
8 Electric
9 Bifuel running Gasoline
10 Bifuel running Methanol
11 Bifuel running Ethanol
12 Bifuel running LPG
13 Bifuel running CNG
14 Bifuel running Propane
15 Bifuel running Electricity
16 Bifuel running electric and combustion engine
17 Hybrid gasoline
18 Hybrid Ethanol
19 Hybrid Diesel
20 Hybrid Electric
21 Hybrid running electric and combustion engine
22 Hybrid Regenerative
23 Bifuel running diesel

Any other value is reserved by ISO/SAE. There are currently no definitions for flexible-fuel
vehicle.

Non-standard PIDs
The majority of all OBD-II PIDs in use are non-standard. For most modern vehicles, there are many
more functions supported on the OBD-II interface than are covered by the standard PIDs, and there
is relatively minor overlap between vehicle manufacturers for these non-standard PIDs.
There is very limited information available in the public domain for non-standard PIDs. The
primary source of information on non-standard PIDs across different manufacturers is maintained
by the US-based Equipment and Tool Institute and only available to members. The price of ETI
membership for access to scan codes varies based on company size defined by annual sales of
automotive tools and equipment in North America:

Annual Sales in North America Annual Dues


Under $10,000,000 $5,000
$10,000,000 - $50,000,000 $7,500
Greater than $50,000,000 $10,000
However, even ETI membership will not provide full documentation for non-standard PIDs. ETI
state:[5][6]
Some OEMs refuse to use ETI as a one-stop source of scan tool information. They
prefer to do business with each tool company separately. These companies also require
that you enter into a contract with them. The charges vary but here is a snapshot as of
April 13th, 2015 of the per year charges:

GM $50,000
Honda $5,000
Suzuki $1,000
BMW $25,500 plus $2,000 per update. Updates occur annually.

CAN (11-bit) bus format


The PID query and response occurs on the vehicle's CAN bus. Standard OBD requests and
responses use functional addresses. The diagnostic reader initiates a query using CAN ID
7DFh[clarification needed], which acts as a broadcast address, and accepts responses from any ID
in the range 7E8h to 7EFh. ECUs that can respond to OBD queries listen both to the functional
broadcast ID of 7DFh and one assigned ID in the range 7E0h to 7E7h. Their response has an ID of
their assigned ID plus 8 e.g. 7E8h through 7EFh.
This approach allows up to eight ECUs, each independently responding to OBD queries. The
diagnostic reader can use the ID in the ECU response frame to continue communication with a
specific ECU. In particular, multi-frame communication requires a response to the specific ECU ID
rather than to ID 7DFh.
CAN bus may also be used for communication beyond the standard OBD messages. Physical
addressing uses particular CAN IDs for specific modules (e.g., 720h for the instrument cluster in
Fords) with proprietary frame payloads.

Query
The functional PID query is sent to the vehicle on the CAN bus at ID 7DFh, using 8 data bytes. The
bytes are:

Byte
PID Type 0 1 2 3 4 5 6 7
Service
Number of
01 = show current PID code not used
SAE additional
data; (e.g.: 05 = Engine (ISO 15765-2
Standard data bytes:
02 = freeze frame; coolant temperature) suggests CCh)
2
etc.
Number of
Custom service: not used
Vehicle additional PID code
(e.g.: 22 = enhanced (ISO 15765-2
specific data bytes: (e.g.: 4980h)
data) suggests CCh)
3

Response
The vehicle responds to the PID query on the CAN bus with message IDs that depend on which
module responded. Typically the engine or main ECU responds at ID 7E8h. Other modules, like the
hybrid controller or battery controller in a Prius, respond at 07E9h, 07EAh, 07EBh, etc. These are
8h higher than the physical address the module responds to. Even though the number of bytes in the
returned value is variable, the message uses 8 data bytes regardless (CAN bus protocol form
Frameformat with 8 data bytes). The bytes are:

Byte
PID Type 0 1 2 3 4 5 6 7
Custom
service
Same as
query,
except that
40h is
SAE Number PID code
added to value of
Standard of (e.g.: 05 = value, value, not used
the service the value, byte
7E8h, additional Engine byte 2 byte 3 (may be
value. So: specified 1
7E9h, data coolant (optional (optional 00h or
41h = parameter, (optional)
7EAh, bytes: temperature ) ) 55h)
show byte 0
etc. 3 to 6 )
current
data;
42h =
freeze
frame;
etc.
Vehicle Number Custom PID code value of value, value, value,
specific of service: (e.g.: 4980h) the byte 1 byte 2 byte 3
same as
query,
except that
40h is
7E8h, or
additional added to
8h + specified
data the service (optional (optional
physical parameter, (optional)
bytes: value.(e.g.: ) )
ID of byte 0
4to 7 62h =
module.
response
to service
22h
request)
7Fh this a Custom
general service:
Vehicle
Number response (e.g.: 22h =
specific
of usually enhanced
7E8h, or
additional indicating diagnostic not used
8h + 31h
data the module data by (may be 00h)
physical
bytes: doesn't PID, 21h =
ID of
3 recognize enhanced
module.
the data by
request. offset)

See also
 Engine control unit
 ELM327, a very common microcontroller (silicon chip) used in OBD-II interfaces

References
1.
 "Basic Information | On-Board Diagnostics (OBD)". US EPA. 16 March 2015. Retrieved 24
June 2015.
 "Escape PHEV TechInfo - PIDs". Electric Auto Association - Plug in Hybrid Electric
Vehicle. Retrieved 11 December 2013.
 "Extended PID's - Signed Variables". Torque-BHP. Retrieved 17 March 2016.
 "OBD2 Freeze Frame Data: What is It? How To Read It?". OBD Advisor. 2018-02-28.
Retrieved 2020-03-14.
 "ETI Full Membership FAQ". The Equipment and Tool Institute. Retrieved 29 November
2013. showing cost of access to OBD-II PID documentation
6. "Special OEM License Requirements". The Equipment and Tool Institute. Retrieved 13 April
2015.

Further reading
 "E/E Diagnostic Test Modes". Vehicle E E System Diagnostic Standards Committee. J1979.
SAE International. 2017-02-16. doi:10.4271/J1979_201702.
 "Digital Annex of E/E Diagnostic Test Modes". Vehicle E E System Diagnostic Standards
Committee. J1979-DA. SAE International. 2017-02-16. doi:10.4271/J1979DA_201702.

Categories:
 Technology-related lists
 Automotive technologies
 Electronics lists

Navigation menu

 Not logged in
 Talk
 Contributions
 Create account
 Log in

 Article
 Talk

 Read
 Edit
 View history

Search

 Main page
 Contents
 Featured content
 Current events
 Random article
 Donate to Wikipedia
 Wikipedia store
Interaction
 Help
 About Wikipedia
 Community portal
 Recent changes
 Contact page

Tools
 What links here
 Related changes
 Upload file
 Special pages
 Permanent link
 Page information
 Wikidata item
 Cite this page

Print/export
 Download as PDF
 Printable version

Languages
 Español
 Русский
 Suomi
Edit links
 This page was last edited on 30 March 2020, at 09:09 (UTC).
 Text is available under the Creative Commons Attribution-ShareAlike License; additional
terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit
organization.
 Privacy policy
 About Wikipedia
 Disclaimers
 Contact Wikipedia
 Developers
 Statistics
 Cookie statement
 Mobile view

You might also like