Ignition Timing / Spark Advance


by: Michael Decipha Ponthieux
Posted: 2011-04-10
Last Updated: 2023-01-03

Premise - How to setup a spark table to begin tuning

Ignition timing makes torque, and torque makes power!
At very low loads at barely part throttle most engines typically need 15 degrees of timing more than MBT at WOT for that given rpm. So for example, if you MBT out at 35 degrees at 3k rpm, then for maximum efficieny you should be around 50 degrees during very light throttle at 3k rpm. Generally, a typically well dialed in spark table will often end up with values similar to the following.
WOT MBT Correction
RPMWOT Spark CorrectionExample Spark Advance
3000035
2250-431
1750-327
1500-324
1250-321
1000-318
750-315
^^that applies to WOT, you will have to plug in those values at the load the engine is at during WOT at 0 vac / 0 boost.
The most significant factor to determine ignition timing will be the combustion chamber/cylinder head and piston design, this can vary significantly on different setups.
To get a ballpark estimate of MBT timing,
CLICK HERE for the MBT Reference Chart.

Over advanced timing at very low loads is often confused for valve train rattle, DO NOT CONFUSE THE TWO, it may not be subtle at first, but with time may poke its head, if you are heavily advanced at very low loads and hear what sounds to be a valve train rattle, verify it is not over advanced by pulling out 10 degrees of timing in that range.

Thus you should have inferred, the amount of timing at WOT should be the absolute lowest timing the engine should ever see for any given rpm.

Now keep in mind cylinder head design, stroke ratio, intake design, cam profile, runner length, plug type, coil strength, gearing, and a bunch other variables will directly affect the safest amount of timing you can run, the largest influence will be the OCTANE LIMITATION OF THE FUEL YOUR BURNING.

Also keep in mind where your peak efficiency is (where the engine makes peak torque) at max efficiency you'll typically need to pull out 2 or 3 degrees to prevent detonation (if your are running timing on the very edge), this can be easily observed on a dyno or by feeling and listening to the engine. With the tune properly dialed in, LOAD will peak at peak torque.

Note: Retarding timing reduces emissions, its common to LOCK OUT timing to 10 degrees for emissions compliance on heavily modified street vehicles.

MBT - Maximum Brake Torque

The biggest mistake a bunch of tuners make is thinking that more timing=more power, that's an incorrect assumption, like everything there's always a trade off. The objective is to get as close to MBT as safely possible. MBT in the context i'm using it pertains to maximum brake torque. Do not mistakenly assume just because an engine can handle more timing means that the additional timing is helping, over advancing an engine is a very common mistake that i see often. So keep that in mind, MBT in my definition is defined as the MINIMUM amount of ignition timing that results in the MAXIMUM amount of engine torque INCREASE. For clarification, this does not mean the maximum amount of ignition timing that equals the aboslute maximum amount of torque. MBT can be summarized as the point where removing timing will result in a greater torque loss than increasing timing.

For example: lets say at 3,000 rpm and 70 load you make:

258 ft lbs @ 26 degrees
275 ft lbs @ 27 degrees
292 ft lbs @ 28 degrees
296 ft lbs @ 29 degrees
281 ft lbs @ 30 degrees

Although 29 degrees created the most torque, 28 degrees is MBT since decreasing to 27 results in -17 ft lbs lost and increasing to 29 degrees only results in a gain of 4 ft lbs. In this example, this vehicle also ran the fastest consistent 1/4 mile ET and MPH at 28 degrees.

There's been quite a few times when I've pulled timing and picked up MPH in the 1/4 its not uncommon so be warned.

On a dyno you can easily find where MBT is by using the method described in the above example, on the street it may be harder to tell, typical dyno loading allows for an engine to hit MBT where that's not possible on the street with actual loading as it will almost always result in pinging thus detonation before getting there. Its not uncommon for most dyno tuners to remove a global 3 degrees of timing or the like when removing a vehicle from a dyno to prevent detonation on the street.

When i hear an engine ping lightly i pull out at least 2+ degrees, if its a hard knock I yank out at least 4+ degrees. To each their own, this is just my quick adjustment method for informational purposes.

A low load knock is by far the hardest for an untrained ear to hear, it will to the normal person sound like a valve train rattle, it will most notably be present during decel, keep this in mind if you think you have a valve train issue as it could very well be over advanced idle spark or low load spark knock you can verify by pulling the spout or demanding much less timing in that specific cell.

A boosted engine is an animal of a different color, boosted engines don't tend to knock or ping for very long at WOT instead they tend to detonate and pop headgaskets after a brief rattle or even in some cases just go bang. Don't get too greedy on a boosted engine, its been said before that the general rule of thumb to be safe is to pull out 1/2 degree for every lb of boost, that is not the end all method to all at all; thus the need for tuning. As stated previously, there are many factors that come in to play when dealing with ignition timing, any one of those factors can be significantly agitated with boost. Although pulling out 1/2 degree per pound can result in satisfactory results more times than not I always yank out a couple degrees more at first and work my way up rather than over advancing and working my way down.

On a dyno its pretty easy to tell when your under advanced as its typical to gain 35-60 rwtq for every degree when heavily under advanced. When you get to the point that adding a degree reduces tq minimally you know your either near or at MBT. On boosted engines I typically stay at least 3 to 4 degrees away from MBT regardless, unless I know I have enough octane that detonation is not going to ever occur (I.E. Race Gas, E-85, Nitro).

On a boosted engine i always use the timing at max engine efficiency (0 vac and 0 boost) as my reference, as I transisition into boost I yank out timing linearly until I reach my desired advance at the highest load the engine can reach for that specific amount of boost. Use common sense and experience, the two most important tools in any tuners personal arsenal.

if you find yourself surprisingly under advancing the timing to prevent pinging you should start investigating, don't rely on the fuel to be what its advertised to be. It wouldn't hurt to try to clean out some carbon by heating the engine up and sucking small amounts of water through the engine using a small diameter vac line (I.E. Seafoam). Question the base timing and double check it. its not uncommon for the harmonic balancer to have slipped especially on older vehicles. Newer engines typically handle boost better than older engines due to having more efficient factory cylinder heads. As a result, you can typically get away with pulling out less timing for boost than with a an older pushrod engine. In all cases, the tuners job to get to that power as SAFELY as possible.

Spark on Boosted Applications

Obviously boosted engines can't take the same timing an n/a engine can on pump gas as it will detonate. As a general rule of thumb you can start off dialing in spark getting it somewhere in the ballpark by using the following.
Boosted over 15 lbs running premium fuel stay at least -5 deg retarded from MBT.
Boosted under 10 lbs running regular fuel then stay at least -8 deg retarded from MBT.
Boosted over 10 lbs running regular fuel at least -14 degrees retarded from MBT.
This isn't the set and forget method its just a guideline to get you started if you have no idea where to begin.

ECU Implementation - Simplify Timing

This applies to some 92+ (superoupe, 4cyl stang, lincoln mark 8) and ALL 94+ ecu's. THIS DOES NOT APPLY TO THE OLDER GUFx (foxbody) ECU'S.
Foxbody tuners
CLICK HERE for details on simplifying timing on the Foxbody ECU's.

At any given time the actual spark delivered is the lowest spark the ecu calculates.

Idle (feedback) spark is calculated from MBT
using the torque limiting function fn799
from the following scalars
spk_load_res - feedback spark desired torque (setting this to 0 will give you maximum idle spark)
after fbs_entry_tc - feedback spark entry time constant
which is clipped by spk_fbs_min - feedback spark min
and oscillated by spk_fbs_gain - feedback spark gain
not to exceed tr_delta - feedback spark torque ratio max delta (recommend value of 1 in all calibrations)

the MBT Spark table FN2300 is modified
by the Adder for Lambse function FN730
the Adder for EGR function FN731
and the Adder for Vehicle Speed FN743

Its only neccessary to dial in the MBT spark functions when you have an ecu controlled automatic transmission.
However, I highly recommend dialing in the MBT function in all calibrations.

Now you won't get into idle feedback spark unless both the idle flag and the closed throttle flags are set, which is going to be primarily due
to the IDLRPM scalar and its hysteresis. Just make sure your idle air is dialed in and the idlrpm scalar has been adjusted correctly and all should be well

Base Spark Tables

Base spark: the Sealevel Spark FN2100 and Altitude Spark FN2110 Tables are modified by:
ECT - FN2120
Lambse - FN2140
EGR - FN711
BP Bias - FN712

For ease of keeping track of timing many folks just set the base tables high, say 60 to disable them since the ecu uses the lowest calculated spark.

Borderline Knock

Borderline knock is the most used table as it has the most inputs for knock suppression, the borderline knock table is what i use and recommend
everyone else to as well.

The Borderline Knock Table FN2200 is modified by the following which are sub-modified as noted:

ACT Retard is FN725A multiplied by FN2230
I recommend setting FN2230 to all 0.1s
And setting the ACT Retard Function (FN725A) to go a lil' sumtin' like 'dis :
254-80
130-40
1100
-2540
-2540
-2540
-2540

Lambse - FN2240
ECT - FN724A multiplied FN2220
I recommend setting FN2220 to all 0.1s
And setting the ECT Retard Function to go a lil' sumtin' like 'dis:
254-80
234-40
2240
-2540
-2540

Transient Load (tip in) FN2250 modified by the Lug Timer FN723
EGR - FN721
BP - FN722

For example: Lets say your idling at 750rpm @ 16 load, looking in the mbt table we get an interpolated value of ~33 degrees, the scalar
spk_load_res is set to 0.9 which is the torque ratio from MBT the ecu is demanding. It references FN799 Spark MBT Retard for torque
limiting to see how much to adjust the mbt spark to get its desired tq ratio. Lets say 0.9 = -15 in the FN799 function, this gives us an
idle spark of 18 degrees.

Be careful with the spark MBT Table FN2300 as thats how torque modulation is referenced to variate transmission tv pressure on ecu controlled
automatic transmission equipped vehicles.

Again, remember the ecu uses the lowest calculated spark advance.
FN741 is the Low Load Limit Spark Clip used when air mass is below the stab_lold_am scalar. This function is almost ALWAYS active. I highly
recommend setting the entire Y-Axis to all 63.75 (max value is some stupid number).

Tip-In Retard yanks timing when the throttle is opened beyond the scalar
KACRAT - Tip in throttle position
Which can be disabled by maxing it out ~5.1v or 1023 ad counts (this scalar DOES NOT get used in the CBAZA code)
Otherwise the "tip_min_spk" scalar is the MINIMUM spark demanded WHEN a tip in has occurred; it is not how many degrees the
ecu retard's as many may think. You can set this to 60 to null tip in retard if you don't have kacrat available in your def file or if your using CBAZA.

You then have your global spark modifiers such as:
spk_add - usually 0
spk_mul - multiplier usually 1
spuclp - max spark clip usually 55 or so
splclp - min spark clip usually 0
later on you then have individual cylinder spark control
On modular and Coyote engines, I recommened setting Cylinder #8 to -2 degrees retarded globally.

Also keep in mind the mbt retard limiter function FN799
and spark derived torque ration FN766 should mirror each other.

Spark Oscillation Modulation (SOM) is a steady state spark modifier to aid in stabilizing the current rpm. The SOM Table FN2020 is modified by
FN746 and FN745. I recommend setting the SOM table to all 0's.

Set the base timing to ten (10) dbtdc. Not only is the base timing important, but the orientation of the distributor is as well so
injector timing is accurate


Install the distributor as per the ford specifications. A reference photo can be viewed in the
Ignition System's Write Up

Anytime your custom tuning you should always know about what the engine wants timing wise. I always recommend utilizing the MBT Reference Chart and post in the forum if your results vary significantly from the chart.


Continue reading on to the Scaling Write Up.

Return Home
Jump to Forum
www.EFIDynoTuning.com - EFIDynoTuning LC - New Orleans, LA