Log in

View Full Version : Need some help.



J.Abbott
September 6th, 2010, 04:04 PM
Does this look right. I can't get the pid for the Lambda error to work. It just comes up with a Red X. Any help would awesome. I have a allot of new gray hairs trying to figure this out.
Thanks
Justin
#NGK WBO2
# ========================
*CLC-00-026
V 0.0 5.0 .1 "{EXT.AD1}"
AFR 9.0 16.0 .1 "{EXT.AD1}*1.4+9"
*CLC-00-027
factor 0.62 1.10 .0 "{CALC.NGK_AFR}/{E38.AFRATIO_DMA}"






# ================================================== ============================
*PRN - Parameter Reference Numbers
# --------------------------------
# See sae_generic.txt for more information on the *PRN section
#
#Code PRN SLOT Units System Description
#------------------------- ---- ------------ ---------------- ---------------- ------------------------------------------

CALC.AFR_NGK F001 CLC-00-026 "AFR,V" O2-Wide "Wide Band AFR 1 - NGK"
CALC.Lambda_Err F002 CLC-00-027 factor O2-wide "Lambda Error"

5.7ute
September 6th, 2010, 04:45 PM
What does it say when you right click on the pid & select more info. I would say that you havent selected one or more of the parameters that your pid needs.

mr.prick
September 6th, 2010, 06:24 PM
Try validating all PIDs.
This happened to me recently with a different PID and I didn't think this would be needed because it's a calc_pid.

Also his won't give you "Lambda error". ;)
It will give you a multiplier based on AFR and most likely it won't match the stoich AFR set in the PCM.

The default wideband PIDs are helpful but the AFX one in particular isn't right for most people.

The AFX PID ({EXT.AD1}*1.4)+9 is for a 14.57:1 stoich AFR.
I don't suggest simply changing the PCM's stoich AFR for this either.
Create a new PID formula based on the Stoichiometric Air Fuel Ratio in the PCM.

joecar
September 6th, 2010, 08:08 PM
In CLC-00-027 replace {CALC.NGK_AFR} with {CALC.NGK_AFR.AFR}.

[ CALC.NGK_AFR has two instances (one for V and one for AFR), you have to specify which one ]

Post your calc_pids.txt here.

J.Abbott
September 7th, 2010, 01:20 AM
In CLC-00-027 replace {CALC.NGK_AFR} with {CALC.NGK_AFR.AFR}.

[ CALC.NGK_AFR has two instances (one for V and one for AFR), you have to specify which one ]

Post your calc_pids.txt here.

It did not change, it now says the error is in Position 19 instead of 15. any ideas?

J.Abbott
September 7th, 2010, 01:22 AM
"The AFX PID ({EXT.AD1}*1.4)+9 is for a 14.57:1 stoich AFR"
Can you elaborate on this, I thought a WB was just a voltage output and depending on what the voltage is, is what your A/F. It should not know what stoich is, that depends on what I make it. I like some more info on that, because it does not make sense to me, I may be wrong, and you are right, but I would like to know where they information came from and why it is.
Thanks

J.Abbott
September 7th, 2010, 01:23 AM
What does it say when you right click on the pid & select more info. I would say that you havent selected one or more of the parameters that your pid needs.
"Invalid PID, unknown parameter in position 15"

joecar
September 7th, 2010, 03:08 AM
Can you post your calc_pids.txt file.

joecar
September 7th, 2010, 03:09 AM
Connect laptop to vehicle and do Validate Pids.

mr.prick
September 7th, 2010, 03:32 AM
I try to explain this here:
How to match wideband output to {B3601} (http://forum.efilive.com/showthread.php?13229-How-to-match-wideband-output-to-B3601&highlight=WBO2+Expressions.xls)

In the spreadsheet replace the minimum and maximum Lambda values in cells B10 & B11 with the AFX's values (0.62 & 1.10)
and in cell B13 place the PCM's AFR value for stoich (Lambda1.00/EQ 1.00).

The spreadsheet will create a formula for a new calc_pid for the multiplier based on AFR.
Not a perfect solution but if commanded EQ (or Lambda) are not available from the PCM this is the way to go.

This is one of the reasons a lot of people used Lambda or Equivalence Ratio.
The LS1 has a commanded EQ PID that I use with serial EQ output for the multiplier.
I don't know if that is available for your PCM.

J.Abbott
September 7th, 2010, 03:50 AM
I am not trying to argue but to understand what you are saying.
Isn't the output voltage the output voltage always and 12.:1 AF is always 12:1. So if my meter is reporting a 2.14v then it is always reporting a 12:1 A/F ratio. So the pid I am setting up will divide my meters A/F by the Commanded A/F and give my the lambda for that cell. example, I have 13:1 A/F and my commanded is 14.22:1 so my lambda reading would be .91 in that cell. If I change my stoich to 14.44 then my meter is still showing me that I am running 13:1 but not it is dividing it by 14.44:1 which would give me a lambda of .90. The reason I do this is that I can use my Lambda errror through the entire VE and not have to worry about where I go into PE at. When my commanded changes to 12.7:1 it should pick that up. That is what I am trying to write the pid for, but it does not seem to be working and I am not sure why. Here is a copy of the .txt file.

#NGK WBO2
# ========================
*CLC-00-026
V 0.0 5.0 .1 "{EXT.AD1}"
AFR 9.0 16.0 .1 "{EXT.AD1}*1.4+9"
*CLC-00-027
factor 0.62 1.10 .0 "{CALC.NGK_AFR}/{E38.AFRATIO_DMA}"






# ================================================== ============================
*PRN - Parameter Reference Numbers
# --------------------------------
# See sae_generic.txt for more information on the *PRN section
#
#Code PRN SLOT Units System Description
#------------------------- ---- ------------ ---------------- ---------------- ------------------------------------------

CALC.AFR_NGK F001 CLC-00-026 "AFR,V" O2-Wide "Wide Band AFR 1 - NGK"
CALC.Lambda_Err F002 CLC-00-027 factor O2-wide "Lambda Error"

mr.prick
September 7th, 2010, 04:22 AM
With this: ({EXT.AD}*1.4)+9.0
3.958 Volts = 14.54 AFR (Lambda/EQ 1.00)

If Lambda/EQ 1.00 in the PCM is 14.68 AFR the multiplier will be incorrect.
You want 3.958 Volts to be the same as the PCM's AFR value for Lambda/EQ 1.00
For 14.68 AFR this the expression would be: ({EXT.AD}*1.4093)+9.102
3.958 Volts = 14.68*

When Lambda/EQ 1.00 is commanded you can just use the Lambda value as the multiplier.
For the AFX the expression for Lambda is ({EXT.AD}*0.096)+0.62

* numbers rounded to .2

J.Abbott
September 7th, 2010, 05:42 AM
So is there something in my meter that is setting 3.958 as stoich. What if the votage was reading 4.060, I guess I am not seeing the WB as a smart tool. It is just giving a voltage that we determine what it means. V*1.4+9, no matter what it should use the voltage to figure out what my A/F is based off that calculation. I guess I just don't get what you are saying, sorry but I need a absolute answer on this before I change my thought process on it. I am not saying you are wrong, but I need to know where and why.

mr.prick
September 7th, 2010, 06:17 AM
No, the PID expression for converting voltage to AFR is for stoich AFR of 14.54:1
Nothing wrong with hardware.

If ({EXT.AD}*0.096)+0.62=Lambda & ({EXT.AD}*1.4)+9.0=AFR
Then 3.9583 volts = 1.00 Lambda & 14.54162 AFR

If the PCM commands anything other than 14.54162 AFR for EQ/Lambda 1.00 the multiplier will be wrong.
AFR is based off Lambda so some math needs to be done to correctly use AFR.

If commanded Lambda or EQ can be logged from the PCM it all would be easier. :)
Is that an option or are you stuck with using AFR from the PCM?

If the PID is still not valid it's probably just a format problem or
you need to hook up the scan.exe to the PCM & validate all PIDs.
Post the calc_pids.txt

joecar
September 7th, 2010, 09:53 AM
I think mr.prick is saying that your NGK wideband is reporting the measured AFR based on stoich AF being 14.54...

check your NGK user manual (post the pdf if you have it) to see what the assumed stoich AFR is.

5.7ute
September 7th, 2010, 10:48 AM
#NGK WBO2
# ========================
*CLC-00-026
V 0.0 5.0 .1 "{EXT.AD1}"
AFR 9.0 16.0 .1 "{EXT.AD1}*1.4+9"
*CLC-00-027
factor 0.62 1.10 .0 "{CALC.NGK_AFR}/{E38.AFRATIO_DMA}"






# ================================================== ============================
*PRN - Parameter Reference Numbers
# --------------------------------
# See sae_generic.txt for more information on the *PRN section
#
#Code PRN SLOT Units System Description
#------------------------- ---- ------------ ---------------- ---------------- ------------------------------------------

CALC.AFR_NGK F026 CLC-00-026 "AFR,V" O2-Wide "Wide Band AFR 1 - NGK"
CALC.Lambda_Err F027 CLC-00-027 factor O2-wide "Lambda Error"

Try that. (Changes in red)

joecar
September 7th, 2010, 10:57 AM
Can you post your calc_pids.txt file.+1.

J.Abbott
September 8th, 2010, 04:29 AM
I think mr.prick is saying that your NGK wideband is reporting the measured AFR based on stoich AF being 14.54...

check your NGK user manual (post the pdf if you have it) to see what the assumed stoich AFR is.

Yea but what I am trying to say I guess is my AFX does not give me lambda, it gives me A/F ratio. So where does it ever tell me what stoich is? If it was reporting lambda then I would completely understand. I am getting my lambda based off my actual A/F vs Commanded A/F.

J.Abbott
September 8th, 2010, 04:30 AM
+1.

They are posted a couple of times above. The format is not coming out right when I post them vs. looking at them through note pad.
Thanks
Justin

J.Abbott
September 8th, 2010, 06:16 AM
FIXED IT. This is what happens when you look at something too long. I feel very dumb right now. My file CALC.NGK_AFR is named AFR_NGK so it was not recognizing the pid NGK_AFR because it did not exist, as soon as I switched the name around it worked fine.

mr.prick
September 8th, 2010, 07:25 AM
Yea but what I am trying to say I guess is my AFX does not give me lambda, it gives me A/F ratio. So where does it ever tell me what stoich is? If it was reporting lambda then I would completely understand. I am getting my lambda based off my actual A/F vs Commanded A/F.

The AFX gives you Lambda but does the PCM?
You will need Lambda from the PCM to compare to actual Lambda.
This is the PID for Lambda for the AFX.


#Units Low High Fmt Expression
#------------ ---------- ----------- -------- --------------------------------------------------------------
*CLC-00-027
lambda 0.00 1.60 .3 "({EXT.AD1}*0.096)+0.62"

#Code PRN SLOT Units System Description
#--------------------------------- ----------- ------------------- --------------- -------------------- -----------------------------------
CALC.LAM_NGK1 F027 CLC-00-027 lambda WO2-Analog "Wide Band Lambda 1 - NGK AFX"

It's just a matter of converting voltage to a number you want.
If the PCM gives you commanded Lambda you can use that.
If it doesn't you can always make another PID for commanded Lambda (Stoich AFR/Commanded AFR) and
then another for the multiplier (CALC.LAM_NGK1/Commanded Lambda).
If you use AFR then you need to take the Lambda range of the WBO2 & the PCM stoich AFR value to make a new PID.

The Lambda expression is absolute.
i.e. this is the true conversion for data from the AFX.
The AFR expression: ({EXT.AD1}*1.4)+9 is to convert the Lambda output to an AFR value of choice.
Think of it like this
(1+1)=2 true or (1*x)+b=2 choice

J.Abbott
September 8th, 2010, 07:58 AM
Ok, I follow what you are saying. But if I do the formula for Lambda based off what you just had for the AFX and using 3.958 for the voltage that you referenced earlier, then I get .99 lambda. My question is where does 3.958 come in at. The W/B outputs voltage not lambda or a/f, it is our equations that change them into either correct. So if I change my PCM to give me commanded lambda, then how does my meter know what lambda is 1.00. Isn't the way I just wrote the pid for WB AFR/Commanded AFR work.
I mean if my PCM knows that 14.44 is 1.00 lambda, then how do I get my lamda error from that. Maybe I am reading too far into this and confusing myself, but I am not following your logic on this. If I am converting my WB voltage into Lambda, would the formula have to change depending on what my Stoich is?

joecar
September 8th, 2010, 09:00 AM
your fuel (gasoline): stoich = 14.63
your calibration: stoich = 14.63
your wideband: stoich = 14.57 (what does your wideband's user manual say...?)

your wideband outputs a voltage that is proportional to both Lambda and AFR (since Lambda = AFR / stoich)...

mr.prick took the wideband AFR formula and divided it by 14.57 to arrive at the wideband Lambda formula.

i.e.:
- your calibration will cause the PCM to calculate fuelmass based on 14.63;
- your NBO2 will switch around your fuel's stoich of 14.63 which is lambda = 1.00;
- your wideband will indicate 14.57 when Lambda = 1.00;
- if you use wideband AFR to correct VE/MAF tables, then your correction will contain error;
- you have to correct your wideband AFR to actual AFR by multiplying by (14.63/14.57).

Yes, your formula has to change, divide it by 14.57 to get Lambda.

joecar
September 8th, 2010, 09:01 AM
Sanity check: are we all certain that the NGK wideband assumes a stoich AFR of 14.57 (i.e. we have to have the correct value)...?

Can someone post a link or pdf that shows this.

Taz
September 8th, 2010, 09:22 AM
Yes .... NGK AFX uses 14.57:1 AFR as stoichiometric ...on page 11 & 12 in the attached manual ...


Regards,
Taz

8971

joecar
September 8th, 2010, 09:33 AM
Ok, that's a very good document... :cheers:

That document has all the info for writing a Lambda calc pid (which avoids reliance on stoich AFR)...

Then if EQIVRATIO is logged, the BEN would be EQIVRATIO multiplied by wideband Lambda.

J.Abbott
September 8th, 2010, 09:58 AM
Ok, I think we are all on different pages here. I see in the manual and I understand what you are saying, but that works if I am pulling Lambda. If the meter (gauge) is saying 1.00 it has to know what the voltage is for 1.00 lambda in order to have the correct display. If the meter has been set at 14.57 stoich that is fine. I can set my commanded to what ever I want, the meter is still going to read the correct A/F ratio. If I want my Stoich to be 12:1 and the meter is reading 14.57 that is actaully what the engine is doing and with the lambda pid I wrote it will give me a lambda of .82. When I tune the VE to get 12:1 A/F which is what the engine is doing then my lambda will read 1.00.
The reason I did it this way so no matter what my commanded A/F I will always have a correct Lambda reading between my meter and my lambda.
If I do this the other way by importing lambda, what happens when I am commanding .85 but my meter is looking for 1.00, and I really want .85?

J.Abbott
September 8th, 2010, 01:51 PM
I am not trying to be hard headed and I appreciate all the input. I am just trying to understand what you are explaining. I think the issue is how we look at it, I don't look at any of in Lambda, I look at it as A/F and lambda just a equation to multiply my VE table by. I know that most of the world outside of the US looks at it as Lambda, and I am trying to bring myself to use all metric including Lambda. However old habits are hard to break and I can quickly determine where I am using A/F where as using Lambda I have to think about it for second.
I would like to know more about the voltage offest that Mr. Prick was talking about earlier, I have noticed my WB guage is reporting 14.74 and fluctuating a little where as I am reporting 14.44-14.60 in the scanner. The scanner seems a little more stable then how quickly the gauge is fluctuating also.
Thanks
Justin

WeathermanShawn
September 8th, 2010, 01:58 PM
It is not an easy subject to understand.

Whenever I get stuck on understanding a concept, I try to take a new approach.

Irregardless of your method ..in your tune..what is the published Ratio of Air to Fuel for Stoichiometry..(in the LS1..it is B3601).

That will tell us how much farther this debate should go. At this point it is less about the wideband as it is having your tune and wideband match.

J.Abbott
September 8th, 2010, 03:26 PM
{B3671}LS2 I have it set to 14.22, I understand what they are saying, but by having the pid written the way I do, the Lambda error is always correct no matter what my commanded A/F ratio is. If I change everything to Lambda and I think that is what they are saying that the voltage has to be fixed, which I agree. But by running it as A/F it fixes itself and removes a step I have to do. That is if I am looking at this correctly.

WeathermanShawn
September 8th, 2010, 03:31 PM
Maybe you can better explain your definition of a 'Lambda Error' and how it applies to tuning.

Eventually, you will utilizing a BEN to compare the tunes PCM setting against your Wideband. That is what most of us are relating to.

Why 'Lambda Error'?

J.Abbott
September 8th, 2010, 03:54 PM
We are probably talking about the same thing. I call it my Lambda error chart. I wrote a simple pid that compares my wbo2 against my commanded a/f and it gives me a lambda number. So with my Lambda 1.00 set at 14.22. So if my WBO2 is saying say 13.8 and my commanded is 14.22 then my lambda error or correction which ever you prefer is .97, so when I am calibrating my VE table, I can multiply my entire scanner data right into my VE table and it fixes it in one shot no matter what my commanded A/F is. So when I go into PE, my lambda error or correction is still the same.

J.Abbott
September 8th, 2010, 04:12 PM
I would rather import all of it by lambda, it would be cleaner, however this is what I believe Mr. Prick was talking about. I am setting my lambda as 1.00 in the tune {B3671}as 14.22, but now I see my meter has a 1.00 as 14.57 and I do not know how to change that. So if I just import the voltage into A.F it corrects itself because the WB is just reporting A/F, it does not know what lambda 1.00 is. Hopefully I have not run him off, I would like to know if this can be changed in the meter. That would make things easy.

WeathermanShawn
September 8th, 2010, 04:18 PM
I would rather import all of it by lambda, it would be cleaner, however this is what I believe Mr. Prick was talking about. I am setting my lambda as 1.00 in the tune {B3671}as 14.22, but now I see my meter has a 1.00 as 14.57 and I do not know how to change that. So if I just import the voltage into A.F it corrects itself because the WB is just reporting A/F, it does not know what lambda 1.00 is. Hopefully I have not run him off, I would like to know if this can be changed in the meter. That would make things easy.

I think that is what they are getting at. It is very hard if not impossible to make those kind of changes in the actual wideband.

I always thought the way to 'cheat' is just to make B3671 match the wideband..but I am sure it would just create a more complex problem in PE and other calculations.

I am sure you have not ran him off. It is not an easy concept to grasp. You would think the wideband software would allow more customization..

J.Abbott
September 8th, 2010, 04:30 PM
I understand what he saying, if I can get the lambda on my meter to match what I would like then it would work they way everyone described. But it works the way I have the pid written now unless my meter is using lambda to give AFR. If that is the case then I have an issue I need to get solved. I am going to look into this further now. It started off as a PID not working which I got fixed, but now I feel like a new meter may be in my future.

J.Abbott
September 9th, 2010, 04:17 AM
Mr. Prick,
I am sorry I am over thinking what you are saying about the meter and lambda. It always knows lambda because it is reading air content. I guess my only issue with tuning it by lambda only is that although it is 100% correct for the fuel that is in the car at that time, it might not be for the 5 tanks of fuel later. By my using lambda error or (have/want) by using the afr and what I set as stoich, the PCM is correct to where I am setting stoich even though that might be a percentage or two off at that particular time. However I am using my stoich based on the fact that I really don't know the alcohol content of each tank or different brands of fuel, they just say up to 10% ethonal, so I base my stoich off of that scale. I agree with you that lambda is dead on, but that changes with the fuels, I think my way covers the long term avg vs. what it is doing right now. Hope that explains what I am talking about better then before.
Thanks
Justin

joecar
September 9th, 2010, 05:17 AM
CL: lambda will be 1.00 at stoich for any of: gasoline, E10, E85.
PE: lambda will be 0.87 during PE for any of: gasoline, E10, E85.

i.e. regardless of fuel, stoich is always lambda=1.00 and PE is always lambda=0.87 (for NA no boost).

joecar
September 9th, 2010, 05:21 AM
If you're using the wideband to correct VE and/or MAF tables:

the correction factor is: commanded_EQR * wb_lambda

i.e forget about commanded AFR {GM.AFR} and log commanded EQR {GM.EQIVRATIO} instead.

WeathermanShawn
September 9th, 2010, 07:53 AM
Mr. Abbott:

I think you may have the definitions of Lamba and AFR reversed.

As tough as it is I think you have to move away from AFR as a fueling concept. I only use it now as a reference. Problem is that AFR may work for a particular PCM/Fuel, but it leaves you unable to adapt your thinking to other platforms/fuels.

For two weeks I ran my tune and calibrated my wideband to read just EQ. Two weeks later I ran both EQ and AFR. Then I got how bogus talking AFR in scientific circles can be.

I applaud your efforts to make a calculated pid that works for you. I might force myself however to adhere to the Lamda/EQ concept. Especially in this forum. Many different PCM's, fuels, and countries.

Just a thought..

Respectfully..

joecar
September 9th, 2010, 08:19 AM
I'm not sure what the EQR pid is for E38/E67.

J.Abbott
September 13th, 2010, 06:08 AM
I completely understand what all of you all are saying. However does the E38 command AFR or does it command Lambda. I am pretty sure it is commanding AFR, so if this is the case I want to control what it is commanding all the time. I realize this really comes out to within a certain percentage because of the different fuels, but that would work the same using Lambda because that is only stocih for that tank of gas and not the next.
If I am wrong about it commanding Lambda in the E38 then I would change my theory on it also. It would be easier I agree to use Lambda only, but I want to use what the PCM is using. Does anyone know if it is commanding Lambda or AFR. I do not see anything in the tune that would support anything besides AFR.

LS-SWAPPER
July 8th, 2015, 03:50 AM
Is all of this above info still applicable or has the efilive software been updated in the last 5 years so that an NGK AFX works a little more seamlessly?

J.Abbott
July 8th, 2015, 04:27 AM
There was never an issue, these were custom PID's being written, they all have been working. The error was me and a decimal point.
The issue here was not just reading the AFX. EFI Live reads that with no issues at all. EFI can do custom pids but the the formula has to be right and in my case it was not. I figured out what I did wrong and now it works great. The great thing about EFI live though is that if you upgrade your wide band to a AFM1500 you can bring the data in through the serial port of EFI live. You can log AFR, Lambda or GM EQ that way.

LS-SWAPPER
July 8th, 2015, 04:40 AM
Ok, so the AFR_NGK1 pid that is preloaded in the scan tool is still not applicable? A custom pid is still required?

J.Abbott
July 8th, 2015, 05:00 AM
No, that PID is fine, I had a custom pid for the AFX for error. The pid that is in there, if you activate your analog input and use that pid it will work fine.

LS-SWAPPER
July 8th, 2015, 05:37 AM
ok, well I tried to use it over the last couple days with no luck. I am aware of the 14.57/14.63 stoiciometric variance, but I,m not even getting that. The analog output is reading about 2-3volts at idle (going off memory, but in the stoic range) but when I plug it into the AD1 analog port it drops down to around 0.2-0.3 volt range when I put a volt meter on the tightening screws of the orange connector. The V2 is then applying that 0.2volts to the {EXT.AD1}*1.4+9 equation so the scan software is showing an afr around 9.3-9.5 range...aka not the correct afr reading. I'm not sure where I went wrong. Guess I'll keep at it...

J.Abbott
July 8th, 2015, 06:29 AM
Do you have the AD's configured in the V2?