EfiMini Theory of Operation

From efiHacks Wiki
Jump to: navigation, search



Most stock engines need the original fuel injection system adjusted once the overall engine "breathing" characteristics have changed. The reasons for this can come from all of the following reasons individually or in any combination thereof:

  • Changes in the intake system flow (i.e. high flow air filter, intake resonance, port changes)
  • Changes in the exhaust system flow (i.e. lower back pressure, exhaust resonance, port changes)
  • Changes in valve train (i.e. camshaft timing, valve lift, valve diameters)
  • Change in engine displacement (i.e. change in bore or stroke)
  • Change in compression ratio (i.e. higher compression)
  • Change in fuel mixture (i.e. performance additives)

The purpose of the efiMini is to provide the optimal tuning of the air-fuel mixture ratio for any given engine load, from idle to full power - as well as provide a very flexible accelerator pump adjustment. Aside from tuning, the device also has a performance analyzer that can monitor and record various engine performance data for later analysis and comparison.

EfiMini efiTimingCtrlUnit.png

Injection Control

On a typical multi-port injection system (one or two injectors per cylinder), there is usually one or sometimes a series of injection pulses per power cycle (4 strokes = 720 degrees = 2 engine turns).

The efiMini supports (currently) up to 4 injectors with an individual tuning adjustment table for each injector.

Since the pressure on the fuel injectors is being kept constant by a pressure regulator, the only way to portion the fuel is to vary the length of the injectors being open during each power cycle. This means that the injected fuel is directly proportional to the open times of the injectors. The maximum injector open time is limited by the time it takes for the engine to perform a 720 degree rotation (power cycle).

At 6,000 RPM it is: 6000/60 seconds = 100 turns/second. That is 1/100th of a second (10ms). Two turns take 20ms, therefore the maximum injector time is 20ms.

Assuming that the maximum voluminous filling of the engine is at it's max torque range at around 4500 RPM, there is room for a longer injection time and then the injection time has to decrease again down to the 20ms time at a maximum of 6000 RPM.


There are two very small delays during each injector opening and closing cycle:

Injector Open Action

The first opening action is caused by the electrical property of the electromagnetic valve (coil induction). The induction causes the current to slowly rise. Once the current is high enough to provide enough mechanical force to overcome the spring load that keeps the valve closed, the valve opens and the magnetic gap is reduced. As the force increases, the opening action accelerates. As the valve closes, the force of the spring works slightly against the increase in magnetic force left from the coil. This force, however, is less than the magnetic opening force otherwise the injection wouldn't open.

Since the supply voltage is constant, this increase of the current occurs in the shape of an e curve. The max current is determined by the resistance of the injector on the supplied 12-volts.

I = U / R

The second action is the inertia of the mass of the moving valve parts.

Injector Close Action

When the injector is powered off, the magnetic field around the injector's core rapidly decreases. The inductor is trying to keep the current flowing and this causes a voltage spike to develop in the coil's terminals through electromagnetic induction. There is usually a sort of zener diode built into the circuitry which allows the energy stores in the coil to bleed over a period of time (less than 1ms) to zero. The time it takes to bleed the current depends on the energy stores and the voltage the zener element provides to the coil.

The zener element in the switching transistor (MOSFET) will deplete the stored energy in the coil.

E = 0.5 * L * I * I

The less resistance of the injector and the higher the bleeding voltage, the faster the energy stores in the coil gets depleted.

P = (U * U) / R

Usually there is a compromise between a low-cost, high-voltage driver and a low-resistance injector - typically between 40 and 70 volts.

Once the current has depleted enough so that the closing spring action can overcome the magnetic hold force (which is now at a significantly smaller of a gap verses the opening position, but strong spring force) - the injector will now close. Again, there is the same inertia which will also slow things down.

Since it isn't our job to design fuel injectors, we do not need to perform any precise calculations - we only have to be aware of the above mentioned opening and closing time constraints of the injectors. As long it is understood that there is a opening response time less than or equal to 1ms and a similar closing time, we know to remove these durations from the overall electrical fuel injection signal.

Injector Timing Measurements

The pict below shows the injector timing at idle speed on a KTM-690 Duke.

EfiMini efiInjTiming.png

Measurement setup : Tektronix THS730A digital oscilloscope. 0.47 ohm resistor in +12 V supply to injector (inductance of wire wound resistor negligible, no iron core).

Section 1 and Section 3 follow the direction of the exponential current rise curve (sorry, pict seems upside down due to reversal of osc leads).

Section 2 bends in opposite direction for a duration of about 500 us. Starting at 25 % of full current and ending at 70 % full current.

This 45 % of curvature reversal could be attributed to the mechanical movement of the opening of the injector and thus influencing the actual injector inductance (change in magnetic flux) during the time period of the opening.

  • Actual Opening Start : 25 % of full current, at 300 us after injector driver turns on.
  • Actual Full Open : 70 % of full current, at 800 us with a total mech. opening time of 500 us.

The electrical closing time is much faster since the back EMF voltage is at a 35 V limit (Zener element inside the injector driver) compared to 12 V for the opening. and the power diminishes with the square of the voltage (inductance variation during mechanical injector component negligible, as can be seen by the minimal deviation from the exponential opening curve.)

The mostly linear portion (70 %) took 800 us for the 12 V based injector on-event.
The off-event took about 100 us at 35 V ... 35 * 35 = 1225 ... 12 * 12 = 144 ... 1225 / 144 = 8.5 ... 800 us to 100 us.

L = Trl / R

If we assume a resistance of 10 ohm (forgot to measure the inj resistance) and 14 V battery (charged) ... we get 0.0008 / 10 = 80 uH as an approximation.

There is more detailed information available at Understanding Fuel Injector Waveforms.

RPM Detection

Based upon the assumption that there is only one injection pulse per power cycle (720 degrees), we can calculate the RPM by measuring the time it took from one injector event to the to the next cycle on-time event.

This makes the wiring simple since it doesn't require a connection to the crankshaft sensor or the camshaft sensor. There are, however, two drawbacks with this approach.

The first drawback is that some engines shut the injectors completely off during the engine brake time (decelerating the vehicle with the throttle at idle). In this time, we will not be able to determine the actual engine RPM. But since nothing is being injected, it is not that important to know the engine speed for us.

The second drawback is being is that there are additional injector pulses being inserted during a 720 degree power cycle for the purpose of enriching the fuel mixture upon a rapid throttle opening at lower RPMs. The efiMini has measures in its firmware to detect such events and sums the injector on and off times to determine (estimate) the engine RPM. This works in most cases and eventual errors can be compensated with the efiMini's firmware-based accelerator tuning adjustment.

Injector Timing Processing

It's the purpose of the air-fuel ratio tuning to change the injected fuel volume by varying the injector on-time accordingly. The condition the engine is running at is determined by the current RPMs and throttle position (eventually also a manifold absolute pressure reading or an airflow meter reading, provided the sensors are available on a particular engine).

The stock ECU provides a base injector on timing, but the efiMini provides the necessary plus and minus adjustments to correct these stock timings (air-fuel ratio) to the new engine characteristics.

EfiMini efiTuningCtrl.png

The stock ECUs on-time event is being saved t0i and the injector is being cycled ON after a delay delta time at the t0o time event. The stock ECUs off-time event t1i the overall stock ECU on-time (t0it1i) is known since the t0i time event was previously saved. Since the t0o output injector on-time was delayed the overall on-time can be shortened by a max of the delay time delta (minus calculation time < 1ms). Upon receiving the t1i off event, the on-board processor now calculates any necessary adjustments for the output on-time and turns the injector OFF at the calculated t1o time event.

The 32-bit ARM7 processor running at 60MHz allows these these calculations to be performed in less than 1ms. In addition, some pre-calculations, like determining the current RPM and reading the throttle position and indexing into the adjustment table are performed asynchronously to the injector in timing events. The fuel adjustment percentages are calculated by linear interpolation within the map table, indexed by the RPM and throttle position. Each injector gets its timing calculated for every individual on-time.

As a footnote, the delay time is automatically adjusted (shrunk) for smaller injection times to conform as closely as possible to the stock injection timing.

Injector Timing Table

If you envision time from a human perspective, everything less than 1 / 10 sec, 100 ms becomes academic and goes into the realm of math and science. When an engine turns higher than idle our perception ist fast ... faster ... fastest.
Therefore it's hard to envision an injector ON-time by looking at a running engine.
This table provides a brief info about engine timings at various RPM settings and helps to find the appropriate number at a glance. Everyone knows RPM and we talk about an engine rev at 10k ... etc.
So how much is it at a second ... a little math and we have it, but this table provides quick and easy look-up for evaluating engine and fuel injection parameters.
If you think about data sampling rates and data resolution.
rpm / 100 ms : gives you very small numbers compared to the thousands of RPM.
cycles / sec and cycles / 100 ms : amazing that an engine makes only five 720 deg turns in 1 / 10 sec at 6000 rpm.
time in ms for 720 deg : you can only open the injector up to a max of 10 ms at 12000 rpm and then it doesn't close anymore, cause the next cycle has already started.

rpm rpm / sec rpm / 100 ms cyc / sec cyc / 100 ms ms / cyc
600 10 1.0 5.0 0.5 200
1000 17 1.7 8.3 0.8 120
2000 33 3.3 17 1.7 60
3000 50 5.0 25 2.5 40
4000 67 6.7 33 3.3 30
5000 83 8.3 42 4.2 24
6000 100 10.0 50 5.0 20
7000 117 11.7 58 5.8 17.1
8000 133 13.3 67 6.7 15.0
9000 150 15.0 75 7.5 13.3
10000 167 16.7 83 8.3 12.0
11000 183 18.3 92 9.2 10.9
12000 200 20.0 100 10.0 10.0
13000 217 21.7 108 10.8 9.2
14000 233 23.3 117 11.7 8.6
15000 250 25.0 125 12.5 8.0
16000 267 26.7 133 13.3 7.5
Personal tools