Synchronization
Overview
Once the crank / cam sensors are configured, the synchronization strategy and tooth pattern must be set up to be able to synchronize the ECU with the engine.
When cranking / starting the engine, the ECU will initially be in an unsynchronized state. The ECU will not be able to determine the engine cycle position until synchronization is achieved.
When the ECU reaches the synchronized state, the
Stat Sync'd channel will be set to ON.
During cranking, the ECU uses a different control strategy to normal running.
Synchronization Strategy
The most common synchronization strategy is to use a Missing tooth (or eXtra tooth) on the crankshaft wheel, GEMS ECUs refer to this as the Sync MX strategy.
There are 4 synchronization strategies available, controlled by 3 options. These options must be set in a mutually exclusive way:
- Sync MX - Missing / extra tooth/teeth on the crankshaft wheel.
- Sync Cam Count - Simplest strategy, uses the camshaft sensor to determine the engine cycle position, prefer
Sync Crank S count if possible.
- Sync Crank S Count - Similar to
Sync Cam Count, counts the number of crankshaft teeth between camshaft teeth.
- Sync Cam - when the above 3 options are OFF. Ignores the
Tooth Control table and used camshaft signal to subdivide the engine cycle.
Subsections of Synchronization
Sync MX
Overview
The Sync MX strategy is the most common synchronization strategy. It uses a missing tooth / teeth (or an extra tooth) on the crankshaft wheel to determine the engine cycle position.
Sync MX Options
The following options are used to detect the missing or extra tooth:
Option |
Description |
Sync MX |
ON |
Sync Cam Count |
OFF |
Sync Crank S Count |
OFF |
Sync Crank Divider |
OFF. This option has a major impact on timing interrupts and changing it requires an ECU reset. |
Missing |
Number of missing or extra teeth. Allowed values 0, 1, 2, -1. A value of -1 indicates the wheel uses an extra tooth (e.g. Honda 12+1). |
MX Sync Test |
Number of actual teeth before the missing tooth since the last missing section. For wheels with only 1 missing section or 1 extra tooth, set this to the physical number of teeth - 1. So for e.g. 36-2 this should be 34-1, which is 33. For more complex wheels with multiple missing sections (e.g. Rover K), set to the longest run of teeth without any missing teeth between them. |
MX Time |
Threshold for Missing Tooth detection. Percentage of prior tooth interval time to predict minimum interval to next tooth. |
Start MX Time |
Threshold for Missing Tooth detection (when cranking). |
Sync Teeth |
Cam Synchronization, count of Cam sensor events that must occur to reset Fuel Tooth No and Ign Tooth No. |
Test not Sync'd |
Set to ON so that while cranking, all opportunities are used for synchronization |
Sync off Above |
Ignore the Cam sync above the specified Engine Speed, if non zero. This may be required at higher RPMs if cam and crank interrupts can interfere with each other, reducing timing precision. |
Sync Err R/S |
Result in loss of synchronization ( Stat Sync'd => OFF) if this number of Sync errors are detected. |
Sync Test A Tooth and Sync Test A enable |
move cam synchronisation decision at a specific A Tooth, rather than synchronisation test at last valid entry in Tooth control table. This is may be useful with variable cam control systems, where the cam signal used for synchronisation crosses the old fixed decision point. Only used with “Sync MX” Strategy. |
Using a value for ‘Missing’ of 1 may be acceptable for wheels with 2 missing teeth in a row, depending upon the value of
MX Time.
The value of
MX Time is a balance between the maximum tolerable deceleration of the engine and the ability to detect the missing tooth.
MX Time or
Start MX Time is used to make
d Tooth Time that is compared with the new tooth time to detect the missing or extra tooth. If detected it is displayed in
Miss Time.
This is a scaling factor for the tooth interval for giving a lower bound on when the next tooth should arrive.
If there are missing teeth then either 1 or 2 whole intervals will be added to this value, depending upon the value of
Missing. If there is an extra tooth then no extra intervals are added.
When the first tooth after the missing section on the wheel is detected then this deadline should be missed - and the ECU will consider this event as having just passed the missing tooth.

For each time the
Tooth Control table is successfully processed, the ECU will decrement the
Sync good count channel until it reaches 0.
Sync Cam Count
Overview
Simplest synchronising strategy, where possible use Sync Crank S Count.
Where Cam Count = Sync teeth
Cam count is the number of cam teeth between crank teeth, as in old Subaru pattern and Dodge Viper.
Examples
Toyota
24 even crank teeth per engine cycle with 1 cam tooth.
- Tooth Control table is 0-23 = 5, 24 = 3
- Sync Cam Count = ON
- Sync Crank S Count = OFF
- Sync MX = OFF
- Sync Teeth = 1
- MX Sync Test = 24
Old Subaru
3 crank teeth per cylinder event.
- Tooth Control table is 4,5,6, 4,5,6, 4,5,6, 4,5,6, then at 12 = 3
- Sync Cam Count = ON
- Sync Crank S Count = OFF
- Sync MX = OFF
- Sync Teeth = 1 or 3 there are two 2s
- MX Sync Test = 12
- Ignition range = 0.50 teeth
- Crank Alt Fire = ON
- Start Ignition = -10
Sync Crank S Count
Overview
Where SS Tooth No = MX Sync test and Sync Tooth = Sync teeth
SS Tooth No is the number of internal crank teeth between cam teeth.
Sync tooth is the value of Fuel tooth at the synchronising cam tooth.
Sync Crank S Count Options
Option |
Description |
Sync Crank S Count |
ON |
Sync MX |
OFF |
Sync Cam Count |
OFF |
Sync Cam Width |
OFF |
Sync Crank Divider |
OFF. This option has a major impact on timing interrupts and changing it requires an ECU reset. |
Missing |
Set to 0 since there are no missing / extra teeth. |
Sync Teeth |
|
MX Sync Test |
|
Examples
Honda S2000
24 even crank teeth per engine cycle with 3 cam teeth at TDC for only 3 cylinders.
- Tooth Control table is 0-23 = 5, 24 = 3
- Sync Teeth = don’t care - See channel Sync Tooth or Cam tooth1, the cam tooth for synchronisation relative to crank.
- MX Sync Test = 12 - See channel SS Tooth No, the number of internal teeth between cam teeth at the synchronising cam tooth, the other possibility 6 is not unique as it occurs twice per engine cycle.
Toyota
24 even crank teeth per engine cycle with 1 cam tooth.
- Tooth Control table is 0-23 = 5, 24 = 3
- Sync Teeth = 1
- MX Sync Test = 24
Simple crank trigger
Edge at 45deg 4 teeth cycle, no cam synchronisation.
- Tooth Control table is 0-2 = 1, 3 = 5, 24 = 3
- Sync Teeth = 0
- MX Sync Test = 4
Adjust ignition range for useful +/45 degrees = 0.5
Ford P8 L8
4 even crank teeth per engine cycle with 2 cam teeth.
- Tooth Control table is 0-7 = 5, 8 = 3
- Sync Teeth = don’t care - See channel Sync Tooth or Cam tooth1, the cam tooth for synchronisation relative to crank)
- MX Sync Test = 6 - See channel SS Tooth No, the number of internal teeth between cam teeth at the synchronising cam tooth, the other possibility 2 is not as strong.
- Fuel Teeth = 8
- Spark Teeth = 4 for wasted spark
- Wheel Teeth = 4
Sync Cam
Overview
Old synchronization strategy used with timing wheels with a high number of teeth without any missing/extra teeth. The camshaft sensor is used to identify the engine cycle position.
Option |
Description |
Sync MX |
OFF |
Sync Cam Count |
OFF |
Sync Crank S Count |
OFF |
Sync Cam Width |
ON |
Sync Crank Divider |
ON. This option has a major impact on timing interrupts and changing it requires an ECU reset. |
Missing |
Set to 0 since there are no missing / extra teeth. |
Crank Divider |
Divisor for reducing crank teeth to internal teeth. |
Cam Width Test |
Number of subdivided teeth that must be seen in order to synchronize. |
Sync Teeth |
Copied to Crank Div Sync Err if synchronization is lost; number of good sync’s required to set Stat Sync'd to ON. |
If the
Sync Cam Width option is ON, synchronization is achieved if
Cam Width =
Cam Width Test when the Cam interrupt occurs.
In some ECUs this may be
MX Sync test.
If the
Sync Cam Width option is OFF then synchronization would achieved if
SS Tooth No =
Cam Width Test when the Cam interrupt occurs. However,
SS Tooth No is only set when
Sync Crank Divider is OFF or during crank interrupt with the Sync Crank S Count strategy enabled. So this mode is no longer of use in recent firmware versions.
In case of loss of sync,
Crank Div Sync Err is set to the value of the
Sync Teeth and decremented for each successful Cam synchronization. When
Crank Div Sync Err reaches 0, the ECU will consider the engine to be synchronized and will set
Stat Sync'd to ON.
Pulse Acc count T1 (aka
PA Count T1) is captured at start of T2 interrupt, stored in
PA count1 temp. This counts T1 events (crank teeth).
Cam Width receives the number of subdivided crank teeth that have occurred since the last Cam sensor event.
Examples
These are historical examples that may contain errors and have not been re-tested on modern hardware.
Historical BMW M3
135 crank teeth on ring gear, one sync pulse at 1/2 engine speed.
- Crank Divider = 9, giving 15 internal teeth per rev. 24deg/internal tooth
- Ign Range = 2.75
- Fuel Teeth = 30
- Spark Teeth = 15 (wasted spark)
- Cam Width Test = 30 (May be
MX Sync Test on some ECUs)
- Sync Cam Width = ON (? original example reported as OFF)
- Sync Crank Divider = ON
Nissan
360 crank teeth (high speed), 4 cylinder slots of different widths, equivalent to 2,3,5,or 5 crank teeth.
- Crank Divider = 15, giving 12 internal teeth per rev. 30deg/internal tooth
- Ign Range = 3.0
- Fuel Teeth = 24
- Spark Teeth = 12 (wasted spark)
- Cam Width Test = 251 (? - needs confirmation)
- Sync Cam Width = ON
- Sync Crank Divider = ON
Use only fast falling edges for crank (T1) and cam (T2).