Used on Cosworth engines, on several Ford and Lancia cars. We also call this trigger 8+2

All (original) sensors, including the VR/VR trigger can be used. In trigger play dialog this pattern can be generated by l008 type (l as in Lancia).

Use the lancia_cosworth.txt configlet (bottom of primary trigger dialog)

Very similar to 8+1, but we have a second camtooth that is neglected if

Firmware note: 1.2.26 or newer firmware is needed. (With 1.2.0 and around, it was very hard to start the engine with this trigger setup).

Runs well after startup, and good cranking

Cosworth trigger (4 on crank, 2 on cam) has been included in 1.1.x firmware for quite some time.

Even though it was running well after startup, first implementation had some hard-starting during cranking (initial sync sequence). Therefore several installers grinded one camtooth away and used "8+1" (means 4 crankpulse, 1 campulse): InputTrigger/MultiToothNoneMissing

At least one installer added a 36-1 crankwheel (because grinding away a camtooth is quite some work on this engine).

With the improved initial sync sequence (if the VR signals are otherwise in good shape and bias resistor is sufficient), hard-startup cranking is solved.

Double campulse with 36-1 crankweel

If you use 36-1 (or other missing tooth pattern) with the 2-pulse camsync, see applicable setting in MembersPage/DamirMuha/MagnetMmarelliCamSensor ! (Firmware 1.1.89 or newer)

# 4 cyl
# coiltype (bit1=1), lanciacoswort (bit5=1), 8+2 with 4 cyl,
# number of primary trigger teeth for engine period (which is 1 camrot in this case)
# 0 is fine:
# 0x168 = 360 = 90 crankdegree (4 pulses per crankrot in the 8+2 Cosworth)
# actually not used, just default value, compliance with  GenBoard/UnderDevelopment/FirmwareChanges
# neglected values:

h[0]=01 02 04 08 10 20 40 80
h[1]=00 06 04 02 00 00 00 00
h[2]=00 10 20 30 40 50 60 70

Note that this fires ignch3, ignch2, ignch1, ignch0 in this order. You can connect cyl 1,3,4,2 there respectively, or reconfigure for wasted spark for example ignch2 and ignch3 eg.:

h[2]=20 30 20 30 40 50 60 70

Engine RPM/TDC Sensor - VR type

The crankshaft pulley has 4 identical teeth spaced at precisely 90. The sensor sends a signal to the module whenever a tooth passes a the sensor. From this signal the module determines engine speed (RPM) and the TDC position of each piston (crankshaft position).


Note that pistons are 180 crankdegrees apart, so half of the pulses do NOT belong to pistons. This means this sensor requires camsync to operate. Not as convenient as a normal Bosch 60-2 or Rover K4-type pattern.

The distributor phase sensor (camsync) - also VR

The distributor is driven by the auxiliary shaft as on the standard ohc engine.

A phase sensor, located opposite a cam having two teeth separated at 90 (camdegrees) to each other, is fitted inside the distributor. At the passing of a tooth the sensor delivers a signal to the ECU. This signal is similar to the signal supplied by an RPM/TDC sensor fitted at the crankshaft pulley.

Generating trigger wav file

./signalgen l008 166-7777 120 23 1000 1000

Thanx to MembersPage/ZoltanAlmasi for documenting the cosworth trigger.


The signal from the distributor and the RPM/TDC sensor together enable module to identify the phase of each cylinder.

Note: the polarity of both sensors must be investigated. This is simple, but shouldn't be forgotten. And inverted if necessary, considering that the VR input HW senses the 0-crossing falling edge. (internally rising edge is configured when VR is used, since that is the output of the VR chip; but the VR input is always falling edge).

Unfortunately this trigger arrangement is not currently supported by firmware.