In the previous post, we mentioned that along with the implementation of the OBD 2 standard, there was also standardization of e.g. error codes. In accordance with the J2012 standard, a five-character coding system has been introduced. Probably some of you know very well how to decipher the code, but as a reminder and for those who don’t know yet:
1. First sign – vehicle layout
- P – Powertrain
- B – Body
- C – Chassis
- U – User Network
2. The second character – code definition
- 0, 2 and 3 – codes defined in the SAE/ISO standard, are standardized in all vehicles, although exceptions occur in the codes related to the powertrain. Codes starting with numbers P34xx – P39xx are manufacturer-defined codes and depend on the specific model
- 1 – codes defined by the manufacturer, depending on the specific model
3. The third character – a subgroup related to car systems
- 0 – general faults
- 1 – fuel and intake system
- 2 – fuel and intake system – injector circuit
- 3 – ignition system
- 4 – external emission control systems
- 5 – speed control and idling control systems
- 6 – computer input/output circuits (central control unit)
- 7, 8, 9 – faults related to the transmission system (gearbox, clutch)
- A, B, C – faults related to hybrid drives
4th and 5th last digits – error numbers in the list specified in the standard
Ok, how are error codes generated anyway?
The software of each controller has stored conditions (target values). If a deviation from these conditions is registered – an error code is generated. For example, the pressure sensor on the injection rail has a specific pressure range condition. If the pressure is below or above the set values, an error code is reported, e.g.
• the read pressure (converted from voltage) differs from the set values by more than 2MPa 4V or when the difference between the minimum and maximum signal is less than 0.015V -> the P0191 code will appear (signal out of range/action),
• voltage is less than 0.4V -> code P0192 will appear (low input signal),
• the voltage is more than 4.86V -> code P0193 will appear (high input).
In addition, there are additional distinctions in the types/status of emissions-related faults that:
• cause the MIL to illuminate immediately after a single failure during the driving cycle* and remember the Freeze frame**. There will be statuses like Permanent
• cause the MIL to illuminate after a certain frequency of failure during a warm-up driving cycle* and a Freeze frame**, or not to illuminate, but the error message will be retained in the controller’s memory.
* driving cycle – starting the engine and driving during which, in the event of a fault, it is possible to generate an error code. A warm-up driving cycle is a driving cycle during which the engine coolant temperature increases by at least 22°C and reaches 70°C or higher.
** Freeze frame – in this form, the diagnostic system saves the fault type code and engine operating conditions at the time of fault detection (e.g. engine torque and rotational speed, values of correction factors for injector opening times, fuel pressure, vehicle speed, liquid temperature engine coolant, pressure in the intake manifold, values of the mixture control system).
Let’s move on to the practical side..
Reading the code is really just the beginning. The step of determining the cause is more important, which often means checking many elements. At this stage, it is necessary to know how the various systems in the vehicle work. Knowledge in the subject of mechanics is crucial to correctly indicate the actual cause and, consequently, save yourself expenses for unnecessary replacement of components.
• code P0301/P0302/P0303/P0304/… appeared (cylinder 1/2/3/4/… – misfire detected)
The controller that monitors the crankshaft and camshaft position sensor is responsible for identifying this code. Difficulties with ignition can therefore be caused by both the lack of fuel (injector), a fault in the ignition system (e.g. damaged coil, worn out spark plug), and a problem with compression in a specific cylinder.
• code P0171/P0174 appeared (O2 sensor (Bank 1/2) – mixture too lean)
A lean mixture is nothing more than too much air or too little fuel. First check the intake manifold for leaks, then verify pump operation and change the fuel filter. The reason for such a code may also be a faulty MAF flow meter, MAP sensor, EGR valve or coolant temperature sensor. After excluding other causes – you should look at the O2 sensor and replace the lambda probe only as a last resort.
Is it worth checking error codes?
In general, regular code reading allows you to detect problems that can potentially cause more serious damage. The advantages include the possibility of minimizing repair costs, but also – control of the actual condition of the vehicle, and thus driving safety.
Although many codes can be simply erased, it is important to remember that erasing is not a fix. There are really a lot of codes, but don’t worry – in MaxiEcu you will find the right descriptions and tips.
And also to remember – the OBD 2 standard applies only to emissions and mainly to the engine system. This is just basic diagnostics. Other systems are completely different, advanced diagnostics (and a lot of other codes specific to given manufacturers). Fortunately, our MaxiEcu provides both 🙂