Ignition Timing

Overview

Ignition events occur relative to crankshaft rotation angles.

Ignition angles are typically measured in degrees relative to Top Dead Center (TDC) of the compression stroke. Internally, the ECU works in units of virtual ‘internal teeth’, which are proportional to the crankshaft rotation angle.

Various items in the calibration may adjust the ignition timing (advance or retard it) relative to TDC.

See RPM Pickup for a discussion on how the ECU determines the crankshaft position, internal teeth, and the relationship to rotation angle.

Ignition Driver Assignment

Once the RPM Pickup has been calibrated, the ignition drivers may be assigned to the engine cylinders.

The options option iconIGN1 to option iconIGN8 enable the associated ignition driver circuit.

Note

Whilst it is desirable for software IGN numbers to refer to cylinder numbers, in practice this may not be possible due to multiplexing of the ignition drivers.

Some newer ECUs use option iconCoil 1 to option iconCoil 8 instead of option iconIGN1 to option iconIGN8. The options ar are assigned to the ignition driver circuits in reverse sequence to avoid multiplexing being used on the lower Coil numbers (allowing Coil N to match Cylinder N on any engine up to 6 cylinders, where there is a single ignition driver per cylinder, if desired).

option iconIGN Tooth 1 to option iconIGN Tooth 8 controls the relative angle of individual ignition driver triggers (firing angles) - essentially these options define the firing order.

The adjusted ignition timing calculation is added to these per-driver angles to result in a final ignition timing value for each driver (producing channel iconSpark 1 Total to channel iconSpark 8 Total).

Depending on the ECU hardware, multiplexing of ignition triggers may be required due to limitations on the number of Timer Output Compare (TOC) pins on the CPU in the ECU.

The EM80 ECU has 6 TOC pins available for controlling up to 8 ignition drivers, so some additional non-timer pins are used to share 2 TOCs between 4 ignition circuits. On EM80, the IGN1 and IGN3 circuits are multiplexed and so are IGN2 and IGN4.

flowchart LR
    IGMUX11-->AND1(["&"])
    TOC1-->AND1
    TOC1-->AND2
    IGMUX12-->AND2(["&"])
    AND1-->IGN1
    AND2-->IGN3
    IGN1-->LM4{{LM4}}
    IGN3-->LM3{{LM3}}

    IGMUX21-->AND3(["&"])
    TOC2-->AND3
    TOC2-->AND4
    IGMUX22-->AND4(["&"])
    AND3-->IGN2
    AND4-->IGN4
    IGN2-->LL2{{LL2}}
    IGN4-->LM2{{LM2}}

    TOC3-->IGN5
    IGN5-->RH3{{RH3}}

    TOC4-->IGN6
    IGN6-->RG3{{RG3}}

    TOC5-->IGN7
    IGN7-->RH2{{RH2}}
    
    TOC6-->IGN8
    IGN8-->RH1{{RH1}}

Multiplexed IGN triggers place some restrictions on the assignment of IGN driver circuits to physical engine cylinders.

Warning

Multiplexed IGN circuits must be mutually exclusively triggered. The consequences of timing overlap here could be severe engine knock / pre-ignition.

To give the maximum amount of timing flexibility we either want to avoid using both IGN drivers within multiplexed pairs, or ensure that multiplexed drivers (e.g. IGN1 and IGN3 on EM80) are assigned to physical cylinders that have TDC that is 360 degrees apart from one another.

It should be possible to calculate if timing overlap is possible using the following formula if necessary:

‘IGN Tooth 1’ + ‘Dwell Max’ >= ‘IGN Tooth 3’

If the above condition is violated, then the IGN circuits are not mutually exclusive and the ECU will not be able to control the ignition timing correctly.

If the engine is running wasted spark then it may be acceptable to fire the multiplexed IGNs at the same time if they are assigned to the correct cylinders.

Tip

You may find that assigning Cylinder 1 to IGN1 is a good starting point for the ignition circuit assignment. This will allow the use the “Spark Total 1” channel to refer to Cylinder 1 as a general indication of ignition advance/retard by convention.

The rest of the IGN circuits may then be assigned, taking into account the firing order and firing angles of the engine.

On a 4 cylinder engine, one option would be to then use IGN2, IGN5 and IGN6 (skipping the multiplexed IGN3 and IGN4), to avoid any chance of overlap in the multiplexer.

Given an even firing order of 1-3-4-2, the IGN + cylinder assignment for this strategy could be as follows:

Cylinder IGN Driver Angle IGN Tooth (if 12 teeth / rev)
1 IGN 1 = ON IGN Tooth 1 = 0.0
2 IGN 2 = ON 540° IGN Tooth 2 = 18.0
3 IGN 5 = ON 180° IGN Tooth 5 = 6.0
4 IGN 6 = ON 360° IGN Tooth 6 = 12.0
IGN 3 = OFF
IGN 4 = OFF
IGN 7 = OFF
IGN 8 = OFF

On 6 cylinder engine, we could follow the same pattern and use IGNs 1,2,5,6,7,8.

Of course we could still use the multiplexor for 4 cylinder, provided we arrange for IGN1 and IGN3 to be 360 degrees apart and the same for IGN2 and IGN4.

Given an even firing order of 1-3-4-2, the IGN + cylinder assignment could be as follows:

Cylinder IGN Driver Angle IGN Tooth (if 12 teeth / rev)
1 IGN 1 = ON IGN Tooth 1 = 0.0
2 IGN 4 = ON 540° IGN Tooth 4 = 18.0
3 IGN 2 = ON 180° IGN Tooth 2 = 6.0
4 IGN 3 = ON 360° IGN Tooth 3 = 12.0
IGN 5 = OFF
IGN 6 = OFF
IGN 7 = OFF
IGN 8 = OFF

On an 8 Cylinder engine we would be forced to use the multiplexed IGNs in any case, so careful assignment if IGNs will be required to ensure optimal phase separation of timing signals.

For example, for an 8 cylinder engine with a firing order of 1-8-4-3-6-5-7-2, the IGN + cylinder assignment could be as follows:

Cylinder IGN Driver Angle IGN Tooth (if 12 teeth / rev)
1 IGN 1 = ON IGN Tooth 1 = 0.0
2 IGN 8 = ON 630° IGN Tooth 8 = 21.0
3 IGN 7 = ON 270° IGN Tooth 7 = 9.0
4 IGN 5 = ON 180° IGN Tooth 5 = 6.0
5 IGN 2 = ON 450° IGN Tooth 2 = 15.0
6 IGN 3 = ON 360° IGN Tooth 3 = 12.0
7 IGN 6 = ON 540° IGN Tooth 6 = 18.0
8 IGN 4 = ON 90° IGN Tooth 4 = 3.0

Ignition Range

The ignition timing range is the difference between the maximum and minimum ignition angles that may be specified in the calibration.

The option option iconIgn Range specifies the number of internal teeth over which the ignition may be adjusted. The ECU uses this value to scale ignition timing adjustments to the ECU’s internal working units (fractional internal teeth).

Note

For correct ECU operation, the option iconIgn Range option must be set correctly.

The option iconIgn Advance Scalar and option iconIgn Advance Offset options are used to convert internal teeth to degrees and have no impact on the internal operation of the ECU.

The range can be tested using option option iconIgnition Fixed to see the maximum advance / retard that can be achieved given option iconIgn Advance Scalar and option iconIgn Advance Offset.

option iconIgn Range should be set to:

"Ignition Range (Degrees)" * "Internal Teeth" / 360

Where Ignition Range, is:

"Max Advance Degrees BTDC" + "Max Retard Degrees ATDC"</code></pre>

For most GEMS ECUs, given a known advance / retard value, the option iconIgn Advance Scalar and option iconIgn Advance Offset options can be calculated as follows:

"Ign Advance Scalar" = ("Max Advance" + "Max Retard") / 127

"Ign Advance Offset" = ("Max Advance" - 63.5) * "Ign Advance Scalar"

Ignition Timing Alignment / Reference Point

If you do not have a base calibration for your engine where the timing alignment is pre-configured, the timing adjustment may be calibrated with the assistance of a timing light (strobe) that is triggered by the ignition signal (spark plug) on cylinder #1.

The ECU calibration should be set such that it is not trying to advance or retard the ignition timing. This may be achieved by setting option option iconIgnition Fixed to a desired advance value and the channel channel iconIgnition Fixed to ON. This will override any ignition adjustments except for option iconSpark Sync and the per-ignition offsets (option iconIGN Tooth 1 to option iconIGN Tooth 8).

TDC should be accurately marked on the crankshaft timing wheel or flywheel. The strobe will illuminate the timing mark(s) on the wheel when the ignition event occurs, allowing the timing angle to be determined.

If the engine is unable to start then it is still possible to use a strobe but the spark plugs should be removed from the cylinders to avoid compression in the engine which would otherwise make the rotation speed inconsistent. The spark plugs should still be attached to the HT leads and attached to the engine earth. Once the engine is running, the timing adjustment process should be repeated for more accurate results.

Note that systems running wasted spark will have 2 ignition events per cycle, so ignition timing figures shown on the strobe light should be halved.

The option iconSpark Sync option may be used to apply a ‘global’ fixed adjustment (trim) to the ignition timing, so that the timing mark may align with a desired advance value.

Note

VR sensors and coils may introduce a small fixed timing drift, which can be compensated for with the option iconPickup comp option. This is a temporal adjustment rather than being related to angle (option iconSpark Sync). If you notice that the ignition advance is changing with RPM then it may be compensated with this option.

For engines that must run at very high RPMs or have many teeth on the crank wheel, the option iconT1 Delay Time +3/16 Tooth option may be used to account for the processing time of the ECU.

These options will affect all timing calibrations so should be configured early in the calibration process.

Options / Channels

Option / Channel Description
option iconT1 Delay Time +3/16 Tooth Account for processing time when a tooth interrupt occurs. For high tooth rate / high RPM, setting this option changes the worst case processing window from 1/16th of a tooth to 1/4 of a tooth.
channel iconIgnition Fixed (Writable) If set to ON, replaces any ignition advance compensations with fixed value from the option iconIgnition Fixed option. Since this is a writeable channel, it will be reset to OFF following a reset of the ECU. This can be useful if calibrating / confirming timing using a strobe, where compensations have already been configured.
option iconIgnition Fixed Fixed ignition advance value to use when channel iconIgnition Fixed is ON.
option iconSpark Sync Trim / ‘Reference Point’ value for ignition timing. Based value to which advance / retard adjustments are added, to give
option iconFuel Sync Not relevant to ignition timing but similar to option iconSpark Sync for adjusting injection timing.
channel iconSpark 1 Total The final ignition timing angle for the 1st ignition driver circuit.
channel iconSpark 2 Total The final ignition timing angle for the 2nd ignition driver circuit.
channel iconSpark 3 Total The final ignition timing angle for the 3rd ignition driver circuit.
channel iconSpark 4 Total The final ignition timing angle for the 4th ignition driver circuit.
channel iconSpark 5 Total The final ignition timing angle for the 5th ignition driver circuit.
channel iconSpark 6 Total The final ignition timing angle for the 6th ignition driver circuit.
channel iconSpark 7 Total The final ignition timing angle for the 7th ignition driver circuit.
channel iconSpark 8 Total The final ignition timing angle for the 8th ignition driver circuit.
channel iconTILMTPT Indicates ignition cutting pattern due to rev limiting (0 == OFF).