ISCV control system disassembly
Thread Starter
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Actually, %demand is not ISCV step position. Its the axis on the stepper table that people thought for years was either rpm or load. So it does directly relate to ISCV step position, but its not ISCV step position.
Last edited by mrfred; Dec 12, 2012 at 08:09 AM.
Let me make sure I'm understanding this right. Based off of various conditions the ECU finds the ISCV demand % which can be raised or lowered by multiple tables. Once it knows what % is required it looks to the Idle Stepper lookup table and based off of % and coolant temp chooses the appropriate number of steps for the given situation. Correct?
Which tables are most commonly adjusted when dialing in ISCV settings?
Which tables are most commonly adjusted when dialing in ISCV settings?
-Jamie
Thread Starter
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Let me make sure I'm understanding this right. Based off of various conditions the ECU finds the ISCV demand % which can be raised or lowered by multiple tables. Once it knows what % is required it looks to the Idle Stepper lookup table and based off of % and coolant temp chooses the appropriate number of steps for the given situation. Correct?
Idle is usually fine with factory ISCV settings. The only issue that tends to crop up on some cars (reason unknown) is that idle holds high during some decel conditions.
Thread Starter
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
First I'd like to thanks to all people who have worked on this. I'm not a fan of blind tuning so I'm trying to understand how the system works. I've read ALL the info about ISCV. I wanted to ask if anyone can confirm my understanding of the ISCV routine:
-The ISCV initial step position is a baseline for ISCV position. So at 0% demand, ISCV is at initial step position.
-ISCV Demand% is determined considering what the engine is doing (which sub is active) and multiple parameters (tps,coolant,iat,baro,rpm at differents % of effect on the final variable). ISCV demand% is translated to Steps by the ISCV stepper lookup table.
-ISCV Demand% trim is determined by comparing the target idle (target idle tables) vs the actual idle RPM. In stock ROM max trim is 2%demand at 500rpm deviation so it hasn't much effect on ISCV steps.
-The ISCV is a stepper motor that has 255 steps. If the final ISCV target is over 255 or under 0, different parameters has no effect on it anymore. So before starting to tweak tables it would be important to tune the BISS to get some room in most situations.
ISCV Demand% +/- ISCVTrims% => Lookup table steps
ISCV final position= Initial steps +/- Lookup table
The reason I suppose a negative %demand is because when I did a quick log of ISCsteps yesterday, they were under initial position table.
I'll be out tonight for logging and trying to confirm how it works before starting to blindly tweak the tables. It would be interesting to know in a logical way how to react to differents issues/different setups. Thanks for your answers!
-The ISCV initial step position is a baseline for ISCV position. So at 0% demand, ISCV is at initial step position.
-ISCV Demand% is determined considering what the engine is doing (which sub is active) and multiple parameters (tps,coolant,iat,baro,rpm at differents % of effect on the final variable). ISCV demand% is translated to Steps by the ISCV stepper lookup table.
-ISCV Demand% trim is determined by comparing the target idle (target idle tables) vs the actual idle RPM. In stock ROM max trim is 2%demand at 500rpm deviation so it hasn't much effect on ISCV steps.
-The ISCV is a stepper motor that has 255 steps. If the final ISCV target is over 255 or under 0, different parameters has no effect on it anymore. So before starting to tweak tables it would be important to tune the BISS to get some room in most situations.
ISCV Demand% +/- ISCVTrims% => Lookup table steps
ISCV final position= Initial steps +/- Lookup table
The reason I suppose a negative %demand is because when I did a quick log of ISCsteps yesterday, they were under initial position table.
I'll be out tonight for logging and trying to confirm how it works before starting to blindly tweak the tables. It would be interesting to know in a logical way how to react to differents issues/different setups. Thanks for your answers!
So my IX will be fine after putting s2's on?
I'll be willing to help test whatever once I get my car back in a few weeks. Asking so many questions because I don't have the car to try making changes and seeing what happens at the moment.
I'll be willing to help test whatever once I get my car back in a few weeks. Asking so many questions because I don't have the car to try making changes and seeing what happens at the moment.
Thread Starter
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
IX's are fine with S2s. Can be made to idle almost like stock with the right MIVEC settings.
I think I found something interesting tonight.
For a small introduction the goal is to eliminate the cold start idle spiking to 1700-1800 RPM(even 2000RPM+ on some cars). Needless to say cold starts are very hard on the engine, so purpose of this is to minimise wear.
There is some unknown parameter that raise the Demand% for about 8 seconds on startup. No dissasembled table seems to point that behavior. No matter which initial value you want in ISCV initial step position, the Demand% always add up to initial ISCV step. You can not drop initial step position enough to counter this because you'll end up with a too much closed ISCV and will have some problems like idle surge.

So by affecting main demand lookup, and dialing initial steps position will get the idle where it needs to be, everytime. I basically maxed out the demand table at 62:

So whenever the %demand wants, the stepper won't go any higher than Initial positon+62. Still not perfect, it seems to need to be higher than that, I will try 68 tomorrow.
My initial steps table aren't perfect yet so idle slowly changes when coolant is warming up. Basically because there is some wrong numbers in the center of the table...
I'll end up with a solid 900rpm.

The outside temperature was 26f, Suprisingly good for a temperature this cold:
(Yes, gravel mode gives more rotation in snow
)
So far, I tested it into city and road driving and haven't had any surging, fast idle, hang.
Will update on further progress.
For a small introduction the goal is to eliminate the cold start idle spiking to 1700-1800 RPM(even 2000RPM+ on some cars). Needless to say cold starts are very hard on the engine, so purpose of this is to minimise wear.
There is some unknown parameter that raise the Demand% for about 8 seconds on startup. No dissasembled table seems to point that behavior. No matter which initial value you want in ISCV initial step position, the Demand% always add up to initial ISCV step. You can not drop initial step position enough to counter this because you'll end up with a too much closed ISCV and will have some problems like idle surge.

So by affecting main demand lookup, and dialing initial steps position will get the idle where it needs to be, everytime. I basically maxed out the demand table at 62:

So whenever the %demand wants, the stepper won't go any higher than Initial positon+62. Still not perfect, it seems to need to be higher than that, I will try 68 tomorrow.
My initial steps table aren't perfect yet so idle slowly changes when coolant is warming up. Basically because there is some wrong numbers in the center of the table...
I'll end up with a solid 900rpm.

The outside temperature was 26f, Suprisingly good for a temperature this cold:
(Yes, gravel mode gives more rotation in snow
)So far, I tested it into city and road driving and haven't had any surging, fast idle, hang.
Will update on further progress.
Last edited by domyz; Dec 13, 2012 at 10:20 PM.
Great stuff Domyz. My cold idle is getting decent now too, I just have a weird issue where, after the engine is warmed up, turning the AC on will sometimes cause idle steps to shoot up to 64 and the idle goes up to about 2k rpm. I thought I had fixed it by adjusting the ISCV demand vs throttle - AC ON, but it did it again yesterday. Will keep messing with it.






