PDA

View Full Version : IAC logic "Topic of the week 2/19/12"



PJG1173
02-20-2012, 07:50 AM
This is a subject that I have tried to find some information on for a while. I have searched for information on how to adjust this to respond better to an engine with a bump stick with little success. There is plenty of info out there about the IAC and how it works but nothing really jumped out at me. Being so new to tuning a lot of what I have read is Greek. I found the following article informative but not sure how to apply it. http://www.diy-efi.org/gmecm/papers/747iac.txt One of the things that irritates me about the TBI system is when you blip the throttle it takes so long to idle back down (compared to a carb). Searching for IAC in the parameter finder in the $0D ADX results about 30 or so settings some of them are self explanatory others well not so much. One question I have is while looking at some of these tables I see a lot of them relate to % of airflow. How is this calculated since it is not a MAF? How does the PCM know how much air is flowing through the engine? Obviously the addition of a cam and head work has increased airflow so how do you reflect this in the tune?

EagleMark
02-20-2012, 08:22 AM
There's a few settings for Idle Speed Decay. These are built in to cause what is happening, you are not liking. They are to prevent snapped back throttle that produces higher emmissions. Since they are mostly msec settings I don't see much there other than help it not stall. The one that stands out on the bin I looked at was "Time until Initial Idle Speed Decay" set to 3 seconds! I think I'd try that one first at 0...

Here's the IAC logic paper linked to above specific to 1227747 but gives a good idae of all the things built into IAC logic. It is also in our Fuel Injection Write up Section.


1227747 ECM IAC Control

Robert Rauscher
10/14/2000, updated 12/4/00

Copyright 2000, Robert Rauscher, All Rights Reserved.

This is specific to the 747 ecm. However, the methods and madness
applies to many of the GM ecm's. (Use at your own risk, no guarantee
that any of this is correct.)

Note:

Values such as 0x22D are eprom table addresses. These you
can easily change.

Values such as L0004 are RAM variables. These are used by
the ecm during it's processing.


INTRO:

IAC is the abbreviation for 'idle air control'. This is a little
misleading, as many external factors affect how the IAC reacts. Along
with controlling the idle speed, the IAC is in use while cruising and
accelerating. It is used in the anti-stall process and the DFCO
process. As part of the fueling routines, additional fuel is added
whenever the IAC is retracted.

Not all IAC control parameters are covered here.


WHAT THE IAC IS:

The IAC itself is an electro-mechanical device. It is a linear stepper
motor with a cone-shaped pintle attached to the end of the control rod.
This pintle is moved into and out of an orifice that bleeds air around
the throttle blades. This orifice is generally about 5/16 of an inch
in diameter.

The IAC position and control are measured in steps. One step moves
the pintle a small amount. The full range is typically from zero
steps to two-hundred steps. Zero steps are when the pintle is fully
extended, closing off all IAC bleed air flow.

As the steps are increased, the pintle is retracted from the orifice,
allowing more air to bypass the throttle blades. This has the effect
of increasing the engine speed. Remember that an IAC retract (or an
increase in steps), opens the air passage to raise the engine speed.


BASIC OPERATION:

With the engine off, the IAC will be at the park position. This is
the position used upon cranking the engine. Once the engine starts,
the ecm will start to move the IAC to another position. This position
is from a table lookup of steps vs. coolant and a baro correction.

However, the IAC does not move to the new position immediately. If it
did, the engine would react suddenly, possibly stalling. The difference
between the original park steps, and the newly desired steps vs. coolant,
are lag filtered. These filters control the rate at which the IAC moves.

Once the IAC has moved to it's new position, the idle logic starts to
act. The goal here is to attain, then maintain, the desired idle rpm.
Is does not matter whether the engine is in closed loop or open loop,
the idle logic takes over.

A key here is: As long as the current idle speed touches the desired
idle rpm plus the idle error term, within the time delay, no change
to the idle speed will take place. If the idle goes outside of the
limits, the IAC will be moved to compensate.


Now that the engine is idling, sooner or later the driver will hit the
gas. Now the throttle follower logic kicks in. As the tps% increase, so
does the IAC steps. Again, this action is lag filtered. As the throttle
is then closed, the IAC retracts, lag filtered.

Upon the engine being shut off, the IAC goes through a reset process. The
IAC is stepped to the reset position, stepped to the zero position, then
stepped to the park position. This calibrates the positioning of the IAC,
along with leaving it in place for the next cranking to start.


There are additional factors that affect the IAC position. If the battery
voltage dips, the IAC can increase the idle. The A/C turning on, or
decel fuel cutoff (DFCO), can affect the current IAC position.

For an idea of how these factors can work, I'll use the A/C turning
on as an example. With the engine at IAC controlled idle, and the A/C
turning on, additional steps are immediately added to the current IAC
position. Another table value also adds to the desired idle rpm. Lets say
the desired idle rpm went from 800 rpm, to 850 rpm.

The steps that were added, are decayed out. However, the idle logic
is also attempting to hold the idle at the newly desired rpm. An astute
driving may notice a slight increase in idle, along with a dip in idle,
as the new idle speed is attained by the ecm.


TABLES and PURPOSES:

The following values are the eprom table addresses.

0x293: Additional fuel added during IAC opening. (val = msec * 16.384).
Acts like a pump shot (Do not use as one.)


0x5C1:


0x5C2: IAC park position. IAC is immediately moved to this position
after engine stop and IAC reset completion. This is the IAC position
for engine cranking and start.


0x5C3: Park to run delay. Delay from engine start, to the IAC moving
to the run position: IAC vs. coolant. (val = seconds * 40)


0x5C4: Stall saver cut-in rpm (rpm / 12.5). If the engine rpm drops
below this value, the IAC is further retracted according to the steps
in the stall saver table at: 0x60A, four lines, lookup by baro. This
action is immediate and not subject to lag filtering.


0x5C5: Stall saver cut-out rpm (rpm / 12.5). Once above this rpm,
the above added steps are decayed out (lag filtered).


0x5C6: %tps for idle threshold. Used in conjunction with a hardcoded
0 mph. These two values define whether the engine is in idle or not.
If engien is not considered to be in idle, no idle speed control
is attempted.


0x5C7: Time delay for small error IAC retract. (desired idle too low)
0x5C8: Time delay for large error IAC retract. (desired idle too low)
0x5C9: Time delay for small error IAC extend. (desired idle too high)
0x5CA: Time delay for large error IAC extend. (desired idle too high)

The past four entries are used to slow-down, or delay, the operation
of the IAC at idle. When in closed loop idle, the IAC attempts to
maintain the desired idle. The error term is the difference between
the desired idle rpm and the current engine rpm.

A larger error term has a shorter delay, to move the IAC quicker. Once
the idle is close, the delay is longer. This is done for better control
of the idle speed.

If the engine idle oscillates wildly, seems like the IAC can not
'keep-up', increasing these values (slightly), may correct it. Note
that an oscillating idle can also be caused by incorrect VE% and SA
tables.


0x5CB: Rpm breakpoint for large error retract (rpm/12.5).
0x5CC: Rpm breakpoint for large error extend (rpm/12.5).

These past two entries are the rpm breakpoints for the previous four
IAC error time delays.


0x5CD: Idle deadband (rpm/12.5). Amount of idle variance allowed within
the time delay (0x5C7 - 0x5CA). More than this amount will cause the
IAC to respond, affecting the current idle speed.


0x5CE: IAC reset steps. Upon engine stop, the IAC is retracted
to this position, moved to zero steps, then parked at park steps (0x5C2).


0x5CF: Additional startup steps when A/C on.


0x5D0: Minimum IAC differential steps with A/C on. (?)


0x5D1: Maximum IAC differential steps with A/C on. (?)


0x5D2: IAC shutdown voltage (Volts * 10). If vehicle voltage drops
below this value, the IAC is no longer stepped.


0x5D3 & 0x5D4: DFCO steps. Number of steps to add to IAC whenever DFCO
is in effect. Will not be decayed out until DFCO is no longer in effect.
This status is from the fuel routines. Uses decay filter coeficient @ 0x5EA.
Note that this is a double byte value. The actual steps are in 0x5D3, with
a fractional amount in 0x5D4. So set 0x5D4 to 0.


0x5D6: Added steps for A/C on. These steps are immediately added upon
the A/C being switched on. They are decayed out, with the idle control
logic maintaining the desired idle.


0x5D7: Kickdown delay timer value (seconds).
0x5D8: Kickdown steps.

These two together form a post-startup rpm reduction. The kickdown
delay timer starts right after startup. Once the timer has expired,
the IAC is extended by the amount of kickdown steps.

A nuance: The kickdown steps must be less than the steps used in
the IAC position vs. coolant table value (0x5F5): Otherwise kickup
will occur. The kickdown steps are subtracted from the IAC position
steps, and are added to a term that is decayed out.


0x5D9: IAC steps subtracted from current idle position when placed
into gear (auto).


0x5DA: Additional idle speed, added to desired idle rpm when A/C on.
(rpm / 12.5).


0x5DB: Idle rpm for closed loop aldl diag mode (rpm / 12.5). Used
for troubleshooting.


0x5DC: IAC retract steps for vehicle voltage drop.
0x5DD: Vehicle voltage drop required (Volts * 10).

Whenever the vehicle voltage drops by the value in 0x5DD, the IAC
is retracted by the steps listed in 0x5DC. This is intended to
bump up the idle to maintain alternator output.

As long as the vehicle voltage drop IAC bump is in effect, the IAC
steps will not be decayed out.


0x5DE: Maximum IAC steps. This is the maximum retract steps allowed.
(Except for engine stop reset).


0x5E4: Low VSS filter coefficient.
0x5E5: Medium VSS filter coefficient.
0x5E6: High VSS filter coefficient.

These filter coefficients are used to slow the throttle follower action
of the IAC. When IAC position calculations are made, it is not advisable
to immediately move the IAC to that position. Instead, the action is lag
filtered to control the speed of the IAC action.

There is one of three filter coefficients used depending upon the vehicle
speed. A higher value has less filter action, increasing the IAC speed.


0x5E7: IAC extend delay, low vss (seconds / 5).
0x5E8: IAC extend delay, high vss (seconds / 5).

Delays IAC extend after an IAC retract command. Can cause a 'rpm hang'
after a throttle blip or throttle lift.


0x5E9: Decay filter coefficient. Used when DFCO not active.
0x5EA: Decay filter coefficient. Used when DFCO is active.

These filters are used to decay out IAC step increases due to items
such as the battery volt drop, DCFO, hot restart retracts, and kickdown.

0x5EB: Fast decay filter coefficient. This filter is used to decay
out the stall saver step increases.


0x5EC: Low VSS threshold (mph * 3.2).
0x5ED: High VSS threshold (mph * 3.2).

These are the VSS thresholds used to define which filter coefficient
to use. Selected from the values at 0x5E4 - 0x5E6, depending upon VSS.


0x5EE: Minimum IAC throttle follower steps when above Low VSS. Whenever
the vehicle speed is above the mph defined at 0x5EC, the IAC TF will not
step lower than this value.


0x5EF: Minimum TPS% required for throttle follower IAC steps.
0x5F0: Percent of throttle follower in park/neutral (for auto only).
0x5F1: Percent of throttle follower not in park/neutral (also manual).
0x5F2: Maximum throttle follower in steps.

As the throttle opens, the IAC is retracted. As the throttle closes,
the IAC will extend. The speed at which the IAC extends following the
throttle is controlled by the filter coefficients at locations:
0x5E4 - 0x5E6, dependent upon the VSS.

The throttle follower value along with the filter coefficients affect how
the engine returns to idle after the throttle is closed. This includes
both a return to idle on a throttle blip, along with affecting ease of
shifting (manual tranny). Note that the throttle follower IAC retract
steps are not filtered. The IAC opens as quickly as the throttle in opened.


0x5F3: A coolant temperature value for a cold kick down enable? Used
to enable the use of the values @ 0x5E1, 0x5E2 & 0x5E3.


0x5F4: N-bias. The first time this speed is exceeded, the current IAC
count in L00CC is added to L00CB. I am not sure of the intention of this.


0x5F5: IAC position vs coolant temperature (in steps). Seventeen line
table versus coolant. From hot ( > 136C), to cold ( < -8.5c). After the
engine starts, the IAC is decayed from the park position to this
position, with adjustments.

These adjustments can include: A/C on, baro, low battery.

I have found that it is better to set the IAC position vs. coolant
values a little on the low side. This allows the rpm to drop below the
desired idle speed, to then be 'caught'. Otherwise, it seems as though
the idle never drops down to where it should be.


0x606: IAC position vs baro at reset (in steps). 4 line table, added
to the IAC position vs. coolant lookup. Do not set this table too low,
it appears to have something to do with how much idle adjustment can
be made.


0x60A: Stall saver IAC increase vs baro (in steps). 4 line table.
Whenever the idle drops below the stall-saver speed (0x5C4), the IAC
is immediately retracted by this table value. Once the rpm rises above
the stall-saver cutout speed (0x5C5), the added steps are decayed out.
The stall saver decay filter coeficient is at: 0x5EB.


0x60E: Desired idle rpm versus the coolant temperature. Nine line table,
from 55c to 135c inclusive, in 10c intervals. Value is rpm / 12.5.

This is the end goal, the rpm at which the engine should idle. I have
found that the table range is a bit on the high temperature side. When
running cold aluminum manifolds, there may be little difference in the
desired idle speed between 55c and 65c coolant.


MECHANICAL EFFECTS:

(I want to thank Bruce Plecan for discovering and documenting this gem).
With a TBI system, the IAC steps at idle can be crucial. Again, I am
referring to the hot'r street type engines. A rumpity-rump engine needs
all the help it can get to idle. One area to be addressed is that of the
throttle blade setting.

A typical TBI system will idle with an IAC count of 35 to 45. On a cam'd
engine, zero steps may be better. Myself, I shoot for three to five steps
with a warm engine, and no A/C. The reason for this has to do with the
injectors residing above the throttle plates.


During idle, the TBI injectors are designed to spray onto the bore walls.
When this happens, the fuel runs down the walls, and past the throttle
blades. The air speed past the throttle blades is very high. This action
shears the fuel into vapor that is then able to travel to the chambers.

If the engine idles with a high IAC count, this IAC air is bypassing
the throttle blades, hindering the flow of fuel into the plenum. By
opening the throttle blades and reducing the IAC counts, there is a
greater volume of air drawing fuel past the throttle blades.

Next time you are timing the engine, shine that light into the TBI
bores, and look. Then, knock out that throttle blade adjustment plug, and
turn it in. Just keep an eye on the IAC count, you do not want to try
to get it below zero. This is the reason I set the idle to have at least
a couple of counts.


TIPS:

When turning in the TBI idle screw with the engine running:

Once the throttle opens past the TPS% value at: 0x5C6, the
IAC will stop controlling the idle speed. An engine stop,
wait ten seconds, and an engine restart will reset this value.

It is best to turn in the idle screw, then start the engine.
It is now possible to turn the screw out to set the minimum
IAC counts.


To reduce flair-up on engine start:

Lower the park position @ 0x5C2.
Lower the park to run delay @ 0x5C3.
Lower the kickdown time delay @ 0x5D7.
Lower the coolant vs. position values @ 0x5F5.


To quicken the return to idle after throttle blip:

Set delay @ 0x5E7 to 0.
Increase filter coefficient at 0x5E4.
Reduce throttle follower percentage @ 0x5F0 & 0x5F1.


When idle speed has been raised (cam'd engines), also raise the
stall saver speeds.


An oscillating idle can be caused by:

Incorrect VE% table (flatten idle area).
Incorrect SA table (flatten idle area).
Too fast IAC reaction, increase (slightly) the delay values
at 0x5D7 through 0x5DA.
Stall saver set too high (it's kicking in).
Battery voltage varying.


To make manual transmission shifting easier and smoother:

Set the throttle follower filter coeficient parameters so that
the engine rpm drop between gears matches the rpm required for
the next gear.


A large amount of throttle follower:

Can help top end power as it will allow more airflow.

------------------------------------------------------------------------

Random Notes:

Loaded into L00C2 only if greater than current value in L00C2:

0x5D3: DFCO steps
0x5D8: Kickdown steps
0x5DC: Battery voltage drop

0x303: Hot bias steps if kickdown already occured.

0x303: Hot bias steps. If kickdown has not yet occurred, this
value is added to whatever is in L00C2.

Note: L00C2 will not be decayed out if any stall saver is active.
Or, throttle follower steps are active?, (in L00C6).


The following are added together and stored in L00CB:

Lessor of L00E4 or L00C1
L00CE: Position vs. coolant
L00C2: (see above)
L00C4: stall saver
L00C6: throttle follower
L00CD: ?
0x5D6: A/C adjust steps

0x5D9: In park/neutral. Subtracted from L00CB.

After startup, idle control starts with L00CE being adjusted for proper
idle speed. L00CC gets incr's as L00CE decr's, and vica-versa.

L00E4 can also be increased to rasie the idle speed.

Vehicle has not yet moved.


**Once N-bias mph has been reached, the value in L00CC is added to L00CB.
L00CC is then set to zero. This can cause the engine speed to increase.



The idle control logic will not lower the engine speed whenever:

The vehicle speed is > 0 mph (hardcoded @ 0xF372), -or-
The tps% is greater than the value at: 0x5C6 (* 0.3906)

This means that the vehicle must be absolutely still for the idle control
logic to reduce engine speed. Else, the steps are held where they are. Of
course, the throttle follower and stall saver are still in effect.

If the vehicle is moving, and the engine speed drops below the desired
idle, L00CD will be increased to increase engine speed. Note that this
does not cause a change in L00CC.


If L00CD == 0 and L00C6 (throttle follower), > 0, then the idle control
will not be in effect. (See F2F9). Unless stall saver is decaying out.

1project2many
02-20-2012, 03:00 PM
Speed density code always calculates airflow, or at least a version of an airflow number, based on the engine size, the VE tables, and the sensor measurements. That's how it knows how much fuel to deliver.

Much of what's in the 7747 paper was old news when $0D was released. GM dumped many of the old idle routines and worked hard on making the engine idle well and behave acceptably. You'll want to look for throttle followers, or time delay to close IAC, or something along those lines. Mark may have found the right one right off the bat.

Remember that in terms of how fast the engine reacts, timing changes are going to do the most in the least amount of time. Then fuel changes, then IAC changes. Watch your timing values to make sure they aren't contributing to the hanging high idle.

JeepsAndGuns
02-20-2012, 03:41 PM
There's a few settings for Idle Speed Decay. These are built in to cause what is happening, you are not liking. They are to prevent snapped back throttle that produces higher emmissions. Since they are mostly msec settings I don't see much there other than help it not stall. The one that stands out on the bin I looked at was "Time until Initial Idle Speed Decay" set to 3 seconds! I think I'd try that one first at 0...

Nice! I will also have to give this a try, as I have had the same complaint as PJG, slow to return to idle. However mine is a little diffrent. It seems intermittent. Sometimes it drops right back down to idle, sometimes not. Sometimes when coming to a stop, it holds itself at like 1400 rpm untill I have come to a complete stop, then after a couple or few seconds, it lowers itself back to idle. Very annoying. However other times, it will drop back to idle, or just a hair above idle, long before I come to a stop (like it should) Its very strange, and I have yet to figure out exactly what makes it decide to do either/or.

PJG1173
02-20-2012, 04:08 PM
here is one of the things that is confusing me when trying to figure what to change. when working with the ve tables, SA, etc you can datalog and figure out where in the table you are pulling from, but when your working with the IAC you get counts in your logs. looking at the attachment does not really see like it works the same. Is there a way to make tunerpro log calculated airflow?
1683

EagleMark
02-20-2012, 05:28 PM
Remember that in terms of how fast the engine reacts, timing changes are going to do the most in the least amount of time. Then fuel changes, then IAC changes. Watch your timing values to make sure they aren't contributing to the hanging high idle.Never thought of that in deceleration! So I looked at timing tables in $OD and of course there are 2 Idle and Off Idle. At low RPM there is about 10 degrees more in Off Idle but higher RPM are about the same. So if his issue is a blip of throttle at Idle or what is considered to be in idle table which I beleive is a MPH setting I can't see it. now if the blip of throttle and hang time to idle was after Idle Spark table/above set MPH I can see 10 degrees that would hang it up there. Since the truck in question, is in question as to use? It looks like off roader, Idle control is a main drivebility point is slow technical manuvers so raising this MPH setting that makes the change from Idle to off idle could be a cure. IIRC Dave had said it was 2.2 MPH but that may be bin specific. In a rock crawler I could see bringing this up to 5 mph maybe more especailly if a conversion and VSS signal does not take into account transfer case reduction.


Nice! I will also have to give this a try, as I have had the same complaint as PJG, slow to return to idle. However mine is a little diffrent. It seems intermittent. Sometimes it drops right back down to idle, sometimes not. Sometimes when coming to a stop, it holds itself at like 1400 rpm untill I have come to a complete stop, then after a couple or few seconds, it lowers itself back to idle. Very annoying. However other times, it will drop back to idle, or just a hair above idle, long before I come to a stop (like it should) Its very strange, and I have yet to figure out exactly what makes it decide to do either/or.Yours is a Manual trans too! So it is going to have some of these built in for emmissions (remeber dash pots) because of emmissions rise when throttle blade snaps back. Side effect was easier shifting. So your manual may be more dramatic then manual. And see above MPH from Idle to off idle sstting.


here is one of the things that is confusing me when trying to figure what to change. when working with the ve tables, SA, etc you can datalog and figure out where in the table you are pulling from, but when your working with the IAC you get counts in your logs. looking at the attachment does not really see like it works the same. Is there a way to make tunerpro log calculated airflow?
1683The ones pictured based on airflow and temp are probably more for warm up and driveability and the last I would mess with.I alway try to leave those be and only work on warmed up operating temps.

1project2many
02-20-2012, 08:26 PM
Mark's right about leaving some tables alone. The ones pictured describe the relationship between the IAC valve shape and the TB. Work on other parameters first. A simple trick is to compare the auto trans tables with the manual trans tables and see where the differences show up (can TP do compares??).

PJG1173
02-20-2012, 09:48 PM
I was just using those as an example showing the air flow. The MPH for idle spark in my bin is 3mph. yes the purpose of the truck is mainly for off road so when I let off the throttle i need it to idle down not linger. there is a setting in the bin for it to calculate the gear reduction while in 4lo.

EagleMark
02-20-2012, 10:07 PM
A simple trick is to compare the auto trans tables with the manual trans tables and see where the differences show up (can TP do compares??).Yup! It will give exact differnce of each paremeter opened. Or differance tool shows entire bin file.

EagleMark
02-20-2012, 10:25 PM
I was just using those as an example showing the air flow. The MPH for idle spark in my bin is 3mph. yes the purpose of the truck is mainly for off road so when I let off the throttle i need it to idle down not linger. there is a setting in the bin for it to calculate the gear reduction while in 4lo.Well with that info and your issue I would try increasing MPH and removing the delay first! The 16297427 is very good a stable idle but has so much more capabilities built in mainly for emissions then compared to 1227747 ECM. On the 1227747 ECM I have worked on same issue for rock crawlers where it was not so much a difference in delay. But a rev up of engine! The cure there was to increase dead band of idle to avoid going into Stall Saver, which would increase idle when RPM went below RPM in dead band, invoking Stall Saver which would raise RPM by adding air through IAC.So worse in this case as idle was not delayed, but went down to idle but during rock crawling the lunge brought RPM below Idle Dead Band, then revved engine!

It may take a couple of things to get the control you want, that snappy full control of throttle at low MPH, low RPM because of all the emmissions programmed into that area not needed or even noticed for the purpose they were built for, street driving. But usually one at a time and test, this case it may be 2! MPH of Idle spark and fuel tables, keeping it in idle tables and pretty sure that 3 second delay for Initail Idle decay to even start! Really sounds like an issue!

But there's a lot of things that really work fine and should not be touched, don't go overboard and make a bunch of changes and say AHH! It's fixed! Only to find you caused a problem elsewhere... :mad1:

JeepsAndGuns
02-21-2012, 03:05 AM
But there's a lot of things that really work fine and should not be touched, don't go overboard and make a bunch of changes and say AHH! It's fixed! Only to find you caused a problem elsewhere... :mad1:

Very good advise. Only change ONE thing at a time. When you change more than one at a time, and you have a negitave result, you dont know what one caused it. I found this the hard way and had to go back to a previously saved bin to fix the problem. And on that note, every time I make a change, I always save as new, that way I if it has bad results, I can just delete it and go back to before the change was made.

I didnt have enough time this morning to fully read the IAC quote you posted mark, but I did this afternoon. Thats some super info. I think that sould be saved and posted somewhere on this site, as I have learned quite a few things from that about IAC logic I had no clue about.

EagleMark
02-21-2012, 03:35 AM
I thought it was here but just looked and it is not? Found this one though written by same guy, RBob!
http://www.gearhead-efi.com/Fuel-Injection/showthread.php?49-ECM-Lag-Filters-By-Robert-Rauscher-10-14-2000

93V8S10
02-21-2012, 07:14 AM
Wow! Thats a good one!

JeepsAndGuns
02-21-2012, 03:46 PM
I would love to see some definations like those in XDF parameter comments! And the info in there thats in between the parameters, could you add a read me in between the diffrent parameters for that info?
If all XDF's were set up like that, life would be great.

PJG1173
02-21-2012, 03:49 PM
That would end up being a big xdf file when done.

EagleMark
02-21-2012, 06:30 PM
I would love to see some definations like those in XDF parameter comments! And the info in there thats in between the parameters, could you add a read me in between the diffrent parameters for that info?

That can be done if someone was willing to spend the time...


If all XDF's were set up like that, life would be great.
Or we could have one of these?

http://www.gearhead-efi.com/Fuel-Injection/attachment.php?attachmentid=1691&stc=1&d=1329837942

:laugh:

RobertISaar
02-21-2012, 06:40 PM
my A1/nAst1 XDFs are in the range of 700-800KB...

though A1 does things at least a bit differently than described for 42.

JeepsAndGuns
02-22-2012, 03:01 AM
:laugh: Dont we all need a easy button!

If I had a list of super awesome discriptions like those, and a matching list of what parameters they go to, and where they are in the XDF, and knew HOW to add them to the parameter comments, I would do it.

Though, at first, I would probably be selfish and the first one I would do would be the one I use the most ($0E)....lol :innocent2:

93V8S10
02-22-2012, 03:14 AM
The Advanced $0E is 1.15 MB!

So JeepsAnd Guns is taking over expanding the $0E xdf, Cool! :)

JeepsAndGuns
02-22-2012, 03:26 AM
So JeepsAnd Guns is taking over expanding the $0E xdf, Cool! :)


HAhaha, not quite. If I was to try it right now, if I didnt mess something up, most all parameters would end up saying "I have no idea what this does" :laugh:

PJG1173
02-22-2012, 03:30 AM
"I have no idea what this does" :laugh:

LOL gee thats how I feel even when there is a description.

daleulan
02-22-2012, 04:25 AM
I haven't played with the $0d/$0e idle control algorithms (I mostly tune my own algorithms these days). But a few things to think about. The later algorithms have PID control and usually a deadband right around idle where the spark control takes over. This prevents the IAC from moving back-and-forth and wearing itself out quickly. There is usually a time delay to enter PID mode. One thing to check is to log IAC stepper position, ignition timing, O2, MAP, pulse width, and RPM and compare a 'good' return to a 'bad' return. Getting more detail out would require logging separately the IAC terms for dashpot, proportional, integral, derivative, and stall-saver. I don't know if you can do that with a stock EPROM but I would be a bit surprised. However, compare (carefully) the various engine inputs and you should be able to see the biggest difference.

One thing that can be an issue is if the 'learned idle' ends up being off - ie. if the basic position is not right - that can cause wierd return-to-idle. Normally the table should be set up so very little PID is required to maintain the correct idle speed - the basic idle position table should be equal to the number of idle steps required. If you see a table for 'dashpot' or 'throttle cracker', you can try reducing those. I'd set one table at a time to zero and carefully log the response. If there was no difference, put the table back. Once you've got the engine not hanging up and maybe even stalling you can put that table back and slowly tweak it down. Some of the later GM ECMs have a VSS dependant throttle cracker (dashpot) which would make the engine behave differently whether the vehicle was moving or not.


You probably want a bit of a hangup - maybe by a hundred or so RPM. There is a risk of taking out all the dashpots and it'll return to idle perfectly 99% of the time. The problem is that 0.8% of the time it will stall, and the other 0.2% of the time it will stall then flood - I've done that too many times to count.

The later GM IAC algorithms think in a '% airflow' instead of IAC position steps; there is a lookup table that converts % airflow to idle steps. This allows someone to change the IAC after the rest of the idle has been tuned in; it also linearizes the function which allows for more stable PID gains to be used. Anything that is nonlinear can get unstable if the effective system gain increases. This physically-based model system is now the norm in automotive ECM calibrations and software. It allows mid-year equipment changes without having to redo the entire engine calibration. It also makes the calibration, well, just more.

Getting the return-to-idle perfect, every time, is a very large challenge - it sometimes can take me weeks of eight-hour calibration days to get it right. Usually there is a bit more hangup than I'd like, but I do need to worry about emissions in all of my calibrations. Getting the idle return to feel right and never undershoot or stall is probably more challenging than meeting the emissions at that point, though. One of my acid tests is to apply power steering full-lock, air conditioning off-to-on, headlights on, and move from neutral to drive, all at the same time, during a recovery from a couple of pedal stabs.

PJG1173
02-22-2012, 04:35 AM
wow might have to re-read that one a couple times to absorb. What is a PID?

RobertISaar
02-22-2012, 04:54 AM
proportional integral derivative.

math term from calculus IIRC.

93V8S10
02-22-2012, 07:39 AM
Would "throttle kicker" be another name for "throttle cracker"?

RobertISaar
02-22-2012, 07:43 AM
i've never understood what either meant.

maybe it's my lack of experience with TBI stuff though, since that's mainly the only place i've seen either term.

JeepsAndGuns
02-22-2012, 03:33 PM
It seems I have seen the term "throttle cracker" in $0E before. However, at this moment, I cant remember if it was a actual parameter, or if it was just mentioned in a parameter comment.
(I dont have my laptop on at the moment to pull up TP and look)

Also, what is "dashpot"?

PJG1173
02-22-2012, 06:38 PM
the only mention of throttle cracker in $0D is a flag "Use Extended Throttle Cracker in DFCO". there is a whole bunch of throttle kicker stuff but no explaination of what it does.

EagleMark
02-22-2012, 07:15 PM
Thanks daleulan for a great post of IAC information! :thumbsup:

Dashpot is a mechanical deveice used on carburated vehicles to slow return of throttle linkage to idle. I remember these being introduced to cure an emmission when slowing the throttle to idle instead of full snap because of my mechanics training in 1974 to 1980 (before ASE certification) they were being phased in even on auto cars, manaul were even more so and same vehicle with auto and manual had differant part number, manual was slower return to idle. Although they may have been used before emmissins to prevent stalling.


http://www.gearhead-efi.com/Fuel-Injection/attachment.php?attachmentid=1696&stc=1&d=1329924787

http://www.gearhead-efi.com/Fuel-Injection/attachment.php?attachmentid=1697&stc=1&d=1329924787

Some were called dashpots but were actually soliniods to kick idle when AC was on or how ever they were wired to increase idle. Little for AC and a lot for say a hydralic PTO pump on equiptment.

To tranalate that to EFI, IAC is idle control and all the IAC parameters are some form of daspot.

Throttle kicker in $OD, $OE is known to be part of some TBI units used for equiptment as we have seen pictures of them to raise idle so if it is worded correctly in XDF would be a solinoid and no use to us if we did not have one of those TBI units with some kind of stepper motor built in to raise idle.

Throttle cracker would be a stall saver and some of what is commented in XDF as Throttle Kicker could be same?

IAC delay would be a dashpot to slow throttle closing (by adding air through IAC) for emmisions or idle stability.

One point made by daleulan that I thought interesting is mention of Idle, VSS control of IAC to prevent them from wearing out. I haven't done enough data logging with masks with Idle and Off Idle tables to notice but he's saying when switched to OFF idle IAC would stop moving. This would not only help wear of IAC but also force more air over throttle blades to further mix/atomise fuel and air in TBI units instead of air coming through IAC which would do less, IMO. My 1227747 $42 has one table and IAC moves constantly even at highway speeds. My LT1 $EE has 2 tables like the $OD, $OE stuff but I never paid attention to IAC counts other then idle. On MPFI injected air through IAC or throttle plates would be of no gain for fuel atomization...

PJG1173
02-22-2012, 07:58 PM
doesn't the IAC add to overall CFM that the TB can flow? if you stop it from moving when off idle i would imagine that it would cut off some of that flow.

RobertISaar
02-22-2012, 08:02 PM
adds to, but definitely not a significant portion. how large is the smallest cross-section in the IAC path? that's the peak flow, assuming the IAC is fully opened.

EagleMark
02-22-2012, 09:53 PM
Rough measurment of IAC opening on this TB is .40 inch, so not much...

RobertISaar
02-22-2012, 10:02 PM
assuming no other flow restrictions (and we know there are), a .4" hole has a total area of ~.125 square inches and can flow roughly ~11.6cfm at most.

Nasty-Z
02-22-2012, 10:44 PM
assuming no other flow restrictions (and we know there are), a .4" hole has a total area of ~.125 square inches and can flow roughly ~11.6cfm at most.

And if you fully retract the IAC at WOT that 11.6 cfm helps a bit :) Not so much on a bored TBI as I and some others are running , but it helps nevertheless .

TOM

RobertISaar
02-22-2012, 10:50 PM
i guess it really depends on the application.

in the 60V6 world, all small port (160HP) 3100s come with a 52mm TB that flows 308cfm.

assuming the passage is the same size, that's 3.77% of total airflow. not really significant in our application.

Nasty-Z
02-22-2012, 10:55 PM
It probably isn't significant in the BBC world either ,when you are talking a 900CFM+ TBI unit it is about 1% or so , not alot , but when you are on the edge already , i'll take what I can get :)

TOM

daleulan
03-02-2012, 04:01 AM
One point made by daleulan that I thought interesting is mention of Idle, VSS control of IAC to prevent them from wearing out. I haven't done enough data logging with masks with Idle and Off Idle tables to notice but he's saying when switched to OFF idle IAC would stop moving. This would not only help wear of IAC but also force more air over throttle blades to further mix/atomise fuel and air in TBI units instead of air coming through IAC which would do less, IMO. My 1227747 $42 has one table and IAC moves constantly even at highway speeds. My LT1 $EE has 2 tables like the $OD, $OE stuff but I never paid attention to IAC counts other then idle. On MPFI injected air through IAC or throttle plates would be of no gain for fuel atomization...

The IAC still will move around during driving - a throttle follower sort of mode to ensure that it is ready for the dashpot function. The wearout issue is more for a steady-state idle. If using the IAC for a true PID control, the derivative term (and proportional, too) will cause the IAC to move up and down rapidly - a couple steps either way, but ten or twenty times per second - trying to maintain the idle speed spot-on. By putting a deadband in the proportional and derivative airpath terms, the IAC can move much less - only by the integral term and then only if you apply a load to the engine from the D-term and P-term. The spark idle control takes care of the small torque adjustments - less than two or three steps of equivalent torque. A deadband makes for an unstable loop so you take the deadband in airpath and apply a correction to sparkpath instead. Plus, sparkpath has a fast response time - the worst case is one calculation loop time plus one cylinder event time. For airpath you have one calculation loop time, an intake manifold filling time constant (not a delay but a filter) followed by a one engine revolution delay. That time lag can make a PID controller less than thrilled. You can lower the gains like the older ECMs did, but people seem to demand better idle speed control these days.

The sparkpath proportional+derivative logic plus the airpath deadband should keep the IAC position from toggling very rapidly... 56,55,54,57,56,55,56,55,57,54,55,55,54,56... all in one second. If it's calibrated right, the IAC should be stable and you'd see somewhere between maybe 3 and 10 crank degrees of spark timing 'jitter' that goes away when you hit the pedal. I was stunned when I put a timing light on my 2001 VW - at how much timing dither there is at idle. Some engines I've worked with needed only a few crank degrees of jitter to make the IAC dithering go away (for most of the engines I work on it's a drive-by-wire throttle but it amounts to the same thing). Some engines seem to take 15 degrees of jitter. I have a 'idle airpath I-gain vs. error', 'idle airpath P-gain vs. error', 'idle sparkpath P-gain vs. error', 'idle airpath D-gain vs. error', and 'idle sparkpath D-gain vs. error' gain tables and they all end up being wrenched around differently for different engines and intake systems. A big variable is the ratio of the intake manifold volume and engine volume.

I would guess that the flow of the IAC is probably pretty insignificant since the Cd looks to be pretty bad with all of the twists and turns in the IAC passage. It was designed to flow under sonic conditions where essentially only the orifice size matters (manifold pressure below about 48 kPa absolute at the current barometric pressure of 89 kPa). I guess someone could flowbench it, but I'd be surprised if there was much of a difference in engine airflow with it open or closed when the throttle is wide open. I don't have a flowbench and all of the engines I have on dynos here are drive-by-wire so I can't test the IAC airflow on any of the engines I can run.