Like many other electronic products from the 1990s, the Electronic Control Unit (ECU) for the Stealth / 3000GT has an inherent problem: these computers were built using a specific type of electrolytic capacitor that, over time, leaks its contents all over the motherboard. The schmutz inside the capacitor, aside from being necessary for proper function, is also highly corrosive, and it tends to do a fair amount of damage to the circuitry inside the computer.

On my car, this manifested itself by the tachometer occasionally dropping 1000 RPM for a split second. No change to the engine, just the needle dipping. This became increasingly frequent, and then the car started randomly shutting off. You'd be cruising down the highway and the car would just die. It would always restart right away, but clearly, something was wrong.

Diagnostics indicated the ECU was at fault, and it was sent off to be rebuilt. The rebuild worked for about a month, and then the problem started reoccurring.

This posed a dilemma. Any OEM ECU was going to suffer from this problem eventually. Even one that had been sitting on the shelf in storage could conceivably have started leaking - and even if it hadn't, it was going to do so eventually. And new ECUs are rare and expensive, and on top of that, it would have to be pre-repaired by swapping out the troublesome capacitors for something leak-proof (and any time you are attacking modern electronics with a soldering gun you are potentially damaging the electronics)

So I chose the alternative - the AEM EMS.


The AEM EMS is an aftermarket ECU. It is designed to plug right in to the existing wiring harness, and once in, all its functions can be tuned by connecting a laptop to the computer and changing its calibration in real-time. It doesn't suffer from the leaky capacitor problem, and, being reprogrammable, it can be tuned to accommodate changes to the engine. The AEM EMS makes you master of your own domain as far as the engine tune is concerned.

The biggest problem with the AEM EMS is that it makes you master of your own domain as far as the engine tune is concerned. If you tell it to make the rev limit 20,000 RPM, or to fuel at 15:1 AFR at full throttle, or to run 40 degrees ignition advance at 18 PSI boost - it will quite happily do so. In the hands of a novice, the AEM EMS can really screw up a motor.

More annoying are driveability issues. The OEMs spend hundreds of hours working out the computer programs that allow cars to fire right up no matter what the temperature, to hold a steady idle speed and never ever stall on lift throttle, and hundreds of other little tweaks that make modern cars so much nicer to drive than the old Quadrajet-equipped monsters of the not so distant past. If you've never had to stick a cassette tape in the choke horn of a Q-Bog to get it to start, or to know exactly how many times to pump the throttle pedal (too few and it won't start, too many and it'll flood) to get a '77 Trans-Am to start in the winter, thank an OEM ECU programmer.

The AEM EMS is fully capable of producing a fully drivable car, but the responsibility for getting it there is yours and yours only. And getting the tune that good is nothing short of a massive pain in the ass. Happily, the AEM EMS is the cousin of the GEMS ECU that I used in the Talon (same software, slightly different hardware) so I was already largely familiar with the software and how to tune it. Plus, I'm stubborn.

So I had Marco from Magnus Motorsports install the AEM EMS, and I got him to tune the WOT portion of the fuel map on his dyno. Here is the result:

9B Dyno Plot

Not bad for a 17 year old car.

What follows is an ongoing list of tips and tricks for programming the AEM EMS that I hope may be of assistance to those attempting to follow my footsteps.

AEM EMS Tips and Tricks

Wideband O2 Sensors

The single most important accessory for an AEM EMS is a wideband O2 sensor. It is absolutely essential to have one to tune the car; you simply cannot do it without at least one.

OEM ECUs use far cheaper narrowband O2 sensors that switch from high/low (think binary: 0 or 1) at the 14.7:1 stoichiometric air:fuel ratio, and an algorithm similar to that used for adjusting artillery to tune low-load engine operation, and use open-loop (no O2 feedback) tuning for WOT. Because they have hundreds of hours of tuning time, and because they know the exact state of the engine, they can trust the WOT part of the maps in open-loop and use the cost-reduced O2 sensor to adjust for carbon buildup, etc with a view to controlling emissions and keeping fuel mileage reasonable.

The would-be aftermarket EMS tuner, however, does not have that luxury, and the supplied narrowband sensors just won't do the job. You need an O2 sensor that can read air:fuel ratio directly and that means a wideband. And because widebands must be temperature corrected, have the heater circuit controlled, etc that means you need a wideband controller.

I used an AEM Dual UEGO controller driving Bosch sensors and it works just fine.


Once you have it in place, having that O2 sensor opens up a few other tricks:

  • Run Full O2 Feedback Unlike an OEM computer which activates O2 feedback only at idle and part-throttle, the AEM will let you run O2 sensor feedback all the time, even at WOT. This is the greatest cheat ever made, because all you have to do is populate the O2 Feedback Target Map with the ratios you want, and the AEM will happily try and meet those targets. No matter how wonky the base map is, the EMS will constantly cover for your mistakes.

O2 FB Screenshot

    The danger here is that you have to trust the sensor(s) and you have to trust that they'll never go bad. Especially if you use leaded race gas, that's not a good assumption. But while you are tuning O2 feedback is a godsend. All you need to do is log or monitor the O2 #1 FB Value parameter and you get a reading of exactly how much correction is needed to bring your base map up/down to reach your target A/F.

    For example, if the O2 #1 FB Value for a particular cell is +15%, then you know you need to add 15% more fuel to that cell to get it right - and when you do, the O2 #1 FB Value will be +/- 1% or so. Doing it this way - monitor the FB value, tweak the map, check the FB value, check the map - allows you to rough in the fuel map very, very quickly. And as the map takes shape, the trends become very obvious, and it becomes simple to rough out the rest of the cells in the map (the cells not directly observed) with a very high probability that they will be close. Certainly close enough that the O2 Feedback will be able to correct the cell.

    I like to see O2 FB at -5% per cell (the O2 FB routine is subtracting fuel) so that the raw map is slightly rich - this way if a sensor dies you know the map is safe.

    The hard part about this is actually taking the time and tuning the map, rather than just being lazy and letting the O2 Feedback take care of everything.

  • Run Individual Bank O2 Correction The Stealth is a V6 and has one O2 sensor per bank. The AEM EMS will allow you to control the O2 Feedback per bank separately. This can really help fuel mileage because now you can correct each bank independently. It is important, however, to match the correct O2 sensor to the correct bank, or weirdness will develop.


Tuning startup/warmup is just annoying, because the tune changes as the temp changes so you are chasing a moving target. The car will only spend a few seconds at each temperature cell so you only get to make a couple of up/down adjustments to the Warm Up Enrichment table before the car has marched on to the next cell. And the only way to return to a cell is to let the car cool back down again.

This is why the OEMs have giant, car-sized freezers - they can control the ambient temp and so can visit the ultra-cold cells whenever they want; unlike us poor mortals who must wait for Mother Nature. So really, the only way to do this is to keep a laptop in the car and tune it a little more every single morning, every single start/warm cycle.

The trick is to minimize the amount of Start Extra and Warm Up Enrichment fuel needed to keep the car running smoothly as it warms up. It is very easy to go overboard and have a car that starts and warms up, but has tailpipe emissions that are in danger of self-igniting.

The big trick I have here is this: car starts and runs, but stumbles on throttle application. So you add Warm Up Enrichment to get rid of the stumble - but now the exhaust smells like raw fuel. Back down the Warm Up Enrichment to where the car runs fine, but use the Accel Warm Up Enrichment table to get rid of the stumble. (This tunes the accelerator pump function to add more accel pump when cold) Works like magic! (Credit: Marco from Magnus)

AEM Startup/Warmup Screenshot

Boost Control

The AEM EMS will control boost via a boost control solenoid (BCS) similar to how the OEM ECU does. In fact, you can plumb the aftermarket solenoid into the same place as the OEM BCS.

I cover this in more detail on the Boost Control Page

However, instructions for configuring the boost control functions can be found HERE


The Stealth (like the DSM cars) comes stock with a Mitsubishi peculiarity - a Karman Vortex Mass Airflow Sensor. The AEM EMS is quite capable of reading the OEM MAF sensor and the car will run quite well with it - my current calibration is a MAF calibration. However, as the engine is modified to produce more power, eventually the sensor runs out of headroom and loses its ability to count the volume of air entering the engine. I appear to have reached this limit with the installation of my 13G turbos (although it is not clear if I have exceeded the physical limit of the MAF, or just the calibration limit of the AEM EMS's MAF calibration)

So I may have to convert the car to speed/density mode, which uses a Manifold Absolute Pressure (MAP) sensor and an Intake Air Temperature (AIT) sensor to compute mass flow, rather than measuring it directly with the MAF.

The Talon was configured as a speed/density car and it worked well. More to follow on this as I develop the car.

Back to Stealth Site Home