Crank Triggers

This post is about how sequenced outputs for injection and ignition are set up in the Rabbit ECU. For a basic install, it is very likely that the Rabbit ECU can use the stock crank trigger whether it is variable reluctance, Hall Effect or optical.

A crank trigger alone can get you up and running as a 360 degree system, that is with batch fire injection and wasted spark ignition. Add in a cam position sensor, and you can run a full 720 degree system timing with sequential injection and ignition for 4 cylinder engines. For 6 and 8 cylinders, the Rabbit ECU can run wasted spark ignition with semi-sequential injection.

In this post, the timing diagrams are based on the 60-2 Hall Effect crank trigger sensor found in the GM L98 engine, and many others.

Arduino Compatible ECU, Arduino Fuel Injection, ECU Remapping, DIY Fuel injection

The crank trigger has 60 evenly spaced teeth, 6 degrees apart with a 2-teeth gap for synchronising. The gap is around 90 crank degrees BTDC. The numbers here show how it is possible to choose edges the same number of teeth apart as a position reference for the ECU to calculate engine speed and timing.

The Rabbit ECU doesn’t need to calculate timing at every single tooth. It makes setup easier and there is less load on the CPU if say 8 or 16 evenly spaced points are used across the full 720 degree cycle. In the Rabbit ECU these points are called synchronisation points. It is possible to have as many synchronisation points as you want to improve accuracy. Many early EFI systems had just 4 or 8, while later systems with misfire detection can have over 100!


The Origin

The first part to setting up the crank trigger is selecting a crank tooth as the origin tooth. In the picture below, you can see that the origin tooth (marked 0) is found at the 15th tooth after the missing teeth gap. The origin tooth is around TDC for cylinder 1 in this example.

DIY Fuel Injection, ECU Calibration, Programmable Fuel Injection, Arduino Due, Arduino Mega

You can also see that there are 8 synchronisation points (0-7) across the full 720 degree cycle. This setup is for full sequential, so is a 720 degree system.

The orange rectangle is a sequence window, which is a slice of time in which a single or group of ignition or injection pulses can occur. The orange sequence window is for cylinder 1 ignition and includes an example ignition pulse, where the timing is some way advanced from TDC. For the Rabbit ECU, this is how timed signals work – the ignition or injection pulses occur within the sequence window. A sequence window can cover either 360 or 720 degrees.


Wasted Spark Ignition Sequences

Below is shown 2 sequential sequence windows. This system could run a 4 cylinder engine with wasted spark coils. The origins of the first sequence are 0 & 4, and the origins of the second sequence are 2 & 6.

Sequential Fuel Injection, Wasted Spark Ignition, Build Your Own Fuel Injection, Arduino Based Fuel Injection


And here is shown 4 sequential sequence windows that could run an 8 cylinder engine with wasted spark coils. The origins of the first sequence window are 0 & 4, and the origins for the following sequence windows are 1 & 5, 2 & 6 and 3 & 7.

STM32 Based Fuel Injection, Aftermarket EFI, Arduino EFI

Sequence windows that have two origin points are automatically 360 degree duration.


Sequential Injection Sequences

Sequence windows with just one origin are used in the Rabbit for fully sequential injection, and for sequential direct-fire ignition. The diagram below shows the first sequence window with origin 4. Because origin 0 is around TDC firing position, the first sequence pulse ends at around TDC exhaust position, right around inlet valve opening. This is the preferred sequential injector timing. The second sequence window  at origin 0 is for the opposite cylinder of a two-cylinder engine.

Sequential Fuel Injection, Motorsport ECU, ECU Remapping, Aftermarket Fuel Injection


This picture shows a 4 sequence window system with origins at 4, 6, 0 and 2. This setup would be for a Rabbit ECU 4 cylinder sequential injection.

Arduino Fuel Injection, Engine Tuning, Distributor Remapping



This post was all about how fuel injection and ignition sequences work in the Rabbit ECU. Importantly for setup you need to:

  1. Choose evenly spaced points from the crank trigger or distributor sensor
  2. Choose an origin, the 0 point for all sequences
  3. Choose sequence windows that have 360 or 720 degree duration
  4. Figure out the single origin or two origin points for each sequence window

This post doesn’t cover the timing of the ignition pulses (spark advance) or the injection pulses (injection phasing), these will be covered later.

Leave a Reply

Your email address will not be published.