Notices
ECU Flash

FreeFuel ECU patch - a flex fuel implementation to Evo ECU

Old Nov 14, 2016, 12:41 AM
  #376  
Evolving Member
 
Evo9_Dubai's Avatar
 
Join Date: Oct 2012
Location: Dubai
Posts: 451
Received 20 Likes on 19 Posts
Originally Posted by tscompusa
Ya with the equation I provided you. Same one we use for FiTronic.
That is correct.
Old Nov 16, 2016, 04:29 AM
  #377  
Evolved Member
iTrader: (3)
 
VGergo's Avatar
 
Join Date: Nov 2005
Location: Hungary
Posts: 566
Likes: 0
Received 1 Like on 1 Post
What really need to have this for Evo 9 Ecu ?
Old Nov 16, 2016, 11:17 AM
  #378  
EvoM Guru
iTrader: (4)
 
Construct's Avatar
 
Join Date: Nov 2009
Location: Utah
Posts: 1,661
Received 143 Likes on 119 Posts
I spent some quality time with IDA Pro over the past few weekends. Need to justify my IDA license renewal cost for the year somehow.

First and foremost: Huge thanks to ast for generously posting his well-documented source code and notes.

Second: I just barely started disassembling the Evo ECU last week, so consider everything here to be very preliminary until I can get a better grasp of what's going on in the ECU. There's a lot of assembly to sift through.


ast documented the addresses of the patched table lookup calls in his 96530706 ROM in the Address_map.TXT file included with his source code. I matched those patch points to the following locations in my 88592715 ROM. These patch points require some double-checking from someone with a more complete disassembly.

Code:
Routine      9653     8859
--------- -------  -------
Fuel      0x1489A  0x17D6E
Ignition  0x182C0  0x1BBD2
Primer    0x16C36  0x1A280
BWGDC     0x3f20E  0x5120E
BDEL      0x3F150  0x51150
Tephra V7 Table Addresses. These are easily translated from the corresponding .XMLs:
Code:
Tables                          9653     8859
---------------------        -------  -------
GAS_BDEL_TB_ADDR:      .long 0x399C2  0x4b9c2 ! TephraMod V7 BDEL map
ETH_BDEL_TB_ADDR:      .long 0x381C2  0x4a1c2 ! TephraMod V7 ALT BDEL map
GAS_BWGDC_TB_ADDR:     .long 0x39942  0x4b942 ! TephraMod V7 BWGDC map
ETH_BWGDC_TB_ADDR:     .long 0x38142  0x4a142 ! TephraMod V7 ALT BWGDC map
GAS_INJ_SCALING_ADDR:  .long 0x1506   0x1106  ! Tephra V7 Inj Scaling
ETH_INJ_SCALING_ADDR:  .long 0x37B40  0x49B40 ! Tephra V7 ALT inj scaling
GAS_FUEL_TB_ADDR:      .long 0x38742  0x4a742 ! Tephra V7 HI Fuel map
ETH_FUEL_TB_ADDR:      .long 0x37B42  0x49b42 ! Tephra V7 ALT FUEL map
GAS_IGN_TB_ADDR:       .long 0x38D42  0x4ad42 ! Tephra V7 HI IGN map
ETH_IGN_TB_ADDR:       .long 0x37E42  0x49e42 ! Tephra V7 ALT IGN map
GAS_PRIMER_TB_ADDR:    .long 0x58C8   0x52aa  ! Tephra V7 HI IGN map
ETH_PRIMER_TB_ADDR:    .long 0x38244  0x4a244 ! Tephra V7 ALT IGN map
Other memory locations:
Code:
Variables                               9653        8859
------------------------          ----------  ----------
TEPHRA_BDEL_PTR_ADDR:       .long 0xFFFF8430  0xFFFF8430      ! tephra pointer for active BDEL table, used if boost interpolation is disabled
TEPHRA_BWGDC_PTR_ADDR:      .long 0xFFFF842C  0xFFFF842C      ! tephra pointer for active BWGDC table, used if boost interpolation is disabled
FF_SENSOR_ADC_ADDR:         .long 0xFFFF8950  0xFFFF6B0C ???? ! address of the ADC input
LOAD_ADDR:                  .long 0xFFFF897A  0xFFFF6B36 ???? ! ECULoad (8-bit)
RPM_ADDR:                   .long 0xFFFF896C  0xFFFF6B28      ! RPM (8-bit)
The following constants and tables from the Flex Fuel patch need to be relocated elsewhere in the 8859 ROM:
Code:
FF_FORCE_ADDR:              .long 0x2E00
FF_FORCE_VALUE_ADDR:        .long 0x2E02
FF_SAFETY_ADDR:             .long 0x2E04
FF_SAFETY_LL_ADDR:          .long 0x2E06
FF_SAFETY_HL_ADDR:          .long 0x2E08
FF_UPDATE_MAX_LOAD_ADDR:    .long 0x2E0A
FF_UPDATE_MAX_RPM_ADDR:     .long 0x2E0C
FF_BOOST_INTPOL_ENA_ADDR:   .long 0x2E0E
AX_FF_SENSOR_FUEL_ADDR:     .long 0x2E20  ! FF sensor scale axis for fuel (2 items)
AX_FF_SENSOR_IGN_ADDR:      .long 0x2E40  ! FF sensor scale axis for IGN (4 items)
FF_FUEL_INTPOL_TB_ADDR:     .long 0x2E60  ! fuel interpolation table (2 items)
FF_IGN_INTPOL_TB_ADDR:      .long 0x2E72  ! IGN interpolation table (4 items)
FF_INJECTOR_CORR_TB_ADDR:   .long 0x2E84  ! Injector correction table to handle possible unlinearity
AX_FF_ETHANOL_CONTENT_ADDR: .long 0x2E96  ! Ethanol content scale axis for injector correction table
Likewise, the following RAM variables need to be relocated to an unused portion of the 8859 RAM segment:
Code:
FF_SENSOR_FILT_ADDR:        .long 0xFFFF94C0  ! updated if under max load or force on
FF_INJ_SCALING_ADDR:        .long 0xFFFF94C2
TLR_FF_FUEL_INTPOL_ADDR:    .long 0xFFFF94C4  
TLR_FF_IGN_INTPOL_ADDR:     .long 0xFFFF94C6  
TLR_FF_GAS_FUEL_ADDR:       .long 0xFFFF94C8
TLR_FF_ETH_FUEL_ADDR:       .long 0xFFFF94CA
FF_FUEL_RES_DBG:            .long 0xFFFF94CC
TLR_FF_GAS_IGN:             .long 0xFFFF94CE
TLR_FF_ETH_IGN:             .long 0xFFFF94D0
FF_IGN_RES_DBG:             .long 0xFFFF94D2
TLR_FF_GAS_PRIMER:          .long 0xFFFF94D4
TLR_FF_ETH_PRIMER:          .long 0xFFFF94D6
FF_PRIMER_RES_DBG:          .long 0xFFFF94D8

TLR_FF_INJECTOR_CORR_ADDR:  .long 0xFFFF94E0
TLR_FF_GAS_BWGDC:           .long 0xFFFF94E2
TLR_FF_ETH_BWGDC:           .long 0xFFFF94E4
FF_BWGDC_RES_DBG:           .long 0xFFFF94E6
TLR_FF_GAS_BDEL:            .long 0xFFFF94E8
TLR_FF_ETH_BDEL:            .long 0xFFFF94EA
FF_BDEL_RES_DBG:            .long 0xFFFF94EC
I can't actually run E85 in my current autocross class, so I don't yet expect to take this much farther. However, hopefully my notes can be helpful to someone with a more complete disassembly who is already tooled up to generate ECU patches. I would love to have this as an option in the future.
The following 2 users liked this post by Construct:
3SgteGuru (Feb 8, 2017), dr_latino999 (Nov 17, 2016)
Old Nov 16, 2016, 11:14 PM
  #379  
Evolving Member
 
Evo9_Dubai's Avatar
 
Join Date: Oct 2012
Location: Dubai
Posts: 451
Received 20 Likes on 19 Posts
That is awesome work !!!
Old Nov 18, 2016, 05:32 PM
  #380  
Newbie
 
3VOLUTIONIST's Avatar
 
Join Date: Mar 2015
Location: Perth, Western Australia
Posts: 90
Likes: 0
Received 1 Like on 1 Post
Originally Posted by razorlab
Why not use a Evo 8 rom/ecu?
I have been looking into converting to the 3 plug Evo VIII ECU.

I'd need to make an adaptor loom, because the car is a 1995 Lancer GSR (Similar to Evo III). I've got it running on a VII ECU currently, but looks like flex fuel aint gonna be a thing on that ECU.
I can make my own adaptor loom, and source an VIII ECU, might be the easier option.

Is there an actual guide on how to set this all up, or do I have to read all 26 pages

Last edited by 3VOLUTIONIST; Nov 18, 2016 at 05:57 PM.
Old Nov 19, 2016, 08:55 AM
  #381  
Evolving Member
iTrader: (12)
 
dr_latino999's Avatar
 
Join Date: Sep 2006
Location: Central TX
Posts: 419
Received 17 Likes on 17 Posts
Originally Posted by Construct
Tephra V7 Table Addresses. These are easily translated from the corresponding .XMLs:
Code:
Tables                          9653     8859
---------------------        -------  -------
GAS_BDEL_TB_ADDR:      .long 0x399C2  0x4b9c2 ! TephraMod V7 BDEL map
ETH_BDEL_TB_ADDR:      .long 0x381C2  0x4a1c2 ! TephraMod V7 ALT BDEL map
GAS_BWGDC_TB_ADDR:     .long 0x39942  0x4b942 ! TephraMod V7 BWGDC map
ETH_BWGDC_TB_ADDR:     .long 0x38142  0x4a142 ! TephraMod V7 ALT BWGDC map
GAS_INJ_SCALING_ADDR:  .long 0x1506   0x1106  ! Tephra V7 Inj Scaling
ETH_INJ_SCALING_ADDR:  .long 0x37B40  0x49B40 ! Tephra V7 ALT inj scaling
GAS_FUEL_TB_ADDR:      .long 0x38742  0x4a742 ! Tephra V7 HI Fuel map
ETH_FUEL_TB_ADDR:      .long 0x37B42  0x49b42 ! Tephra V7 ALT FUEL map
GAS_IGN_TB_ADDR:       .long 0x38D42  0x4ad42 ! Tephra V7 HI IGN map
ETH_IGN_TB_ADDR:       .long 0x37E42  0x49e42 ! Tephra V7 ALT IGN map
GAS_PRIMER_TB_ADDR:    .long 0x58C8   0x52aa  ! Tephra V7 HI IGN map
ETH_PRIMER_TB_ADDR:    .long 0x38244  0x4a244 ! Tephra V7 ALT IGN map
I'm going through the 8859 and 9417 Tephra XMLs to expand this table -

All your table addresses ending in 2 end in the XML's as d. Is there any particular reason that I'm missing for this to happen, or should I drink more coffee?
Old Nov 20, 2016, 07:39 AM
  #382  
EvoM Guru
iTrader: (4)
 
Construct's Avatar
 
Join Date: Nov 2009
Location: Utah
Posts: 1,661
Received 143 Likes on 119 Posts
Originally Posted by dr_latino999
I'm going through the 8859 and 9417 Tephra XMLs to expand this table -

All your table addresses ending in 2 end in the XML's as d. Is there any particular reason that I'm missing for this to happen, or should I drink more coffee?
The XML address is the beginning of the actual table data. The above addresses are the beginning of the table header in the ROM. EcuFlash only cares about the actual table data, but the table lookup routines in the ROM need to work with the extra values in the table headers.
Old Nov 20, 2016, 07:53 AM
  #383  
Evolving Member
iTrader: (12)
 
dr_latino999's Avatar
 
Join Date: Sep 2006
Location: Central TX
Posts: 419
Received 17 Likes on 17 Posts
Originally Posted by Construct
The XML address is the beginning of the actual table data. The above addresses are the beginning of the table header in the ROM. EcuFlash only cares about the actual table data, but the table lookup routines in the ROM need to work with the extra values in the table headers.
That makes more sense, I'm going to hop back into IDA tonight and see what else I can map out.
Old Nov 20, 2016, 10:25 AM
  #384  
Evolved Member
iTrader: (2)
 
wreckleford's Avatar
 
Join Date: Jun 2003
Location: Jamaica
Posts: 1,171
Received 11 Likes on 9 Posts
Originally Posted by 3VOLUTIONIST
I have been looking into converting to the 3 plug Evo VIII ECU.

I'd need to make an adaptor loom, because the car is a 1995 Lancer GSR (Similar to Evo III). I've got it running on a VII ECU currently, but looks like flex fuel aint gonna be a thing on that ECU.
I can make my own adaptor loom, and source an VIII ECU, might be the easier option.

Is there an actual guide on how to set this all up, or do I have to read all 26 pages
You sure it won't work on a 7 ECU. 9653 works on 7 ROMs. Supposedly there are some minor issues. I've never noticed them on the few I have done.
Old Jan 29, 2017, 04:20 PM
  #385  
Evolved Member
iTrader: (35)
 
wizzo 8's Avatar
 
Join Date: Mar 2005
Location: Chicago suburbs
Posts: 3,821
Received 11 Likes on 9 Posts
Subscribed! This is amazing information! Great job!
Old Jan 30, 2017, 04:05 AM
  #386  
Evolved Member
iTrader: (28)
 
thebluesky's Avatar
 
Join Date: Aug 2004
Location: Colorado
Posts: 538
Likes: 0
Received 0 Likes on 0 Posts
BTW, how come this thread hasn't been made a sticky yet?
Old Feb 8, 2017, 09:19 PM
  #387  
Evolved Member
iTrader: (3)
 
3SgteGuru's Avatar
 
Join Date: Feb 2006
Location: Clifton NJ
Posts: 1,401
Received 0 Likes on 0 Posts
Originally Posted by Construct
I spent some quality time with IDA Pro over the past few weekends. Need to justify my IDA license renewal cost for the year somehow.

First and foremost: Huge thanks to ast for generously posting his well-documented source code and notes.

Second: I just barely started disassembling the Evo ECU last week, so consider everything here to be very preliminary until I can get a better grasp of what's going on in the ECU. There's a lot of assembly to sift through.


ast documented the addresses of the patched table lookup calls in his 96530706 ROM in the Address_map.TXT file included with his source code. I matched those patch points to the following locations in my 88592715 ROM. These patch points require some double-checking from someone with a more complete disassembly.

Code:
Routine      9653     8859
--------- -------  -------
Fuel      0x1489A  0x17D6E
Ignition  0x182C0  0x1BBD2
Primer    0x16C36  0x1A280
BWGDC     0x3f20E  0x5120E
BDEL      0x3F150  0x51150
Tephra V7 Table Addresses. These are easily translated from the corresponding .XMLs:
Code:
Tables                          9653     8859
---------------------        -------  -------
GAS_BDEL_TB_ADDR:      .long 0x399C2  0x4b9c2 ! TephraMod V7 BDEL map
ETH_BDEL_TB_ADDR:      .long 0x381C2  0x4a1c2 ! TephraMod V7 ALT BDEL map
GAS_BWGDC_TB_ADDR:     .long 0x39942  0x4b942 ! TephraMod V7 BWGDC map
ETH_BWGDC_TB_ADDR:     .long 0x38142  0x4a142 ! TephraMod V7 ALT BWGDC map
GAS_INJ_SCALING_ADDR:  .long 0x1506   0x1106  ! Tephra V7 Inj Scaling
ETH_INJ_SCALING_ADDR:  .long 0x37B40  0x49B40 ! Tephra V7 ALT inj scaling
GAS_FUEL_TB_ADDR:      .long 0x38742  0x4a742 ! Tephra V7 HI Fuel map
ETH_FUEL_TB_ADDR:      .long 0x37B42  0x49b42 ! Tephra V7 ALT FUEL map
GAS_IGN_TB_ADDR:       .long 0x38D42  0x4ad42 ! Tephra V7 HI IGN map
ETH_IGN_TB_ADDR:       .long 0x37E42  0x49e42 ! Tephra V7 ALT IGN map
GAS_PRIMER_TB_ADDR:    .long 0x58C8   0x52aa  ! Tephra V7 HI IGN map
ETH_PRIMER_TB_ADDR:    .long 0x38244  0x4a244 ! Tephra V7 ALT IGN map
Other memory locations:
Code:
Variables                               9653        8859
------------------------          ----------  ----------
TEPHRA_BDEL_PTR_ADDR:       .long 0xFFFF8430  0xFFFF8430      ! tephra pointer for active BDEL table, used if boost interpolation is disabled
TEPHRA_BWGDC_PTR_ADDR:      .long 0xFFFF842C  0xFFFF842C      ! tephra pointer for active BWGDC table, used if boost interpolation is disabled
FF_SENSOR_ADC_ADDR:         .long 0xFFFF8950  0xFFFF6B0C ???? ! address of the ADC input
LOAD_ADDR:                  .long 0xFFFF897A  0xFFFF6B36 ???? ! ECULoad (8-bit)
RPM_ADDR:                   .long 0xFFFF896C  0xFFFF6B28      ! RPM (8-bit)
The following constants and tables from the Flex Fuel patch need to be relocated elsewhere in the 8859 ROM:
Code:
FF_FORCE_ADDR:              .long 0x2E00
FF_FORCE_VALUE_ADDR:        .long 0x2E02
FF_SAFETY_ADDR:             .long 0x2E04
FF_SAFETY_LL_ADDR:          .long 0x2E06
FF_SAFETY_HL_ADDR:          .long 0x2E08
FF_UPDATE_MAX_LOAD_ADDR:    .long 0x2E0A
FF_UPDATE_MAX_RPM_ADDR:     .long 0x2E0C
FF_BOOST_INTPOL_ENA_ADDR:   .long 0x2E0E
AX_FF_SENSOR_FUEL_ADDR:     .long 0x2E20  ! FF sensor scale axis for fuel (2 items)
AX_FF_SENSOR_IGN_ADDR:      .long 0x2E40  ! FF sensor scale axis for IGN (4 items)
FF_FUEL_INTPOL_TB_ADDR:     .long 0x2E60  ! fuel interpolation table (2 items)
FF_IGN_INTPOL_TB_ADDR:      .long 0x2E72  ! IGN interpolation table (4 items)
FF_INJECTOR_CORR_TB_ADDR:   .long 0x2E84  ! Injector correction table to handle possible unlinearity
AX_FF_ETHANOL_CONTENT_ADDR: .long 0x2E96  ! Ethanol content scale axis for injector correction table
Likewise, the following RAM variables need to be relocated to an unused portion of the 8859 RAM segment:
Code:
FF_SENSOR_FILT_ADDR:        .long 0xFFFF94C0  ! updated if under max load or force on
FF_INJ_SCALING_ADDR:        .long 0xFFFF94C2
TLR_FF_FUEL_INTPOL_ADDR:    .long 0xFFFF94C4  
TLR_FF_IGN_INTPOL_ADDR:     .long 0xFFFF94C6  
TLR_FF_GAS_FUEL_ADDR:       .long 0xFFFF94C8
TLR_FF_ETH_FUEL_ADDR:       .long 0xFFFF94CA
FF_FUEL_RES_DBG:            .long 0xFFFF94CC
TLR_FF_GAS_IGN:             .long 0xFFFF94CE
TLR_FF_ETH_IGN:             .long 0xFFFF94D0
FF_IGN_RES_DBG:             .long 0xFFFF94D2
TLR_FF_GAS_PRIMER:          .long 0xFFFF94D4
TLR_FF_ETH_PRIMER:          .long 0xFFFF94D6
FF_PRIMER_RES_DBG:          .long 0xFFFF94D8

TLR_FF_INJECTOR_CORR_ADDR:  .long 0xFFFF94E0
TLR_FF_GAS_BWGDC:           .long 0xFFFF94E2
TLR_FF_ETH_BWGDC:           .long 0xFFFF94E4
FF_BWGDC_RES_DBG:           .long 0xFFFF94E6
TLR_FF_GAS_BDEL:            .long 0xFFFF94E8
TLR_FF_ETH_BDEL:            .long 0xFFFF94EA
FF_BDEL_RES_DBG:            .long 0xFFFF94EC
I can't actually run E85 in my current autocross class, so I don't yet expect to take this much farther. However, hopefully my notes can be helpful to someone with a more complete disassembly who is already tooled up to generate ECU patches. I would love to have this as an option in the future.

The data ive been looking for

Can't wait for this to be finished. Im fuel swapping right now. Anything i can do to help Let me know, I have access to a dyno and im not completely illiterate when it comes to assembly. (i understand like 2% of it)
Old May 21, 2017, 11:59 PM
  #388  
Evolving Member
 
Evo9_Dubai's Avatar
 
Join Date: Oct 2012
Location: Dubai
Posts: 451
Received 20 Likes on 19 Posts
Any progress on the 8859?
I can test if needed since I am all wired 0-5v to the ecu from the flex sensor.
Old Jul 20, 2017, 04:56 AM
  #389  
Evolved Member
 
mines5's Avatar
 
Join Date: Oct 2010
Location: Streets of willow
Posts: 863
Received 22 Likes on 21 Posts
Originally Posted by evo9_dubai
any progress on the 8859?
I can test if needed since i am all wired 0-5v to the ecu from the flex sensor.
^ x2
Old Jul 21, 2017, 03:58 PM
  #390  
Evolved Member
iTrader: (3)
 
VGergo's Avatar
 
Join Date: Nov 2005
Location: Hungary
Posts: 566
Likes: 0
Received 1 Like on 1 Post
Originally Posted by mines5
^ x2
x3

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



All times are GMT -7. The time now is 11:36 AM.