BMW E39: P0443/Evap Code Diagnosis

Alt text


I just bought my 1998 BMW 540i two weeks ago, and I knew when I bought it that there was a check engine light on for an EVAP code. I pulled the code and it came up as P0443. I just wanted to outline a short diagnostic checklist of things to check when you experience this or any other EVAP code related to the purge valve.


  1. Check your gas cap. This is one of the biggest cause of check engine lights when it comes to the EVAP system. Make sure it is seated tightly and is clean. Inspect the rubber gasket inside, it should be smooth with no tears or pitting. To be extra safe, it is always a good idea to clean the rubber gasket and mating surface very well with alcohol and a rag. If the rubber gasket is torn or damaged, you can often find a replacement or just order a new gas cap for around $25.

  2. Visually inspect the lines going to and from the purge valve. The 540i valve sits right in front of the driver side cylinder head, it is a small black valve with a hose coming in the bottom and off the side. Make sure there is no damage to these lines, and that the clamps are tight. If you are feeling particularly ambitious, you can remove the lines and vacuum test them to make sure they are holding pressure.

  3. Check the wiring going to the purge valve. It should all be sealed up nicely from the factory, but you can look to make sure none of this shielding has been worn through. A primitive way to check the wiring to the valve is to clear the code then start the car. Keep note how long it takes for the code to return. If it is longer than a minute or two, then clear the code again and unplug the valve. Start the car again. If the code comes on immediately, then you know that if there was an issue in the wiring, it would not immediately come on if the wiring were good. Primitive, but it gives you a rough idea. Also make sure there is no corrosion on the terminals either at the valve or in the connector as this can increase resistance in the circuit and trigger a code. If you do find corrosion, clean the contacts with sandpaper or a pick, and treat them with contact cleaner.

  4. Lastly, if you have been through the above steps and the code is still returning, then it is time to check the purge valve. The function of this part is to allow the engine to suck the fuel vapors out of the tank and burn them. The valve opens and closes the line running from the tank to the intake, and allows this to only happen when the computer permits it to. The valve should always be closed. The first step is to remove the valve. It is pretty straight forward, there is one hose with a clip and another with a hose clamp, and then the two-wire connector on top. It lifts right off of the bracket it sits on. Once you have it out, try to blow air through it. If any gets through at all, then the valve is stuck open and it should be replaced. If you can’t, then your valve passes the first test. Next, use some wiring leads and send 12 volts of power to the two terminals on the top. If it does not work one way try the other, it’s easy to get mixed up on which is positive and which is negative. You should hear a click and now should be able to blow air through it easily. If you still cannot, then the valve is stuck closed and needs to be replaced. Lastly if you have a multimeter, you can test the resistance from pin to pin on the valve. I have had a hard time finding how many ohms it should be, but one source says 25 to 65, so that’s a good reference point.


If your car passes all these tests but you are still getting the code, it is time to simply replace the purge valve. This takes about 10 minutes and runs around $80 for a BMW branded valve from ECS Tuning. I hope this article is found to be helpful!