Many people have problems to set up idle control. Here is a guide how to do it step by step.
Remeber PID is only for fine tuning, the VE table (stable lambda) and Active state airflow table are essential.
If you have any question please ask here, as it helps to polish the tutorial.
How to properly set up idle control?
Properly configured idle settings should maintain the desired idle RPM under standard conditions without the need for PID controllers.
PID controllers are used to correct idle speed under varying conditions such as coolant temperature changes or engine load (e.g. when the rear window defroster or radiator fan is activated).
Step 1: Configure the Idle Activation parameters
Ensure that Idle On PPS is set lower than Idle Off PPS. For initial setup, the default values can be used.
Step 2: Configure the desired idle target based on coolant temperature
This is done in the Idle Target RPM table.
The colder the engine, the higher the idle RPM should be.
If the engine is equipped with aggressive camshafts, oversized injectors, or a lightweight flywheel, the idle target should be set higher than in a stock engine.
Also configure the Afterstart RPM Increase table under Idle Target.
This table defines how much the idle RPM should be increased after engine startup.
The colder the coolant, the more the RPM should be raised during startup.
Step 3: Configure the Idle Ignition target angle table
Set ignition timing so that advancing or retarding timing affects engine speed in a predictable and symmetrical way.
This is typically a few degrees before TDC.
At this point, set all PID parameters (kP, kI, and kD) to 0.
Step 4: Configure the airflow control method
This step is critical for proper idle control.
In the Actuator settings, choose the correct method of airflow control (e.g. DBW, PWM valve, etc.).
Make sure the actuator can provide sufficient airflow for maximum idle RPM during cold start, and that it does not allow the engine to stall at minimum airflow (adjust DBW Target Min/Max or Solenoid Min/Max DC accordingly).
Step 5: Use the Override Airflow feature
Start the engine and log engine RPM at various coolant temperatures and airflow percentages.
These values will help you fill in the Active State Airflow table.
This table is essential for the correct operation of idle control!
Important note:
If the engine speed is unstable with a constant airflow setting, it likely indicates problems such as incorrect fueling, wrong injection timing, oversized injectors, or idle RPM set too low to be stable.
PID controllers cannot compensate for such issues.
Ensure a stable lambda for each airflow value. Lambda < 1 usually results in more stable idle.
Step 6: Fill in the Active State Airflow table
Use the logged data. Interpolate missing values from surrounding cells.
At this point, changing the Idle RPM Target should result in actual engine RPM closely following the target.
If not, adjust airflow values for the relevant temperature.
Step 7: If idle is still unstable
Improve the fuel map in the idle region, use a lower Lambda Target, or increase the idle target RPM (a higher target usually results in better idle stability).
Step 8: Tune the Armed State Airflow table
If RPMs are not dropping as expected and the idle controller remains Armed, reduce values in the Armed State Airflow table.
This table controls how quickly RPM drops after throttle closure.
Too high of a value will prevent RPM from dropping effectively.
Step 9: Fine-tune the deceleration to idle behavior
Once stable idle has been achieved for all combinations of CLT and idle targets, configure idle behavior when RPMs are dropping in Neutral gear.
Briefly tap the throttle and observe how RPM falls compared to the fall of the idle target affected by the Ramp Down Offset.
Tune Ramp Down Decay Rate and Ramp Down Delay so that engine RPM decreases in sync with the ramp down offset.
This prevents PID saturation and ensures a smooth transition to idle without RPM dipping below the target.
Step 10: Configure the PID controller for ignition (Ignition PID)
This should help minimize idle RPM deviation from the target.
The default values are a good starting point.