Monday, February 17, 2020

Check engine light BMW 3 Touring E46 Fuel trim (Bank 1) P0170

Unfortunaltely my car had an issue passing the emissions test. This was expected since my orange check engine light was on since a dealer visit.
After checking with the ELM327 it appeared that the fuel trim of bank 1 was at fault. According to the BMW service manual(google, gen.lib.rus.ec) the lambda was too long beyond min. or max.













According to many sources this can be multiple things:
  • engine ventilation valve
  • vacuum leak
  • MAF sensor
  • exhaust leak 
  • water temperature sensor
  • air temperature sensor
  • lambda sensor pre-cat
  • fuel pressure
  • air pump
  • steppermotor 
Checking under the hood, the engine was making a lot of strange noises. The rubber inlet tube between MAF and engine was ripped by the dealer when they changed the airfilter... The engine ventilation was making a hissing noise and was sucking air into the little vent hole so the membrane inside was broken.

Cleaned the MAF with some IPA. And checked it's functionality, between 1V and 4V. Also good.

After replacing the carter vent and inlet hose the check engine light was still on. Bummer.

Closing the intake off and blowing cigarette smoke in the engine, all small vacuum tubes to the air pump, in the front of the engine and on one injector where leaking.
Replacing all still didn't cause the check engine light to turn off yet..

But the next morning... The error codes where cleared by the engine management system and result! I forgot to do a reset. Check engine light off! And it passed the emissions test with flying colours.


BMW 3 Touring E46 | 1999.06-2005.05 - 318 i - 1895ccm 118hp M43E19







































buitendiameter = 70;
binnendiameter = 64;
hoogte = 20;
difference(){
    union(){
        
        difference(){
                translate([0, 0, 0])cylinder(r=buitendiameter/2,h=hoogte+3,$fn=80);
                translate([0, 0, -1])cylinder(r=binnendiameter/2,h=hoogte+1,$fn=80);
        }

        translate([0, 0, 10])cylinder(r=10/2,h=10,$fn=80);
    }
translate([0, 0, 0])cylinder(r=7/2,h=hoogte+4,$fn=80);
}