2005 BMW 325 P0171 P0174 227 228 Fault Codes Dinan Stage 2

The BMW had fault codes 227 and 228 stored (P0171, P0174) indicating a lean fuel system. This means the vehicle is running lean and the DME has tried to correct the condition but has reached it upper limit. Fault codes 227 and 228 are specific to a fault when the engine is at part throttle (not idle). This tells us that it’s unlikely the lean condition caused by and engine vaccum leak.

codesa

First I ran engine until it reached operating temperature. Then monitored fuel trim at idle using my scan tool. As you can see the Idle Load fuel trim is normal.
scan3

Next I went for a drive in the vehicle. I ran the engine through each RPM range from idle, steady cruise to WOT (wide open throttle). You can see the Part Load fuel trim is indicating a lean condition, (by adding fuel) during my entire test drive. Part Load does take some time to update, so I suggest a 15 minute test drive at the minimum.
scan1
During my test drive I am able to eliminate many possible causes of the lean condition. For example; I monitor Idle Load fuel trim at idle to see if it could be a vaccum leak. That coupled with freeze frame data ruleda vacuum leak out.
I also perform a WOT test on the fuel system. If the oxygen sensor holds above 800 mv for the entire time I am at WOT, the fuel pump and fuel delivery system can deliver enough fuel. Next I check the engine and exhaust system by looking at G/PS or Kg/H. This reading tells me about engine efficiency. I can estimate the amount of air at a given RPM, therefore testing the MAF sensor without touching it.

The 325 had Dinan performance software and an airbox, or what they refer to as Stage 2. I was convinced the problem was with the Dinan components but I have only an hour to prove this to be correct.
engine

The airbox in modified by introducing a cold air intake, removing a baffle and changing the filter from a panel to a version of a cone style.
airbox

Here’s what I did.

I found the area where the baffle was removed (Dotted White Line) and temporarily mounted a piece of plastic in place.
airboxinterior

I plugged the cold air intake port with a plastic cap.
airboxplug

Next I reprogrammed the car back to the factory DME software.
progman

I went for a test drive, repeated the same RPM ranges as my previous one. The Part Load fule trim began to drop into an acceptable range.
scan3

Next I contacted Dinan with the information. They agreed to write a custom DME map for this car. Once I received the map I programmed the car again with Dinan’s MIP tool. It took a week or so to receive the new DME map, so the vehicle owner had to drive with the MIL light ON.
dinansoft

Once programmed I test drove the vehicle aagin, within the same RPM ranges. You can see part load came back down to a normal range and the vehicle is no longer exhibiting a lean condition.
scan4

This is a tricky fix. Without my standard fuel trim drive cycle test (to test components during the test drive), I may have replaced parts that were not faulty. It is important to approach each and every fuel trim fault the same way. A structured test plan will build confidence and make quick work of these common faults.

2000 Ford Windstar 3.8 P0171 P0174

Vehicle had fault codes for lean fuel system, both banks.
codesa

This indicates a problem affecting the entire engine.

With fuel trim faults, freeze frame data is a great starting point. Freeze frame data indicates fault codes set at idle.
freeze.framea

Monitoring fuel trim during a test drive confirmed the vehicle was lean at idle. Note the graphs below indicate lean at idle. Once the engine RPM is raised from idle to 2500 rpm (in PARK) the fuel system is no longer lean. A vacuum leak can be detected this was. As the amount of unmetered air is larger (or comparable) compared to metered air. Once the RPM is raised the metered air amount becomes greater than the unmetered amount (vacuum leak).
idlea
2500a

After this I spoke to the mechanic who was working on the Windstar. He stated the same fault codes were present last month. He found a leaking intake manifold and a TSB. Therefore he replaced the front valve cover and intake manifold profile gaskets.

DSCN2259a

I quickly checked over his work. Everything looked in place. The only spot that propane could influence fuel control was at the intake manifold runner control bushing. I found this to be normal as all 3.8 intakes will have some level of leak here. New lower intake manifold does not remedy the leak.
DSCN2258a

I looked over the TSB and asked if he performed a needed PCM updated. They had not.
DSCN2260a

Next up I reprogrammed the PCM.
DSCN2263a
DSCN2264a

After the PCM software update I test drove the vehicle and confirmed it was now in proper fuel control. A second test drive confirmed the same result with no fault codes.

The shop was half way there. They performed almost all the needed repairs. A simple software update and they were done. With computers controlling almmost every function on late model vehicles it is always smart to check if software levels are up to date when performing repairs.

2000 Toyota Tundra 3.4 P0171

I arrived to a 2000 Toyota Tundra 3.4 running rough with a P0171 that was cleared by the shop. They had in hand fuel fouled spark plugs and no explanation as to why.

I connected my scan tool and observed the fuel control and feedback PIDs. I found fuel trim to be positive (indicating a lean condition) at idle and at 2500 RPM. This ruled out a vacuum leak.

The engine air flow was 7.56 grams per second (GPS) at idle. With an engine size of 3.4 lites I expected to see a GPS number close to that. A general rule of thumb: An engine flows about 1 GPS at idle per liter. For example a 2.0 liter engine would flow about 2 GPS at idle.

DSCN3175a

With a reading twice what it should be normally I wanted a close look at the sensor. Gaining access was easy, the mass air flow sensor is mounted in the air intake after the air filter near air box (arrow).

DSCN3188a

Once removed the mass air flow (MAF) hot wire was clearly covered in debris. This can lead to a skewed reading. When the hot wire is covered in dirt at idle (low air flow) the dirt acts like a radiator, cooling the wire and reporting a higher than actual reading. Off idle, the dirt acts like an insulator, protecting the hot wire element from the passing air and it’s cooling effect. This leads to a lower than actual air flow calculation.

DSCN3181a” />

The dirt was cleaned and the MAF sensor was installed.

DSCN3186a

The reading dropped a few tenths of a volt but not quite enough.

DSCN3189a
After confirming the reference voltage and ground was good to the MAF sensor I suggested replacing it. The MAF sensor itself was faulty.