Notices
ECU Flash

FreeFuel ECU patch - a flex fuel implementation to Evo ECU

Thread Tools
 
Search this Thread
 
Old Nov 14, 2016 | 12:41 AM
  #376  
Evo9_Dubai's Avatar
Evolving Member
 
Joined: Oct 2012
Posts: 451
Likes: 21
From: Dubai
Originally Posted by tscompusa
Ya with the equation I provided you. Same one we use for FiTronic.
That is correct.
Reply
Old Nov 16, 2016 | 04:29 AM
  #377  
VGergo's Avatar
Evolved Member
20 Year Member
iTrader: (3)
 
Joined: Nov 2005
Posts: 566
Likes: 1
From: Hungary
What really need to have this for Evo 9 Ecu ?
Reply
Old Nov 16, 2016 | 11:17 AM
  #378  
Construct's Avatar
EvoM Guru
15 Year Member
Liked
Loved
Community Favorite
iTrader: (4)
 
Joined: Nov 2009
Posts: 1,730
Likes: 161
From: Utah
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.
Reply
Old Nov 16, 2016 | 11:14 PM
  #379  
Evo9_Dubai's Avatar
Evolving Member
 
Joined: Oct 2012
Posts: 451
Likes: 21
From: Dubai
That is awesome work !!!
Reply
Old Nov 18, 2016 | 05:32 PM
  #380  
3VOLUTIONIST's Avatar
Newbie
 
Joined: Mar 2015
Posts: 93
Likes: 1
From: Perth, Western Australia
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.
Reply
Old Nov 19, 2016 | 08:55 AM
  #381  
dr_latino999's Avatar
Evolving Member
Veteran: Army
15 Year Member
Liked
Community Favorite
iTrader: (12)
 
Joined: Sep 2006
Posts: 424
Likes: 18
From: Central TX
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?
Reply
Old Nov 20, 2016 | 07:39 AM
  #382  
Construct's Avatar
EvoM Guru
15 Year Member
Liked
Loved
Community Favorite
iTrader: (4)
 
Joined: Nov 2009
Posts: 1,730
Likes: 161
From: Utah
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.
Reply
Old Nov 20, 2016 | 07:53 AM
  #383  
dr_latino999's Avatar
Evolving Member
Veteran: Army
15 Year Member
Liked
Community Favorite
iTrader: (12)
 
Joined: Sep 2006
Posts: 424
Likes: 18
From: Central TX
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.
Reply
Old Nov 20, 2016 | 10:25 AM
  #384  
wreckleford's Avatar
Evolved Member
iTrader: (2)
 
Joined: Jun 2003
Posts: 1,171
Likes: 11
From: Jamaica
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.
Reply
Old Jan 29, 2017 | 04:20 PM
  #385  
wizzo 8's Avatar
Evolved Member
20 Year Member
Photogenic
Liked
Loved
iTrader: (35)
 
Joined: Mar 2005
Posts: 3,836
Likes: 14
From: Chicago suburbs
Subscribed! This is amazing information! Great job!
Reply
Old Jan 30, 2017 | 04:05 AM
  #386  
thebluesky's Avatar
Evolved Member
20 Year Member
Photogenic
iTrader: (28)
 
Joined: Aug 2004
Posts: 542
Likes: 6
From: Colorado
BTW, how come this thread hasn't been made a sticky yet?
Reply
Old Feb 8, 2017 | 09:19 PM
  #387  
3SgteGuru's Avatar
Evolved Member
iTrader: (3)
 
Joined: Feb 2006
Posts: 1,403
Likes: 2
From: Clifton NJ
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)
Reply
Old May 21, 2017 | 11:59 PM
  #388  
Evo9_Dubai's Avatar
Evolving Member
 
Joined: Oct 2012
Posts: 451
Likes: 21
From: 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.
Reply
Old Jul 20, 2017 | 04:56 AM
  #389  
mines5's Avatar
Evolved Member
10 Year Member
Liked
Loved
Community Favorite
 
Joined: Oct 2010
Posts: 868
Likes: 23
From: Streets of willow
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
Reply
Old Jul 21, 2017 | 03:58 PM
  #390  
VGergo's Avatar
Evolved Member
20 Year Member
iTrader: (3)
 
Joined: Nov 2005
Posts: 566
Likes: 1
From: Hungary
Originally Posted by mines5
^ x2
x3
Reply



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