FreeFuel ECU patch - a flex fuel implementation to Evo ECU

Old Sep 17, 2012, 01:03 PM
Thread Starter
Join Date: Mar 2008
Location: Europe
Posts: 49
Likes: 0
Liked 1 Time in 1 Post
FreeFuel ECU patch - a flex fuel implementation to Evo ECU

What is it

FreeFuel is additional code to Evo ECU implementing flex fuel functionality with external sensor. FreeFuel makes it possible to drive with freely chosen mixtures of gasoline and E85/Ethanol fuel. There's no need to empty the tank before filling up.

How does it work

Known points in ECU are 0% ethanol content (gasoline maps) and 100% ethanol content (ethanol maps).

ECU reads the ethanol content percentage with A/D converter from external sensor and interpolates between the maps based on ethanol content.

FreeFuel currently interpolates the following maps:
- Fuel
- Ignition
- Injector scaling
- Cranking Primer Initial Pulse
- Boost Base Wastegate Duty Cycle
- Boost Desired Engine Load

Simplified example what interpolation means:
Gasoline ignition map 5000 rpm / 200 load cell has 5 degrees advance and ethanol ignition map has 15 degrees in the same cell. If ethanol content is 50%, ECU is using 10 degrees ignition advance at this cell.

I want to know in details how it works

Assembler source code of the additional routines is attached to this message.

Other than that there are only few calls to map read functions replaced with calls to FreeFuel functions and few places where the injector size variable used has been changed to FreeFuel interpolated variable. Also injector scaling resolution has been increased by changing fixed constant 0x83 to 0x1.

I installed the patch and now I have a hole in my block

Use ONLY at your own risk! You should first understand the basics how ECU and mapping works and you need to be familiar with mapping and logging tools.

I'd like to have a patch for my ECU xxx

Let me know which ROM ID you would like to have patch for. I don't promise anything and the code is freely available for porting to other applications so it's not depending on me or anybody else.

Change log

- implemented boost base wastegate duty cycle and desired engine load interpolation
- changed definition of force value in XML
- some changes to ignition code fixes issues when force value was outside set safety limits
- added address map file to source package which should make easier to understand how FreeFuel works

- first version
Attached Files
File Type: zip (12.4 KB, 0 views)

Last edited by ast; Jan 2, 2013 at 10:58 AM.
ast is offline  
The following users liked this post: ast
MV auto (Feb 14, 2019)
Old Sep 17, 2012, 01:03 PM
Thread Starter
Join Date: Mar 2008
Location: Europe
Posts: 49
Likes: 0
Liked 1 Time in 1 Post
Available versions

9653E706 Evo 8 (may also work in Evo 7 ECU) TephraMod V7 ROM, patch 96530706_FreeFuel_V1.1.jdf
- 96530706 - not tested, base TehpraMod V7
- 96532706 - limited testing in my own car, ROM patched from EvoLiveMap
- 96536706 - not tested, 3D Speed Density (MAP sensor)
Attached Files

Last edited by ast; Jan 2, 2013 at 10:56 AM.
ast is offline  
Old Sep 17, 2012, 01:05 PM
Thread Starter
Join Date: Mar 2008
Location: Europe
Posts: 49
Likes: 0
Liked 1 Time in 1 Post
Download links

- TephraMod V7 ROM:
- EvoLiveMap
- JojoDiff for patching:

If you like the work of those authors, please support them!


FreeFuel ROM is built by installing the patch to TephraMod V7 ROM file.

FreeFuel patch is installed with the command jptch originalrom.bin patch.jdf newrom.bin
For example: jptch 96530706-TephraMod.bin 96530706_FreeFuel_v1.1_patch.jdf 9653E706-FreeFuel.bin

Copy the 9653E706-FreeFuel.xml file to the directory where you have installed EcuFlash, for example:
C:\Program Files\OpenECU\EcuFlash\rommetadata\mitsubishi\evo

FreeFuel patch can be installed to ROM which has been already adjusted with EcuFlash. Most of the maps and settings should be retained in the process but EcuFlash comparison function should be used to determine if there are any differences. Injector scaling calculation has been changed in FreeFuel patch so injector scalings must be entered again.

By default FreeFuel patch is set to support linear ethanol content sensor which has 0V output at 0% ethanol content and 5V output at 100% ethanol content. For example Zeitronix ECA + GM flex fuel sensor

ECA analog output shall be connected to ECU pin that is used normally for TephraMod map switching:
- Evo 8 4-plug ECU: pin 42
- Evo 8 3-plug ECU: pin 64

Last edited by ast; Jan 2, 2013 at 10:58 AM.
ast is offline  
Old Sep 17, 2012, 01:07 PM
Thread Starter
Join Date: Mar 2008
Location: Europe
Posts: 49
Likes: 0
Liked 1 Time in 1 Post
Map and settings descriptions

Many of the maps can be found from several sections in EcuFlash. It's best to use maps under FreeFuel section. This is mandatory for injector sizes as their equation has been changed to match increased resolution in the patch.

Basically in FreeFuel normal maps are gasoline maps and TephraMod V7 alternate maps are ethanol maps.

FreeFuel section

Ethanol Injector Scaling:
Ethanol Fuel Map:
Ethanol Ignition Map:
Ethanol Cranking Primer Initial Pulse:
Ethanol Base Wastegate Duty:
Ethanol Boost Desired Engine Load:

Hi-octane maps for 100% ethanol content

Gasoline Injector Scaling:
Gasoline Fuel Map:
Gasoline Ignition Map:
Gasoline Cranking Primer Initial Pulse:
Gasoline Base Wastegate Duty:
Gasoline Boost Desired Engine Load:

Hi-octane maps for 0% ethanol content

Common Low Octane Fuel Map:
Common Low Octane Ignition Map:

Low Octane maps that are common for gasoline and ethanol

Ethanol Sensor Fuel/Injector/Primer Setting:
This Map can be used to adapt different sensors / frequency-to-voltage converters. By default 0V is 0% ethanol content and 5V is 100% ethanol content

Injector Correction Table:
This map can be used if injector scaling needs to be made unlinear for some reason. For example if your fuel trims at certain ethanol content go too much negative or positive this map can correct the behaviour. This map should be only adjusted if there's real need, first injector latency and injector scalings should be close to perfect.

Ethanol Sensor Ignition/Boost setting:
This map can be used to adapt different sensors / frequency-to-voltage converters. By default gasoline ignition/boost maps are used with ethanol content 0-10% and ethanol ignition/boost maps are used with 70-100% ethanol content. Between these maps are interpolated. The reason why this is not linear is that when there's enough ethanol in the the fuel engine typically is not knock limited and adding more ignition advance would only lower the power and stress the engine. Boost typically should follow the engine knock threshold just like ignition.

Force Enable:
Force Ethanol Content:

It's possible to force FreeFuel to use certain ethanol content. Used for tuning. If EvoLivemap is used setting force on and content to 100% only ethanol maps are used (which are in fact TephraMod V7 alternate maps and have Livemap possibility)

Safety enable:
Safety low limit:
Safety high limit:

When safety is on and ethanol sensor input is not between lower and upper limits situation is considered as error, for example broken sensor or loose wire. For safety purposes FreeFuel will use ethanol fuel maps and gasoline ignition map.

Sensor update max load limit:
Sensor update max RPM limit:

Ethanol sensor reading is updated only if both load and RPM are below these limits. GM ethanol sensor has the tendency to lower the ethanol content reading at high load and rpm, possibly because of voltage fluctuation or lower return flow to fuel tank though the sensor if fuel pump is close to it's limits. This prevents going lean at full boost if this is the case in your setup. Maximum limit values are 160 load and 8000 rpm.

Boost interpolation enable:
When boost interpolation is on, base wastegate duty and desired engine load maps are interpolated. When it's off, normal TephraMod V7 methods to switch maps (TPS, ICS button) can be used to switch between gasoline and ethanol boost maps. When ECU boost control is not used, I recommend setting interpolation off.

DMA EvoLiveMap section

If EvoLiveMap is used to map the ECU, change map locations to RAM. Default is ROM.

Last edited by ast; Jan 2, 2013 at 11:09 AM.
ast is offline  
Old Sep 17, 2012, 01:08 PM
Thread Starter
Join Date: Mar 2008
Location: Europe
Posts: 49
Likes: 0
Liked 1 Time in 1 Post
Quick mapping instructions

1. Gasoline maps
- force ethanol content to 0%
- map your car with gasoline
- special attention should be given to injector scaling and latency. They should be well set up and fuel trims close to 0%

2. Ethanol maps
- empty the fuel tank and fill up with E85
- force ethanol content to 100%
- copy your gasoline fuel and ignition maps to ethanol maps to work as a base
- divide gasoline injector scaling with 1.4-1.5 to get starting point for ethanol injector scaling
- map your car with E85
- special attention should be given to injector scaling. It should be well set up and fuel trims close to 0%
- there should not be need to touch injector latency setting, it doesn't change when the fuel changes!

3. Setting interpolation on

Because in sections 1 and 2 you didn't adjust the maps with 0% and 100% ethanol content injector scalings must be corrected with the following formulas:
- gasoline: x = gas_scaling + gasoline_eth_content * (gas_scaling - eth_scaling) / (E85_ethanol_content - gasoline_eth_content)
- ethanol: x = eth_scaling - (100 - E85_ethanol_content) * (gas_scaling - eth_scaling) / (E85_ethanol_content - gasoline_eth_content)

So if gasoline ethanol content during the tune was 5% and E85 ethanol content was full 85% then the equations are:

- gasoline: x = gas_scaling + 5*(gas_scaling-eth_scaling)/80
- ethanol: x = eth_scaling - 15*(gas_scaling-eth_scaling)/80

There may also be a need to fine tune fuel maps slightly but if there's no big difference between gasoline and ethanol maps then this may not be necessary.

Ignition maps do not need fine tuning if stock values in "Ethanol Sensor Ignition setting" are used. This is because gasoline ignition map is used between 0-10% ethanol content and ethanol ignition map is used between 70-100% ethanol content. Most fuels sold as "gasoline" or "E85" fall inside these ranges.

Now you can take FreeFuel interpolation functionality into use by setting Force off in EcuFlash.

Finally check that fuel trims and WOT AFR is OK with all ethanol contents. Fine tune if needed.

TIP: Ethanol content from the sensor can be read with Evoscan MUT request 83. Equation for stock settings is x/255*100

Have fun!
ast is offline  
Old Sep 17, 2012, 01:30 PM
EvoM Guru
iTrader: (8)
razorlab's Avatar
Join Date: Aug 2003
Location: New York, New York
Posts: 11,225
Liked 250 Times in 221 Posts
No boost interpolate?
razorlab is offline  
Old Sep 17, 2012, 01:31 PM
iTrader: (1)
fingjosh's Avatar
Join Date: Sep 2009
Location: Prospect Heights, il
Posts: 32
Likes: 0
Liked 0 Times in 0 Posts
yes, ive been looking for this for a while now. I hope the reviews are positive.
fingjosh is offline  
Old Sep 17, 2012, 01:44 PM
Thread Starter
Join Date: Mar 2008
Location: Europe
Posts: 49
Likes: 0
Liked 1 Time in 1 Post
No boost at the moment, although it would be quite easy to add too. I use MBC so I have no way of testing ecu boost.

You can still use Tephra dual boost maps, you just have to switch maps with TPS or ICS button instead of MAP switching pin which is now used for ethanol sensor.

This is my first attempt to do any ECU hacking or and last time I did any assembler programming was almost 20 years ago so it may not be too pretty and there could be bugs.

I was trying to do a track day test last weekend before the release but unfortunately didn't pass the strict noise limits. It seems to be working fine in the street though.

Last edited by ast; Sep 17, 2012 at 01:46 PM.
ast is offline  
Old Sep 17, 2012, 03:04 PM
Evolved Member
iTrader: (10)
todd6027's Avatar
Join Date: Jun 2007
Location: Ireland
Posts: 1,857
Liked 7 Times in 7 Posts
Good work
todd6027 is offline  
Old Sep 17, 2012, 03:34 PM
Evolved Member
iTrader: (33)
SmurfZilla's Avatar
Join Date: Jul 2002
Location: Raleigh, Transplanted from Toronto, Canada
Posts: 5,315
Likes: 0
Liked 0 Times in 0 Posts
This is finally a reality?

Adding boost for ECU controlled setups would be awesome.

THanks for the hard work
SmurfZilla is offline  
Old Sep 17, 2012, 03:43 PM
Evolved Member
iTrader: (51)
LGshow19's Avatar
Join Date: Feb 2010
Location: San Antonio
Posts: 1,637
Likes: 0
Liked 0 Times in 0 Posts

Nice work!
LGshow19 is offline  
Old Sep 17, 2012, 03:49 PM
Evolved Member
iTrader: (42)
Boltz.'s Avatar
Join Date: Aug 2005
Location: St. Charles, IL
Posts: 2,501
Likes: 0
Liked 0 Times in 0 Posts
Thanks for your hard work. This should be great, but like Bryan asked, the big gap here is the boost interpolation that it is missing. Would love to help test this if we could get a boost map interp scale...

Also, since no one can get 100% ethanol, unless they produce it themselves or are getting it illegally, shouldn't the 'ethanol value' that you noted at 100% actually be 85%? Is that end user adjustable?

Boltz. is offline  
Old Sep 17, 2012, 04:02 PM
Evolving Member
Join Date: May 2005
Location: Santa Monica, CA
Posts: 100
Likes: 0
Liked 0 Times in 0 Posts
Very impressive!

I’m going to suggest this support the 96531706 ROM as this seems to be one of the more popular ones. Just a few comments/ideas/suggestions from my experience with Flex Fuel control on other ECUs:

I too would really like to see boost integrated into this logic. That’s a big one. Also, individual “blend” tables would be great, say for someone who can already run 30 psi boost with only 50% ethanol but doesn’t want to exceed that boost value due to engine/turbo limitation etc.

The GM Flex Fuel sensor outputs a frequency signal for content (50-150hz, 0-100% content). It would be VERY cool if this could be run into the ECU directly to avoid having to buy the Zeitronix unit. The only frequency-based ECU input I can think of would be the Vehicle Speed input (or MAF freq if running speed density). This might take some pretty hardcore code but think of how great it would be if we could read the sensor’s frequency output directly. If not, I’m sure one could make a cheap digital to analogue converter module.

I really like the idea of freezing the Ethanol content above X load and Y RPM, great thinking there!

The Flex Fuel sensors unfortunately are quite expensive. So expensive in fact that OEMs have stopped using them for years now. Everything is done using the O2 sensor and fuel trims. Doing this properly on this ECU though would be very difficult if not impossible. It would have to have very wide fuel trim limits and use the fuel trim information to affect the blend percentage tables.


Last edited by 99EclipseGSX; Sep 17, 2012 at 04:09 PM.
99EclipseGSX is offline  
Old Sep 17, 2012, 05:53 PM
Evolved Member
iTrader: (30)
JohnBradley's Avatar
Join Date: Jan 2004
Location: Northwest
Posts: 11,391
Liked 49 Times in 34 Posts
How fast is the feedback from sensor to ECU for the interpolation?
JohnBradley is offline  
Old Sep 18, 2012, 06:54 AM
Account Disabled
iTrader: (38)
Join Date: Jun 2010
Location: Fayetteville,NC
Posts: 1,230
Likes: 0
Liked 0 Times in 0 Posts
Any patches for 9417 family roms as it uses raw load for fuel and timing, which IMHO is better for people still on the MAF...
Spec-Ops1 is offline  

Thread Tools
Search this Thread
Quick Reply: FreeFuel ECU patch - a flex fuel implementation to Evo ECU

Contact Us - About Us - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service

© 2019 MH Sub I, LLC dba Internet Brands

We are a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to and affiliated sites.