Check Engine light solved .... YES!

I am a happy man.

For almost a year now I’ve been getting a check engine message on the VCM (code 4) of my 1989 as soon as the engine warms up. At first it was “Humm, I wonder what’s causing this?”. As time and extensive troubleshooting went on it became “This is really bugging me!”. After replacing a lot of components with no positive results and having to watch that &$#! check engine message come on like clockwork for months and months it finally ended up … "This is driving me crazy !!".

Now I am a reasonably mature guy who takes pride in having fixed all of this car’s problems over the past 28 years that I’ve owned it (and believe me there’s been a bunch … ). … But until now IT’S NEVER BEATEN ME

However, despite extensive research and troubleshooting I COULD NOT figure this one out :worried:

The VCM “check engine” message, code 4 translates to “Oxygen sensor - system indicates full rich
Well now that’s pretty vague isn’t it … what is making this engine run rich?. So while chasing this rabbit down the hole I …

  • Replaced the O2 sensor (with two different sensors just to be sure)

  • Checked all the wiring from the O2 sensor to the ECU (to bypass a possible faulty wiring harness I even ran test jumper wires from O2 sensor to ECU).

  • Replaced the ECU

  • Replaced the MAF

  • Replaced spark plugs and wires

  • Replaced fuel pressure regulator

  • Replaced front catalytic converter

  • Replaced engine coolant sensor

  • Had fuel injectors cleaned, rebuilt and flow tested

  • Had exhaust emissions tested on rolling roadway … this confirmed engine was running too rich.
    ALL TO NO AVAIL !!

    So how does the system actually work ??

The 3 wire O2 sensor has two separate connectors. One connector has a single wire that carries the data signal from the sensor to the ECU. The other connector has two wires for the O2 sensor heater (one provides 12v and the other is a ground). The O2 heater is used to get the sensor up to operating temperature (600F) faster. I had previously checked the heater connector and it read around 11v, so that seemed about right.
All my research told me that the O2 sensor worked just fine without the heater it just kept the system in the closed loop longer while it warmed up. Also the O2 sensor heater doesn’t connect to the ECU. One wire is a ground and the 12v comes from the fuel pump relay… (hint, keep this in mind)

The ECU (engine control unit) computer has two modes of operation…

CLOSED LOOP … used while the O2 sensor is warming up or if there is a malfunction in the system. The fuel injector operation is determined solely by a stored program in the ECU and runs a rich mixture.

OPEN LOOP … used after the O2 sensor reaches 600F. The ECU then receives info from the O2 sensor, coolant temp sensor, MAF, etc. Using this information It then commands the fuel injectors to lean out the fuel mixture to obtain an optimum 1 to 14.6 fuel to air mixture.

SO (are you still with me) WHAT WENT WRONG ?

For the lack of anything better to do I decided to check the voltage to the the O2 sensor heater once again. And much to my surprise now it was only reading about 7 volts instead of 12 ??? So I took the negative probe of the multi-meter off the connector and grounded it on the engine and … BINGO the reading went right to 12v. OK … a bad ground.

I checked my wiring diagram and found that the ground wire from the O2 heater runs all by itself to
connect to a stud on the intake manifold by an eyelet soldered on the end of the wire. And guess what,
the nut on that stud was loose. So I tightened it up and now the O2 heater connector was reading correctly at 12v.

BUT WAIT. This shouldn’t have anything to do with the Check Engine warning … right. I mean the ECU doesn’t even look at the O2 sensor heater and the O2 sensor works just fine without the heater once it gets up to working temperature. … WRONG !!! … Apparently the ECU is all knowing and by reconnecting the O2 heater ground everything went back to normal. NO MORE CEL.

Now finally it all makes sense.

The problem wasn’t that some component had malfunctioned, causing the engine to run too rich. And the O2 sensor detecting the over rich exhaust kept the computer in the closed loop mode of operation signaling a CEL.

The problem was actually the bad ground on the O2 heater triggered the ECU into staying in the close loop and displayed a CEL. Because it stayed in the closed loop the ECU stored program commanded the injectors to run rich all the time.

So all’s well that ends well and I found this post to be very therapeutic for me. Who knows
maybe it’ll actually help someone in the future.

     THE END
4 Likes

Dennis
Congratulations on your persistence and analytical pursuit of the problem!
That’s a Jag- lover for you! :smiley:

Wow Grooveman, you are definitely a Xj40 technical genius worth much more money than your current wage, so im now getting my tools warmed up for a nut n bolt torque check, thanks for saving me the premature extra grey hair. Legend.

My therapist and I thank you gentleman for those kind words !

I appreciate you taking the time to read my long post and … I’m feeling better already !

Damn those flaky earths!!!

Well done another problem solved.

Excellent informative post. Thank you.

Sorry … after rereading my post I inadvertently switched the definitions for open and closed loop operation of the ECU. It appears the time alotted to modify my post has expired. The correct definitions are as follows …

OPEN LOOP … used while the O2 sensor is warming up or if there is a malfunction in the system. The fuel injector operation is determined solely by a stored program in the ECU and runs a rich mixture.

CLOSED LOOP … used after the O2 sensor reaches 600F. The ECU then receives info from the O2 sensor, coolant temp sensor, MAF, etc. Using this information It then commands the fuel injectors to lean out the fuel mixture to obtain an optimum 1 to 14.6 fuel to air mixture.