DIY: Evo ECU Swap (4G94)

SDate42

Well-Known Member
Lifetime Premium Member
This is a massive step for all those looking for tuning and or turbo capabilities in their CH. For now it's only known to work with the 4G94 motor - most of the information is pulled from this EVOM Thread that I stumbled across. Mostly just posting to keep the info alive, and make it available to us Australians. For some reason the USA have different ECU's in their E8's. We have a 3 plug ECU which will not match the 4G94 4 plug. Further research brought me to the 4 Plug Evo7 ECU's for AUDM vehicles. My car is currently running on an E7 ECU.

What you need;

- E7 4Plug ECU MR 560648
- A soldering iron
- Heat shrink
- Tactrix Open Port 2.0 w/flash connector
- PC with ECU Flash
- Optional Double pole double throw switch & Spare wiring
- Optional E7/8 MAF

With an Evo 7 plastic case ECU (MN 132623) the CH loom is exactly the same, however I struggle to come across one of these ECU's easily. *I have not tested this info*

With an Evo 7 plastic case ECU (MR 560648) the CH loom is exactly the same bar pin 8 & pin 22
In the CH
Pin 8 is used for the A/C relay activation signal (pink wire)
Pin 22 is used for the fuel pump relay activation signal (purple wire)
In the Evo7
Pin 8 is used for the fuel pump relay activation signal (purple wire)
Pin 22 is used for the A/C relay activation signal (pink wire)

To make the ECU operate correctly, I installed a double pole, double throw switch to swap the wires over when I wanted and back to normal so that I can swap between the standard ECU and the Evo7. I much prefer the switch method as it is "undo-able" where as changing the pins over is a more permanent solution. Picture below to help the visual understanding

mnML9mS.jpg


From the EVOM forum;

Using a tatrix & Flash connector (Openport 2.0), read the ECU with ECUFlash, ensure you have a definitions file to match the ROM ID & then save the ECU to your PC.
"Close ECU Flash, open the definition XML file for that ROM ID in the rommetadata folder and add the following line just before the </rom> on the final line in the file and save the file (How-To Link):

<table name="ECU Periphery00 Hex" category="Periphery" address="f9a" type="1D" level="2" scaling="Hex16"/>
<table name="ECU Periphery0 Hex" category="Periphery" address="faa" type="1D" level="2" scaling="Hex16"/>
<table name="ECU Periphery1 Hex" category="Periphery" address="fba" type="1D" level="2" scaling="Hex16"/>
<table name="ECU Periphery2 Hex" category="Periphery" address="fca" type="1D" level="2" scaling="Hex16"/>
<table name="ECU Periphery3 Hex" category="Periphery" address="fda" type="1D" level="2" scaling="Hex16"/>
<table name="ECU Periphery4 Hex" category="Periphery" address="fea" type="1D" level="2" scaling="Hex16"/>

-5- Open EcuFlash, open the saved Evo ROM and look under the "Misc" category for the periphery bits.
-6- Change Periphery0 to 56D2. To do this, hit the = key and type in "0x56D2", without the quotes. The ECU Immobilizer is now disabled.
-7- Change Periphery2 to 6FDF, Periphery3 to C0C0 and Periphery4 to FE00. Now the wastegate solenoid and fuel solenoid are disabled in the ECU. Without this step you will trip codes P0243 and P0090 for the missing solenoids."

Change the rev limit value from 7606 to 6250

You now need to add the following values from your stock Lancer ROM tables to the matching tables in the Evo ROM to have a proper idle and fuel trims: Injector Scaling, Injector Latency Values, MAF Scaling, MAF Size.

As I was unable to pull the relevant data from my standard ECU to adjust the Injector Scaling, latency MAF scaling and size, I've had to work around this. I've used an E7/8 MAF which is plug & play to avoid dialing that in. Injectors I've managed to find the necessary information online. You need to adjust two values in ECUFlash

Sizes from this post at MirageFourms:
"Stock 5g 4g93 (210cc) vs. Stock 4g94 Lancer (240cc) vs. Stock Evo8 4g63t (560cc) injector scaling
scalingscompared.png


Stock 5g 4g93 (210cc) vs. Stock 4g94 Lancer (240cc) vs. Stock Evo8 4g63t (560cc) injector latencies:
latenciescompared.png
"

With this all adjusted, save the changes to the ROM. Connect up your tactrix to the car & PC again. Now flash this ROM onto your ECU.

Your car should now start and idle! It will drive fine on light throttle however I have quickly come across a pinging issue that I'm currently trying to sort. The idle speed is high, this also needs work. Rich running in general. Short and long fuel trims all reading negative values even from the start.


This is a huge step forwards as it now means all tuning available for Evo7 factory ECU's is now open to us CH owners. Be it boost, e85, or even just the ability to modify and set-up your own ignition and fuel maps, for a few hundred $$ this is a budget and complete Ecu swap.
 
Last edited:
Hey Oli,

Probably shouldve updated haha. I pulled across the stock fuel and timing maps from a USDM 4G94 and that helped settle things for me. Unfortunatley I cant access my stock ecu rom to bring over audm timing and fuel for now. I get full rich reading from factory 02 sensor at idle and if in traffic for a while, get engine light for fueltrim. Have no guide/other roms on anything else for the 4g94 which makes things difficult.

I fitted some evo7/8 injectors and dialed them in. The seals all leaked which cause heaps of idle issues, now im down to one leaking seal and only a small idle issue. No free time to fix things sucks.

The idle air control uses different mapping to the usdm 4g94 mapping so i have no idea if thats working at all. Rich at idle and goes mega rich on WOT. Car misfires on WOT under 4.5K rpm. Again no time to try figure it all out, but for now ive wound back fueling to 14.7 under all conditions and its fine - still rich under wot (afr of 7:1) and never really runs leaner. All ecu functions work inclding tephra. Have killed the clutch doing launches ahaha.

I think the WOT issue is to do with still being N/A and there are fuel multipliers for the load value being pulled rather than a direct mapping reference.
 
Sounds similar to issues i had at first but getting somewhere with it now... you mention factory 2 sensor. is that 2 or 4 wire type? iv tested it with the 2 wire 4g15/93 sensor and get 1.9v all the time in evoscan. i have got an evo 8 sensor with 4 wires to install tomorrow and see how it goes. for now iv used the "full time open loop/disable closed loop feature and gone up and down in injector, maf size, played with latency somewhat and i have it running kinda how i expect it to, the cold start seems to be all messed up in regards to idle control step and also the fueling adders.. once fully warm i done some trial and error for a few hours and got it half sensible.

As for the wot and cruise etc what are you changing? my understanding is the fuel map will somewhat closely match actual afr but will never be exact. close enough fine tuning is done in fuel map, the main fuel settings are all about injector size,latency settings. i think this may also be thrown off a fair amount by engine size, maf settings etc.

if running a 4g94 being 2l i think youl have a better chance with factory values if you can obtain them... (i have also failed) me using a 1.8l 4g93 i feel that that is adding another variable to the mix.. iv found changes in latency and injector size can effect the behavior in strange ways, simply grabbing values we think are correct and then adjusting the fuel map to whatever makes it run better isnt the way to do it, we need to fine tune latency and sizing, unfortunately the info is scattered everywhere and hard to determine what it is from the factory..
my next theory is log a stock ecu, and compare injector pulse width at idle, do the same with timing, idle control,maf hz fudge the sizing numbers until you get close, have to make sure all conditions are the same to prevent mis matching areas of the map, corrections throwing it off, but im sure this will work, though other settings will still play a factor and will also send us on a goosechase.

Getting this running right does not appear to be for the faint hearted. hahaha!

Note: i am running a Lancer CH 4G94 ECU flashed with EVO 8 tephramod V7, not an actual evo ecu :) however im yet to see if it has any drastic effects until i work out the current kinks and do more testing
 
Good info to consider...

4G94 has factory 4 wire sensor which is just a heated 2 wire. Seeing 0.9V always at idle. Minor fluxtuations to 0.7-0.9 during cruise and normal drive conditions. Wideband shows that it follows the map fairly closely under cruise, light accel and decel. For now I am ignoring any data to do with the idle as I have a know air leak - which will always cause problems that dont make sense.

My cold start is actually fairly fine with 560cc injectors - always had problems when using stock 94 injectors as the fuel multiplier cell for cold start wasnt readable for me and at the time I didnt know how to locate it.

The best way to tune is going to be using the stock ecu for the car. Although the engine size may be the same g94 and g63, I imagine nothing else is the same about them. From piston dish, to the fly cuts, valve seats, air swirl and total velocity, let alone cam and overlap timing. The stock ecu will be setup in a way we cannot modify to suit “perfectly” any other motor. Im sure you understand already; but put simply when we write in 13.6afr at 100 load and 2100 rpm, the ecu doesnt output an afr or fuel or even an ammount of fuel. It simply sends a voltage supply for what it thinks is the right amount of time. So the moment anything isnt original, its never going to calculate spot on.

For now I am starting to toy with small changes in latency ect, even though I have the “correct” ones already in there. Tbh I just drive it as is. My free time is limited, so progress is slow.
 
Long time since update. I think technically not ecu related, but MAF related for sure (399) - got the AFR within 4% O2 sensor trims wherever the throttle isn't closed. Once above 60 degrees coolant temp and the idle speed drops to roughly 1000rpm - maf reads 31.25-25 Hz - I get an AFR drop to 10:1. It then starts to stumble and misfire, hovering on the AFR. With the use of closed loop the o2 sensor tries to trim this, hits AFR of 19, then slowly drops back to 14.7(Target). Cycle repeats after maybe 5 seconds of stable idle.

I am running out of ideas as to what may cause this? IAC? Coolant temp related variable? injector fault?

EDIT: SOLVED

issue was with the 399 MAF. I am unable to fault it’s operation and output values. Simply re-installed the stock 605 unit, flashed the standard values for smoothing, scaling, filter and size. Cold start was around -18% trim until idle within 10% trim (with turbo). I am currently dialing in the maf as I post this up with great results.

(2.375 * [Input] / 255 * 5) + 7.3125
 
Last edited:
Back
Top