You dont have javascript enabled! Please enable it!



  • General
  • OBD1
  • OBD II and EOBD
  • Reading and deleting the fault memory
  • Control Actuators
  • Encode, initialize, teach
  • Readiness test
  • Standardization in communication between diagnostic tester and the car
  • Service modes with the Parameter Identifier

OBD is an abbreviation for On Board Diagnostics. OBD has both a regulatory and a diagnostic task, especially in the engine management system of the ECU. For example, a malfunction can be detected via the OBD system by reading it out with a diagnostic test box. The fault code can be looked up on the OBD Error Code List (if the code is not brand specific).

TIP: Also visit the website, where a lot of substantive information can be found about the possibilities with the VCDS program and in-depth information about error codes.

This is the first OBD system developed by GM (General Motors). It was introduced in 1980 and first used in the US in 1988. The purpose of this system was mainly to limit the emission values. The system was designed to detect defects and deviations itself, thereby limiting harmful emissions. When a defect or abnormality was detected, the MIL (Malfunction Indicator Lamp) immediately lit up, which had to be read by a car technician. The driver of the car was alerted to the error by means of the MIL and had to have the problem resolved as quickly as possible.
All vehicles produced from 1991 onwards had to be equipped with OBD1. The first versions of Opel and Volvo, among others, used a blink code. Other brands developed their own plug with their own error codes. There were no guidelines for OBD 1, which is the case from OBD II.

Blink code:
With the first generation of OBD1, the mechanic must read the blink code to determine the trouble code. Often an action must be performed to initiate the blinking; the act consists of:

  • clicking two separate plugs together in the engine compartment or the interior;
  • the bridging of two connections in a plug, again in the engine compartment or in the interior.

A blink code consists of two or three digits. In the following illustration, the check light is blinking: 4 flashes – short pause – 5 flashes – long pause. This gives the error code: 45, which stands for: oxygen sensor – rich mixture detected.

This type of diagnostic plug is usually built into the engine compartment. Connecting two connections in this plug will cause the check light in the instrument panel to start flashing.

  • AB Transfer: Engine Management System Codes;
  • AC: automatic transmission;
  • AH: alarm system;
  • AK: ABS

At Volkswagen there are 2 separate connectors for the OBD1. The test cabinet (in this case the VAG 1551) can be connected with these 2 connectors. By selecting the correct channel on the test cabinet (01 for motor electronics), the fault memory could be read and deleted in the service menu.

At BMW, the OBD1 plug is round. This plug is connected to the diagnostic equipment by means of a cable. The faults are shown with description on the display of the diagnostic tester. The faults can also be cleared.

OBD II was introduced in 1996. From 2004 OBD will be mandatory in Europe. In America this continues to be called OBD II and the European variant is called EOBD. It is similar to each other with a few minor adjustments; at EOBD it is not mandatory to perform the EVAP check (leakage of harmful petrol vapours), while this is mandatory in America. Cars from 2008 have mandatory OBD II and EODB with CAN bus communication. Click here for more information about the CAN bus.

Various matters were recorded (standardised); such as the type and placement of the 16-pin OBD connector (Data Link Connector, abbreviated as DLC), the fault code structure and the communication protocols. The fault codes with regard to emissions must be readable by everyone.

EOBD is mandatory for the powertrain of all vehicles and is separate from the brand-specific diagnosis. The EOBD checks through the engine management system constantly checks all systems (such as the lambda probe) and signals when the actual emissions are one and a half times the emissions of the type approval. The MIL will not light up immediately, but the system will store the fault. When a second ride is made under the same conditions and the emissions are again one and a half times as high as the maximum prescribed, the MIL will light up. The rider is then alerted to the presence of a fault in the engine management.

When the car is read out, an error code appears on the readout device. This code is also known as a DTC (Diagnostic Trouble Code) in technical terms. This DTC can be eg a P code. This code has a meaning; Click here to go to the OBD error code list.

Reading and deleting the fault memory:
The car can be read with the aid of a diagnostic device. This should be connected to the OBD2 connection in the interior of the vehicle. The diagnostic device then connects to, among other things, the gateway. This OBD2 socket is usually located near the driver's seat, usually under the dash or in the center console.
A special OBD2 cable must be connected to the plug connection. This cable must be connected to a reading device. After the laptop has been connected to the reading head and the cable, the diagnostic program can be started. First, some vehicle data needs to be entered, as shown in the image below:

After connecting, you will be asked what you want to do next. One of the options is to read out an error code. An error code is also known as a Diagnostic Trouble Code (DTC). A DTC consists of a letter followed by four numbers.

  • The letter P stands for Powertrain; this includes the engine and the gearbox.
  • The B stands for Body; this includes airbags, seat belts, heating and lighting.
  • The C stands for Chassis; this includes the ABS and ESP systems.
  • The U stands for Network; this relates to, among other things, the CAN-bus communication.

The four numbers indicate what it is about. Extensive lists of codes and their meaning can be found on the internet.
Let's take a car that idles irregularly as an example. The engine management light is on.
This light is also called the Malfunction Indication Lamp (abbreviated as MIL). When this light is on or has been on, you know for sure that a fault has been stored in the fault memory. It is then time to read out the car.

The screen of the tester in the picture shows the trouble code: P0302. This code indicates that an incomplete combustion has been registered at cylinder 2. This may have occurred once, may have occurred multiple times, or may be permanent. The trouble code P0301 occurs when an incomplete combustion is detected at cylinder 1 and the trouble code P0303 at cylinder 3, etc.
When a sensor transmits a value that falls outside the tolerances, the ECU looks for the corresponding fault code and stores it in the memory. The diagnostic equipment also displays text; the software recognizes the code (eg the P0302) and links a text to it (Cylinder 2 Misfire Detected). This is all pre-programmed in the diagnostic software.

Each brand also has brand specific codes; for this reason, it is often necessary to select the brand, type, year of manufacture, engine code and fuel system in the beginning. When a wrong brand is selected, the wrong text can be linked to the fault code. Brand-specific testers or very extensive test equipment also have diagnostic programs incorporated in the software. When a fault code is clicked, a test program will be opened which can be walked through step by step. At the end of the test, the software will come to a conclusion, or indicate a specific direction where the technician should measure.

In addition to laptops with extensive diagnostic programs, simple hand readers are also available. With these readers, environmental-related faults can often be read, such as various engine faults. But faults in the chassis or in the airbag often cannot be read with this.

Fault codes can indicate that a part is broken. But a technician cannot simply assume that a malfunction on, for example, a sensor means that the sensor is defective. It could just as well be the wiring or the plug connection that forms corrosion and therefore causes a contact resistance. However, the malfunction code often indicates a good direction with which the cause of the malfunction can be found. As an example we again take the fault code P0302; where cylinder overtopping on cylinder 2 is recognised. The combustion in this cylinder has not been good. This can have the following causes:

  • Bad ignition (faulty spark plug, ignition coil, or ignition coil cable)
  • Bad injection (defective or dirty injector)
  • Loss of compression (poor sealing of the intake or exhaust valves, failure of the cylinder head or piston)

With only the fault code P0302 it is therefore easy to find on which cylinder the problem occurs, but then the real work begins. By exchanging parts such as the spark plug, ignition coil or injector, it is possible to see whether the fault has moved. The ignition coil of cylinder 2 can be exchanged with that of cylinder 4. If the fault is subsequently cleared, the engine is restarted and the fault memory is read out again, it can be checked whether the fault has moved. The moment the malfunction code P0304 appears, it means that a bad combustion has now been detected at cylinder 4.

The cause has been found; the ignition coil is defective and must be replaced. The ignition coil provides a voltage of up to 30.000 volts that the spark plug needs to create a spark. If the fault is still present after changing the ignition coil, the spark plug and injector can also be changed and checked in the same way. After the repair, the faults should always be cleared.

Faults that are in the fault memory do not always have to be active at the time of reading. It can also be malfunctions that have occurred one or more times in the past. Sometimes these faults can be ignored because they are caused by, for example, a too low battery voltage, but if the customer has a complaint that the car sometimes stutters, sometimes starts poorly or sometimes holds back, then attention should be paid to it. An example of a malfunction that is currently present can be seen in the image.

The fault is present on the Throttle Valve Controller. That is a translation of the “throttle body”. The trouble code is P1545 and it says intermittent. That's English for "occurred sporadically". It also says Fault Frequency: 1. This means that the fault only occurred once. The kilometer and date can also be seen when the malfunction occurred. 

If a connection is made with the customer's complaint, further investigation should be carried out into the cause of the malfunction. If the malfunction were to be cleared, there is a good chance that it will remain away, especially if the malfunction has occurred once. But there is also a chance that the malfunction will return within a short time. The customer cannot simply be sent away after the fault has been cleared. Clearing does not resolve the error.
Instead of Intermittent, static may also be listed in memory. In that case, the fault is currently present and cannot be cleared.
If an attempt is made to clear the fault, it will almost certainly return immediately.

To control actuators:
Another possibility to locate faults with diagnostic equipment is to control actuators.
Actuators are all components that can be controlled; think of a window motor; this is controlled by operating a switch.
Or an EGR valve in the engine; it is controlled by the ECU to recirculate exhaust gases. These actuators can be controlled manually with diagnostic equipment.
To check the movement of the EGR valve, one does not necessarily have to start the engine and wait for the ECU to operate the valve itself. By operating the diagnostic equipment, the valve can be actuated at the moment when the technician deems it necessary.

An actuator diagnosis can also be interesting when, for example, the boot lid no longer opens with the boot lid switch. By controlling the boot lid adjustment motor with the diagnostic equipment, the boot lid unlocks. If this does not happen when operating the boot lid switch, the sensor value of the switch can be looked up in the live data.
If the value in the live data remains 0 (that is, switched off) instead of 1 (which should appear on the screen during operation), it can be concluded that the switch is defective. After all, the boot lid can be operated with the diagnostic equipment.

An actuator test can also be performed on the instrument panel. During the test, all indicator lights are turned on, all pixels on the maxidot display are turned on and all meters are moved to the maximum. Any defects, such as a tank gauge that does not move further than halfway, will immediately be noticed.

Encode, initialize, teach:
After replacing components such as control units, they often need to be coded before they can be put into use.
The encryption consists of a large number of hexadecimal numbers and letters. This can be seen in the image below:

In this case, the Central Electronics control unit is replaced. If a new control unit is ordered, the software is pre-installed, but it must still be stated which options the car has. There is of course a difference between a basic version without air conditioning, etc. and a full-option car with air conditioning, heated seats, electric windows, etc.

The coding is structured as follows:

The meanings could be as follows:
First number: 0= left-hand drive car, 1= right-hand drive car.
Second number: 1= Australia, 2= Asia, 3= South America, 4= Europe, 5= North America.
Third number: 0= miles per hour, 1= Kilometers per hour.

The first three numbers therefore indicate that it is a left-hand drive American car with miles per hour displayed. This is apparently pre-programmed by default during production. Each control unit receives the standard coding. After mounting, the control unit must be recoded:

  • The second number (the 5) has to be changed manually to a 4 (ie from North America to Europe).
  • The third number (the 0) can be changed to a 1 manually.

In the car the NL language will be set and kilometers will be displayed instead of Miles. So each number or letter in the sequence has its own meaning.

The initialize happens in a different way. It is often enough to initialize an electronic component in the car at the push of a button.
Components that need to be initialized include:

  • The throttle body, after cleaning or replacing. The ECU must read the values ​​of the throttle position sensors (potentiometers) with the throttle valve fully closed and fully opened during teach-in, so that all intermediate values ​​can be determined. If the throttle body is not initialized/learned, the ECU cannot move the throttle valve to the correct position. The result is that the engine gets too much or too little air when idling, and therefore idles poorly. While initializing the throttle valve (in English: Basic settings), the screen will display: “ADP is running”, followed by “ADP OK”. During “running”, the throttle valve is set to several positions and the signal voltage of the potentiometers is monitored. With ADP OK the adjustment was successful.
  • The rain sensor after replacing the windscreen. If the rain sensor is not properly trained, the windshield wipers may wipe too early or too late as soon as drops of rain have fallen on the window;
  • The steering angle sensor after installation work on the steering column;
  • The tire pressure after the tires have been inflated or replaced;
  • Vehicle height after air suspension components have been replaced.
  • Headlamp height after replacing a headlamp (see picture below).

What actually happens during initialization is that the stored values ​​are deleted and new (current) values ​​are stored in their place.
As after repair work on the steering column is not done with the initialization of the steering angle sensor, it may be that the steering angle sensor thinks that the steering wheel is always slightly turned while driving straight ahead. This is detrimental to, among other things, the ESP system. By placing the steering wheel exactly in the straight ahead position and giving the diagnostic device the command to initialize the steering angle sensor, the computer in the car knows the exact point at which the steering wheel is straight ahead. For example, teaching-in concerns the keys. When a new key is purchased, the car cannot simply be started with it. First the key code must be announced in the car. This is also often done with diagnostic equipment. The key code is stored in the car's control unit. The immobilizer is only deactivated when the key code is recognized by the control unit. Only then can the car be started.

Readiness test:
The readiness test is a self-check of the EOBD system. While driving, the EOBD constantly monitors the environment-related checks. The driving cycle must consist of; a cold start, a city ride and a stretch of highway. You also have to brake a few times to 0 km/h and accelerate again. After this driving cycle, the readiness test can be concluded as “OK” and “Not OK”. The readiness test is performed continuously by the engine management system.
With the APK it is mandatory to read the EOBD to check the status of the readiness test and the presence of error codes. This is allowed with a simple hand tester as shown in the image to the right. It does not have to be brand specific and only has the task of displaying the emission-related trouble codes and the readiness test.

The following are checked during the readiness test:

If, for example, a combustion of a cylinder is not in order, or the catalytic converter does not function properly (this is checked with the 2nd lambda sensor, the jump sensor), the readiness test is saved as “not in order”. An error code is also stored in the fault memory, which can be read with the simple hand tester as other extensive reading equipment.
When the faults are cleared, the readiness test is also cleared. It can therefore take a while before the faults that have been cleared reappear (if they have not been solved by the repair). For example, it can happen that the fault remains away for a while after erasing and then comes back later. As soon as the readiness test is complete (after the driving cycle), the fault can be displayed again. After clearing the faults, the readiness test will be displayed in the hand tester as “not OK”. It will take between 10 and 40 km for the new readiness test to be saved again.
This also prevents environmental-related faults from being quickly cleared before the car MOT is deregistered. The fault code has disappeared, but the sample controller can then see that the readiness test is not OK.

Standardization in communication between the diagnostic tester and the car:
With OBD II and EOBD, the communication between the diagnostic tester and the car is standardized. A fixed number of service modes are maintained. These service modes all have their own function. Because it is quite extensive, the table with the general information is given first. Below is the detailed explanation…

The table with the different service modes:

service 01Real-time data:
 Parameter identifier indicates what information is available to the diagnostic tester.
 Current engine data.
 Readiness test.
 MIL status (on or off).
 Number of stored DTCs (Trouble Codes).
service 02freeze frame:
 Get relevant information when MIL has burned:
At what coolant temperature, speed, load, etc?
service 03Reading DTCs:
 The P code(s) are displayed.
service 04To clear diagnostic information:
 The DTCs, freeze frame and readiness test are cleared.
service 05Oxygen sensor test values:
 The oxygen sensor is continuously monitored at ten points to detect deviations due to aging or contamination.
service 06Test values ​​of the non-continuously monitored systems:
 Operation of the catalytic converter.
service 07Test values ​​of continuously monitored systems:
 Check for misfires (burn misfires).
service 08Controlling systems or components:
 Checking for air leaks from the tank vent (US OBDII only).
service 09Retrieving vehicle-specific information:
 chassis number.
Service 0APermanent error codes:
 These cannot be cleared by diagnostic equipment, but are cleared by the ECU when the conditions are optimal again (eg after replacing the catalytic converter).

Now follows the detailed explanation of some of the service modes:

Service modes with the Parameter Identifier:

Services 01:
Here the parameter is called identifier (PID). The parameter identifier specifies what is supported by the ECU. The ECU indicates in the PID which information it can send to the diagnostic tester. Here's an example:

Schedule of available PIDs. In reality there are many more

In the CAN protocol, each PID number has its own meaning. It PID number 04 could be the coolant temperature. (The exact meaning can be found on the internet). The PID number 04 in the table reads Supported: Yes. This is indicated by a 1.
For example, an unsupported PID number (such as 0B) could be the exhaust gas temperature sensor on a gasoline engine. If this is not present, it will be forwarded with a 0.
Finally, the hexadecimal code follows from the binary code. On the page Binary, Decimal and Hexadecimal explains in detail how this is converted to each other. The hexadecimal code B2C5 is sent by the ECU to the diagnostic equipment. The software of the diagnostic equipment recognizes which systems are and which are not. The systems that are not recognized will be omitted in Service 02.

Services 02:
In service mode 02, the PIDs defined by the fault code are displayed. These PIDs are determined in service mode 01.

Mileage: 35000 km
Fuel system 1: closed loop
Calculated quantity: 35
Coolant temperature: 24 gr. Celsius
Intake air temperature: 18 deg. Celsius
Engine speed: 2500 rpm.
Vehicle speed: 0 km/h
Throttle position sensor: 20%
Frequency: 15

It can be determined that the malfunction occurred in this situation. The car was stationary and gas was applied to 2500 rpm.

Services 03:
The exact error code is requested here. As an example, trouble code P0301 is displayed. The code P0301 means: Cylinder 1 has no combustion (misfire detected). The fault codes can be found on the page: OBD Error Codes.
Now that fault P0301 is known, Service 02 will check when the fault has occurred. It is now known that a cylinder overturn has occurred in the situation just mentioned.

Service 0A:
Service 0A contains error codes that cannot be cleared with diagnostic software. The software in the ECU is programmed in such a way that it calculates itself whether the fault code is cleared or remains present. Let's take a particulate filter as an example.
When a particulate filter can no longer be regenerated, it will become full of soot, causing it to become clogged. Before the particulate filter is actually clogged, the back pressure sensors will measure that the back pressure is too high. An error message will appear. When reading out, the error P244A (Diesel particulate filter: Differential pressure too great) be displayed. The difference between the two back pressure sensors (before and after the filter) is too great, which means that the particulate filter is saturated (ie full of soot).

This fault cannot be deleted. There are 2 options left;

  • Regenerate the diesel particulate filter;
  • If regeneration is not possible; replace the particulate filter.

After the repair, the fault will remain in the memory. While driving, the readiness test will show that the back pressure differences are now minimal. The software now recognizes itself that the particulate filter is no longer clogged. The ECU will now clear the fault itself.
It will work in this way not only with the particulate filter, but also with a catalytic converter that is malfunctioning.

The other service modes (04 t / m 09) have already been described in detail in the table, so they will not be discussed further.