BMW E46 Fanatics Forum banner

21 - 32 of 32 Posts

·
Registered
Joined
·
38 Posts
No. It's STFT's that are 0 in open loop. LTFT's are "remebered" and taken "into account" even in open loop. Say if DME learns it always has to add some amount of fuel at some engine load it'll compenaste and add more fuel even while running in open loop. These engines tend to enter closed loop much sooner than fully warmed. I believe as soon as O2 sensors are warm enough to generate high enough voltage.

Take a look at line 450 in his log. It's where it enters closed loop. The telltale sign of closed loop is STFT's are no longer 0 but start to cycle around 0 and O2 sensor voltages start to cycle between ca. 0.2 and 0.8V. Both bank fuel systems statuses change to 2, with 2 meaning a closed loop. The engine coolant temperature at 42°C tell the engine's still from fully warmed up status at that point. LTFT vaues stay the same all the time in his log no matter coolant temperature or being in closed or open loop or RPM. They are exactly opposite to each other so they certainly do seem to be a default value. And I already explained why I believe there's default values logged instead of proper LTFT value.
 

·
Registered
Joined
·
2,347 Posts

·
Registered
Joined
·
151 Posts
Discussion Starter #23
Thanks for the input so far. Please keep them coming.

1. Polling rate is set to 200ms, but I can also see some problems, I might have to run another heat up cycle with lesser attributes and different polling rate. Which ones can be removed? Is there anything that should be added?

2. Regarding LTFTs: I did a complete adaptation reset not long ago in INPA. LTFTs definitely default to 0 and my values -0.78125 and +0.78125 seem to be real based on a couple heat up cycles. I haven't done a real drive cycle since the reset. Same values are reported by INPA under "petrol adaption value additiv", which I believe is LTFT for idle condition. Multiplicative is for load condition? Could be wrong.

3. Yes, I'm basically in closed loop after 30 seconds of engine operation.
 

·
Registered
Joined
·
38 Posts
1. LTFT's in your log aren't 0. For bank 1 they're negative and for bank 2 they're positive. You can't add both banks and say they're 0. If those trims were real it would mean bank 1 ran on the rich and bank 2 on the lean side.

2. LTFT isn't fixed value. DME learns LTFT for different conditions (engine load/speed,...). In your log RPM changes so if those values were real they should have changed at least a bit with different RPM.

3. Chances of one bank being rich exactly the same amount the other being lean are practically none.

4. While standing still LTFT's will never get learned. Additive value that can be seen in Inpa gets learned instead.

5. Generic OBD2 software can't log additive value and convert it to LTFT properly because Additve value is not standard OBD2 PID.

All of these point towards your LTFT's being a default value.

You seem to be chasing rich conditions fault but your cold startup seems similar to what a vacuum leak could have caused. I'd not rely on generic OBD2 software and make sure the additive values in Inpa are negative before chasing a rich fault. And also make sure lambda integrator values on same Inpa page cycle roughly between 0.97 and 1.03. It takes almost no time and zero effort to check it so there's no reason not to.

EDIT: Maybe I missed or misunderstood
Same values are reported by INPA under "petrol adaption value additiv"
Are you saying "petrol adaption value additiv" values for Bank1 and Bank2 are -0.78125 ms and +0.78125 ms respectively? I find that very hard to believe. Those values should be in -0.35 - 0.35 ms range. Anything outside that range should trigger engine light and rich/lean error codes. Also additive values in Inpa are rounded two digits behind the dot, not five.
 

·
Registered
Joined
·
151 Posts
Discussion Starter #25
I did not say I added them together, I said when I reseted the petrol adaptation in INPA, LTFTs showed up as 0 in OBD Fusion for both banks, then they changed. First Bank 2 went +0.8%, then Bank 1 went -0.8% as I was through a couple heat up cycles. I don't how long it takes them to change during a single heat up cycle with the car being stationary.

Ok, let's say I have a huge vacuum leak which prevents the engine from starting. Why can't that be seen in the STFTs? I scrolled through and even if there was one, it went away for good. Actually I can see some very rich conditions at around line 500 once engine went closed loop some 30 seconds after it finally started. But that rich condition can just be due to previous failed start attemtps.

Here are some INPA screenshots at hot idle, unfortunately these were taken during the next heat up cycle after adaptations were reset, still integrator values might give something away:
pic 1, pic 2
 

·
Registered
Joined
·
151 Posts
Discussion Starter #26
Hmm, did not realize that additive is ms and multiplicate is %. I believe INPA can't do logging, so I have to keep checking it, right? What should be the optimal values for integrator, additive and multiplicative at hot idle?
 

·
Registered
Joined
·
2,347 Posts
30 seconds for closed loop is not my experience looking at my fuel trims. jfoj could probably shed some light on this. There may be a difference between when the computer starts looking at the o2’s and when it starts controlling the loop.


Sent from my iPhone using E46Fanatics
 

·
Registered
Joined
·
38 Posts
Integrator values are basically what STFT is calulated from. While in closed loop they should fluctuate all the time in that narrow green window. In OBDFusion this should be seen as STFT's cycling a few % above and below 0% all the time.

Additive value window in DIS is between -0.35 and +0.35ms. Although more than +/- 0.2 ms is considered quite bad. I like to see mine under 0.1.

I'm not sure for the multiplicative value. The lower the better but I'd say up to about 8% shouldn't be an issue.

Inpa can't log and even can't do graphs so it sucks for monitoring data. But there's free software named TestO that can log and graph values from Inpa. It has clumbsy user interface and paramater names are incosistent and half english half german but can be quite useful if you figure out how to use it.

In theory: Say you had a vacuum leak and you reset adaptations and started the engine. As it entered closed loop STFT's should go positive and consiquentially additive value in inpa should rise until enough fuel was being added to compensate for the vacuum leak. At that point additive value should stay steady and STFT's should cycle a few % positive and negative all the time.

STFT's themselves can't be used to tell rich or lean conditions. It's LTFT's (or in case of BMW idle additive value) that compensate for lean or rich conditions until those are evened out enough for STFT to start cycling a few % above and below zero. The purpose of STFT is just to keep catalytic converter happy. For proper function catalytic converter needs to store enough oxygen and HC to convert them CO2 and H2O. And it's achieved by STFT constantly cycling between slightly rich and lean.

Now for those negative STFT's in your log. It's hard to comment because there's no way to tell what the additive value was. All the processes didn't start at the same time too so some of them might be out of sync and the PID response seems much slower than real-time engine management commands. Upstream O2 voltages often seem to be out of sync with STFT response to them.There's many RPM fluctuations but throttle position is 10.19% all the time the engine is running.Something seems to be wrong with logging this PID. Unlike yours my car still has throttle cable but OBD2 software can't read throttle position either. So I guess it's another PID that won't work with E46 BMW. There's no way to tell which of those RPM fluctuations were caused by you adding throttle and which were caused by engine management.

Around line 500 they're -17%/-15% and they are gradually rising until both are above -3%. What's probably happening here is additive value in Inpa is being lowered until rich conditions are evened out enough for the STFT's to cycle around 0%. If before those negative trims additive value was 0, that would mean running on the rich side that had to be corrected. But can't tell if that was the case as the additive value might as well have been positive from a leak that wasn't present anymore or something like that.

What I noticed in your log airflow at 700RPM idle seems to get lower with engine is getting hotter. As idle settles for the first time it's about 5 g/s, same idle speed towards the end of the log is 3.85 g/s only. I noticed similar thing going on when I had my lower intake boot leaking. And it wouldn't behave like usual vacuum leak because leaks before throttle plate technically aren't vacuum leaks. Trim readings at idle were normal (even slightly rich IIRC) but got lean with high RPM and as engine got warmer. And cold start conditions were similar to yours. Car immediately stalling a couple of times after it cooled down over night. When warmed up a bit it would start and idle fine. But it was behaving worse than yours took more starts to make it run and would even throw trim and misfire codes intermittently. Trying to help not to stall by adding throttle made cause loud intake pops. And also unplugging the MAF helped it start at first time cold which isn't your case. But your hole just might be smaller for now or on a different location.

I know it might not completely fit the picture with what is happening to the fuel trims in the log. But maybe worth checking out as it's not a lot of work.
 

·
Registered
Joined
·
38 Posts
30 seconds for closed loop is not my experience looking at my fuel trims. jfoj could probably shed some light on this. There may be a difference between when the computer starts looking at the o2’s and when it starts controlling the loop.


Sent from my iPhone using E46Fanatics
Don't think so. It's not O2 sensors that are driving the voltage up and down it's the DME causing alternating O2 voltage by fluctuating short term fuel trim. So open loop is controlled by the STFT. As soon as STFT is not zero any more that means engine management entered closed loop. I've never measured the exact time but 30 sec sounds about right for my M52TU engine too.
 

·
Registered
Joined
·
2,347 Posts
Wow. What a brain dump of great information. I agree 100% with all of the parts I have experience with.


Sent from my iPhone using E46Fanatics
 

·
Registered
Joined
·
151 Posts
Discussion Starter #31
Thank you loty1825 for the detailed answer. I already installed TestO and am through a heat up cycle: log. I think the synchronization is not perfect here either, but additive and multiplicative values look similar to what you've described. It took 5 starts to fire it up and make it stay running. First 3 attempts were without throttle. 4th and 5th with throttle. What's weird for me is that it does not show injection time until 4th start attempt with throttle applied.

Screenshots from INPA with hot idle:
1, 2, 3, 4
 
21 - 32 of 32 Posts
Top