Idle Air 101

Collection of newbie questions and common tuning concepts

Moderators: cgrey8, EDS50, Jon 94GT, 2Shaker


Idle Air 101

Post by decipha » Sun Dec 05, 2010 2:37 am

this is how the ford ecu controls idle air

the idle air neutral function FN875N and drive air function FN875D contain the actual air mass needed to reach a desired rpm WHEN THE ENGINE IS AT STABILIZED WARM IDLE ONLY and the isc table multiplier FN1862N cell(s) in use is at 1
before continuing be sure you fully understand this statement

the idle air neutral function FN875N and drive air function FN875D contain the actual air mass needed to reach a desired rpm WHEN THE ENGINE IS AT STABILIZED WARM IDLE ONLY and the isc table multiplier FN1862N cell(s) in use is at 1
these functions are only dialed in ONLY WHEN THE ENGINE IS AT STABILIZED WARM IDLE (typically 200-220 degrees ECT), which means the engine has been running at least 15 minutes and the throttle has been closed for at least 2 minutes, and the FAN HAS BEEN OFF for at least 2 minutes ***you can not dial in idle air when the fan is on due to the extra loading!!! there is seperate values for that FN885 & FN822B

now you can ONLY dial in idle air AFTER your idle fuel is dialed in, if your in closed loop at idle your fuel kams should be near 1, if your kams are more than 5% off at warm idle you need to dial your idle fuel in first.
YOU CAN NOT ADJUST IDLE AIR WHEN IDLE FUEL IS NOT CORRECT!! this is because any correction to idle fuel will alter the idle air requirements
now ASSUMING you've got your idle fuel dialed in, get her up to WARM operating temp and stabilized idle, again FANS OFF

make sure your average rpm is within 50ish rpm of demanded idle which will be the scalar NUBASE when in neutral, be sure there is no rpm adders in effect (such as fn825b ACT adder, fn825a ECT adder, fn821a voltage adder, fn880 time adder, fn890 bp adder) you can verify there is no adders in use by logging the payload DSDRPM, dsdrpm is the rpm the ecu is trying to target, with no adders in neutral DSDRPM will be the same as NUBASE, +/- 8 rpm due to it being two different memory structures

the tps at idle closed throttle means nothing so long as its between the TAPMIN (tps minimum) and TAPMAX (tps maximum) if the tps is not within that range then the logged tps value will be the value of the scalar RATIV (failed tps value) verify the tps does not match RATIV at closed throttle, if it does then more than likely the tps value is too low, to fix this you can simple reduce the min tp scalars VTAP1, VTAP3, TAPMIN, to put the tps sensor back in range, i usually set all 3 of those scalars to 0.4 volts (82 adcts)
folks used to believe the tps had to be at .99 for max power, thats complete crap anyone feeds you that garbage you punch them in the mouth as per decipha, the ecu takes the lowest tp voltage it gets and uses that as 0 relative position which can be logged as the payload TP_REL, this is known as ratch

now with the engine at stabilized warm idle with no adders and no fan, keep an eye on the payload AM air mass value if you do not have access to the air mass payload than keep an eye on the MAF payload, if you don't have access to maf you'll need to log the maf voltage (imaf, mafv, or vmaf) then go calculate the air mass from it, if you can't log maf voltage, you'll need to probe the maf sensor and subtract approx .14 volts from it then go look up that voltage in your maf transfer FN036 to know the air mass
in any case, you want to get an average, it doesn't need to be exact just a good guesstimate average, if its jumping around quite a bit then chances are your getting a bit of turbulence through your maf and it would be wise to install a mesh screen to smoothen out the airflow, prior to installing a screen you can try 'clocking' the maf by loosening the clamp and 'turning' it until you get THE HIGHEST POSSIBLE MAF at idle which should be where its most stable, IE... not jumping around alot, a .03 fluctuation is about normal
log the iscdc as well or the "ISC duty cycle", you'll need this value to get the correct throttle body airflow value ITHBMA the isc duty cycle should be pretty consistent, if its not you need to tame your idle by increasing the idle air correction constants scalars TC_OVER and TC_UNDER
temporarily setting the SPK_FBS_GAIN (feedback spark gain) value to 0 so that the ecu doesn't throw around spark at idle, keep in mind on a large lift cam or a stupid overlap cam setting the gain multiplier to 0 will probably make it surge, if this is the case you will need to increase the gain, a value of 1 usually works out well for most engines
if that still doesn't stabilize the iscdc you may need to disable idle air kam correction by either setting both the min correction PSIBRN scalar to 0 as well as the max PSIBRM scalar to 0 or if you have access to the isc global multiplier scalar IDCMUL set it to 0 and global isc adder scalar IDCOFS set to 35, if you had to set both correction clips to 0 and still can't get the idle to stabilize then you can temporarily clip the isc min duty cycle by increasing the DEBYCP scalar, keep increasing it until the idle is stable

once you have the idle stable it would be ideal to get the iscdc close to 35%, reason being is that it will allow headroom for cold enrichment, if its below 35% then close the throttle body stop (reduce air), if its above 35% you need to open the throttle body stop (increase air)
for those with really stupid cams, you may need to permanently keep these correction scalars to 0 for a stable idle, if idle air is dialed in then you won't need correction anyway under most conditions, or you could possibly reduce the correction limits PSIBRN and PSIBRM, values of .05 and -.05 usually work out pretty well for most engines with stupid cams and still allows it to adapt to air changes

now with a stable AIR MASS or MAF value and ISCDC we can input the correct info we need to let the ecu know how to control idle correctly

go to the neutral idle air function FN875N and put in the NUBASE value and the actual AM value you averaged, if you only have MAF to log then you'll need to convert from kg/hr to lbs/min by multiplying the average MAF value by 2.2 then dividing by 60
ex: your average MAF at idle was 28 kg/hr, 28*2.2/60= 1.026 lbs/min, not exact but good enough, this value goes directly into the idle air function

next you'll need to dial in the throttle body airflow scalar ITHBMA, the t/b airflow scalar is the amount of airflow the ecu can not control you can figure out how much air was coming through the tb blade by looking up the isc transfer table FN8000 for newer ecu's or the transfer function fn800 for the older ecu's
calculate the lb/min contribution from the isc (known as DEBYMA) by interpolating the flow at your logged ISCDC value
if you can log the DEBYMA payload then you don't have to do the following, since most def's do not have access to that payload we will calculate the isc airflow the long way
ex: average ISCDC was 35, lookup your isc transfer, for this example, the transfer gives:
39 dc = .25 lb/min and
28 dc = .12 lb/min
so to interpolate what the flow is at 35dc,

39dc - 28dc = 11 dc difference;

now work the flow .25 - .12 = .13 difference;

.13 airflow difference over the 11 duty cycle difference gives us:
.13 / 11 = .0118 per duty cycle

now we subtract our dc from the upper end of the scaling
39-35 = 4;

we now multiply our duty cycle difference by the airflow per duty cycle

4 * .0118 = .0472; not done yet, dont forget to subtract this from the upper airflow value of the airflow scaling from which you interpolated your iscdc to get the total isc airflow
.25 - .0472 = .2028
the isc valve is flowing .2028 lbs/min of air at 35% dc

see how simple it is, just basic math

now subtract that value from the AM, ex: 1.026-.2028=.8232

this is the value for the throttle body airflow ITHBMA scalar, as you can see this is the amount of air the ecu SUBTRACTS from the AM to calculate the iscdc it needs to get to the rpmdsd

before continuing its imperative that you fully understand this statement, to clarify in other words, the ecu looks up the idle air function to calculate how much airflow AM is needed to reach a dsdrpm, by knowing what the actual AM from the maf sensor and the amount of airflow that is going through the throttle body ITHBMA it can very simply calculate the duty cycle needed of the isc valve (a.k.a. Idle Air Control valve) to get the amount of air mass to reach a specific dsdrpm

since this can be a bit confusing i will do another example, lets say the engine has an average idle MAF of 32.32 which equals 32.32 * 2.2 / 60 = 1.185 AM at an iscdc of 17.5%, by looking in the function fn800 or fn8000 we can get the scaling values, A9L2 has the following values:

.12 lbs/min = 28dc
0 lbs/min = 10dc

which gives us 28-10=18 dc difference
.12-0 = .12 airflow difference

.12/18=.0066 per dc
now to interpolate the airflow
28dc - 17.5dc = 10.5 dc * .0066 = .0693
.12 - .0693 = .0507 lbs/min flowing through the idle air control valve when the duty cycle is at 17.5%
am - isc air flow = ithbma
1.185 - .0507 = 1.1343
be sure you understand this before proceeding!!!

when an engine is cold it will require more rpms to stabilize, thus we need to have a higher rpm value with airflow for the ecu to interpolate between for the increased engine speed
to do this, increase the NUBASE scalar by 500 rpm, once the engine has stabilized at the new dsdrpm calculate the new average AM then insert that value and the new dsdrpm value into the FN875N function just like you did before



rpm ........ lb/min
(max scale rpm)...(max value)
(min scale rpm).....0

after you've made all those changes don't forget to change the DEBYCP scalar to 0 and open up the PSIBRN and PSIBRM scalars, also if you had to adjust the spark feedback gain set that back to a reasonable value 1.0 for example
log the IPSIBR (instant correction) and ISCKAM2 (long term correction) payloads, they should be near 0 or on there way there, give it a minute to make the corrections and get back near 0, a fluctuation of .02 is normal, if its off by more than that then you messed up somewhere and need to start from the beginning again, make sure the fan never came on during this time, if it has you'll need to wait until after the engine has stabilized again to start over

for reference:
ISCKAM0 - idle air correction with a/c off in drive (auto transmission)
ISCKAM1 - idle air correction with a/c on in drive (auto transmission)
ISCKAM2 - idle air correction with a/c off in neutral
ISCKAM3 - idle air correction with a/c on in neutral

if you have an automatic transmission, you can copy FN875B over to FN875D now put the vehicle in gear and repeat the same procedure to dial in the idle air drive function FN875D

if you have a standard transmission, your idle air is now dialed in!
from now on all idle air correction will be done in the multiplier table(s) FN1862N and FN1862D or FN1861 for the older ecu's, you adjust that table by adjusting the cell in use to get the isckam# and ipsibr to stay near 0
FOR NOW ON ALL YOUR IDLE AIR CORRECTION WILL BE DUE TO THE MULTIPLIER TABLE(S) you'll need to log a cold startup in order to dial in the complete table the objective is to get the isckam and the ipsibr to stay near 0 you do this by adjusting the multiplier table to get your rpm to match dsdrpm if your dsdrpm is too low when cold then you need to increase the rpm adder functions accordingly

FN825B "ACT adder" FN825A "ECT adder" FN826A "startup ECT adder" FN821A "battey adder" FN880 "neutral timer adder"

this all may sound like alot but for all of the 2 minutes it takes your completely done with dialing in idle air, the only time you'll ever have to revisit this is if some fool decides to mess with the set screw later down the line
you should notice now that your tip-in throttle response is improved, this is due to the ecu knowing the exact air requirements needed off closed throttle, so it can calculate fuel more consistently at idle tip in

now if you have a cam that has a large idling range, and you don't disable the air mass correction then you'll need to adjust the isc rpm deadband RPMDED to a higher value so adaptives doesn't constantly swing your idle around
if you want to get more advanced into the idle air logic, you can go manipulating the update rate function FN860, increasing the loops will make a correction slower, you also have the KPSI** scalars which control the rate at which the correction is applied, you can decrease those correction values to stabilize idle as well

if your using my A9L2 base tune file then all of the idle spark and correction values should be fine
if i failed to make any of this clear feel free to shoot me a PM and i'll update accordingly


Who is online

Users browsing this forum: No registered users and 1 guest