0%

TephraXMOD V3

Introduction

It has been a little while in the making, but finally TephraXMOD V3 is here!!!

What’s new?

  • Flex Fuel - E85 has always been a winner on the Evo platform, but the limitted availabilty and range anxiety have made it compromise between performance and peace of mind. V3 brings FlexFuel to your EvoX - this means with the addition of a Ethananol Content Analyser (links below) you can setup automatic map switching and interpolation for any mixture of pump and E100. No more worrying about having to take it easy on that first fuel change, or even worrying about winter vs summer blends!!!

  • MR (SST) support - Unfortunatley TephraXMOD V2 wasn’t able to support SST’s (the Tacho replacement also feeds the TCU, and SST’s didn’t like being told they were at 9000rpm, when they TCU knows the input shaft was running at 2000rpm (or whatever). V3 keeps the tacho altmap selector method for GSR’s (5MT), and adds a Intercoooler Spray light flasher to SST’s.

  • Simplification of altmaps - TephraXMOD V2 probably had too much in the way of alternate maps, V3 culls some of the lesser used maps (ie MIVEC and PassiveWGDC for each altmap) which should hopefully reduce cluter and speed up tuning time

What’s the same (from TephraXMOD V2)?

  • KnockCEL - A beloved feature from TephraMOD on CT9A, of course makes a comeback in V3 - different flashing rates for “low” and “high” knock thresholds

  • Knock TPSCUT - Pretty much an extension of KnockCEL, this allows the ECU to cut the throttle to a configurable value in the event of a knock threshold being reached - This is literally a motor saver - and can easily be disabled by setting the TPS CUT value to 100%

  • Alt Map - Allows for configuring upto 8 alternate map sets. This means you can have a pump tune, E85 tune, E100 tune, valet setup, or pretty much any other combination of setup you like. The map-set covers the main maps (fuel/timing/boost,rev limits).
    Note - It is important to realise that altmaps and Flex Fuel are mutually exclusive, meaning you cant run both at the same time.

  • No Lift to Shift - Drag race much? NLTS should give you a tenth or two. By keeping the throttle flat during changes you reduce turbo lag, and thus get almost instant power when you release the clutch.
    Note - That NLTS isn’t for the weak knee’d, it also involves imposing temporary fuel cuts which may or may not be bad for shock sensitive components of your engine! To date I have yet to hear of a failure caused by NLTS

  • High/Low Gear MIVEC - Lets you treat MIVEC like the Boost Crossover, meaning you can have a different MIVEC setup for first/second/third from fourth and fifth, or whatever crossover you like.

  • Live Tuning - Yup, still here, click for more information, V3 adds the ability Live Tune the Fuel Compensation Map

  • MethSafe - Perhaps inappropriately named, but Methsafe allows you to hook up an external controller, whether it be meth or NOS controller or something else to demand the ECU swap maps.

    • Currently there are two activation methods:

      • 5V ADC map switching:
        You can connect your meth/nos controller to the ECU (using pin 112) it must output 0v on FAILURE, and 5v on SYSTEM OK
        Because USDM have EVAP USDM vehicles cannot use this method - please use Resistor ADC instead
        When the ECU sees the voltage go ABOVE the threshold it will start the timer to swap to MethSafe maps.
        When the ECU sees the voltage go BELOW the threshold it will INSTANTLY swap to normal maps.

      • Resistor ADC map switching:
        You can connect your meth/nos controller to the ECU (using pin 115) it must use a relay to ground pin 115. It is preferable to use a ~250Ohm resistor between pin115 and ground
        When the ECU sees the voltage go ABOVE the threshold it will INSTANTLY swap to normal maps.
        When the ECU sees the voltage go BELOW the threshold it will start the timer to swap to MethSafe maps.

How do I get it?

What ROMID’s are V3 ready?

Firstly, use the below table to make sure that your vehicle is actually supported!

  • USDM

    • 52680022 - USDM EvoX GSR 2008-2009
    • 52690022 - USDM EvoX MR 2008-2009
    • 55570006 - USDM EvoX GSR 2010
    • 55580006 - USDM EvoX MR 2010
    • 56890013 - USDM EvoX GSR 2011
    • 58010005 - USDM EvoX GSR 2012
    • 59580004 - USDM EvoX GSR 2013-2015 and Final Edition
    • 59590005 - USDM EvoX MR 2013-2015
    • 53600010 - USDM Ralliart Lancer 2009
    • 56940007 - USDM Ralliart Lancer 2011
    • 58030005 - USDM Ralliart Lancer 2012
  • EDM/AUDM

    • 53040010 - AUDM/EDM EvoX GSR 2008-2010
    • 53050012 - AUDM/EDM EvoX MR 2008-2010
    • 56910009 - AUDM/EDM EvoX GSR 2011-2015 and Final Edition
    • 56920008 - AUDM/EDM EvoX MR 2011-2015
    • 53610013 - AUDM Ralliart 2010
    • 56950008 - AUDM Ralliart 2011

If your ROM isn’t listed above, just drop me an email and i’ll see what I can do!

How much is it?

For a limited time, we are offering a $50 USD upgrade price, this is assuming you have already paid for V2 and that the requested VIN number for the V3 matches V2.
To purchase V3 for a new car (as in - doesn’t have V2 currently), the price is $100 USD

In either case when you make your paypal payment please include the VIN number, the current ROMID (if you know it) and the the Region/Year/Model information for your car!!

TephraXMOD purchase option
Current ROMID
VIN
Vehicle Region/Model/Year

Refunds due to incorrect ROM selection will be minus the PayPal fees (Blame PayPal for changing their policy on fee refunds in 2019)

How do I use it?

EcuFlash Support

In order to flash V2 OR V3 normally (ie in Car, and not on a Bench), you must be using EcuFlash 1.44.4xxx and above; additionally you need to configure your EcuFlash to ignore the “protected memory areas”, by downloading and running the mitsucan_memory_override registry file. Simply open the zip, and double click the reg file inside, you will be warned when running the reg file, but be assured it’s perfectly safe! :)

Flex Fuel Support

Introduction

Since Flex Fuel is the major feature addition to V3 this document will focus on exactly how to utilise it.

The V3 implementation is a little different to other implementations out there, for starters we have different interpolators for the different maps sets, which allows the tuner to set up the car perfectly. Additionally, and perhaps more importantly, the ECU averages the ECA signal over a time period. This means that the ECU doesn’t automatically trust the sensor output, and any changes will be slowly averaged over time. This also means we can alert the driver (by a Check Engine Light) that there is some inconsitancy between the Sensor and ECU, which allows the driver to take action.

Step 1 - Electical connection of your ECA

V3’s Flex Fuel implementation relies on a Ethanal Content Analsyer to accurately measure the Ethanal % in your fuel and then store this information in the ECU. Any sensor that outputs a 0-5v analog signal for ethanol content can be utilised, however Zeitronix ECA2 and FuelConvertor.com’s units have been tested sucesfully to date!

You will then need to connect the 5v analog output of the sensor to the ECU, at the moment we are hooking into the only “available” 5v input left on the ECU, this happens to be currently being used by the Fuel Tank Pressure sensor, which feeds into EVAP. Since we are overriding the pressure signal for flexfuel we send a fake signal to the EVAP system so that it doesn’t complain. Using the diagrams below connect the 5v output from the ECA to the ECU

The Fuel Tank Differential Pressure Sensor ECU Input is PIN 112, it’s worth noting that USDM is different from AUDM or EDM, the diagrams below will work for USDM, however for AUDM or EDM you will be required to install a pin into the ECU Wiring harness:
Note - that the cable colour is shown as brown below, however for later model cars it appears to be blue

picture alt

You can tap into this in various places, but the “best” would be up near the dash; You should see the C47 conenctor on the left, and that runs straight down and into the tunnel that runs up the left side of the car:

picture alt

Step 2 - Testing the connection

Once you have the ECA wired correctly you should be able to log the ECU for 0x805075 (1byte), this is the raw sensor value being picked up by the ECU. So if your sensor is outputting 0.5v (for say E10), then this loggable should read 25. Or if you sensor puts out 4.25v (for E85), then this should read about 217.

Step 3 - Setting your ROM up

The FlexFuel implementation in V3 uses the ECA output to interpolate between the Stock Maps (ie your stock fuel map, your stock timing map, your stock boost maps) and the Alternate #1 maps.
This means that if you are running E0, then the ECU will use the stock maps; if your running E85 then the ECU will use the Alternate #1 maps, and any E% in between the ECU will interpolate between these 2 sets of maps.

Out of the box, the V3 ROM is setup for a 0v (ie E0) = 0% interpolation (ie use stock maps), 4.25v (ie E85) = 100% interpolation. You can modify the interpolation curves as you see fit, OR as your ECA requires. For example the FlexConverter.com ECA actually outputs a different curve, being E0 = 0.5V and E100 = 4.5V, this allows the device to output 0v when there is an error. So you should adjust the interpolation maps accordingly.

To be as flexible as possible there is a sensor voltage to E% and 5 interpolation curves:

picture alt

The Sensor Voltage table will let you easily convert the 5v analog output from various sensors to a standard E%
Some sensors output 0.5v for E0 and 4.5v for E100 whilst some are 0v to 5v for E0 to E100

In addition there are interpolation curves for:

  • Injector Scaling - Which obviously applies to the Injector Scaling tables
  • Fuel Map - Which applies to the Fuel Map AND Cranking Enrichment tables
  • Timing Map - Which applies to the Timing Map tables
  • Boost Map - Which applies to the Boost Maps (ie BDEL/ ActiveWGDC)
  • Cranking Enrichment Map - Which applies to the Cranking Enrichment Map

So far I havn’t found a need to set the interpolation maps differently from above, however the flexability is there should it be required.

Step 4 - Advanced Options

The FlexFuel immplementation in V3 has the following advanced features:

  • Max Load for Signal Processing - This ensures that the FlexFuel Averaged value doesn’t update while above these loads, this stops sensor errors or lack of fuel from throwing of the ECU
  • Averaging Period - By default this is 400, which works out to abouve 20 seconds, this means that for the ECU to trend towards the sensor value it will take about 20 seconds, you can make this value smaller OR larger, however I found 400 to be quite good, as you can imagine it’s better to have a slower update in the event something goes wrong so that the ECU doesn’t start using a potentially incorrect value
  • CEL on E% - This value will pop a Check Engine Light when the average deviates from the raw signal value too much, this is REALLY useful to tell the driver that something has potentially gone wrong and they should pull over QUICKLY and check things like sensor, wiring or fuel lines.
  • Sensor Error voltage - the FlexConvertor.com sensor outputs a 0v when there is an error, this means you can setup the ECU to ignore the sensor output, which is useful. Personally I run an Zeitronix Sensor, and I have the sensor error at 0.02volts, meaning if the sensor dies the ECU should stop updating the FlexFuel Average value, obviously E0 fuels will also output around 0v, but I think this is ok, because by the time the sensor/ECU trim down to 0%, having the ECU stopping updating the average shouldn’t be an issue.

Step 5 - Tuning FlexFuel

The following proceedure has worked for me, however every tuner has their own methods:

  1. Start with E0 (or E10, whatever your lowest E fuel is)
  2. Tune the stock/normal maps appropriately (ie all your regular non TephraXMOD maps)
  3. Drain the tank, or get it as low as possible, then fill with E85 (or whatever your highest E fuel is)
  4. Tune the Alternate #1 maps
  5. Do more testing and tweaking, ie fill up with different E%’s, and make sure the tune is rock solid.
  6. Have a beer!

Caveats

Of course there are some gotchas with Flex Fuel:

  1. No Live Tuning available - due to the complexity of having the ECU interpolating between sets of maps, at the moment Live Tuning is not available. If you want you can Live Tune the stock and Alternate #1 maps, and THEN enable FlexFuel
  2. Engine Electricals - As with any analog system, interferance from other components can be a problem, you should always validate that the ECA reading, output voltage AND ECU reading are all roughly in the same ballpark!
  3. FlexFuel when there is no Fuel in the sensor - this is an issue with ALL ECA’s, essentially if there isn’t the correct amount of fuel in the sensor it will read higher or lower; V3 uses an Averaging system to make sure that variations are accounted for, but its something to keep an eye out for
  4. NLTS doesn’t work FlexFuel - infact its actually buggy, if you enable both options you will get weird revlimits applied!
  5. By far the biggest caveat is how the stock ECU scales injector scaling! See below!!!

Injector Scaling and Interpolation

So quick bit of background, the injector scaling is represented in the ECU as a “raw” number, only in ecuflash does it bear some resembalence to how big your injectors are. The problem is the raw value isn’t actually very granular, meaning when you convert from human readable back to raw, you cant get any more resolution. To give you an idea of the jumps check this out:

Raw Scaled % change
30 974
29 1008 3.5%
28 1044 3.6%
27 1083 3.7%
26 1124 3.8%

As you can see, the problem is actually worse with larger injectors, you would have course run into this problem as well, say with 2000cc injectors, “Why cant I run 2000cc, I have to choose either 1949 or 2088.. argh”

This lack of resolution is a big problem for FlexFuel. Because it interpolates at the raw value you tend to see 4% changes in AFR when the sensor is tipping between two particular voltages. Dont worry there is a solution :)

Below are XML fragments to patch the existing injector scaling lookup routine and give it 4x more accuracy. The ONLY downside is that any tuner looking at your ROM will be like ‘wtf’. However I dont think this is too big an issue, any decent tuner should be able to work it out, and if not this is what this page is for :)

53040010
1
2
3
4
5
6
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536cc" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x83 -> 0x21)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="385bb" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4122f" type="1D" scaling="Hex8"/>
59580004
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536d8" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3bc2b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4a80b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4aadb" type="1D" scaling="Hex8"/>
59590005
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536d8" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3c1f7" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4a80b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4aadb" type="1D" scaling="Hex8"/>
52680022
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536cc" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3895f" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121f" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4a723" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4a897" type="1D" scaling="Hex8"/>
55580006
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536ce" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="392ab" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4acfb" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4ae6f" type="1D" scaling="Hex8"/>
58010005
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536d2" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3bae3" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4add3" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4af47" type="1D" scaling="Hex8"/>
56890013
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536d2" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3b8a7" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4ad13" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4ae87" type="1D" scaling="Hex8"/>
53050012
1
2
3
4
5
6
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>	
<table name="Fuel Injector Scaling Replacement" address="536ce" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x83 -> 0x21)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3899f" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
53610013
1
2
3
4
5
6
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>	
<table name="Fuel Injector Scaling Replacement" address="536ce" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="388cb" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
56940007
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536d2" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3b6db" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4ad13" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4ae87" type="1D" scaling="Hex8"/>
53600010
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536cc" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="38fc3" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121f" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4aab7" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4ac2b" type="1D" scaling="Hex8"/>
56920008
1
2
3
4
5
6
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536d2" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x83 -> 0x21)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3b25b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
52690022
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536cc" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="38a13" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121f" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4a723" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4a897" type="1D" scaling="Hex8"/>
55570006:
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536ce" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="39203" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4acfb" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4ae6f" type="1D" scaling="Hex8"/>
56910009
1
2
3
4
5
6
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/&glt;
<table name="Fuel Injector Scaling Replacement" address="536d2" category="Misc" type="1D" scaling="InjectorScaling4x"/&glt;
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/&glt;
<table name="Injector Scaling Rescale #1 (0x83 -&glt; 0x21)" category="Misc" address="55017" type="1D" scaling="Hex8"/&glt;
<table name="Injector Scaling Rescale #2 (0x48 -&glt; 0x46)" category="Misc" address="3b00b" type="1D" scaling="Hex8"/&glt;
<table name="Injector Scaling Rescale #3 (0x48 -&glt; 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/&glt;
56950008
1
2
3
4
5
6
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>	
<table name="Fuel Injector Scaling Replacement" address="536d2" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3b147" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
58030005
1
2
3
4
5
6
7
8
<scaling name="InjectorScaling4x" units="cc/min" toexpr="29241*2*2/x" frexpr="29241*2*2/x" format="%.0f" min="1" max="1000" inc="20" storagetype="uint16" endian="big"/>
<table name="Fuel Injector Scaling Replacement" address="536d2" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Fuel Injector Scaling AltMap #1 Replacement (Do others alt's well)" address="f1000" category="Misc" type="1D" scaling="InjectorScaling4x"/>
<table name="Injector Scaling Rescale #1 (0x80 -> 0x20)" category="Misc" address="55017" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #2 (0x48 -> 0x46)" category="Misc" address="3bfef" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #3 (0x48 -> 0x46)" category="Misc" address="4121b" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #4 (0x48 -> 0x46)" category="Misc" address="4add3" type="1D" scaling="Hex8"/>
<table name="Injector Scaling Rescale #5 (0x48 -> 0x46)" category="Misc" address="4af47" type="1D" scaling="Hex8"/>

P0455

Sometimes when “stealing” the Fuel Tank Pressure signal you will get a P0455, to resolve this please using the following XML segments to up the P0455 check 1594rpm to 7969rpm!

59580004
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538bc" type="1D" scaling="RPMStatLimit"/>
59590005
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538bc" type="1D" scaling="RPMStatLimit"/>
52680022
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538b4" type="1D" scaling="RPMStatLimit"/>
53610013
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538ba" type="1D" scaling="RPMStatLimit"/>
52690022
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538b4" type="1D" scaling="RPMStatLimit"/>
55570006
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538b6" type="1D" scaling="RPMStatLimit"/>
55580006
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538b6" type="1D" scaling="RPMStatLimit"/>
56890013
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538ba" type="1D" scaling="RPMStatLimit"/>
58010005
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538ba" type="1D" scaling="RPMStatLimit"/>
58030005
1
<table name="P0455 Fix Minimum RPM (1594 -> 7969)" category="Misc" address="538ba" type="1D" scaling="RPMStatLimit"/>

Changing Maps without Cruise Control (ie Altmap using TPS)

OK - so some cars dont have Cruise Control :(, so you can use TPS to incremement the altmap, however due to a unnoticed defect/bug, you cant ever decrement the altmap.
The following patch, will enable “rollover”, meaning when you hit max altmaps, it will jump to #0 (or normal maps)
So if you have it set to 9, then it will go 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 -> 0 -> 1 -> 2 … etc etc
Whereas if you set Max AltMaps to to 3, it will go 0 -> 1 -> 2 -> 3 -> 0 -> 1 -> 2 … etc

To set your ROM up for this behaviour, open up your V3.XML file in a text editor, jump to the end of the file, and insert the following BEFORE the , then just enable BOTH entries inside the ROM (in ecuflash) and your done

1
2
3
4
5
6
7
8
9
10
11
<scaling name="AltMap_Rollover_1" storagetype="bloblist">
<data name="Enabled" value="6100"/>
<data name="Disabled" value="7D02"/>
</scaling>
<scaling name="AltMap_Rollover_2" storagetype="bloblist">
<data name="Enabled" value="7D02"/>
<data name="Disabled" value="F000"/>
</scaling>

<table name="AltMap Rollover #1" category="Misc" address="fb434" type="1D" scaling="AltMap_Rollover_1"/>
<table name="AltMap Rollover #2" category="Misc" address="fb436" type="1D" scaling="AltMap_Rollover_2"/>

Troubleshooting Flex Fuel

OK - so your having problems, below are some logable memory addresses (all 1bytes), which will help locate the problem:

Please Note: that the following should be logged when running in Flex Mode, if you dont use FlexMode, then only the 805075 is a valid logable item (as the others just wont be updated…)

Memory Blk Description
805075 raw value from Fuel Tank Pressure ADC routine (is a voltage)
805081 copy of raw value from Fuel Tank Pressure ADC routine (is a voltage)
805079 time based average of copy of raw value from Fuel Tank Pressure ADC routine (is a voltage)
805083 table lookup using time based average as input axis - IE the final Ethanol Content % (ie an E%)

If you want to use evoscan to log these, simply create new data items with RequestID = 238050XX, RequestBytes = 1 and Eval is either =x5/255 for voltages or =x100/255 for E%