Pages

Saturday 18 October 2014

How to check error codes

This article describes how to read the error codes logged by your cars On-board Diagnostics system (OBD). If you're not sure what these error codes are or why you should read them, please first read this article.
As with all posts on this site, this article is primarily aimed at the BMW 1 series (E87). However, the process is, no doubt, the same for many recent BMW models.

What do I need?

There are various ways of reading error codes. For example, it is possible to purchase a dongle that plugs into the OBD port and allows you to view error logs on a mobile phone. However, we shall describe how to use a diagnostic cable and a laptop computer, as this is the system that we have tested.

You will need:
  1. A K+DCAN to USB cable;
  2. The BMW INPA software;
  3. A laptop computer running Windows XP or Windows 7.
The cable converts the car's D bus to a USB serial port. This allows software installed on your laptop to send commands and receive information from the on-board computer (DME).
In addition to the cable, you need software installed on the laptop that can interrogate the error codes. There are, at least, two applications used by BMW garages for this purpose: INPA and SSS ProgMan.1 INPA is fairly easy to set up, and so is suitable for home use. SSS ProgMan is far more complicated, and in our opinion, the additional complexity of setting it up and using it is not worth it. While it appears that the INPA software is available to download on line, it appears that this is rather complicated in practice. Therefore, it is recommended to purchase a cable that come with the software provided.
This is an example of a suitable cable, Note, we have no affiliation with the seller nor have we tested any other cables for comparison. However, this one does work. It does have two notable drawbacks, however.
  1. The edition of the INPA software that it is supplied with is entirely in German, so you would need either to be able to read German or be comfortable using Google translate and a dictionary;
  2. Despite claiming to be compatible with cars manufactured up to 2010, the version of INPA included is actually a version older than required by a BMW E87 manufactured in 2009. It is sufficient to read the error codes, but it complains about compatibility and will disconnect frequently when monitoring the sensors whilst driving.

Instructions

Figure 1: OBD port
Once you have the cable and a suitable laptop computer, you should proceed as follows.
  1. Push your key into the key port so that the dashboard lights come on; there is no need to actually start the ignition.
  2. Plug one end of your diagnostic cable into the car's OBD port, which is next to the base of the door. It is behind a plastic cover which has the letters "OBD" printed on it; see Fig. 1. 
  3. Plug the other end of the cable into one of your laptop's USB ports. Make sure you remember which USB port you used. Each time you use the cable, you should be sure to plug it into the same USB port.
  4. Wait while Windows installs any drivers it needs. This should happen automatically and might take a few minutes.
INPA is configured, by default, to use the serial port called "COM1". Therefore, we must assign this name to the USD serial port provided by the cable. We use a small netbook, which has no built in serial ports. If your laptop already has a serial port, you may need to rename it so that it doesn't use the name "COM1". To assign the name "COM1" to the cable's USB serial port, procede as follows. Note that you can click on the pictures to enlarge them.
  1. From the computer's menu, select "Control Panel". 

  2. Select "System". 
  3. From the menu on the left-hand side, select "Device Manager" .
  4. In the device manage, double click the USB serial port to open the properties windows. 
  5. Select the "Port Settings" tab and click the button labelled "Advanced...".
  6. In the drop down box, set the COM port number to "COM1". Click "OK" and close all the windows. 
Now that you have configured the serial port, install INPA by following the instructions that came with your copy of the software.

Using INPA

Now that everything has been set up, it's time to see if you can successfully read the error log. The instructions here are for version 5.0.6. Other versions, are probably very similar.
  1. Push the key into the key port so that dashboard lights come on; there is no need to turn the ignition on.
  2. Double click the INPA icon to start the software. If you have successfully made the connection, you should see the battery and ignition lights filled in, as shown below.
  3. Press Shift+F8 to choose the "Engine" option. Then, for an E87 with N43 engine, select "4 Cylinder" and then "MSD80 for N43" to choose the script that you will use to communicate with the DME. "MSD80" should correspond to the version of DME installed in your car. Our test car, in fact, has version MSD812. However, the version of INPA that we have available is too old. Nevertheless, it is sufficient for reading the error codes. If you have a different model, you may need to experiment to find the correct script.
  4. If you are running the script MSD80N43 then you should now see the menu below. Press the F4 key to access the error log ("Fehlerspeicher", in German). 
  5. You should now be at the page shown below. Pressing F1 displays the error log whereas F2 wipes it. Shift + F9 allows you to save the log to a file.
  6. An example (empty) log file is shown below.
Counter-intuitive as it may seem, you should, in fact, wipe the error log from time to time. Of course, you should first save the error log to your computer so that you have a record to refer to in future. This is because one particular error, will only ever be logged three times. After that, each time the error recurs, the last log for that error will be overwritten. Therefore, you will only ever see the first, second and last occurrence. All others will be lost.

If you a monitoring a problem over a period of time, then it is easier to judge how frequently it recurs if you periodically wipe the log. Another reason to clear the log is to see if you have managed to resolve an issue. Often, the on-board computer will not log a second error immediately if it has recently logged the same error. For example, if the catalytic converter is sulfurized, you may see one error and them nothing more for a week, even though the problem hasn't gone away. If you've just taken the car for a good drive in the hope of clearing the problem then clear the log when you get home. That way, the next time you drive the car, an error will be logged immediately if the converter is still sulphurized.

Notes

  1. Another piece of related software is called "NCS Expert". This is used for changing the settings of the car, which is known as "coding". This is more challenging, and is not necessary if you simply wish to read the error codes.

Why you should check your error codes

Many modern cars are equipped with an OBD port that makes it possible to read the error codes logged by the on-board computer. The purpose of this article is to demonstrate why you should learn how to read these error codes.

What are error codes?

Fig 1: Position of OBD port in BMW E90
Many modern cars are equipped with an on-board computer which monitors the engine and the various other systems in the car. Garages and car dealerships use this information to diagnose problems with your car when you bring it in for servicing.  However, it is possible to read these codes yourself by plugging a cable into the OBD port of your car. Figure 1 shows the position of the OBD port in a BMW E90. In the E87 1 series, it is in about the same position.

Why should I check my own error codes?

Some error codes indicate critical problems that might lead to damage to the car or significant lose of performance. When these errors occur, a warning light will be displayed in the instrument cluster, so you will know that there is a problem. However, typically, all you will see is the "check engine" light. This gives you no information about exactly what the problem is or much of an indication as to exactly how serious or urgent it is. If you see this light while driving, you will probably feel under a lot of pressure to take the car into the nearest garage or dealership as soon as possible. You won't be well informed and will have to follow the advice of the garage. That will be a lot of effort and could be quite expensive even if the problem is actually quite simple. If you are able to read the error codes yourself, you will be in a much better position to do some research in advance. Then, you may be able to resolve the problem yourself and, if not, you will be able to make much more informed decisions if you do take the car in.

Other problems are not serious enough to cause a warning light to be illuminated. If you don't check your error codes, you would never know that there was a problem. In some cases, the issue may not be serious, but nevertheless detrimental to the performance of the car. A good example is a broken NOx sensor, discussed in detail in the article NOx sensor replacement. This problem will lead to an increase in fuel consumption, but is virtually unnoticeable other than via the error codes. Hopefully, it would be picked up during a routine service. However, once you had already car in the garage for a service, it is unlikely that you would have the time to understand the implications of driving with this, rather obscure, sensor broken and so come to an informed decision as to whether or not you should have it replaced.

Another type of issue that can occur is one that initially is neither serious nor urgent, but which could potentially become so if left unchecked. For example, a sulphurized catalytic converter (see article) is easily and cheaply dealt with if discovered early. However, if you were unlucky enough that the problem developed to the stage that a warning light were illuminated, then it would be a much more stressful and, potentially, expensive problem to sort out. Another example is the occasional logging of "oil pressure too low" errors. If you see these and the your oil level is getting towards the minimum, then it's a good hint that you should consider topping up or changing your oil even if the official oil-change service is not yet due. You will probably see these warnings a little while before the warning light appears and promptly changing the oil can only be beneficial for engine wear.

How do I check my error codes?


The article How to check error codes answers this question in detail for owners of BMW 1 series E87 cars (2004-2011). Unfortunately, for obvious commercial reasons, car owners are not encouraged to check there own error codes. The process can, therefore, seem rather daunting. However, all that is really needed is to buy a cheap cable and install some software on a laptop computer. Anyone who is comfortable changing some settings on their computer should be able to manage it.



Sunday 12 October 2014

Sulfurized Catalytic Converter

If you are in the habit of checking the error log of your BMW, you might see repeated warning about a sulphurized catalytic converter. In this article, we describe what this means and how to rectify it.

Symptoms

If you regularly check your error codes, you might come across this one.
0x30EA  0x30EA DeNox-Katalystor, verschefelt.
gespeicherte Schwefelmasse im Katalysator    696.32 mg
At present, this is not a critical condition and so no warning lights will be illuminated at this stage to alert the driver to the problem.

Meaning

The car is equipped with a catalytic converter whose job is to breakdown pollutants in the car exhaust. For example, nitrogen oxides are broken down into harmless nitrogen and oxygen; see the article Nox sensor replacement. The catalytic converter performs best when the exhaust gases are hot, such as when driving on the motorway. When the engine is being underutilized, for example if the car is used for many short trips at low speed in town, sulphur can accumulate in the converter; see Air-fuel ratio (Wikipedia). Too much sulphur reduces the effectiveness of the catalytic converter and, therefore, an increase in emissions.

Solution

Fortunately, this is a very easy problem, especially if caught early. As the problem is caused by too many short journeys, the solution is to take the car on the motorway and drive fairly aggressively. For example, I managed to clear the code above by taking the car for a 20 mile run on the motorway, accelerating hard in sports mode (or a low gear, if driving a manual) when I needed to pick up speed and holding the car at 70 mph as much as possible. In contrast, two 11 mile runs partially on motorway and partially on A roads with 40 or 50 mph speed limits, was not enough to clear it.

Regular checking of error codes

This problem is a good example of why it is important to learn how to read your car's diagnostic error codes and to do so frequently. This problem will generate errors codes weeks or months before it triggers a warning light. If you spot it early, there will be less sulphur in the exhaust, so it will be easier to clear. Furthermore, you need not be in a hurry to fix it, so you can wait until you need to make a journey of 20 miles or so and then modify your route to make as much use as possible of motorways or fast A roads, rather than having to make a trip specially. If you don't check your error codes and you're not lucky enough to clear it by chance then you won't know about the problem until you see a warning light. If you do see a warning light, you probably won't know why unless you take the car into a garage or back to the dealer, at which point a problem that could have been resolved for free will probably be expensive to fix and will have caused a lot of unnecessary stress.

Saturday 11 October 2014

NOx Sensor Replacement


The NOx sensor detects the level of nitrogen oxide in the exhaust gases. It is a component of the emissions control system. This article explains how to diagnose and replace a faulty NOx sensor in an E87 1 series BMW equipped with an N43 engine. It is probably mostly applicable to other similar models, including some 3 series. The sensor is reasonably accessible and so it is suitable for DIY replacement. Although, doing so is rather fiddly.


What does a Nox sensor do?

Modern BMWs are equipped with an on-board computer which controls the operation of the engine. This computer is known as the DME. One of the roles of the DME is to reduce emissions of polluting gases and reduce fuel consumption by controling how fuel is injected into the engine. In order to do so, it relies on data supplied by many sensors. Several of these sensors are installed in the exhaust pipe and one of these is the NOx sensor.

The car's engine burns a mixture of fuel and air. By controlling the amount of fuel injected into the engine, the DME can vary the ratio of fuel to air. There exists an "ideal" ratio of air to fuel such that there is just enough  air for the fuel to burn completely and no more. We call the air-fuel ratio λ (Lambda) and define a scale such that λ=1 is this "ideal" ratio. If the DME injects less fuel, such that the air-fuel ratio is higher (λ>1), then we say that the mixture is lean. If there is more fuel we say that it is rich; see Air-fuel ratio (Wikipedia)

If the fuel mixture is rich, then there will be unburnt fuel present in the exhaust.[1] If the mixture is lean, there will be oxygen present in the exhaust gases and these gases will be cooler. The engine will also deliver less power than when it is running at λ=1.

BMWs have very powerful engines. However, this power is only really useful when the car is accelerating hard or driving on the motorway. When driving is town or queuing in traffic, we only need a fraction of the power that the engine is capable of delivering. It is wasteful and causes unnecessary pollution to keep the engine running at λ=1 when we're not fully utilizing it. Therefore, in order to reduce fuel consumption and emissions, the DME orders a lean fuel mix.[2]

Unfortunately, there is a problem caused by running a combustion engine at λ> 1. A side effect of the combustion of the fuel in the engine is that the intense heat causes nitrogen in the air to combine with oxygen to form various unstable compounds of nitrogen and oxygen: nitrogen oxides. These are hazardous to health[5] and so their release into the atmosphere must be minimized. Fortunately, as these compounds are unstable, it is easy to break them down into harmless nitrogen and oxygen. This is the job of the catalytic convertor. However, a catalytic convertor operates most efficiently when the engine is running at λ=1; see Catalytic converter (wikipedia). Far from this regime, the catalytic converter will be unable to break down nitrogen oxides. Thus, unless measures are taken, when the engine is running on a lean mixture to reduce fuel consumption and emissions, it will, in fact, increase emissions of nitrogen oxides.

In order to resolve this contradiction, the car is equipped with a second catalytic converter known as a NOx storage catalytic converter. This is capable of storing small amounts of nitrogen oxides during periods when they cannot be broken down. However, the capacity of the storage is limited. When it is full, the air-fuel mixture must be enriched again (λ=1).

The function of the NOx sensor is to alert the DME when the storage converter is full. The NOx sensor is installed just downstream of the storage converter. While the converter is filling, the concentration of nitrogen oxides downstream of the converter will be low. When it is full, they will rise. It is this rise in the concentration of nitrogen oxides that is detected by the NOx sensor. The sensor signals the DME which enriches the fuel mixture in order to decompose the nitrogen oxides; this is known as regeneration of the converter. Once this is complete, the engine can return to λ>1. This cycle repeats every minute or so depending on the signals received from the NOx sensor.[3] The NOx sensor and the storage converter allow the engine to run with a lean mixture most of the time, with brief additional bursts of fuel when necessary to regenerate the storage converter.


What is the impact of driving with a broken NOx sensor?

Unfortunately, a broken NOx sensor seems to be quite a common fault. Unlike the other sensors of the emissions controls system, which are well protected within the engine compartment, the NOx sensor must be downstream of the storage converter and is, therefore, mounted on the exhaust pipe underneath and towards the rear of the car. It is probably this exposed position that means that failure of this sensor is relatively common.

Fortunately, the consequences of a broken NOx sensor are not serious and there is no urgency to perform a repair. For this reason, no warning light is displayed when the sensor fails. You would most likely only become aware of the problem if it were noticed during a routine service or if you are in the habit of checking the error codes from the OBD (Onboard Diagnostics System).

If the DME does not receive a signal from the NOx sensor, it will maintain the air-fuel mixture at close to λ=1 all the time, in order to ensure that nitrogen oxides are not emitted to the atmosphere. Therefore, fuel consumption and other emissions, for example CO2, will increase. Replacing a broken NOx sensor will, therefore, save you money on fuel and reduce the environmental impact of driving your car. On the other hand, a replacement sensor is quite expensive. You would need to decide for yourself whether a repair makes economic sense, or whether it would be cheaper to pay for the additional fuel.


How do I know if the NOx sensor is broken?

You might notice an increase in fuel consumption. However, to be sure you should connect a computer to the car's OBD port and read the error codes. The codes associated with a broken NOx sensor are shown below.[4]


0x2AF6  0x2AF6 Stickoxidsensor, Lambda binär
P122F NOx-Sensor binärer Lambdasignalschaltkreis (Bank 1) - Kurzschluss

0x2AF2  0x2AF2 Stickoxidsensor, Lambda linear
P121F NOx-Sensor linearer Lambdasignalschaltkreis (Bank 1) - Kurzschluss

0x2AF4  0x2AF4 Stickoxidsensor, elektrisch
P122C NOx-Sensor Schaltkreis (Bank 1) - Kurzschluss

These mean that the sensor is short-circuited.


You might also see the following codes.

0x2AF9  0x2AF9 Stickoxidsensor, Nox-Signal: Schubprüfung
P127A NOx-Sensorsignal (Bank 1) - Signal zu hoch bei Schubprüfung


0x30DA  0x30DA Stickoxidsensor, Signal
P124D NOx-Sensorsignal (Bank 1) - nicht verfügbar im Betrieb


What do I need for the repair?

Figure 1: Old NOx sensor control unit.
No special equipment is required for the repair other than the NOx sensor itself. A NOx sensor, in fact, consists of the sensor itself and a paired control unit. This is a small computer that interprets the output of the sensor and sends digital signals to the DME via the CAN bus. The NOx sensor used in an E87 with N43 engine is manufactured by Continental. There seem to be a variety of similar pairs of sensor and control unit produced by Continental and Siemans available. I do not know if it is, in fact, possible to fit a different sensor. To be certain, you should buy an OEM replacement part from BMW. The part number for the sensor is: 1178 7 587 130. On the sensor itself this is followed by a two digit number that I believe to be a revision number. When the part is redesigned, this number will be increased to indicate that it is a new version of the same part. I'm aware of the existance of a version 5, so you probably wouldn't want to buy one that was older than that. There may be a more recent version available now or in the future. Figures 1 and 2 show the labelling on an old and a new control unit. Figure 3 shows the control unit with the sensor.
Figure 2: New NOx sensor control unit.

I believe it is possible to order a replacement part directly from BMW parts. Alternatively, new unused sensors are sometimes made available on eBay. Obviously, you should excercise your common sense when buying on eBay, as always.

Figure 3: The control unit and the sensor.
Other than the sensor itself, you will need:

1) A set of socket spanners with a 3/4" or 1/2" driver and a 1/8" driver; the 1/8" driver is necessary for the bolts on the sensor control unit. There is not enough space between the unit and the drive shaft to use a larger driver.
2) 10mm and 8mm sockets to remove the heat shield that surrounds the exhaust pipe.
3) A T50 Torx socket to remove the reinforcement plate which covers the sensor.
4) A 22mm spanner to remove the sensor itself. You cannot use a socket, as the cable prevents you getting the socket onto the sensor. It is possible to buy a special 22mm oxygen sensor socket. However, I found it easier to apply the necessary torque with a normal spanner.
5) Some means of raising the back of the car; e.g. jacks or ramps.
6) You might need an oxygen port chaser, if the threads of the socket into which the sensors screws are damaged. However, with a fairly new car, this should not be necessary.

Repair instructions

YOU SHOULD TAKE ALL NECESSARY PRECAUTIONS BEFORE GETTING UNDER A RAISED CAR. IF THE CAR WERE TO FALL ON YOU, YOU WOULD VERY LIKELY BE KILLED OR SERIOUSLY INJURED. YOU SHOULD RESEARCH THIS POINT THOROUGHLY BEFORE ATTEMPTING ANY REPAIR WHICH INVOLVES RAISING THE CAR

Figure 4: 1) NOx sensor; 2) reinforcement plate;
3) storage converter; 4) rear heat sheild.
First of all raise the back of the car. The NOx sensor is located behind the reinforcement plate. The control unit is screwed to the base of the car behind the heat shield. It is important to see if you are able to unscrew the sensor. It can seize up and there is no point proceding further if you are unable to loosen it. Figure 4 shows the heat shield and reinforcement plate.

To gain access to the sensor, undo the four Torx bolts that secure the reinforcement plate. Having removed this, try to loosen the sensor using the 22mm spanner. You may have to apply quite a lot of torque to do so. I found it necessary to hold the spanner in place with one hand and apply force with a leg. Be careful not to cause damage to the exhaust system as you do so. If this doesn't work, you may want to try soaking with a rust release penetrant spray before trying again.

If you've managed to loosen the sensor, then you can proceed to drop the heat shield in order to gain access to the control unit. It is imposible, or at least extremely difficult, to remove the heat shield without first removing the exhaust pipe including both of the catalytic converters. I would not recommend doing so, as this would make the repair considerably more difficult and dangerous and would increase the risk of damaging the vehicle. However, it is possible to drop the heat shield just enough to be able to reach behind it and unscrew the control unit. To do so, Then use the 10mm socket to remove the dozen or so bolts that secure the rear heat shield. There are two such shields; there is no need to move the front shield. Most of the bolts that are securing the heat shield ressemble flying saucers. However, there are two normal looking bolts one at the back and one towards the front of the car. You will also need to use the 8mm socket to remove a multitude of small black bolts that hold the plastic covers on the bottom of the car. You do not need to remove these covers, but you do need to remove the securing bolts on either side of the exhaust pipe, where they overlap the heat shield. Otherwise, you will not be able to drop it.

Once you have removed all the bolts securing the heat shield, you should be able to drop it down so that it rests on the drive shaft. Next, follow the NOx sensor's cable to locate the control unit. This is hidden behind the heat shield. You will probably not be able to see it, but you should be able to feel it. You should be able to see some orange electrical cable inside a transparent protective sheath. This is the cable that connects the sensor to the CAN bus.

Fig 5: Clip (red dot) on connector.
The control unit is attached to the base of the car with two 8mm bolts at diagonally opposite corners.  You will need to use a 1/8" driver to remove these bolts. There is very little clearance between the bolts and the drive shaft, and so a larger driver would not fit. Given the limited space and the fact that you cannot see what you are doing, it would not be easy with a normal 8mm spanner. Feel your way to place the socket on the bolts so that you can remove them. It would be advisable to wear something with long sleeves, as the sides of the heat shield are quiter abrasive and may cut into your arms otherwise. Once the bolts have been remove, you can slide the control unit around the heat shield, unclipping the orange cable from the base of the car as you go. Once you have the control unit out, you need to press on the clip (see Figure 5) in order to disconnect it.

Fitting the new unit is the same process in reverse. It's slightly harder than removing the old one, as you need to feel your way to place the new sensor onto the mounting bolts and to hold it there as you tighten the nuts. Remember to reattach the orange cable into its clips.

Finally, screw the sensor into the port on the exhaust pipe. Try not to twist its cable. This is quite easy to achieve as the sensor can be turned independently of its fixing nut until this it quite tight. A new OEM sensor will come with anti-seize compound already applied to its threads. However, if you have sensor without this, it would be a good idea to apply some to make it easier to undo if you ever need to remove it in the future.

Make sure you've applied a decent, but not excessive, amount of torque to ensure that the sensor is firmly attached. Put the heat shield back in place and all of the nuts and bolts that you removed. Finally, reinstall the reinforcement plate and make sure you've fully tighted the bolts that hold it in place. I believe this part is structrually important, so do make sure that the bolts have been properly tightened. The required torques are given in the workshop manual. So, if you have a torque wrench, you should refer to these.

Finally, once everything is back in place, connect your computer to the car's OBD port and clear the error codes. Then, take it for a test drive and make sure that the NOx sensor error codes do not recur. Even better, ask somebody else to drive and monitor the output of the NOx sensor with the INPA software. When they are driving fairly gently, you should see the DME cycling between λ » 1 and λ ≈ 0.98 as the storage converter is regenerated. Also, when the driver brakes to slow down from a reasonable speed, when approach a junction, for example. You should see λ > 20, as the DME cuts the supply of fuel completely; there is no need to waste fuel when slowing down and the engine braking that results helps to slow the car down.


Notes


  1. In practice, when the engine is running under hard acceleration, it is necessary to use a slightly rich mixture in order to prevent "knocking"; that is, uneven detonations of the air-fuel mix and excessive heat that can damage the engine; see Air-fuel ratio (Wikipedia).
  2. If you connect a computer to your OBD you can observe the air-fuel mix while somebody else is driving your car; see article ....
  3. If you monitor the output of the NOx sensor while the car is driving in town, you will see that λ > 1 most of the time, but will drop to λ < 1 briefly every minute or so.
  4. Some cars are equipped with engine that are more than one exhaust pipe; for example, V configuration engines. In a car with two exhaust pipes, there would be a two NOx sensors. "Bank 1" in these error messages would refer to a failure of the sensor in the first pipe and "Bank 2" the one in the second. The N43 engine only has a single exhaust pipe and so there is only one sensor. Therefore, the bank number can be ignored.
  5. See Environmental Protection Agency.