Looks like you're in . go to International store? ? Yes, please. or No, thanks.

Flex Fuel Tuning on Modular ECUs

April 08, 2018




Since E85 has become commonly available, it has become a popular choice of fuel for performance tuners, because it’s relatively cheap and similar octane level to race fuel. However it’s not available everywhere, and often people with street driven cars, where it is legal to do so with an aftermarket ECU, want to have the option to switch to E0 or any other blend of ethanol and petrol / gasoline. Also, while where I live in Sydney we have E85 at the pump, apparently in the US it’s quite common for “gas stations” to advertise the fuel as E85, but the ethanol content can be as low as 50%, which makes it E50. So if you want to be able to run different fuels without draining the tank, or use “pump E85” in the US, then you need a system that can handle any ethanol percentage in the fuel. This configuration is called “flex fuel” and is supported by all the Modular ECUs, and all the Select ECUs except the base model e420d. This article describes how to set up flex fuel on the Modular ECUs.

Broadly speaking there are three different variables the ECU can change based on the ethanol content, which are the delivered fuel quantity, the ignition timing, and the amount of boost available to the driver.

First let’s discuss how to install such a system on the car. You will need a flex fuel sensor; also called a fuel composition sensor or ethanol sensor. There are three types of these; the old Siemens type, the Continental type and the Ford type. We do not support the Ford type, but the Continental and the Siemens have the same output configuration and we support both of those.



This can either be connected in series with the supply side, or the return side of the fuel going back to the tank. In some cases people do things like loops to make sure that the sensor stays wet even when the fuel drains away, or run parallel paths so it’s not a restriction to the fuel delivered to the engine, or even put the sensor in the return path from a surge tank back to the main tank. There are various arguments about this and if you want to start an argument on the internet, go to a facebook group with a bunch of tuners and tell them the right way to do it.




One argument against using the return from the regulator is that if you run out of fuel supply and the regulator shuts off completely, then the sensor will be dry and that will give an incorrect reading. The Modular ECUs mitigate against this by only reading the value from the sensor when the engine is in the vacuum condition; as soon as the engine develops boost, the ECU “locks” the value until it gets on vacuum again.

One argument against using the sensor on the supply side is that it’s another potential point of failure on the pressurised part of the fuel system, but OEMs do this and obviously they have assessed the risks. A second reason not to use the sensor on the supply side is that it might cause a restriction and therefore a fuel pressure drop. If you’re worried about this you can always measure the fuel pressure drop across the sensor; and I expect that it will be less of a restriction than you think it will.

The one thing I’ll say about having the sensor between the surge tank and the main tank is that one of the benefits of using such a sensor is that it reports not only the ethanol percentage, but also the fuel temperature. The ECU can use the fuel temperature to make corrections based on the fuel density change with temperature, and we highly recommend this, especially with E85 fuel. Some cars have fuel temperature sensors fitted from the factory, for example the FD RX7 and the Z32 300ZX, and ethanol’s density changes with temperature more quickly that petrol’s density does. So we do recommend measuring fuel temperature, and it makes sense to do that with the ethanol sensor because it saves adding more components and wiring. If you do want to run the flex sensor at the back of the car though, and a separate fuel temperature sensor, you can do that.

As far as wiring goes, the flex sensor needs 12V ignition switched power, ground and it has a signal output. In most cases you can connect this to the CAS3 input on the ECU, because most fixed valve timing and many variable valve timing engines have only 2 crank or cam angle sensors. If you do need to use 3 CAS inputs or more with flex fuel, then you will need to upgrade the ECU with the Mini Realtime input module, which gives you another 2 CAS inputs, 3 vehicle speed inputs and a dedicated flex input.



Once you’ve done that, go to the ethanol input setup and select the source as being “CAS3”. To measure fuel temperature from the same sensor, go to Inputs -> Temperature sensors -> fuel temperature. Select the type as any calibration and the source as “from flex sensor”.



The other way to get the ethanol content into the ECU is to use the Innovate ECF-1 gauge. This gives ethanol content, fuel temperature and lambda over one connection. To configure this, firstly go to the setting for the serial port you will use (serial 1 or serial 2) and select the “connection” as “Innovate”. Select the type as “ECF-1”, and select the number of MTXL, LC1 or LC2 as being zero.




Then go to the Inputs -> Ethanol and select the source as ECF over serial. The setting for the fuel temperature sensor remains the same.



Before doing any flex tuning, you should do what we always say to do and verify that the sensor is reading correctly. The ethanol percentage and fuel temperature are both shown in the main gauges area so you can check them easily.



If it doesn’t display, then check the configuration as I described above. If it’s connected directly through CAS3, then verify that the CAS3 ARM on the F11 window flashes between red and grey.



If it’s stuck at red, that means that either the sensor does not have power, or that the signal wire is shorted to ground. If it’s stuck at grey, that means either that the sensor does not have power or that there’s an open circuit in the connection between the sensor and the ECU. You can verify that the wiring and the ECU are working correctly by unplugging the sensor and shorting the sensor output pin on the connector to ground, and verify that the ARM goes from grey to red when you do that. Please remember that just like many other components, there are counterfeit sensors around which have had early life failures.

OK, assuming that the sensor is reading correctly, let’s look at the settings required to set it up correctly. Firstly, we highly recommend enabling the “trim for fuel density” setting in Outputs -> Fuel System. This causes the ECU to calculate the fuel density based on the measured fuel temperature and also the ethanol percentage, and use that to convert the fuel mass calculation into a volume, to calculate the injector duration required.



Next, for the fuel map that you’re using (we’ll assume you’re using fuel map 1), we need to change the Stoich source from “constant” to “flex fuel”. This means that instead of using a fixed stoichiometric ratio, the ECU will look at the ethanol percentage from the sensor and calculate the stoichiometric ratio from that. The stoich value will be the value that the ECU will use in the event of a sensor failure, so for example if your normal fuel is E85 then you would put 10.0 in this setting.



The way the fuel calculation works is that you have three tables. You have the basic VE table, the same as if you were doing a fixed-fuel tune. Then there is a correction table for 0% ethanol, and a second correction table for 85% ethanol. The ECU interpolates between these two tables and uses this to trim the main fuel map.



The first step is to then set both E0 and E85 maps to zero.Then tune the first fuel on the main map.



Then switch to the second fuel, and modify the correction map for that fuel so that the lambda is still correct with the new fuel. In theory this map should be zero everywhere; in practice the maps tend to be in the range of ±5% usually. This method allows you to either tune E0 or E85 first.




For ignition timing, the same process occurs where you have the main ignition map, and then an E0 and an E85 correction map. If you use the E85 condition as the default condition, then the E85 map will be zero and the E0 map will have negative values in it to pull out timing at the lower ethanol percentage.




There is a third way that you can do ignition timing, because the timing values are added – and that is to leave the main ignition map at zero, and then you can treat the E0 map as the ignition map for no ethanol, and the E85 correction map can be your ignition map for E85. The downside is that the ignition correction maps are only 15×15 in size instead of the main ignition map which is 31 x 31 but in practice I don’t think this would be a limitation.



The final behaviour that can be affected by ethanol percentage is boost. To enable this, go to the boost settings page and select “limits”. Enable the “limit boost by ethanol content” checkbox, and then select the limit vs ethanol content. If you are in open loop, duty cycle mode, then this table is a duty cycle limit for the wastegate actuator based on the ethanol percentage. If you are in a target boost mode, then these values become the new lower target boost when the ethanol content is lower. Obviously the target boost or duty cycle limit has to be higher than what you intend to run at E85 at the 85% point, otherwise it will limit your boost.




Also obviously when testing boost limit based on ethanol, remember that other limits might be applying at the same time, for example gear and external boost selection inputs.

One final point about flex fuel, the ECU “thinks” in lambda rather than AFR. The AFR is only calculated as an intermediate step in working out the fuel quantity from the air quantity. So to avoid confusion and delay, we recommend displaying lambda and using lambda targets, because firstly that’s what the engine really cares about (that is, whichever fuel you’re running, the target lambda is usually approximately the same, certainly between ethanol and petrol) and secondly that’s what the lambda sensor actually measures. If you ask the software to display it as AFR instead of lambda, it displays what we call “petrol AFR” which is lambda multiplied by 14.7. This will not be the correct AFR unless your stoichiometric ratio is 14.7. However, it seems that almost all lambda sensors display lambda in this way by default if not exclusively, and that also includes the lambda / AFR displays on dynos.

Thank you very much!