The Mechanic Online Reference

Nov 12, 2017

The Old OBD Codes The Reason why there is an OBD 2

The Old OBD Codes The Reason why there is an OBD 2

The Old OBD Codes The Reason why there is an OBD 2


These are the old pattern on reading the diagnostic trouble code. Many OBD 2 Scanner Can't Verify the exact definition of this code. If you try to use this code, Please verify first the problem and use these codes as your second opinion. So you can have a better conclusion of the problem.


PID Description
(hex)
0 PIDs supported [01 - 20]
1 Monitor status since DTCs cleared. (Includes malfunction indicator lamp (MIL) status and number of DTCs.)
2 Freeze DTC
3 Fuel system status
4 Calculated engine load
5 Engine coolant temperature
6 Short term fuel trim—Bank 1

7 Long term fuel trim—Bank 1
8 Short term fuel trim—Bank 2
9 Long term fuel trim—Bank 2
0A Fuel pressure (gauge pressure)
0B Intake manifold absolute pressure
0C Engine RPM
0D Vehicle speed
0E Timing advance
0F Intake air temperature
10 MAF air flow rate
11 Throttle position
12 Commanded secondary air status
13 Oxygen sensors present (in 2 banks)
14 Oxygen Sensor 1
A: Voltage
B: Short term fuel trim
15 Oxygen Sensor 2
A: Voltage
B: Short term fuel trim
16 Oxygen Sensor 3
A: Voltage
B: Short term fuel trim
17 Oxygen Sensor 4
A: Voltage
B: Short term fuel trim
18 Oxygen Sensor 5
A: Voltage
B: Short term fuel trim
19 Oxygen Sensor 6
A: Voltage
B: Short term fuel trim
1A Oxygen Sensor 7
A: Voltage
B: Short term fuel trim
1B Oxygen Sensor 8
A: Voltage
B: Short term fuel trim
1C OBD standards this vehicle conforms to
1D Oxygen sensors present (in 4 banks)
1E Auxiliary input status

1F Run time since engine start
20 PIDs supported [21 - 40]
21 Distance traveled with malfunction indicator lamp (MIL) on
22 Fuel Rail Pressure (relative to manifold vacuum)
23 Fuel Rail Gauge Pressure (diesel, or gasoline direct injection)
24 Oxygen Sensor 1
AB: Fuel–Air Equivalence Ratio
CD: Voltage
25 Oxygen Sensor 2
AB: Fuel–Air Equivalence Ratio
CD: Voltage
26 Oxygen Sensor 3
AB: Fuel–Air Equivalence Ratio
CD: Voltage
27 Oxygen Sensor 4
AB: Fuel–Air Equivalence Ratio
CD: Voltage
28 Oxygen Sensor 5
AB: Fuel–Air Equivalence Ratio
CD: Voltage
29 Oxygen Sensor 6
AB: Fuel–Air Equivalence Ratio
CD: Voltage
2A Oxygen Sensor 7
AB: Fuel–Air Equivalence Ratio
CD: Voltage
2B Oxygen Sensor 8
AB: Fuel–Air Equivalence Ratio
CD: Voltage
2C Commanded EGR
2D EGR Error
2E Commanded evaporative purge
2F Fuel Tank Level Input
30 Warm-ups since codes cleared
31 Distance traveled since codes cleared
32 Evap. System Vapor Pressure

33 Absolute Barometric Pressure
34 Oxygen Sensor 1
AB: Fuel–Air Equivalence Ratio
CD: Current
35 Oxygen Sensor 2
AB: Fuel–Air Equivalence Ratio
CD: Current
36 Oxygen Sensor 3
AB: Fuel–Air Equivalence Ratio
CD: Current
37 Oxygen Sensor 4
AB: Fuel–Air Equivalence Ratio
CD: Current
38 Oxygen Sensor 5
AB: Fuel–Air Equivalence Ratio
CD: Current
39 Oxygen Sensor 6
AB: Fuel–Air Equivalence Ratio
CD: Current
3A Oxygen Sensor 7
AB: Fuel–Air Equivalence Ratio
CD: Current
3B Oxygen Sensor 8
AB: Fuel–Air Equivalence Ratio
CD: Current
3C Catalyst Temperature: Bank 1, Sensor 1
3D Catalyst Temperature: Bank 2, Sensor 1
3E Catalyst Temperature: Bank 1, Sensor 2
3F Catalyst Temperature: Bank 2, Sensor 2
40 PIDs supported [41 - 60]
41 Monitor status this drive cycle
42 Control module voltage
43 Absolute load value
44 Fuel–Air commanded equivalence ratio
45 Relative throttle position
46 Ambient air temperature
47 Absolute throttle position B
48 Absolute throttle position C
49 Accelerator pedal position D
4A Accelerator pedal position E
4B Accelerator pedal position F
4C Commanded throttle actuator
4D Time run with MIL on
4E Time since trouble codes cleared
4F Maximum value for Fuel–Air equivalence ratio, oxygen sensor voltage, oxygen sensor current, and intake manifold absolute pressure
50 Maximum value for air flow rate from mass air flow sensor
51 Fuel Type
52 Ethanol fuel %
53 Absolute Evap system Vapor Pressure
54 Evap system vapor pressure
55 Short term secondary oxygen sensor trim, A: bank 1, B: bank 3
56 Long term secondary oxygen sensor trim, A: bank 1, B: bank 3
57 Short term secondary oxygen sensor trim, A: bank 2, B: bank 4
58 Long term secondary oxygen sensor trim, A: bank 2, B: bank 4
59 Fuel rail absolute pressure
5A Relative accelerator pedal position
5B Hybrid battery pack remaining life
5C Engine oil temperature
5D Fuel injection timing
5E Engine fuel rate
5F Emission requirements to which vehicle is designed
60 PIDs supported [61 - 80]
61 Driver's demand engine - percent torque
62 Actual engine - percent torque
63 Engine reference torque
64 Engine percent torque data




65 Auxiliary input / output supported
66 Mass air flow sensor
67 Engine coolant temperature
68 Intake air temperature sensor
69 Commanded EGR and EGR Error
6A Commanded Diesel intake air flow control and relative intake air flow position
6B Exhaust gas recirculation temperature
6C Commanded throttle actuator control and relative throttle position
6D Fuel pressure control system
6E Injection pressure control system
6F Turbocharger compressor inlet pressure
70 Boost pressure control
71 Variable Geometry turbo (VGT) control
72 Wastegate control
73 Exhaust pressure
74 Turbocharger RPM
75 Turbocharger temperature
76 Turbocharger temperature
77 Charge air cooler temperature (CACT)
78 Exhaust Gas temperature (EGT) Bank 1
79 Exhaust Gas temperature (EGT) Bank 2
7A Diesel particulate filter (DPF)
7B Diesel particulate filter (DPF)
7C Diesel Particulate filter (DPF) temperature
7D NOx NTE (Not-To-Exceed) control area status
7E PM NTE (Not-To-Exceed) control area status
7F Engine run time
80 PIDs supported [81 - A0]
81 Engine run time for Auxiliary Emissions Control Device(AECD)
82 Engine run time for Auxiliary Emissions Control Device(AECD)
83 NOx sensor
84 Manifold surface temperature
85 NOx reagent system
86 Particulate matter (PM) sensor
87 Intake manifold absolute pressure
A0 PIDs supported [A1 - C0]
C0 PIDs supported [C1 - E0]
C3 ?
C4 ?



PID Description
(hex)
100 OBD Monitor IDs supported ($01 – $20)
101 O2 Sensor Monitor Bank 1 Sensor 1
102 O2 Sensor Monitor Bank 1 Sensor 2
103 O2 Sensor Monitor Bank 1 Sensor 3
104 O2 Sensor Monitor Bank 1 Sensor 4
105 O2 Sensor Monitor Bank 2 Sensor 1
106 O2 Sensor Monitor Bank 2 Sensor 2
107 O2 Sensor Monitor Bank 2 Sensor 3
108 O2 Sensor Monitor Bank 2 Sensor 4
109 O2 Sensor Monitor Bank 3 Sensor 1
010A O2 Sensor Monitor Bank 3 Sensor 2
010B O2 Sensor Monitor Bank 3 Sensor 3
010C O2 Sensor Monitor Bank 3 Sensor 4
010D O2 Sensor Monitor Bank 4 Sensor 1
010E O2 Sensor Monitor Bank 4 Sensor 2
010F O2 Sensor Monitor Bank 4 Sensor 3
110 O2 Sensor Monitor Bank 4 Sensor 4
201 O2 Sensor Monitor Bank 1 Sensor 1
202 O2 Sensor Monitor Bank 1 Sensor 2
203 O2 Sensor Monitor Bank 1 Sensor 3
204 O2 Sensor Monitor Bank 1 Sensor 4
205 O2 Sensor Monitor Bank 2 Sensor 1
206 O2 Sensor Monitor Bank 2 Sensor 2
207 O2 Sensor Monitor Bank 2 Sensor 3
208 O2 Sensor Monitor Bank 2 Sensor 4
209 O2 Sensor Monitor Bank 3 Sensor 1
020A O2 Sensor Monitor Bank 3 Sensor 2
020B O2 Sensor Monitor Bank 3 Sensor 3
020C O2 Sensor Monitor Bank 3 Sensor 4
020D O2 Sensor Monitor Bank 4 Sensor 1
020E O2 Sensor Monitor Bank 4 Sensor 2
020F O2 Sensor Monitor Bank 4 Sensor 3
210 O2 Sensor Monitor Bank 4 Sensor 4
mon ECU ID : 32920-27GA
10 Start Diagnostic Session
11 ECU Reset
12 Read Freeze Frame Data
13 Read Diagnostic Trouble Codes
14 Clear Diagnostic Information
17 Read Status Of Diagnostic Trouble Codes
18 Read Diagnostic Trouble Codes By Status
1A Read Ecu Id
20 Stop Diagnostic Session
21 Read Data By Local Id
22 Read Data By Common Id
23 Read Memory By Address
25 Stop Repeated Data Transmission
26 Set Data Rates
27 Security Access
2C Dynamically Define Local Id
2E Write Data By Common Id
2F Input Output Control By Common Id
30 Input Output Control By Local Id
31 Start Routine By Local ID
32 Stop Routine By Local ID
33 Request Routine Results By Local Id
34 Request Download
35 Request Upload
36 Transfer data
37 Request transfer exit
38 Start Routine By Address
39 Stop Routine By Address
3A Request Routine Results By Address
3B Write Data By Local Id
3D Write Memory By Address
3E Tester Present
81 -> xx xx Start Communication
82 Stop Communication
83 Access Timing Parameters
85 Start Programming Mode
I bolded the ones we've already seen with the SDS software.
I wonder if command 23 could be used to loop through all the addresses and read out the original program without needing to access the AUD port.
Sensor : Command, Byte
TPS : 08,20
IAP#1 : 08,21
Temp : 08,22
IAT : 08,23
O2S : 08,26
IAP#2 : 08,28
On command 21 Read by Local ID supports the following arguments
0x08 (returns 50 bytes)
0x80 (returns 100 bytes)
0x90 (returns 70 bytes)
0xC0 (returns 60 bytes)
0x40 (returns 16 bytes)
0x41 (returns 16 bytes)
0x42 (returns 16 bytes)
0x43 (returns 16 bytes)
0x44 (returns 16 bytes)
0x45 (returns 16 bytes)
0x50 (returns 16 bytes)
0x51 (returns 16 bytes)
0x52 (returns 16 bytes)
0x53 (returns 16 bytes)
0x54 (returns 16 bytes)
0x55 (returns 16 bytes)
I found the code where the commands are parsed. It is at 0x00007840.
It looks like only the following commands are supported:
14 Clear Diagnostic Information
18 Read Diagnostic Trouble Codes By Status
1A Read Ecu Id
21 Read Data By Local Id
3E Tester Present
82 Stop Communication
A5 Test outputs
81 establish communications is not in the list but I'm assuming it is a special case.
I should be able to find the list of 'Local IDs' pretty quickly.
So for example 80 F1 12 03 C1 EA 8F C0 reads as
packet from ECU ( 80 F1 12 )
3 bytes in data ( 03 )
data is C1 EA 8F
checksum = (80 + F1 + 12 + 03 + C1 + EA + 8f) & 00FF
Initialize:
From SDS: 81 12 F1 81 05
From ECU: 80 F1 12 03 C1 EA 8F C0
Keep alive:
From SDS: 80 12 F1 01 3E C2
From ECU: 80 F1 12 01 7E 02
Quit (disconnects from ECU)
From SDS: 80 12 F1 01 82 06
From ECU: 80 F1 12 01 C2 46
80 12 F1 02 21 08 monitor sensor data
80 12 F1 03 14 00 00 clear dtc
80 12 F1 04 18 00 00 00 dtc monitoring
80 12 F1 01 3e keep alive
Sensor : argument , Byte
TPS : 08,20
IAP#1 : 08,21
Temp : 08,22
IAT : 08,23
O2S : 08,26
IAP#2 : 08,28
Initialization sequence
02 1A 9A
02 1A 91
then only keepalives
01 3E
and when data monitoring starts
02 21 08
When closing connection
01 82
RPM = Value*100/255
Throttle position (°) = Value*125/255
Manifold pressure = (Value*5 - 153)*133/4/255
Temperature (C) = Value*160/255 - 30
Temperature (F) = Value*288/255 - 22
Voltage = Value*20/255
Secondary throttle position (%) = Value*100/255
EXCVA sensor = Value*100/255
Some more commands:
Clear Trouble codes: 80 12 F1 03 14 00 00 9A
EVAP purge valve:
On: 80 12 F1 06 A5 07 80 00 00 00 B5
PAIR solenoid:
On: 80 12 F1 06 A5 01 80 00 00 00 AF
Off: 80 12 F1 06 A5 01 00 00 00 00 2F
for testing purposes also this may be useful:
80 12 F1 06 a5 01 80 00 00 00 set pair on
80 12 F1 06 a5 01 00 00 00 00 set pair off
Secondary throttle:
Full open: 80 12 F1 06 A5 03 80 80 00 00 31
Full closed: 80 12 F1 06 A5 03 80 00 00 00 B1
Here's some ECU responses to 2.5v sensor inputs, differences highlighted in purple:
No sensor inputs
80 F1 12 34 61 08 0C 16 50 E0 17 50 E1 FF FF FF FF 00 00 01 FF 00
00 FF 00 FF 00 FF 7C FF 00 00 00 00 00 00 00 00 FF FF 40 40 40 40
FF 00 FF FF 26 00 00 01 22 FF FF D0
Intake Air Temp Sensor:
80 F1 12 34 61 08 0B 16 50 E0 17 50 E1 FF FF FF FF 00 00 01 FF 00
42 FF 00 FF 00 FF 60 7C FF 00 00 00 00 00 00 00 00 FF FF 40 40 40
40 FF 00 FF FF 26 00 00 01 22 FF FF 11
Intake Air Pressure #1:
80 F1 12 34 61 08 0C 16 50 E0 17 50 E1 FF FF FF FF 00 00 01 80 00
00 FF 00 FF 00 FF 60 7C FF 00 00 00 00 00 00 00 00 FF FF 40 40 40
40 FF 00 FF FF 26 00 00 01 22 FF FF 51
Intake Air Pressure #2
80 F1 12 34 61 08 0C 16 50 E0 17 50 A1 FF FF FF FF 00 00 01 FF 00
00 FF 00 FF 00 80 60 7C FF 00 00 00 00 00 00 00 00 FF FF 40 40 40
40 FF 00 FF FF 26 00 00 01 22 FF FF 11
Oxygen Sensor
80 F1 12 34 61 08 0C 05 05 E0 16 50 E0 FF FF FF FF 00 00 01 FF 00
00 FF 00 80 00 FF 60 7C FF 00 00 00 00 00 00 00 00 FF FF 40 40 40
40 FF 00 FF FF 26 00 00 01 22 FF FF F3
Throttle position sensor
80 F1 12 34 61 08 0C 05 05 E0 16 50 E0 FF FF FF FF 00 00 80 FF 00
00 FF 00 FF 00 FF 60 7C FF 00 00 00 00 00 00 00 00 FF FF 40 40 40
40 FF 00 FF FF 26 00 00 01 22 FF FF F1
Engine temperature
80 F1 12 34 61 08 0C 05 05 E0 01 05 E1 FF FF FF FF 00 00 01 FF 4B
00 FF 00 FF 00 FF 71 7C FF 00 00 00 00 00 00 00 00 FF FF 40 40 40
40 FF 00 FF FF 26 00 00 01 22 FF FF 6F
I found the code where the commands are parsed. It is at 0x00007840.
It looks like only the following commands are supported:
0x14 Clear Diagnostic Information
0x18 Read Diagnostic Trouble Codes By Status
0x1A Read Ecu Id
0x21 Read Data By Local Id
0x3E Tester Present
0x82 Stop Communication
0xA5 Test outputs
81 establish communications is not in the list but I'm assuming it is a special case.
I should be able to find the list of 'Local IDs' pretty quickly.
The physical interface is assumed to be a K-line using the KWP2000/ISO-14230 protocol. Right now I am using inverted RS-232 to read the data on that K-line as it's exchanged between the SDS box and ECU.
The initiation has not been determined yet. The protocol spec on the swiftcomm site shows the following for initialization, but I've been letting the SDS box take care of this so far.
This is what I managed to figure until now (Please note that I might be wrong, more or less!):
Pos. Value Data
0 80 Header byte
1 F1 Tester ID
2 12 ECU ID
3 34 Message length
4 61 Message type (Sensor data)
5 08
6 02
7 05
8 05
9 A0
10 17
11 69
12 A2
13 FF
14 FF
15 FF
16 00 Speed = byte 16 * 2 in km/h
17 00 RPM byte 1
18 00 RPM byte 2: RPM = 10 * byte 17 +byte 18 / 10
19 37 Throttle position: 0x37 = 0%, 0xDD = 100%
20 B8
21 6B Engine Temperature = (byte 21 - 48) / 1.6 in Celsius degrees
22 61 Intake Air Temperature, same formula as above
23 B9
24 00
25 FF
26 00 Gear indicator 0-neutral; 1- 1st gear... a.s.o.
27 FF
28 5E
29 1F
30 FF
31 00
32 00
33 00
34 00
35 00
36 00
37 00
38 00
39 FF
40 FF
41 40
42 40
43 40
44 40
45 FF
46 1A
47 00
48 CB
49 1A
50 30
51 00
52 04 Clutch sensor (bit 8?): 0x04 = clutch released, 0x14 clutch "pressed"
53 00 Neutral sensor (bit 1?): 0x00 = neutral, 0x02 = in gear
54 FF
55 FF
56 07 Checksum
mon retour en hexa
reference
Starting comunication (fastinit) // lignes du code retour des capteurs
Throtle Position: 7E //19
Intake Air Pressure_1: FF //20
Engine Coolant Temp: 0 //21
Intake Air Temp: B //22
Gear: 0 //26
Intake Air Pressure_2: FF //27
Second Throtle Valve: 0 //46
i= : 19 Throtle Position: 61
i= : 20 Intake Air Pressure_1: 13
i= : 21 Engine Coolant Temp: -30
i= : 22 Intake Air Temp: -24
i= : 26 Gear: 0
i= : 27 Intake Air Pressure_2: 13
i= : 46 Second Throtle Valve: 0

No comments:

Post a Comment