Notices
Evo X Engine Management / Tuning Forums Discuss the major engine management systems.

How to figure out ROM definitions for an ECU

Thread Tools
 
Search this Thread
 
Old Jul 4, 2011, 05:40 PM
  #1  
Evolved Member
Thread Starter
iTrader: (9)
 
Hiboost's Avatar
 
Join Date: Apr 2005
Location: Rochester, NY
Posts: 3,222
Received 8 Likes on 8 Posts
Question How to figure out ROM definitions for an ECU

Is there any official guide to how this is properly done for the Mitsu ECU's? I'm happy that there are so many guru's that can figure these ROM definitions and smoke out what HEX offsets we need to reference for the various tables but if I could understand all the tools myself I might be able to assist with that more.

Up until now I've figured out how to use a hex editor and search for patterns of expected values and test various hex offsets to stumble on proper defnintions. While I'll be getting a 2011 Evo X in either Rally Red or Octane Blue within the next few weeks, I've currently started to figure out the rom definitions of my 2011 Outlander Sport and might as well get some practice on how to do it properly. The engine is a 4B11 similar to the Lancer 2.0 but given that it is slightly heavier this car really needs some more performance out of the box.

So far I've found the Fueling & Timing maps but I'm missing the hex offsets for the load values. Another thing that is frustrating is that there seems to be another table such as an Upper and Lower Bound Ignition Timing table that is limiting the timing advance from going above stock table values, but I can reduce them a couple degrees which was verified with logs so I would think the Timing table would be valid.

While I don't naturally read machine language, or disassemble code all day, learning this stuff is intersting enough to me that I figured I would see if any Guru's want to help with a startup guide for everyone to use and maybe confirm the tables I found via PM.

Thanks guys!
Old Jul 4, 2011, 06:00 PM
  #2  
Evolved Member
Thread Starter
iTrader: (9)
 
Hiboost's Avatar
 
Join Date: Apr 2005
Location: Rochester, NY
Posts: 3,222
Received 8 Likes on 8 Posts


Right now I have:

Code:
 <table name="Outlander High Octane Fuel Map" address="55027" category="Fuel" type="3D" swapxy="true" scaling="AFR">
    <table name="Load" address="59765" type="X Axis" elements="13" scaling="Load"/>
    <table name="RPM" address="5FC2A" type="Y Axis" elements="14" scaling="RPM"/>
  </table>
  <table name="Outlander Low Octane Fuel Map" address="551A3" category="Fuel" type="3D" swapxy="true" scaling="AFR">
    <table name="Load" address="59765" type="X Axis" elements="13" scaling="Load"/>
    <table name="RPM" address="5FC2A" type="Y Axis" elements="14" scaling="RPM"/>
  </table>
  <table name="Outlander High Octane Timing Map" address="55653" category="Timing" type="3D" swapxy="true" scaling="Timing">
    <table name="Load" address="59765" type="X Axis" elements="13" scaling="Load"/>
    <table name="RPM" address="5FBD8" type="Y Axis" elements="20" scaling="RPM"/>
  </table>
  <table name="Outlander Low Octane Timing Map" address="5575F" category="Timing" type="3D" swapxy="true" scaling="Timing">
    <table name="Load" address="59765" type="X Axis" elements="13" scaling="Load"/>
    <table name="RPM" address="5FBD8" type="Y Axis" elements="20" scaling="RPM"/>
  </table>
The hex offsets for the load values are definitely off, can't seem to figure them out yet I can find only one pattern of load numbers that seems to be the correct values. When I enter that offset after finding it in the hex editor it gives me garbage, yet the RPM ones seemed to reference perfectly.

Base 2011 Outlander Sport rom file: http://www.teamiglooracing.org/?attachment_id=788

Last edited by Hiboost; Jul 4, 2011 at 06:07 PM.
Old Jul 4, 2011, 07:57 PM
  #3  
EvoM Guru
iTrader: (6)
 
tephra's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Posts: 9,486
Received 66 Likes on 42 Posts
yeah you really need a disasm'r to find the axis's properly..
Old Jul 4, 2011, 09:12 PM
  #4  
EvoM Guru
iTrader: (8)
 
RazorLab's Avatar
 
Join Date: Aug 2003
Location: Mid-Hudson, NY
Posts: 14,065
Received 1,038 Likes on 760 Posts
Originally Posted by Hiboost
Another thing that is frustrating is that there seems to be another table such as an Upper and Lower Bound Ignition Timing table that is limiting the timing advance from going above stock table values, but I can reduce them a couple degrees which was verified with logs so I would think the Timing table would be valid.
Lower bound is used between shifts if your Outlander is CVT. It also will not run lower timing then what is in the table in normal operations too. It will bind your lowest timing allowed to those values, no matter what you put in the normal high octane ignition timing table.

Higher bound is obviously the highest timing allowed. It will bind your highest timing allowed to those values, no matter what you put in the normal high octane ignition timing table.

Could you send me your Outlander ROM?

Could you send me your RAW ecu ROM file pulled from the ECU (not what you currently have linked above) as it looks like your identifier is set wrong in that ROM.

Is it really 56940008? If so I'd like to see how many tables in 56940007 (2011 RA) line up with it.

Last edited by razorlab; Jul 4, 2011 at 09:20 PM.
Old Jul 5, 2011, 06:44 AM
  #5  
Evolved Member
Thread Starter
iTrader: (9)
 
Hiboost's Avatar
 
Join Date: Apr 2005
Location: Rochester, NY
Posts: 3,222
Received 8 Likes on 8 Posts
Yes I think the upper bound timing table is basically set for the same as the high octane timing maps or very close so that as I try to go higher it is preventing it. I know on thh 5 speed Evo X that table just reads 50* in the entire table and the lower reads -20* or something like that. Since the Outlander Sport is a CVT model it likely follows what the MR did to better control timing between shifts.

As far as the ROM linked above, that really is the original ROM read off the ECU and then immediately sent to an archive zip file. When I originally tried to read it I had to go through the dreaded "Unknown ROM Image" wizard. I chose a Ralliart as a first test but if you choose a 2011 US Evo X it also defaults to the "Address (in hex): 5002a" with a "Length (in bytes): 4" resulting in "W6W6" which obviously seems incorrect. Not sure if any of these make better sense that are locations nearby:

5002a = W6W6
5002d = 36573600
5002e = 57360006 (Might be the correct one since it follows the pattern of past ROM ID's where the last 4 digits are 0005 or 0006 for early release of the ROM)
5002f = 36000600

I'm assuming that since this is a new model year car that the address location could be anywhere near the beginning of the ECU for the rom ID. Maybe 57360006 makes the most sense and is what I chose for now.

Here is the definition file I'm testing so far with a whole bunch of Ralliart values copied in that are obviously very wrong or not even present in this ECU.

http://www.teamiglooracing.org/?attachment_id=792

The only ones I've partially found are labeled "Outlander High & Low Octane Fuel Map" and "Outlander High & Low Octane Timing Map". The "ECU Options Set #2" seem to be valid as well. I don't mind doing the legwork to find the proper values but eventually fuel, timing, mivec, and upper/lower bound timing tables seem to be critical maps with their RPM and load X/Y axis figured out.

Last edited by Hiboost; Jul 11, 2011 at 12:25 PM.
Old Jul 11, 2011, 12:27 PM
  #6  
Evolved Member
Thread Starter
iTrader: (9)
 
Hiboost's Avatar
 
Join Date: Apr 2005
Location: Rochester, NY
Posts: 3,222
Received 8 Likes on 8 Posts
Thanks to everyone that helped, we now have a working ROM Def for the 2011 Outlander Sport:

http://www.teamiglooracing.org/?attachment_id=792

to the community.

It will take some time to extract HP out of this NA 4B11 2.0L but with a few carefull bolt-ons and proper tuning I should be able to get a nice jump over the factory numbers.

Last edited by Hiboost; Jul 11, 2011 at 12:30 PM.
Old Jul 11, 2011, 01:55 PM
  #7  
EvoM Guru
iTrader: (8)
 
RazorLab's Avatar
 
Join Date: Aug 2003
Location: Mid-Hudson, NY
Posts: 14,065
Received 1,038 Likes on 760 Posts
Nice. Do you have Evoscan logging ID's too?
Old Jul 11, 2011, 08:46 PM
  #8  
Evolved Member
Thread Starter
iTrader: (9)
 
Hiboost's Avatar
 
Join Date: Apr 2005
Location: Rochester, NY
Posts: 3,222
Received 8 Likes on 8 Posts
Originally Posted by razorlab
Nice. Do you have Evoscan logging ID's too?
No Mode23 yet but I've been getting by with CAN MUTIII (for checking knock) and then primarily logging with CAN OBDII and watching timing advance closely.
Old Jul 11, 2011, 08:47 PM
  #9  
EvoM Guru
iTrader: (6)
 
tephra's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Posts: 9,486
Received 66 Likes on 42 Posts
trace mode23 from 0x13c...
Old Jul 11, 2011, 10:45 PM
  #10  
Evolved Member
 
merlin.oz's Avatar
 
Join Date: Jun 2008
Location: Sydney
Posts: 824
Likes: 0
Received 23 Likes on 19 Posts
This is my def-xml for this ROM, so far.

I see that some of the items are different to Hiboosts def, so some testing needs to be done to verify. I do not have an Outlander to test / log / verify.

The xml is split so as to enable posting.

This is the first part:

<!--

This 57360006 ROM definition for the USDM Outlander Sport 4B11 CVT authored by merlin.
Please report any errors or additions to merlin@three.com.au
Note 1: .
Note 2: .
Note 3: .
Note 4: .
Note 5: Editing the definition from within EcuFlash will alter the layout and structure of the definition
and all the comments and spacing will be removed. Use Notepad to edit the definition file.

Last Revision:
08 July 2011
12 July 2011

-->

<rom>
<romid>
<xmlid>57360006</xmlid>
<internalidaddress>5002e</internalidaddress>
<internalidhex>57360006</internalidhex>
<make>Mitsubishi</make>
<market>USDM</market>
<model>Outlander</model>
<submodel>Sport 4B11 1liter NA</submodel>
<transmission>CVT</transmission>
<year>2011</year>
<flashmethod>mitsucan</flashmethod>
<memmodel>M32186F8</memmodel>
<checksummodule>mitsucan</checksummodule>
</romid>




<!-- * Scaling * -->

<scaling name="AFR" units="AFR" toexpr="14.7*128/x" frexpr="14.7*128/x" format="%.1f" min="8" max="20" inc="0.1" storagetype="uint8" endian="big"/>

<scaling name="BatteryVoltage" units="V" toexpr="x*75/1023" frexpr="x*1023/75" format="%.2f" min="0" max="18.75" inc="0.5" storagetype="uint16" endian="big"/>
<scaling name="blobbits" storagetype="bloblist" storagebits="1">
<data name="0" value="00"/>
<data name="1" value="01"/>
</scaling>

<scaling name="ECU ID" units="units" toexpr="x" frexpr="x" format="%08x" min="0" max="1e+08" inc="1" storagetype="uint32" endian="big"/>

<scaling name="Hex8" units="hex" toexpr="x" frexpr="x" format="%02X" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Hex16" units="hex" toexpr="x" frexpr="x" format="%04X" min="0" max="65535" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Hex32" units="hex" toexpr="x" frexpr="x" format="%06X" min="0" max="1e+08" inc="1" storagetype="uint32" endian="big"/>

<scaling name="InjectorLatency" units="ms" toexpr="x*0.015" frexpr="x/0.015" format="%.3f" min="0" max="4" inc="0.015" storagetype="uint8" endian="big"/>
<scaling name="InjectorScaling" units="cc/min" toexpr="29241/x" frexpr="29241/x" format="%.0f" min="1" max="1000" inc="10" storagetype="uint16" endian="big"/>

<scaling name="Load" units="%" toexpr="x*10/32" frexpr="x*32/10" format="%.0f" min="0" max="300" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Load16" units="load" toexpr="x*5/8" frexpr="x*8/5" format="%.1f" min="0" max="100" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Load8" units="%" toexpr="x*5/8" frexpr="x*8/5" format="%.1f" min="0" max="160" inc="1" storagetype="uint8" endian="big"/>

<scaling name="Min timing" units="degrees" toexpr="x-20" frexpr="x+20" format="%.0f" min="-61" max="61" inc="1" storagetype="int8" endian="big"/>
<scaling name="MIVECInterpolation" units="% Normal Temp Map" toexpr="x*100/255" frexpr="x*255/100" format="%.1f" min="0" max="100" inc="2" storagetype="uint8" endian="big"/>
<scaling name="MUT32" units="hex" toexpr="x" frexpr="x" format="%06X" min="0" max="1e+08" inc="1" storagetype="uint32" endian="big"/>

<scaling name="Percent128" units="%" toexpr="x*100/128" frexpr="x*128/100" format="%.1f" min="80" max="105" inc="0.1" storagetype="uint8" endian="big"/>
<scaling name="Percent255" units="%" toexpr="x*100/255" frexpr="x*255/100" format="%.1f" min="0" max="100" inc="2" storagetype="uint8" endian="big"/>

<scaling name="RPM" units="RPM" toexpr="x*1000/256" frexpr="x*256/1000" format="%.0f" min="0" max="11000" inc="50" storagetype="uint16" endian="big"/>
<scaling name="RPM8" units="RPM" toexpr="x*125/16" frexpr="x*16/125" format="%.0f" min="0" max="2000" inc="10" storagetype="uint8" endian="big"/>
<scaling name="RPMLimit" units="RPM" toexpr="7500000/x" frexpr="7500000/x" format="%.0f" min="0" max="9000" inc="60" storagetype="uint16" endian="big"/>
<scaling name="RPMPerMPH" units="RPM/MPH" toexpr="x/22.6" frexpr="22.6*x" format="%.0f" min="0" max="3000" inc="5" storagetype="uint16" endian="big"/>
<scaling name="RPMStatLimit" units="units" toexpr="x*31.25" frexpr="x/31.25" format="%.0f" min="0" max="9000" inc="31.25" storagetype="uint16" endian="big"/>
<scaling name="RPMTarget" units="RPM" toexpr="x*125/16" frexpr="x*16/125" format="%.0f" min="0" max="2000" inc="50" storagetype="uint16" endian="big"/>

<scaling name="Temp" units="*C" toexpr="x-40" frexpr="x+40" format="%.0f" min="-40" max="215" inc="1" storagetype="uint16" endian="big"/>
<scaling name="TempFarenheit" units="*F" toexpr="1.8*x-40" frexpr="(x+40)/1.8" format="%.0f" min="-40" max="350" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Throttle %" units="%" toexpr="x*100/255" frexpr="x*255/100" format="%.1f" min="0" max="100" inc="2" storagetype="uint16" endian="big"/>
<scaling name="Throttle Opening" units="%" toexpr="x/3277*100" frexpr="x/100*3277" format="%.1f" min="0" max="100" inc="0.5" storagetype="uint16" endian="big"/>
<scaling name="Time" units="ms" toexpr="x*25" frexpr="x/25" format="%.0f" min="0" max="1.63838e+06" inc="25" storagetype="uint16" endian="big"/>
<scaling name="Timing" units="degrees" toexpr="x" frexpr="x" format="%.0f" min="-61" max="61" inc="1" storagetype="int8" endian="big"/>

<scaling name="uint16" units="units" toexpr="x" frexpr="x" format="%.0f" min="0" max="65535" inc="1" storagetype="uint16" endian="big"/>
<scaling name="uint8" units="units" toexpr="x" frexpr="x" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>

<scaling name="ValveTimingExhaust" units="degrees" toexpr="80-x*0.625" frexpr="(80-x)/0.625" format="%.1f" min="-35" max="0" inc="1" storagetype="uint8" endian="big"/>
<scaling name="ValveTimingIntake" units="degrees" toexpr="80-x*0.625" frexpr="(80-x)/0.625" format="%.1f" min="10" max="35" inc="1" storagetype="uint8" endian="big"/>
<scaling name="VehicleSpeed" units="km/h" toexpr="x*2" frexpr="x/2" format="%.0f" min="0" max="510" inc="1" storagetype="uint16" endian="big"/>
<scaling name="VehicleSpeedFreq" units="km/h" toexpr="x*0.25" frexpr="x/0.25" format="%.1f" min="0" max="64" inc="0.2" storagetype="uint16" endian="big"/>
<scaling name="VoltsADC1023" units="Volts" toexpr="x*5/1023" frexpr="x*1023/5" format="%.2f" min="0" max="5" inc="0.05" storagetype="uint16" endian="big"/>

Last edited by merlin.oz; Jul 11, 2011 at 10:58 PM.
Old Jul 11, 2011, 10:46 PM
  #11  
Evolved Member
 
merlin.oz's Avatar
 
Join Date: Jun 2008
Location: Sydney
Posts: 824
Likes: 0
Received 23 Likes on 19 Posts
And the second part:



<!-- *** ECU ID *** -->

<table name="ECU ID" address="5002e" category="ECU ID" type="1D" scaling="ECU ID"/>

<scaling name="Hex8" units="hex" toexpr="x" frexpr="x" format="%02X" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>

<table name="ECU ROM ID" category="ECU ID" address="5002e" type="2D" scaling="Hex8">
<table name="Byte Position" type="Static X Axis" elements="4">
<data>b1</data>
<data>b2</data>
<data>b3</data>
<data>b4</data>
</table>
</table>

<scaling name="CaseAlphaNumeric" storagetype="bloblist" storagebits="8">
<data name="MB" value="10"/>
<data name="MD" value="20"/>
<data name="MN" value="60"/>
<data name="1860" value="80"/>
<data name="A" value="41"/>
<data name="B" value="42"/>
<data name="0" value="30"/>
<data name="1" value="31"/>
<data name="2" value="32"/>
<data name="3" value="33"/>
<data name="4" value="34"/>
<data name="5" value="35"/>
<data name="6" value="36"/>
<data name="7" value="37"/>
<data name="8" value="38"/>
<data name="9" value="39"/>
</scaling>

<table name="ECU Case ID" category="ECU ID" address="50046" type="3D" scaling="CaseAlphaNumeric">
<table name="Part Number" type="Static X Axis" elements="3">
<data>PN1 .</data>
<data>PN2 .</data>
<data>PN3 .</data>
</table>
<table name="PN4" address="50045" type="Y Axis" elements="1" scaling="Hex8"/>
</table>



<!-- * Fuel Maps * -->

<table name="Hi-Octane Warmup Fuel Map" address="55027" category="Fuel Maps" type="3D" swapxy="true" scaling="AFR">
<table name="Load" address="5eca2" type="X Axis" elements="13" scaling="Load"/><!--Alt 5b4d2-->
<table name="RPM" address="5ec80" type="Y Axis" elements="14" scaling="RPM"/>
</table>

<table name="Hi-Octane Main Fuel Map" address="550e5" category="Fuel Maps" type="3D" swapxy="true" scaling="AFR">
<table name="Load" address="5eca2" type="X Axis" elements="13" scaling="Load"/>
<table name="RPM" address="5ec80" type="Y Axis" elements="14" scaling="RPM"/>
</table>

<table name="Lo-Octane Warmup Fuel Map" address="551a3" category="Fuel Maps" type="3D" swapxy="true" scaling="AFR">
<table name="Load" address="5eca2" type="X Axis" elements="13" scaling="Load"/>
<table name="RPM" address="5ec80" type="Y Axis" elements="14" scaling="RPM"/>
</table>

<table name="Lo-Octane Main Fuel Map" address="55261" category="Fuel Maps" type="3D" swapxy="true" scaling="AFR">
<table name="Load" address="5eca2" type="X Axis" elements="13" scaling="Load"/>
<table name="RPM" address="5ec80" type="Y Axis" elements="14" scaling="RPM"/>
</table>



<!-- * Spark Maps * -->

<table name="High Octane Spark Map" address="55653" category="Spark Maps" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="5ed06" type="X Axis" elements="13" scaling="Load"/> <!--alt = 5b4d2-->
<table name="RPM" address="5ecd8" type="Y Axis" elements="20" scaling="RPM"/>
</table>

<table name="Low Octane Spark Map" address="5575f" category="Spark Maps" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="5ed06" type="X Axis" elements="13" scaling="Load"/>
<table name="RPM" address="5ecd8" type="Y Axis" elements="20" scaling="RPM"/>
</table>

<table name="Acceleration Spark Map" address="5a7d3" category="Spark Maps" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="5ed06" type="X Axis" elements="12" scaling="Load"/>
<table name="RPM" address="5ecd8" type="Y Axis" elements="16" scaling="RPM"/>
</table>

<table name="Upper Bound Spark Map" address="5a89b" category="Spark Maps" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="5ed06" type="X Axis" elements="12" scaling="Load"/>
<table name="RPM" address="5ecd8" type="Y Axis" elements="16" scaling="RPM"/>
</table>

<table name="Lower Bound Ignition Timing" category="Spark Maps" address="5a70b" type="3D" swapxy="true" scaling="Min timing">
<table name="Load" address="5ed06" type="X Axis" elements="12" scaling="Load"/>
<table name="RPM" address="5ecd8" type="Y Axis" elements="16" scaling="RPM"/>
</table>



<!-- * MIVEC * -->

<table name="MIVEC Intake Normal Coolant Temp" address="5c1ad" category="Mivec" type="3D" swapxy="true" scaling="ValveTimingIntake">
<table name="Load" address="5f340" type="X Axis" elements="10" scaling="Load"/>
<table name="RPM" address="5f35a" type="Y Axis" elements="22" scaling="RPM"/>
</table>

<table name="MIVEC Intake Low Coolant Temp" address="5c291" category="Mivec" type="3D" swapxy="true" scaling="ValveTimingIntake">
<table name="Load" address="5f340" type="X Axis" elements="10" scaling="Load"/>
<table name="RPM" address="5f35a" type="Y Axis" elements="22" scaling="RPM"/>
</table>

<table name="MIVEC Exhaust Normal Coolant Temp" category="Mivec" address="5c375" type="3D" swapxy="true" scaling="ValveTimingExhaust">
<table name="Load" address="5f340" type="X Axis" elements="10" scaling="Load"/>
<table name="RPM" address="5f35a" type="Y Axis" elements="22" scaling="RPM"/>
</table>

<table name="MIVEC Exhaust Low Coolant Temp" category="Mivec" address="5c459" type="3D" swapxy="true" scaling="ValveTimingExhaust">
<table name="Load" address="5f340" type="X Axis" elements="10" scaling="Load"/>
<table name="RPM" address="5f35a" type="Y Axis" elements="22" scaling="RPM"/>
</table>

<table name="MIVEC Intake Map Interpolation" address="5c53a" category="Mivec" type="2D" scaling="MIVECInterpolation">
<table name="Coolant Temperature" address="60128" type="Y Axis" elements="9" scaling="Temp"/>
</table>

<table name="MIVEC Exhaust Map Interpolation" address="5c548" category="Mivec" type="2D" scaling="MIVECInterpolation">
<table name="Coolant Temperature" address="60128" type="Y Axis" elements="9" scaling="Temp"/>
</table>



<!-- * Timing Trims * -->

<table name="Ignition Warmup Retard" address="58e60" category="Timing Trims" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="5ed06" type="X Axis" elements="13" scaling="Load"/>
<table name="RPM" address="5ecd8" type="Y Axis" elements="20" scaling="RPM"/>
</table>



<!-- * Throttle Control * -->

<table name="Throttle Map #1 - Prime" category="Throttle" address="50632" type="3D" swapxy="true" scaling="Throttle Opening">
<table name="X" address="5f1ac" type="X Axis" elements="17" scaling="Load"/>
<table name="Y" address="5f12a" type="Y Axis" elements="14" scaling="RPM"/>
</table>

Last edited by merlin.oz; Jul 11, 2011 at 10:57 PM.
Old Jul 11, 2011, 10:47 PM
  #12  
Evolved Member
 
merlin.oz's Avatar
 
Join Date: Jun 2008
Location: Sydney
Posts: 824
Likes: 0
Received 23 Likes on 19 Posts
And the third part:



<!-- * Limits * -->

<table name="Rev Limiter" address="5125e" category="Limits" type="2D" scaling="RPMLimit">
<table type="Static Y Axis" elements="2">
<data>Rev Limiter ON</data>
<data>Rev Limiter OFF</data>
</table>
</table>

<table name="Stationary Rev Limit - RPM" address="5162a" category="Limits" type="1D" scaling="RPMStatLimit"/>

<table name="Stationary Rev Limit - Speed" address="51628" category="Limits" type="1D" scaling="VehicleSpeedFreq" />

<table name="Speed Limiter" address="51262" category="Limits" type="2D" scaling="VehicleSpeed">
<table name="X" type="Static Y Axis" elements="2">
<data>Limiter ON</data>
<data>Limiter OFF</data>
</table>
</table>



<!-- * Idle * -->

<table name="Idle RPM #1 v Temp, Stationary" address="57d3e" category="Idle" type="2D" scaling="RPM8">
<table name="Coolant Temperature" address="5eeaa" type="Y Axis" elements="8" scaling="Temp"/>
</table>

<table name="Idle RPM #2 v Temp, In-Gear" address="57d4a" category="Idle" type="2D" scaling="RPM8">
<table name="Coolant Temperature" address="5eeaa" type="Y Axis" elements="8" scaling="Temp"/>
</table>

<table name="Idle RPM #3 v Temp" address="58300" category="Idle" type="2D" scaling="RPM8">
<table name="Coolant Temperature" address="5eeaa" type="Y Axis" elements="8" scaling="Temp"/>
</table>

<table name="Idle RPM #4 v Temp" address="58326" category="Idle" type="2D" scaling="RPM8">
<table name="Coolant Temperature" address="5eeaa" type="Y Axis" elements="8" scaling="Temp"/>
</table>

<table name="Idle RPM #5 v Temp" address="58332" category="Idle" type="2D" scaling="RPM8">
<table name="Coolant Temperature" address="5eeaa" type="Y Axis" elements="8" scaling="Temp"/>
</table>



<!-- * MUT * -->

<table name="MUT Table" address="3c9c8" category="MUT" type="3D" scaling="MUT32">
<table name="X" type="Static X Axis" elements="16">
<data>0</data>
<data>1</data>
<data>2</data>
<data>3</data>
<data>4</data>
<data>5</data>
<data>6</data>
<data>7</data>
<data>8</data>
<data>9</data>
<data>A</data>
<data>B</data>
<data>C</data>
<data>D</data>
<data>E</data>
<data>F</data>
</table>
<table name="Y" type="Static Y Axis" elements="30">
<data>MUT0X</data>
<data>MUT1X</data>
<data>MUT2X</data>
<data>MUT3X</data>
<data>MUT4X</data>
<data>MUT5X</data>
<data>MUT6X</data>
<data>MUT7X</data>
<data>MUT8X</data>
<data>MUT9X</data>
<data>MUTAX</data>
<data>MUTBX</data>
<data>MUTCX</data>
<data>MUTDX</data>
<data>MUTEX</data>
<data>MUTFX</data>
<data>MUT10X</data>
<data>MUT11X</data>
<data>MUT12X</data>
<data>MUT13X</data>
<data>MUT14X</data>
<data>MUT15X</data>
<data>MUT16X</data>
<data>MUT17X</data>
<data>MUT18X</data>
<data>MUT19X</data>
<data>MUT1AX</data>
<data>MUT1BX</data>
<data>MUT1CX</data>
<data>MUT1DX</data>
</table>
</table>



<!-- *** ECU OPTIONS *** -->

<scaling name="blobbits" storagetype="bloblist" storagebits="1">
<data name="0" value="00"/>
<data name="1" value="01"/>
</scaling>

<table name="ECU Options Set #1" category="ECU Options" address="50072" type="2D" scaling="blobbits">
<table name="Periphery Bit Number" type="Static Y Axis" flipy="true" elements="16">
<data>bit.15 .</data>
<data>bit.14 .</data>
<data>bit.13 .</data>
<data>bit.12 .</data>
<data>bit.11 .</data>
<data>bit.10 .</data>
<data>bit.09 .</data>
<data>bit.08 .</data>
<data>bit.07 .</data>
<data>bit.06 .</data>
<data>bit.05 .</data>
<data>bit.04 .</data>
<data>bit.03 .</data>
<data>bit.02, 1=Enable IMMOBILIZER on JDM8MR AUDM9 EDM9 .</data>
<data>bit.01 .</data>
<data>bit.00, 1=Enable unknown .</data>
</table>
</table>

<table name="ECU Options Set #2" category="ECU Options" address="50082" type="2D" scaling="blobbits">
<table name="Periphery Bit Number" type="Static Y Axis" flipy="true" elements="16">
<data>bit.15 .</data>
<data>bit.14 .</data>
<data>bit.13 .</data>
<data>bit.12 .</data>
<data>bit.11, 1=Disable EGR function .</data>
<data>bit.10, 0=Disable WEIRD UNKNOWN CRUISE IGN RETARD .</data>
<data>bit.09, 0=Disable WARMUP IGNITION RETARD function .</data>
<data>bit.08 .</data>
<data>bit.07, 0=Disable HI-OCTANE Spark Map Lookup .</data>
<data>bit.06, 0=Disable SPEED LIMIT function .</data>
<data>bit.05 .</data>
<data>bit.04, 0=Disable CLOSED LOOP function .</data>
<data>bit.03, 0=Disable IMMOBILIZER function .</data>
<data>bit.02 .</data>
<data>bit.01, 0=Disable REAR O2 SENSOR function .</data>
<data>bit.00 .</data>
</table>
</table>

<table name="ECU Options Set #3" category="ECU Options" address="50092" type="2D" scaling="blobbits">
<table name="Periphery Bit Number" type="Static Y Axis" flipy="true" elements="16">
<data>bit.15 .</data>
<data>bit.14, 0=Disable Cruise Control .</data>
<data>bit.13 .</data>
<data>bit.12 .</data>
<data>bit.11 .</data>
<data>bit.10 .</data>
<data>bit.09 .</data>
<data>bit.08 .</data>
<data>bit.07 .</data>
<data>bit.06 .</data>
<data>bit.05 .</data>
<data>bit.04 .</data>
<data>bit.03 .</data>
<data>bit.02 .</data>
<data>bit.01 .</data>
<data>bit.00, 0=Disable LEAN SPOOL function .</data>
</table>
</table>

<table name="ECU Options Set #4" category="ECU Options" address="500a2" type="2D" scaling="blobbits">
<table name="Periphery Bit Number" type="Static Y Axis" flipy="true" elements="16">
<data>bit.15, P0443 P0446 P0403 P0243 P0090 P2263 .</data>
<data>bit.14, P0450,451,452,453 EVAP PRESSURE SENSOR .</data>
<data>bit.13, P0441 EVAP incorrect purge flow .</data>
<data>bit.12 .</data>
<data>bit.11, P0031,032,037,038 O2 SENSOR HEATER lo or hi .</data>
<data>bit.10, P1400 MAP SENSOR .</data>
<data>bit.09, P0401 EGR lo flow .</data>
<data>bit.08, P0506 P0507 IDLE SYSTEM lo or hi .</data>
<data>bit.07, P0170,171,172 FUEL TRIM .</data>
<data>bit.06, P0134 O2 SENSOR #1 no activity .</data>
<data>bit.05, P0300 CYLINDER MISFIRE .</data>
<data>bit.04, P0300 CYLINDER MISFIRE .</data>
<data>bit.03, P0132 P0136 O2 SENSOR #1 high .</data>
<data>bit.02, P0133 P0159 O2 SENSOR #1 slow .</data>
<data>bit.01, P0421 WARMUP CAT EFFICIENCY low .</data>
<data>bit.00 .</data>
</table>
</table>

<table name="ECU Options Set #5" category="ECU Options" address="500b2" type="2D" scaling="blobbits">
<table name="Periphery Bit Number" type="Static Y Axis" flipy="true" elements="16">
<data>bit.15, P0128 COOLANT TEMP below regulator temp .</data>
<data>bit.14, P1603 BATTERY BACKUP .</data>
<data>bit.13 .</data>
<data>bit.12 .</data>
<data>bit.11, P0180 P0183 P0461 P2066 FUEL SENSOR .</data>
<data>bit.10 .</data>
<data>bit.09 .</data>
<data>bit.08 .</data>
<data>bit.07, P0551 POWER STEER PRESSURE SENSOR .</data>
<data>bit.06, P0500 VEHICLE SPEED SENSOR .</data>
<data>bit.05 .</data>
<data>bit.04 .</data>
<data>bit.03 .</data>
<data>bit.02, P0234 P0243 P2263 Turbo Overboost .</data>
<data>bit.01, P0510 CLOSED THROTTLE SWITCH .</data>
<data>bit.00, P1715 P1750 etc .</data>
</table>
</table>

<table name="ECU Options Set #6" category="ECU Options" address="500c2" type="2D" scaling="blobbits">
<table name="Periphery Bit Number" type="Static Y Axis" flipy="true" elements="16">
<data>bit.15, P0140 O2 SENSOR #2 no activity .</data>
<data>bit.14, P0069 MAP v BARO .</data>
<data>bit.13, P0111 INTAKE AIR TEMP SENSOR .</data>
<data>bit.12, P0554 POWER STEER SENSOR intermittant .</data>
<data>bit.11, P1530 AIR CON SWITCH .</data>
<data>bit.10 .</data>
<data>bit.09 .</data>
<data>bit.08, P0830 CLUTCH PEDAL SWITCH A Circuit .</data>
<data>bit.07, P0090 FUEL PRESSURE Circuit .</data>
<data>bit.06 .</data>
<data>bit.05 .</data>
<data>bit.04 .</data>
<data>bit.03 .</data>
<data>bit.02 .</data>
<data>bit.01 .</data>
<data>bit.00 .</data>
</table>
</table>


</rom>

Last edited by merlin.oz; Jul 11, 2011 at 10:56 PM.
Old Jul 13, 2011, 12:21 PM
  #13  
Evolved Member
Thread Starter
iTrader: (9)
 
Hiboost's Avatar
 
Join Date: Apr 2005
Location: Rochester, NY
Posts: 3,222
Received 8 Likes on 8 Posts
I'll compare that to what I have and try and test to see what looks to be the most likely definition for what we want. Thanks guys!
Old Jul 15, 2011, 12:52 PM
  #14  
Evolved Member
Thread Starter
iTrader: (9)
 
Hiboost's Avatar
 
Join Date: Apr 2005
Location: Rochester, NY
Posts: 3,222
Received 8 Likes on 8 Posts
Merlin:

Seems like the Upper Bound Ignition Timing table i posted is what was limiting my timing in the Hi-Octane Spark Map. I have no idea what the Acceleration Spark Maps do but those seem to be what you referenced to as the Upper Bound tables. They seem to be an odd table that tops out at 4500 and changing even the highest line to 28* still had timing capped at 25* peak so I'm not sure when they come into play.

The Lower Bound Ignition Timing table I posted seems off although I'm not sure I really need to alter it anyways.

Stationary Rev Limiters you posted are likely the right ones, I'll test what RPM it currently is set for on the way home from work. Whichever one it matches is the right one.

For ECU Options you are likely more correct in the listings, although Set #2/bit 7 did seem to enable knock retard as before I would never read any knock counts when it was set for 0 from the factory. Not sure what "HI-OCTANE Spark Map Lookup" actually means since it was disabled from the factory, is that so it always uses the low octane maps tuned for 87 octane?

Looks like your ECU ID references were correct in that it should point to the 5002e location.
Old Oct 15, 2014, 09:51 AM
  #15  
Evolved Member
 
TEXAS TRAVISTY's Avatar
 
Join Date: Jun 2009
Location: Houston
Posts: 937
Received 2 Likes on 2 Posts
I contacted ROB @ RRM about turbo charging my OUTLANDER SPORT and he had this to say about the ECU.

Rob said that he has found out that even going with their setup, that anything highter that 4 lbs of boost on the CVT and 8lbs. of boost on the manual trans is not safe. (because of the ECU and the CVT for the auto guys)

Here is the main issue, and i heard it is the same issue the EVO X was having when the rom was 1st decoded, when the ECU see that the O.S. is making over 200 hp or 200 ft. lbs. of torque the ECU kicks on the ABS and trys to shut down the car putting it into a SAFE mode.

This is why they are not using more than 8ls. of boost on the manul transmition O.S. and Lancer, which is a bummer. The reason for 4lbs. on the auto is due to the CVT trans having a weak belt that will liquify under high temps.

From talking to Rob, Mike @ MDR, and reading on the fourms, the ECU SAFE mode kicking in might have something to do with <Torque Tables>.

I have no idea when it comes to tuning, reading Roms, or decoding, so i was just going to through this out there, to see if anyone would know how to fix this issue?

Because of my CVT trans i will be staying N/A for now but with the mods and the tune i am going to install i will be right up in the 200hp range fingers X'ed and was wondering if anyone in here can look at the tables and see if the can fix the problem so i can get the full potential out of the O.S.?

Thanks again

Last edited by TEXAS TRAVISTY; Oct 15, 2014 at 09:55 AM.


Quick Reply: How to figure out ROM definitions for an ECU



All times are GMT -7. The time now is 05:23 AM.