• Hello Guest, welcome to the initial stages of our new platform!
    You can find some additional information about where we are in the process of migrating the board and setting up our new software here

    Thank you for being a part of our community!

Cold start timing

Ginger Ninja

Member
Joined
Nov 26, 2011
Location
Australia
I'm very new to this programmable ecu thing so I need to ask the brains trust.

I've spent a lot of time getting the hot start and idle straightened out and I'm happy with that. Engine pops to life straight away and settles to idle at about 850/900rpm with timing hovering around 24 degrees before top dead. The weather was warmer then and ECT was usually around 20 degrees C or warmer (68 degrees F) in the morning. I've got the cold start ok from there right up to 85 deg C (185 F).

It's much colder now in the morning, maybe 0-5 deg C (30-40 F) and it's pretty grumpy to try and start. Need to use the pedal and that's cheating. I've tried changing settings in crank enrichment and post start enrichment (it doesn't make it to warm up enrichment yet) but no luck so far. I haven't tried adjusting the timing trim for ECT yet and it's all zeros. Where should I start with that? Or are there other more important things I should be trying?

My car has a stock B230FT with a Link ECU, stock A cam, 820cc injectors and all the YoshiFab ECU parts on there. Fuel is pump 98 RON.
 
If it helps, the stock cranking ignition timing is 6 degrees on the ez116k turbo 8v boxes I've seen. I've tried running 12 and it starts well but rarely it will kick back so I leave it at 6.

24 degrees is a bit of idle timing, did you notice it runs better that high? My car with B cam seems to like 20s degrees steady state but return-to-idle/transient regulation suffers up there.
 
Thanks for that. I'll try moving it slowly back towards stock idle timing and see if it improves.

Once the ECT is above 30 degrees C it's a lot less grumpy. The idle timing seems good once it's warmed up. If you blip the pedal it returns to idle same as my stock 240.
 
Here's a link to what I did 5+ years ago (how time flies) to setup Closed Loop Idle and Idle Spark Advance with MegaSquirt. Hopefully some of it translates to Link:
https://forums.turbobricks.com/showpost.php?p=5515804&postcount=7

The changes made a huge improvement in preventing stalling, and on smooth start&warmup on cold mornings. IIRC, the baseline idle when warmed up was 900rpm at 12deg advance.

The Idle Spark Advance provides nearly instant extra power when idling by giving extra spark advance when the idle rpm dips too low. The Closed Loop Idle lets you setup a coolant temperature versus idle RPM curve so that it starts at high idle but drops to normal as the engine warms up, while adjusting the IAC valve to hit the desired rpm.
 
I have mine set to add a few degrees advance when it's real cold, it's also set to idle at 1000-1200 on cold start depending on how cold. My base fully warmed up idle is 800rpm and about 15 degrees. (b230ft ipd turbo cam)

I don't think you mentioned an idle valve. Don't forget a cold engine needs more air.
 
Here's a link to what I did 5+ years ago (how time flies) to setup Closed Loop Idle and Idle Spark Advance with MegaSquirt. Hopefully some of it translates to Link:
https://forums.turbobricks.com/showpost.php?p=5515804&postcount=7

The changes made a huge improvement in preventing stalling, and on smooth start&warmup on cold mornings. IIRC, the baseline idle when warmed up was 900rpm at 12deg advance.

The Idle Spark Advance provides nearly instant extra power when idling by giving extra spark advance when the idle rpm dips too low. The Closed Loop Idle lets you setup a coolant temperature versus idle RPM curve so that it starts at high idle but drops to normal as the engine warms up, while adjusting the IAC valve to hit the desired rpm.

Ok, looks like I have a lot to learn about idle control. Thanks for this. I'll have a read and see what I can apply to my setup.

I have mine set to add a few degrees advance when it's real cold, it's also set to idle at 1000-1200 on cold start depending on how cold. My base fully warmed up idle is 800rpm and about 15 degrees. (b230ft ipd turbo cam)

I don't think you mentioned an idle valve. Don't forget a cold engine needs more air.

I'm pretty sure it's using the stock LH2.2 IAC valve but I'll have to check.
 
Is your cold start problem that it is hard to get the engine to fire and rise above the cranking RPM threshold or does the engine fire up during cranking and RPM rises above the cranking threshold; but, then runs badly or fails to keep running? Those are two different 'cold start' problems and the parameters that you need to adjust to fix the problem are different.

I am not at all familiar with the Link ECU. My experience is with Megasquirt Extra and some non Volvo OEM ECUs. When you are talking about timing trim for ECT, what is that? If you are talking about ignition timing, most ECUs run a fixed ignition advance until the engine exceeds the cranking RPM threshold and then it transitions to running advance off of the ignition map. Most stock 8 valve Volvo engines will start up just fine with a cranking advance of around 10 deg BTDC. The ECU will likely have a temperature dependent table for cranking fuel delivery. The ECU likely bases fuel delivery during cranking off of the values in this table up until the RPM reaches the cranking threshold RPM. Once the RPM rises above the cranking threshold fuel delivery transitions to values calculated off of the fuel map.

If the engine engine is firing up and then dying your cranking fuel pulse widths are likely 'close'. Failure to continue to run is likely a combination of getting the after start enrichment and cold start enrichment mixtures set up. If it failing to start then you may need to adjust your cranking fuel pulse widths.

If you can get the engine to start and keep running by opening the throttle then your problem may not be related to fuel delivery calculation; but, to the amount of air being admitted to the engine. If you are using the stock idle air control valve your ECU software will likely have a table for the idle valve pulse width control setting during cranking (pulse width versus coolant temperature). This controls the idle air valve below the transition RPM. If the engine is starting up without you opening the throttle the settings are likely OK. There will probably be a separate table of idle valve pulse width versus versus coolant temperature which controls the idle valve PW after the engine has risen above the cranking threshold. If you need to open the throttle to keep it running then you may have to increase the idle vale PW values at your problem temperatures to add more air.

Until you get the engine starting and idling reasonably well without having to intervene to keep it running I advise that you stick to simple open loop idle control. Once you get the engine running and idling reasonably well, you can start experimenting with the various idle stabilization functions or closed loop control options that may be available on the Link ECU. Trying to implement closed loop idle control on an engine that can barely idle is going to be an exercise in frustration.

One you get things more sorted, one of the tools that may (if the Link supports it) be available to help stabilize idle is ignition timing idle advance control. This is a function that when the ECU is in idle mode, the ECU increases ignition advance if the RPM drops below a target idle speed and reduces advance if the engine RPM rises above a target idle speed. If your ignition advance is running at 24 deg BTDC at idle, that is going to render the idle advance pretty much useless. If the base advance is 24 deg increasing the advance above 24 deg when the RPM dips is going to have no effect and might actually slow the engine down more. What you want is the base advance in idle mode to be somewhere around 10 deg BTDC and then have a curve with a slope of 6 deg per 100 RPM (engine RPM drops from 900 to 800 and advance increases from 10 to 16 deg). That 6 deg increase in advance gives a nice increase in torque that restores engine speed to 900 RPM and you get a similar reduction in torque if RPM increases to 1000 RPM (850 - 900 seems like a very high idle speed!). Once you open up the throttle and the engine transitions out of idle control you can make the ignition advance whatever your heart desires.

Edit - the slope of the idle advance does not have to be 6 deg / 100 RPM. Experiment to find what works well with your engine.
 
Last edited:
Is your cold start problem that it is hard to get the engine to fire and rise above the cranking RPM threshold or does the engine fire up during cranking and RPM rises above the cranking threshold; but, then runs badly or fails to keep running? Those are two different 'cold start' problems and the parameters that you need to adjust to fix the problem are different.

I am not at all familiar with the Link ECU. My experience is with Megasquirt Extra and some non Volvo OEM ECUs. When you are talking about timing trim for ECT, what is that? If you are talking about ignition timing, most ECUs run a fixed ignition advance until the engine exceeds the cranking RPM threshold and then it transitions to running advance off of the ignition map. Most stock 8 valve Volvo engines will start up just fine with a cranking advance of around 10 deg BTDC. The ECU will likely have a temperature dependent table for cranking fuel delivery. The ECU likely bases fuel delivery during cranking off of the values in this table up until the RPM reaches the cranking threshold RPM. Once the RPM rises above the cranking threshold fuel delivery transitions to values calculated off of the fuel map.

If the engine engine is firing up and then dying your cranking fuel pulse widths are likely 'close'. Failure to continue to run is likely a combination of getting the after start enrichment and cold start enrichment mixtures set up. If it failing to start then you may need to adjust your cranking fuel pulse widths.

If you can get the engine to start and keep running by opening the throttle then your problem may not be related to fuel delivery calculation; but, to the amount of air being admitted to the engine. If you are using the stock idle air control valve your ECU software will likely have a table for the idle valve pulse width control setting during cranking (pulse width versus coolant temperature). This controls the idle air valve below the transition RPM. If the engine is starting up without you opening the throttle the settings are likely OK. There will probably be a separate table of idle valve pulse width versus versus coolant temperature which controls the idle valve PW after the engine has risen above the cranking threshold. If you need to open the throttle to keep it running then you may have to increase the idle vale PW values at your problem temperatures to add more air.

Until you get the engine starting and idling reasonably well without having to intervene to keep it running I advise that you stick to simple open loop idle control. Once you get the engine running and idling reasonably well, you can start experimenting with the various idle stabilization functions or closed loop control options that may be available on the Link ECU. Trying to implement closed loop idle control on an engine that can barely idle is going to be an exercise in frustration.

One you get things more sorted, one of the tools that may (if the Link supports it) be available to help stabilize idle is ignition timing idle advance control. This is a function that when the ECU is in idle mode, the ECU increases ignition advance if the RPM drops below a target idle speed and reduces advance if the engine RPM rises above a target idle speed. If your ignition advance is running at 24 deg BTDC at idle, that is going to render the idle advance pretty much useless. If the base advance is 24 deg increasing the advance above 24 deg when the RPM dips is going to have no effect and might actually slow the engine down more. What you want is the base advance in idle mode to be somewhere around 10 deg BTDC and then have a curve with a slope of 6 deg per 100 RPM (engine RPM drops from 900 to 800 and advance increases from 10 to 16 deg). That 6 deg increase in advance gives a nice increase in torque that restores engine speed to 900 RPM and you get a similar reduction in torque if RPM increases to 1000 RPM (850 - 900 seems like a very high idle speed!). Once you open up the throttle and the engine transitions out of idle control you can make the ignition advance whatever your heart desires.

Edit - the slope of the idle advance does not have to be 6 deg / 100 RPM. Experiment to find what works well with your engine.

Thanks for this. Like I say, I'm new to tuning this so really appreciate the advice.

It will fire quickly once you turn the key and jumps to about 800rpm so I'm happy enough with the cranking settings for now. It's the 3 or so seconds after this where things get a bit rough. I've spent a bit more time with it this week and it now runs but idle is about 500rpm and pretty grumpy (up and down 100rpm) until it warms to 20 degrees C or so.

It sounds like I might need to look at the ignition table and see if there are improvements to be made at idle in there.
 
If it is idling at 500 RPM that is too low for a cold B230FT. As a first step I would be inclined to look at the idle air control and if you are using the Bosch PWM idle air valve increase the amount of idle air at the low coolant temperature settings. I would be inclined to provide enough idle air to give you an idle speed of around 900 - 1000 RPM at around 0 C coolant temperature and then taper the idle air PW value to bring your idle speed down to your target for at normal engine operating temperature.

Any adjustment of the ignition idle advance features should be done on a warm engine. Personally, I would not try to use those to fix an idle problem on a cold engine.
 
Thanks for all the help with this. I've adjusted the ignition advance at idle back to around 12 degrees and it seems much happier there. Warm idle sits around 800rpm and only fluctuates about 50rpm. Much smoother while cold too.

Turns out that during cold start the idle valve wasn't active due to a low MAP threshold. I raised the MAP value and now the IAC valve is active and the rpm is slightly higher, say 550 to 600rpm. I have a table for idle base position with ECT on one axis and actuator opening % on the other. Problem is that's already at 100% at low temps. I've missed something but I'm not sure what. My PWM frequency is set at 60Hz. Does this sound about right?
 
How's your idle tuning coming along? I was reading through the Link help files, and they recommend running a 2-wire solenoid IAC valve at 200 Hz. I just got done tuning closed loop idle on mine, running it at 100 Hz, and that has been fine so far. Valve is fully closed at 38% DC at this frequency. I'm mostly at 46-48% DC range with table ignition timing at 18 degrees at 800 RPM, also running idle ignition control on top.
 
Back
Top