Troubleshooting a P0129 OBDII Code
About a year ago, I opted to boost the fun factor of my Jeep by installing a Vortech V-3 supercharger as a performance upgrade kit from RippMods The performance gain was incredible, adding approximately 100hp (at the wheels). Unfortunately, ever since installing the supercharger in my Jeep, I've been plagued with a P0129 error code, which in OBD-II parlance corresponds to a "Barometric Pressure Too Low" error. First of all, a supercharger certainly does not lower the cylinder's barometric pressure. That's a direct contradiction to the nature of how superchargers operate. So I knew this problem was from something else. While I could have simply ignored it, having a MIL/CEL equates to failure in states that require regular emissions testings. What bothered me was that the Jeep was running fine and I'd already inspected all the sensors with a multimeter and the interface software into the supercharger's fuel management piggyback computer confirmed it was working correctly.
How could I make this code go away? This issue only occurs during ignition. If the MIL/CEL doesn't illuminate within a second of starting the Jeep, it wasn't going to come on no matter how far I drove. But turn the Jeep off and start her again and it was like rolling dice as to whether the light would come on. I suspected there was a synchronization issue between the piggyback fuel management computer and the primary ECU since the MAP sensor (that's causing the issue) is routed through the piggyback.
A supercharger is a method of forced induction for getting more air into your engine. As discussed in my article Improve MPG: The Factors Affecting Fuel Efficiency, an engine runs on air and the stoichiometric balance between air and fuel are the primary factors affecting performance and efficiency. At wide open throttle, the most air a non-forced induction engine can ingest into its cylinders is equal to the ambient air pressure which is approximately 14.7 psi. Superchargers are basically fans mounted inline with your air intake system that spin up rapidly to suck in more air and compress that greater volume of air into the cylinder. This allows a vehicle to exceed ambient air pressure which effectively makes the engine perform as if it had a larger, high displacement block.
Since most vehicles aren't designed for forced induction, they only have sensors that detect up to 1 bar of pressure. This means any extra air above ambient pressure you compress into your engine isn't correctly sensed and the ECU cannot adjust the fuel mixture accordingly. Many aftermarket kits include secondary, piggyback fuel management computers that have an additional MAP sensor capable of reading higher pressures (typically up to 2.5 bar) which in turn drive supplemental fuel injectors to maintain the appropriate stoichiometric ratio.
The original, 1 bar, MAP sensor is often patched into the piggyback computer rather than allow it to continue feeding the primary ECU directly. This is because, taking the MPX4250A for example, the sensor will continue to report voltages between 4.6-5.0V for pressures above 1 bar. But since it's not designed for that range, the sensor's accuracy becomes questionable and the ECU itself may not necessarily having fuel mapping tables for these values. Thus, many piggyback computers patch the original MAP sensor in and relay it back to the primary ECU "as-is" unless in a boosted situation where the signal is capped at a voltage corresponding to ambient pressure.
I suspect the problem occurs within the piggyback computer in patching over that original MAP sensor value. My theory is that the signal at ignition is arriving to the ECU moments too slow causing the ECU to believe the sensor is malfunctioning.
I needed to see what the sensor's signals looked like. To do that, I figured an oscilloscope would be the best tool. But I wasn't keen on dropping several thousand dollars on an oscilloscope and then having to find someplace to keep it after the fact. Fortunately, you can now use your PC for signal analysis by sampling data through a USBdevice. Armed with that knowledge, I picked up a Parallax USBOscilloscope from eBay for $100. The technology is pretty simple and requires hooking up the test leads, choosing the sampling rate, choosing the sampling voltage and selecting your triggers.
|This depicts version 4 of the software, Parallax has updated the interface version 5.1.1.|
As mentioned earlier, I already knew what the MAP sensor itself was doing and that it was functioning from previous multimeter experimentation. In a nutshell, the Jeep uses a 1 bar Motorola MPX4250A (pdf) which outputs a voltage between 0-5V to indicate the measured vacuum. For reference, the MAP sensor will read approximately 1.9V at idle and roughly 4.5V at wide open throttle (equal to ambient pressure 14.7 psi). With that information, I knew I could replicate various sensor situations using a 5V digital logic kit (the DD-1 Digi Designer) from the comfort of my living room. The DD-1 would allow me to pulse controlled signals at the SMT6 piggyback fuel management computer for output analysis.
- Dell Netbook for running piggyback software and oscilloscope software
- DD-1 Digi Designer
- USB Oscilloscope
- alligator clips
- 12V power supply
- Perfect Power SMT6 fuel management computer
Baseline Signal Analysis
While I'd already conducted a study with my multi-meter to confirm that the voltages coming out of SMT6 matched up to the input voltage, I thought it would be handy to see it. Knowing everything functioned correctly during regular operation, analyzing this would give me a point of reference from which to compare ignition signals. I began by hooking up the oscilloscope's first channel to my square wave generator which fed into the SMT6's MAP input. The second channel of the oscilloscope was hooked into the SMT6's MAP output. This setup would allow me to compare the actual timing of the sensor changes. In the captured output below, it is evident that the SMT6 output [red] lags the input [blue] by about 13ms as the output voltage follows the input.
Bear in mind, this lag is expected and I attributed it to normal behavior, after all, nothing can respond instantaneously. Also, it is not a realistic situation for the MAP sensor to swing immediately in value by a full 5V. Changes in pressure will vary between wide open throttle and idle which as measured earlier is only about 3.2V. Even then, the actual MAP sensor will progress as opposed to jumping instantly which means the output lag will not be nearly as far from actual. This test essentially established "worst case" signal fluctuation in order to see how the SMT6 piggyback computer responded.
I continued to mess around with the square wave generator at this point. The previous capture was performed on a 1Hz signal wave. At this time, I bumped up the frequency to 100Hz and noticed the 13ms lag was too slow to accurately follow the 5V swing. It turns out the SMT6 can match the input signal only at a rate of about 15Hz. Finally, I changed the rate to 10Hz just to make the lag a little more obvious visually.
Power Up Signal Analysis
Now that I have a run-time reference for signal lag, it was time to see what sort of lag occurs when the ignition is started. All of the devices were connected to a switched 12V power supply which would serve as an activation trigger equivalent to turning the Jeep's key. At the moment the vehicle is started, the electronics power up almost instantly and the sensors are feeding data before the engine has actually turned over. This is important because at ignition, the ECU samples the MAP sensor without any engine vacuum to establish the ambient pressure. This value is used to help the ECU decide when to switch from closed loop to open loop operation and typically comes into play when the vehicle is changing operating altitude. At sea level, the MAP signal should be approximately 4.5V which represents 14.7 psi.
This graph's lag looks significantly different than the baseline established before. It took roughly 1/3 of a second before the output MAP signal was synchronized to the input. Visually, the output MAP signal is slower to synchronize by a factor of nearly 30 which implies that something was going on in the SMT6 at power up that does not happen during typical operation. It seems intuitive the delay is related to the SMT6's initialization process.
I don't have access to any detailed specifications on how the 2005-2006 Jeep Wrangler ECU operates. Since the MIL/CEL error reports a low MAP voltage, the ECU clearly seems to sample ambient pressure within that first second which essentially has resulted in a race condition. Chrysler changed the Wrangler ECU's in 2005 in preparation for the drive-by-wire, electronic nature of the new JK series and I suspect the new hardware must startup faster than the 2004 and earlier ECUs. The oscilloscope has clearly shown why the MIL/CEL only occurs at startup as its the only situation where the output voltage lags the input by such a wide margin. If the ECU were to sample ambient pressure during this SMT6 boot process, the low voltage would essentially mean the Jeep is operating atop Mount Everest.
There's another observation to be made from this capture. Once powered up, the graph shows the MAP output as about 0.46V less than the MAP input. As mentioned in the configuration background, that's the voltage limiter that is set in the SMT6 programming. This keeps the signal limited to about 14.7 psi max regardless of how much boost is in play to prevent the stock ECU from misbehaving, which means the limiter is programmed and operating correctly.
Fixing The Problem
Now I know that I have to get the SMT6 powered up before the main ECU. The piggyback is currently spliced into the C1 and C2 wiring harness looms of the ECU. Unfortunately, the only 12V source into the ECU (on connector C1) is triggered on the vehicle's ignition only. The ECU maintains its volatile memory via a constant 5V wire regardless of whether the Jeep is on, but that's not enough to keep the SMT6 operating. Therefore, the fix is a simple matter of removing the SMT6's wiring taps from the ECU's ignition wire and directly attaching it to a constant 12V source within the fuse box. The unit only draws about 30mA which means it could be left on all the time, much like the standby power in your stereo to maintain time. I'll probably wire in a switch though which adds a little extra vehicle protection - if a thief doesn't find and flip the new power switch, the engine won't run at all. Problem solved!
Supercharged Jeep Wrangler!
Just for those interested in the performance gains of a supercharger on a Jeep Wrangler, this is my TJ on a dynometer at RippMods shop in Staten Island. The company has upgrade the kit to a new version of the supercharger kit since my prototype. Generation II uses a Diablo tuner to reflash the core ECU to handle boost natively and completely eliminates the need for using the SMT6 piggyback controller. Plus, they've added a water intercooler in place of the prototype's methanol injection method of intercooling.