DIAGNOSTIC TROUBLE CODES
| DTC | Definition |
|---|---|
| P0130, P0131, P0132, P0133, P0134, P0137, P0138, P0139, P0140. P0150, P0151, P0152, P0153, P0154, P0157, P0158, P0159, P0160, P0401, P0420, P0430, P0442, P0456, P0489, P0490 | On-Board Diagnostic Monitor ID Definition For Mode $06 |
| P0031, P0032, P0036, P0051, P0052, P0058, P0131, P0161, P0171, P0172, P0174, P0175, P0441, P0458, P0459 | On-Board Diagnostic Monitor ID Definition For Mode $06 |
| P0301, P0302, P0303, P0304, P0305, P0306, P0307, P0308, P1315, P1316 | Standardised Test IDs For Misfire Monitor |
| P0420, P0430 | Catalyst Monitoring Operation |
| P0300, P0301, P0302, P0303, P0304, P0305, P0306, P0307, P0308, P0313, P0316, P1315, P1316 | Misfire Monitoring Operation |
| P0441, P0442, P0444, P0447, P0448, P0456, P0458, P0459, P240A, P240B, P240C, P2401, P2402, P2404, P2405, P2406, P2450, P2451 | Evaporative Emission System Monitoring |
| P2096, P2097, P2098, P2099 | Sub-Feedback Rationality Check |
| P0171, P0172, P0174, P0175, P2096, P2097, P2098, P2099 | Fuel System Monitoring |
| P0133, P0153 | Upstream Heated Oxygen Sensor Slow Response |
| P0134, P0154 | Upstream Heated Oxygen Sensor Slow Activation |
| P0137, P0138, P0157, P0158 | Downstream Oxygen Sensor High or Low Monitor |
| P0140, P0160 | Downstream Oxygen Sensor Activity Check |
| P0139, P0159 | Downstream Oxygen Sensor Response Check |
| P0128 | Thermostat Monitoring |
| P0116, P2183 | Engine Coolant Temperature Sensor Monitors Stuck |
| P0125 | Time to Closed Loop Fuelling Enable Temperature |
| P0126 | Highest Minimum Enable Temperature Achieved |
| P2279 | PCV System Monitoring |
| P0335, P0336 | Crankshaft Position Sensor Monitoring |
| P0340, P0341, P0345, P0346, P0365, P0366, P0390, P0391 | Camshaft Position Sensor Monitoring |
| P001A, P001B, P001C, P001D, P001E, P001F, P003C, P003E | Camshaft Profile Switching |
| P050E, P0506, P0507, P0508, P052A, P052B, P052C, P052D, P054A, P054B, P054C, P054D, P0148, P0149 | Cold Start Emission Reduction Monitoring |
| P0506, P0507 | Idle Speed Control Monitoring |
| P0107, P0108, P0237, P0238 | Manifold Absolute Pressure Sensor High Or Low Input Failure |
| P0106, P0236 | Manifold Absolute Pressure Sensor Range Or Performance Failure |
| P0069, P2228, P2229 | Barometric Pressure Sensor Monitoring |
| P008A, P008B, P0087, P0088, P0089, P0091, P0092, P018B, P018C, P018D, P053F | Fuel Pressure System Monitoring |
| P00AB, P00AC, P00AD, P007B, P007C, P007D, P0111, P0112, P0113 | Intake Air Temperature Sensor Monitoring |
| P032C, P032D, P0327, P0328, P033C, P033D, P0332, P0333 | Knock Sensor Monitoring |
| P0560, P0687 | ECM Power Supply Monitoring |
| P0601, P0604, P0605, P0606, P0607, P1603 | Engine Control Module Self Test |
| P0512, P0615, P0616, P0617, P0850, P0851, P0852 | Engine Starting |
| P2122, P2123, P2127, P2128, P2138 | Accelerator Pedal Position Sensor Monitoring |
| P0121, P0122, P0123, P0222, P0223, P2118, P2119, P2135 | Throttle Control System Monitoring |
| P061A | Torque Monitoring |
| P0500, P0501 | Vehicle Speed Sensor Monitoring |
| P02EE, P02EF, P02F0, P02F1, P02F2, P02F3, P02F4, P02F5, P0201, P0202, P0203, P0204, P0205, P0206, P0207, P0208, P0261, P0262, P0264, P0265, P0267, P0268, P0270, P0271, P0273, P0274, P0276, P0277, P0279, P0280, P0282, P0283 | Fuel Injector Monitoring |
| P2301, P2304, P2307, P2310, P2313, P2319, P2319, P2322, P0351, P0352, P0353, P0354, P0355, P0356, P0357, P0358, P2300, P2303, P2306, P2309, P2312, P2315, P2318, P2321 | Ignition Amplifiers/Coils |
| P0010, P0013, P0020, P0023, P0026, P0027, P0028, P0029, P2088, P2089, P2090, P2091, P2092, P2093, P2094, P2095 | Variable Valve Timing |
| C003A, C0031, C0034, C0037, P0610, U0101, U0121, U0155, U0300, U0402 | CAN System Monitoring |
| P0461 | Fuel Level Sensor Monitoring |
| P2610 | Engine Off Timer |
| P0071, P0072, P0073 | Ambient Air Temperature |
| P2601 | Supercharger Intercooler Water Pump Monitoring |
DIAGNOSTIC TROUBLE CODES
3.1.1 Reporting of On-Board Diagnostic Monitor ID test values in response to $06 $00 request
Message response for $06 $00 will differ to that of any $01 to $FF request. This is due to ID $00 being a bit-encoded value that indicates which On-Board Diagnostic Monitor IDs are supported by any receiving Mode $06 compliant control module (CM). CM(s) must respond to all supported ranges if requested. A range is defined as a block of 32 On-Board Diagnostic Monitor IDs.
Scheme 172
On-Board Diagnostic Monitor ID $00 indicates support for On-Board Diagnostic Monitor IDs from $01 to $20, (32 bit Binary). On-Board Diagnostic Monitor ID $20 indicates support for On-Board Diagnostic Monitor IDs $21 through $40, etc. e.g.
Note. Not all On-Board Diagnostic Monitor IDs are applicable or supported by all systems.
Alternatively: Monitor ID $00 - 0000000000000000000000000000000 1 = $01 through $20 supported .
Monitor ID $00 - 0000000000000000000000000000000 0 = $01 through $20 not supported .
Monitor ID $20 - 0000000000000000000000000000000 1 = $21 through $40 supported .
Alternatively: Monitor ID $20 - 0000000000000000000000000000000 0 = $21 through $40 not supported .
3.1.2 Reporting of On-Board Diagnostic Monitor ID test values in response to $06 $01 - $FF request
A minimum of 10 bytes will be returned in response to this type of request. The maximum number of bytes is dependent on how many Test IDs are supported within the On-Board Diagnostic Monitor ID.
Scheme 173
A Test ID (TID) is a one (1) byte parameter that describes the test(s) carried out within the On-Board Diagnostic Monitor ID.
Scheme 174
When more than one TID is to be reported, the returning data will be continuous, only displaying $46 once (first 10 bytes). The following TIDs will be displayed in 9 bytes, omitting the response ID $46, therefore, starting with the On-Board Diagnostic Monitor ID requested. For example, $06 $01 will return the following
Scheme 175
Scheme 176
The Unit and Scaling ID is a one (1) byte identifier. This references the scaling and units to be used by external test equipment when calculating and displaying the test values (results). This includes the minimum test limit and the maximum test limit for the standardized and manufacturer defined Test ID requested.
All unit and scaling IDs used are specified in Table 4.
Scheme 177
Scheme 178
The latest test results are retained, even over multiple ignition OFF cycles, until replaced by more recent test results. Test results are requested by On-Board Diagnostic Monitor ID. Test results are always reported with the Minimum and Maximum Test Limits as shown in Table 5.
The Test Limit is a two byte unsigned numeric value $00-$FFFF (0 -65535 Dec). With the exception of Misfire (On-Board Diagnostic Monitor ID A2- A9), all specific Max Test limits shall be $7FFF (32767 Dec). Test values less than or equal to the Max test limit will be shown as $00, indicating a pass.
Test values greater than Max test limit will be show as actual counted value above threshold i.e.
Scheme 179
Scheme 180
If an On-Board Diagnostic Monitor has not been completed at least once since Clear/reset emission-related diagnostic information or battery disconnect, then the parameters Test Results, Minimum Test Limit, and Maximum Test Limit shall be set to zero ($00) value, indicating test has not been completed.
3.1.6 Example for Use of Standardised Test IDs for Misfire Monitor
On Board Diagnostic (OBD) regulations require reporting the number of misfire events detected during the current driving cycle (Test ID $OC) and the average number of misfire events detected during the last 10 driving cycles (Test ID $0B) for each cylinder. Therefore, for a 4-cylinder engine, eight pieces of data must be reported for both Test IDs.
The purpose of the misfire data is to help identify which cylinders are currently misfiring ($0C) and identify which cylinders have been consistently misfiring in the past 10 driving cycles ($0B). The actual misfire event counts will depend on how the vehicle was driven, how long it was driven, etc. Misfire counts for cylinders are only to be compared relative to each other. If some cylinders have many more misfire events than other cylinders, troubleshooting should begin with the cylinders that have the highest numbers of misfire events.
The Test ID $0B registers contain the EWMA (Exponential Weighted Moving Average) value for misfire events counted during the last 10 driving cycles. The EWMA value is only re-calculated once per driving cycle. This calculation is carried out during every power-down sequence due to the control module having a short stay alive period after the ignition key is turned off. The EWMA value uses the misfire event counts collected during the last/current driving cycle. The value of the $0C counters, after the driving cycle ends, is the number of misfire events counted during the current/last driving cycle. The software takes the contents of the $0B register (this is the previous average) multiply by 0.9 and adds the contents of the $0C register (this is the current misfire event counts) multiplied by 0.1. This becomes the new EWMA value.
The Test ID $0C counters counts misfire events for each cylinder and saves them in Keep Alive or Non-Volatile Memory. They update continuously, in 200 or 1000 revolution increments, as a minimum. When the engine starts, the $0C misfire counters are reset to zero. Prior to engine start-up, the last value from the previous driving cycle is retained, so that the number of misfire events that occurred during the last drive cycle can be displayed. If a vehicle has constant misfire in one or more cylinders, Test ID $0C can be used to monitor the misfire event counters while the vehicle is being driven, up to a maximum of 65,535 events.
There are no minimum or maximum misfire monitor threshold limits for misfire counts. Test IDs $0B and $0C just accumulate the number of misfires that occur. These counts should accumulate with or without a misfire Diagnostic Trouble Code (DTC). If there was a small misfire, but not enough to store a DTC, Test ID $0B and $0C values for each cylinder should still show the number of misfire events that occurred.
Scheme 181
4.10.2.1 Electrical Diagnosis
Electrical continuity problems with the two oil control solenoids are reported with the following DTCs
Scheme 182
4.10.2.2 Functional Diagnosis - DTCs P003C and P003E
There is no reliable means of diagnosis at the switching point, so an intrusive diagnostic is used. When the entry conditions are true, the diagnostic forces one cylinder bank into high lift mode and holds it there for a period of approximately 1800ms. The difference in lambda compensation between the 2 cylinder banks is then used as a measure of the CPS switching or not switching.
Diagnostic Measurement
The ratio of lambda corrections for the two cylinder banks is calculated prior to the intrusive test and again during the intrusive test. The difference between the two measurements is the "deflection".
Fault Determination
If the deflection is less than 5% the diagnostic flags a fault. Each bank is tested separately and two failure modes can be diagnosed for each cylinder bank
Stuck in low lift (unable to be switched to high lift)
Stuck in high lift (no lambda deflection when high requested)