The Central Hub for DSM Community and Information

For 1990-1999 Mitsubishi Eclipse, Eagle Talon, Plymouth Laser, and Galant VR-4 Owners. This is where the DSM platform history is documented and archived. Log in to help us in our mission, and to remove most ads from the browsing experience.

ECMlink Locking in Open Loop, wideband switch point

Who found this info extremly helpful?

  • Hell yeah!

    Votes: 2 66.7%
  • Nope

    Votes: 1 33.3%
  • I'm still confused :p

    Votes: 0 0.0%

  • Total voters
    3

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

LiquidX

DSM Wiseman
8,280
130
Sep 19, 2008
Anywhere, Pennsylvania
I was out messing with the car earlier and fixed 2 major exhaust leaks. Loose WB sensor and the first Vband for my waste gate was leaking. After fixing them my car would stall out easily (rpm drops low and doesn't catch). I suppose my "tune" compensated for the leaks.

I came across this post from Tom
The +5% STFT when locked in open loop is just how the factory 2G code behaves. We decided to leave that functionality in because that's how people have been running for years and we didn't want to introduce a behavior change into their ECU when we added the "lock in open loop" option.

It's the exact same change as anyone running 450s and gasoline too. It's still just a 5% change. It should change a 14.7:1 mixture to a 14.0:1 mixture whether you have 450s, 1500s, E85 or gasoline.

Thomas Dorris

So based on this, my AFREst will be off like what is shown in my log, should I raise the octane DA table to something like 15.4AFR at idle to achieve a 14.7AFR I set my WB to?

Coming out of open loop lock, my trims are all messed up after setting my WB to read 14.7 when in locked open loop.

EDIT:

When locked in open loop, you'll match the wideband to the AFREst value which should be at 14:1.
 

Attachments

You must be registered for see attachments list
Last edited by a moderator:
A couple of things I notice after a quick glance:

1. The car never gets above like 174* max, so I would add 10* or so to the coolant offset just to make sure the ECU is operating fully under "warmed up" conditions. Or just let it run longer to fully warm up.

2. You should be able to eliminate the spikes on the AFRatioEst by adding a little airflow smoothing. Change the DA table to something like 10.5% for idle, and then 10.5% up to 2000rpm, and 25% or so above that....then uncheck the "Disable airflow smoothing with SD" box on the Misc tab. You'll have to play around with the values a bit to get the best response and drivability.

3. Something looks strange with the way values are changing...especially at 229 seconds in. Were you making adjustments while the log was running? If so... stop it! :p

4. Your VE table is pretty whacked out. :) Ideally, it should look something like this one that Sam from RRE posted up, although I notice the low RPM/airflow values (upper left corner) to be a bit higher on my car.

Post up another log with the car warmer and no changes if you can.
 
Last edited by a moderator:
Coolant offset is at 35* so I am running colder. If you notice, you'll see my fan coming on around 173*.

Yes, I was making adjustments, I was trying to show that nothing was altering the AFREst values. I was confused when it was going on.

I'll go and get a log of how it is sitting right now.

Here is the new log. I didn't click, alter, change anything other than turning on lock in open loop and my coolant offset.
 

Attachments

You must be registered for see attachments list
I'm not seeing the coolant offset. (If a positive one is applied, it makes the ECU think the car is hotter than it really is... so fuel trims, etc. are updated at cooler temps.)

But... after you mentioned the fan, I noticed that your AFR changes drastically when the fan kicked on and battery voltage dropped. This points to your injector deadtime being off at different battery voltages. You need to adjust the InjBatteryAdjust DA table to reflect the latency of your injectors at different voltages. (The global deadtime value on the fuel page gets added to these values).

On my Blue Max 1250's, I run a global deadtime around 475us, and these values in the InjBatteryAdjust table:

Code:
7	1845
9	1152
12	840
14	660
16	470
19	456

I don't know how accurate these values are, but I used FIC's data and they seem to work pretty well for me.
 
Running 475uS, the car runs like ass unless the VE table is adjusted out. Doing that, the AFperRev is up in the 30s I believe.

How or where did you come across those values for injector battery?
 
Running 475uS, the car runs like ass unless the VE table is adjusted out. Doing that, the AFperRev is up in the 30s I believe.

Yeah... you definitely have to readjust the VE table if you change the deadtime. Also, remember that the 475 gets added to the battery voltage offset; so if you don't also adjust that you'll get unexpected results.

With 475us global deadtime, you would be right around 817us with your current voltage adjustments at 13v, whereas I would be at about 750us at 13v and 475us global.

As for the AirflowPerRev value...I've never payed much attention to it on my car as long as AFRs and everything else lines up. :)

How or where did you come across those values for injector battery?

I used the latency test values on a FIC datasheet that Jens sent me, and then extrapolated the remaining voltage values. Tom found that the FIC injectors (or any of them for that matter) react differently with our ECU drivers, so those numbers may or may not be accurate. But, they are the best values I could find to work with and seemed to be pretty decent.

*************

EDIT:

Looking at that last log, the temp is still rising towards the end and AFR is still slowly coming down...so you never really reached a steady state. Also, 35* is a bit high for the coolant offset. You want to use a value that when added to the actual operating temperature, is about 5* above the learn mode point... which I believe is 180* on a 2g. So if you are at 175* max, use 10* for the offset. But, it looks like you are actually warming up past 180* in that last log (190* at the end of it), so you shouldn't need an offset at all.

Add "OffsetCoolTmp" to your captured values, just for giggles.

You may also want to check the lock boxes on the ECU inputs tab for IAT and baro, and possibly the MDP...although I'm not sure how this would affect things since you are using the MDP input for the Omni 4-bar and SD. (Us 1g guys don't have factory MDP sensors LOL.
 
Don't mind the coolant offset Craig, I'm using a 143* thermo to keep cooler. The 35* is so the fan comes on are the lower temp otherwise I don't cool down too well. The fan comes on because the ECU believes it's at 210 when the fan would normally come on.

Anyway, I went and adjusted the injector batter to the values you said above and put my dead time to the 475. My VE table for idle is now extremely high and I go rich when the fan kicks on.

I'm not quite sure exactly of how to adjust the injector battery or why I'm using 475 global dead time. This is all Russian to me.
 

Attachments

You must be registered for see attachments list
Yeah... looks like your setup definitely needs a higher deadtime, but 600us plus the stock battery table values just seems a bit high.

The whole global deadtime + battery voltage adjustment table thing can be a bit confusing. A better way to think about it is to assume a global deadtime of 0, and then all of your deadtime adjustments would be done with the battery table. Injector latency (same thing as deadtime) is affected by voltage, so you need different values at each voltage.

The global deadtime is just an easier way to make adjustments across the board without having to turn the car off and tweak the DA table. If you set the global deadtime to 0us and added your 600us or whatever to each value in the battery voltage table, you'd get the same results.

I would probably set your global and battery voltage values back to what they were...and then when a fan kicks on and voltage drops, tweak the corresponding point(s) in the battery voltage table to try and flatten the AFR back out.

What base fuel pressure are you running, and what type of fuel? Your global fuel value could also be off a bit, which obviously also affects things.

Unless you are running pure gas with no alcohol added, your global is a bit lean. As an example, cheap gas that has 10% alcohol added, at 43psi base on 1250cc injectors would require a global fuel value of about -62.6%. Gas with 5% ethanol would be around -63.4%. This is assuming your 1250's are really 1250's of course. :)
 
Last edited by a moderator:
Pump 93 or 91, 43.5psi (stock pressure). So when the fan kicks on and I lean out, I'll add more deadtime to the injector battery point to richen it up. So get it to where it's good via global and then tweak in the DA table?
 
So when the fan kicks on and I lean out, I'll add more deadtime to the injector battery point to richen it up. So get it to where it's good via global and then tweak in the DA table?

Yep. Or remove DT if needed...just depends on which way the AFR's go. You'll probably be right at 13v when the fans kick on, which is dead in the center between the 12v and 14v breakpoints in the table. So you can either tweak one or the other, or both. Personally, I would work on the 12v value, since battery voltage is more likely to be around 14v under normal conditions and that value should be close.

Unless the pump says "100% gas" or "No ethanol", you should test the gas just to be sure of what you are dealing with. Grab up one of these testers; they are invaluable.
 
Last edited by a moderator:
As I mentioned in the PM, I keep thinking you are on a 2.3l and that our setups are very close. But since you are on a 2.0l, that accounts for the differences we see in the injector settings, even though we are running the same injectors, fuel pressure, fuel pump, turbo, EM, etc. Mine would be operating over a somewhat different range of pulse widths than yours, due to the difference in displacement and airflow.
 
Feast on this Craig. I got base latency settings for the injectors, plugged them in, changed my NB switch point (Dave told me to change it to 2.68v), and managed to get everything in line to my understanding. It was a complete pain to get it in check, my FTs were holding at -29% and every change I made didn't do anything. Eventually got my VE table to read 50 at idle, my closed and open loop idle at the appropriate 14.7ish and 14.0 respectively. My usec is down to 120 now :thumb: from the 600s.

Adjusting the injector battery settings is more painstaking due to having to shut the car off for each adjustment but it's so much more accurate. Here is a log showing open and closed operation, with and without fan. Let me know what you think of this.

Dave also mentioned that apparently my ICS is failing. It's adjusting but there is no change in RPM and I kinda took notice to that yesterday trying to set a new RPM idle.
 

Attachments

You must be registered for see attachments list
Last edited by a moderator:
Cool. I'll check it out when I get home and have a cold one in my hand. (It's my FRIDAY on a 4-day weekend!)

I glanced at the log, but will look at it closer a little later. If this is the log Dave looked at, I'm not sure what he is seeing in regards to the ISC. It looks like it's working properly and maintaining the idle RPM's to me... unless you were adjusting RPM while logging and it wasn't changing (which Dave can see but we can't).

BTW - Are you using anti-lag and the EGR solenoid output? They are both activated in the log.
 
Last edited:
I was trying to set the BISS yesterday and I couldn't get the ICS position lower than 35, RPMs wernt moving much at all if any from the ICS.

I do have anti-lag enabled and the EGR is for my meth pump. They should both be checked but not activated during an idle log with 0% throttle.

I could use a cold one as well...Sucks not having a job.


The one thing I noticed in my log is at 0.8v (narrow band), my wideband goes rich by almost a full point, opposite at 0.2v. Is that where the switch point for NBS would be adjusted?
 
Last edited by a moderator:
The one thing I noticed in my log is at 0.8v (narrow band), my wideband goes rich by almost a full point, opposite at 0.2v. Is that where the switch point for NBS would be adjusted?

No... the .8v and .2v are the simulated outputs (within the 1v range of a real NB sensor). The switch point is the point within your wideband's 5v output range where you want it to switch between those two output voltages. You should see the simulated signal alternate between .8v and .2v no matter where you set the switch point, at least with most widebands I think.

As an example, the simulated NB signal could switch from .8v to .2v when the WB crosses 2.0v, or it could switch from .8v to .2v when the WB crosses 3.0v. They are normally set to switch somewhere around 2.5v; adjusting the value higher will let the car run leaner in closed loop, since the targeted 14.7 switch point is happening at a higher true AFR.
 
Probably.

I would just set it to match whatever voltage equals 14.7 on the wideband's output until you get everything tuned...then you can raise it a bit for a little better gas mileage if you want. It's not that critical though unless you go more than a volt or something. About the only thing that will happen when you change it is your fuel trims will be off a bit...which is why you want to get everything tuned at a true 14.7 switch point first.

Did my explanation make sense as to how the NB signal works and is being generated? I just re-read it and I'm not sure. :)
 
I suppose. How to I verify or figure out what the 14.7 switch point it, will that be shown by the wideband somehow?

EDIT

See post 24 or 25 for information on the switch point
 
Last edited:

Here's another analogy.

Your hand is on a light switch, and you are watching a clock face where the second hand is just randomly spinning around (it's a cheap clock :D). Every time the second hand goes past 10:00 CCW, you turn the switch off. Every time it goes past 10:00 CW, you turn the switch on.

Your brain is the ECU, your eyes watching the clock represents the wideband, and the switch voltage is the simulated NB output. My example of 10:00 would represent the switching point; no matter what time you decide to flip the switch at, you will still get either 0 or 120v out of the light switch.

That is how a NB O2 sensor works; when the output voltage crosses a built-in threshold, the ECU sees that as a change from lean to rich or vice-versa. The only difference between a true NB sensor and the simulated one is that a NB sensor outputs a varying analog signal from 0 to 1v, where as the simulated one is a generated digital signal (a square wave that goes from .2v to .8v).


How to I verify or figure out what the 14.7 switch point it, will that be shown by the wideband somehow? There isn't any info regarding it anywhere so it's a mystery just like most of the tuning stuff :(

You have to find a voltage map for it; most manufacturers provide one. It just shows the AFR that each output voltage represents. Sometimes it's a list of values, sometimes it's drawn as a graph, and sometimes it's listed as a simple transfer function if it's a linear output.

Here is the one for my Zeitronix for example (it's just a graph that represents the transfer function, which for the ZT-2 is AFR = 2*V + 9.6):

Zeitronix Zt-2 Wideband Analog Output

At the bottom of that page you can see a graph that represents the voltage-to-AFR mapping for a non-liner output.
 
Ah hahah, I know how the narrow band works :p, I just wasn't sure how the values for the switch point was achieved. Dave just spat it out at me what voltage I needed.
 
EDIT

For anyone that does want to know, the wideband voltage is logged under Link. It's listed under
Displayed Values--->Raw Values (one of the center buttons)--->(which ever pin you have your wideband hooked to, I'm on the front so it would look like) RawFrO2VoltsInput

You would find a point on your log where your wideband reads 14.7 and use that as the switch point number. Try to see what all the variations in the log are for that value which is fount at 14.7AFR and just try to get an average for it.
 
Last edited:
I was going to ask what Log Works is, and then I ran across the manual to that WB. In it, I found this image:

You must be logged in to view this image or video.


So apparently, that software lets you define your own voltage to AFR curves... so yes... open it up and see what voltage you have 14.7:1 AFR mapped to. I couldn't find anything that shows the default values, but according to that graph ^, an AFR of 14.7:1 looks to be right at 2.5v.

Something else to keep in mind is that the sensor definition in ECMLink also needs to match that graph shown in the pic. The best way to do it would be to assign the WB input as a linear WB, and then set the properties for min/max voltage and min/max lambda to match that ^ graph. Unless there is a predefined MTX-L sensor in Link that matches the factory voltage curve (I've never noticed or had a reason to look for one), and you are using the factory curve of course.

Personally, I prefer to use generic sensor definitions with custom properties even if predefined ones exist, because it allows you to compensate for variations in the sensor output.

I thought it would be something that was logged, guess not.

Well it is logged actually. You can display the raw voltage value for the input that you have the wideband on, and then compare that to a point that is showing an AFR of 14.7:1. In your case, that parameter is called "RawFrO2VoltsInput (MTX-l WB)" in the raw value pick list, and it shows up as "RawLinWB" in the legend once added.

The problem with this is that the wideband value usually fluctuates too much and too rapidly to get a good reference, and you may be looking at some amount of error due to the resolution (data rate) of the ECU logging and the wideband properties that are assigned. This is just a hunch I have... for all I know the instantaneous raw voltage at any one point may exactly correlate to the true AFR that the WB is measuring.

FWIW, I found an area in your log where the average AFR is 14.7:1 and the average raw O2 voltage is 2.66v. That may be pretty close since it was an average taken over about 10 seconds...but IMHO your best bet is still to use a published voltage value from the manufacturer. It is interesting though that this is very close to the 2.68v value that Dave recommended. :)
 

Attachments

You must be registered for see attachments list
Last edited by a moderator:
Here is my volt sheet that was done. I have it set to 2.59 for the switch point :thumb:

You must be logged in to view this image or video.
 

Attachments

You must be registered for see attachments list
Last edited by a moderator:
Add Value - Be Respectful - No Trolling - No Misinformation - Participate Often!
Support Vendors who Support the DSM Community

Build Thread Updates

Latest Classifieds

Back
Top