Switching between fuels

No matter what fuels you use, there is almost always the issue of switching between them. It might be possible to avoid it if:

In practice, it is usually a desireable option, for any of the above reasons.


Especially with older venturi style fuel systems, "time to port" often differs between both fuel systems. Using a single point injector, nozzle or venturi, fuel has to travel down the intake manifold to reach the ports. This requires either some "overlap" (= time in which both fuel systems are active) or "dead time" (= time in which neither is enabled) when switching. For a smooth transition, timing is critical to avoid momentary leaning/flooding.

Solution 1?

To calculate correct overlap accurately, distance-to-port difference (an estimated constant, in units of plenum/port/etc volume) and current airspeed need to be defined. I propose using a countdown, from the moment the driver flips the switch. The counter will be preset to a certain value, determined by distance-to-port. Then decrement this counter every time fuel is injected by an amount proportional to the amount of fuel injected, using that as an estimate of air consumption. Passing zero on the counter would mark the end of overlap/deadtime. This should allow smooth switching at any load, even variable loads, although the software should probably refuse to switch when on boost, just in case.

NOTE: it may also be necessary to add switch-on/switch-off time, from the moment the solenoids are given power until fuel reaches the intake and vice versa.

Solution 2?

For gas injection, be it liquid or gaseous, it may be possible to smooth out the transition even better by tapering off one fuel while slowly increasing the next. Effectively running a WBO2-corrected mixture even during switchover, distributing the fuel requirement across two (sets of) injectors. Obviously this only works when both fuels are fully under VEMS control (which is something current firmware does not support yet), not for switching to and from mechanical fuel systems.


All "smooth" switching ideas should go out the window if "emergency switching" occurs because one tank is empty. It would be nice if these cases could be detected and switched automatically. One important thing to watch out for is intake backfires, that can occur if the engine tries to run on a lean gas mixture. They can be devastating and should be prevented at (almost) any cost.

Hardware thoughts

The old days

An entirely optional history lesson for those interested

Back in the carburetor age, things were simple. Install lockoffs for both fuels and switch power between them. A hiccup would often occur, but who'd really notice or care?

During the late 80s' and 90's, as fuel injected cars became the norm, switching between LPG and petrol was often accomplished by a small and simple device called the "petrol start unit". It would always start on petrol and then, if the dash switch is set to LPG, automatically switch over. Disabling petrol was done using ugly relay setups in the injector wiring. Because it would take some time for the gas mixture to reach the ports, there would be a certain amount of (fixed but adjustable) overlap, time in which both fuel systems are active. Required overlap would mostly depend on the length of the intake tubes between injectors/mixers of either fuel. Misadjustment could lead to momentary leaning and intake backfires. Switching would be smooth at idle but cause a stumble at any other load.

Switching back to petrol would usually be instant without any overlap or dead time, often causing a rich stumble or even flooding when the engine received a momentary double dose of fuel during switchover. Some LPG systems included a pressure sensor that would switch to petrol when the LPG tank runs empty.

The petrol ECU was tricked into thinking it was still running the engine, by dummy loads on the injector outputs and a sine wave at the O2 sensor input. Often this would STILL generate trouble codes, which was "solved" by removing permanent 12V from the ECU (to keep it from remembering anything) and disabling the warning light through a relay when running on LPG. Crude as they were, many thousands ran these systems. The installers simply told users to never switch while driving, and all was well. Only the occasional hot start was problematic, if the little box couldn't detect a hot start. Some gas mixture would still linger in the intake, and trying to start on petrol (as the system always does) would just flood it. But most people would know what to do, because flooding on hot starts is not uncommon with single fuel cars either.



Don't forget about pressure sensor (MAP) inside LPG injection rail. LPG pressure at injector side isn't constant like petrol, so injection timings depends on pressure inside LPG rail also...

Why don't you make complete to sets of configuration? So you would have to have double memory space in FLASH, but, then LPG system set, and petrol system set would be 2 different sets? LPG needs little more advanced ignition and little more lean fuel. On input signal you would choose what set do you want... I'm not sure that stage1, stage2 system would work on bifuel..

Also implement a temperature parameter in the calculation of PW for the LPG injectors. As density is also dependant of LPG temperature along with pressure.

LPG temperature measured where, with what kind of sensor ? NTC ? What is density(T) ? Or is it only for very cold tank, when the pressure of the pressure regulator is not reached ?