Ed Hohenberg
January 1, 2007
Contributers: Ed Hohenberg
The only method for reprogramming Ford EEC IV processors is through the use of devices that plug into the J3 service port. When such a device is installed, the EEC looks to the programming on the external device and ignores its internal programming. J3 devices are typically chips, such as the ChipMaster Revolution (below left), but they can also be more elaborate devices such as the TwEECer (below right). A big advantage of J3 devices is the ability to load several different tunes, and switch between them on the fly.

In part 1 of this three-part series, we covered the basics of EFI, with an emphasis on the Ford systems, though still with a somewhat generic explanation. Last month we got more into the specifics of tuning the Ford EEC, but we didn't actually get around to custom tuning anything yet. Now that we've covered the theory, we can finally put it to practice.

How? There are many aftermarket systems available for the DIY types for tuning Ford EEC: EEC-Tuner, TwEECer, SCT Pro Racer Advantage, Superchips, Moates F1/F3, and so on. Some systems use add-on chips/modules that plug into the service port of the ECU, some use Flash Programmers that reprogram the actual ECU, and others can do both. For this article, we'll be using a DiabloSport Predator Flash Programmer, and custom tuning using ChipMaster Revolution software. Although the CMR software is available only to dealers (at this writing), the concepts and techniques are the same for the other systems.

We Say, "Go Big Or Go Home."If we're gonna tune, let's tune something worthwhile. So instead of tuning a bone-stock '89 5.0, let's go after an '04 SVT Cobra, first stock, then with added boost and other bolt-ons.

While our subject vehicle ended up only mildly modified, "mildly modified" for an '04 Cobra still means big horsepower and the need for a custom tune. This particular Cobra had just a 2.80-inch pulley, an after-cat exhaust, and a cold-air intake (CAI) added, but that setup is good for well over 500 hp at the flywheel.The extra boost required changes in fuel and spark control, and while the stock MAF sensor and fuel injectors were still used, the added CAI made MAF curve tuning necessary, too. In stock form, we also found more power by working the tune a bit, so custom tuning is a good thing.

For this mild level of modification, the stock Cobra fuel pump and injectors will get the job done, but just barely. Similarly, the stock MAF sensor will not "peg," but we'll be using all of its available dynamic range. Since the stock TB, intake, cams, and displacement were used, idle air tuning was not required (but we did need to tune the MAF curve in the idle range, when the CAI was added).

For our custom tune on the stock Cobra, we modified only the scalars shown here. The changes made in the Powertrain Limiting and Transmission Configuration sections created a 3,500-rpm "two-step" rev limiter we could use at the dragstrip. Neat, huh?

With access to over 70 tables, almost 100 functions, and over 260 scalars to modify in our Cobra's "AMZ1" (EEC code) processor, the complexity of the newer Ford EECs is again reinforced. In the end, we ended up changing eight tables, six functions, and 36 scalars. In the interest of keeping this already long series from getting excessively long (and to keep from giving away any proprietary info), we can't go into each and every last modification, but we will cover the main tuning mods-things your average DIYer would go after.

Stock Cobra
First things first: Before we started modifying the Cobra, we tuned it in stock form to see how much power was left on the table by Ford. Keep in mind, we're not tuning on the ragged edge here (Cobra engines aren't cheap), so our newfound power comes with a tune that's still safe for pump gas.

For EEC V systems, the ECU can still make use of a J3 device, but internal memory became flash reprogrammable. Through the magic of OBD-II (and we all thought it would be a bad thing when it came out in 1996), you can now use a Flash Tuner tool such as the DiabloSport Predator or SCT XCalibrator to simply flash a new tune into your EEC through the OBD-II service port, without ever having to "find" your actual ECU. For '05-and-newer Ford ECUs, the J3 port is now gone, so flash tuning is your only option. An advantage of flash tuners over chips is the ability to integrate OBD-II diagnostic features into the hand-held unit, such as service code retrieval (and clearing), and data logging of the EEC sensors and actuators.

On the Superflow chassis dyno rollers at Motion Performance in Winnipeg, Canada, we baselined the Cobra at 382 rwhp, at just over 6,000 rpm, with a peak rear-wheel torque figure of 365 lb-ft at 3,800 rpm. Throughout the run, the A/F ratio was quite rich, then it got really rich at the end, most likely due to the combination of a learned fueling correction (from an unrelated low load/rpm point), and the stock tune adding even more fuel to cool the catalysts at high rpm.

Now it was time to look for improvements in the tune. Our gameplan was to get the A/F ratio where it would make more power, but without being risky (read: lean). Similarly, we'd add a bit more spark advance, knowing our 94-octane pump gas gives us a bit more protection from detonation than the 91 octane specified in the owner's manual. We'd also be data logging the ECU, so we could monitor all important parameters to ensure the ECU was doing what we wanted it to do, while also ensuring we weren't getting to the limit of the stock MAF sensor or fuel system.

Modified Scalars
For our unmodified Cobra custom tune, we first disabled the adaptive strategy by setting "adaptive fuel enable" to 0, so we weren't competing with the ECU to straighten out the tune. We then disabled the rear O2 sensors, since we'd be putting the dyno wideband O2 sensors in those same bungs. While we were in a disabling mood, we also disabled traction control by setting the "axle ratio fractional" value to 0, disabled the boost bypass, disabled torque modulation, and finally we disabled the catalyst temperature models, which dump a bunch of power-robbing fuel into the mix when the ECU thinks the cats are getting too hot (which showed up in the baseline dyno run when the A/F ratio fell off a cliff towards the end of the run).

Other important changes to the scalars included lowering the fan control temperatures to keep the engine a bit cooler (for more power), reducing the OL delay transition, setting the maximum acceptable MAF sensor voltage to 4.99 (so we get the full usable range of the MAF sensor), and bumping up the WOT air charge numbers, which the ECU uses to estimate WOT airflow.

One trick thing we did in the scalars was create a "two-step" rev limiter, to allow us to more consistently launch the car at the drags. Setting the neutral rev limit to 3,500 (along with changing the "transmission type select" to 1, and the "mph to infer neutral for torque limiting" to 0.5) gives us a 3,500-rpm launch limit, until the ECU detects a vehicle speed over 0.5 mph, at which point it goes back to the stock 6,500-rpm limit.

Modified Functions
The only function we modified for the stock Cobra was to set the "tip-in spark advance vs. rpm" to all zeros, in order to keep the ECU from retarding the spark advance on shifts. This modification would not show any power increase on the dyno, but would improve driving performance.

Modified Tables
Tables modified for the stock Cobra tune included the Adaptive Update rate/offset, plus various fuel and spark advance tables.

Bumping up the spark timing is where we can make more power, but we can't be too greedy or the detonation gods will pay us an unwelcome visit. Shown is our tweaked borderline spark table for the Cobra in stock form. We intend to use 94-octane fuel with these values.

The Adaptive Update rate/offset table determines how much time elapses, at a given load and rpm, before LTFT data is updated for each cell. It also determines which cells simply use learned data from other load/rpm points. To keep low load/rpm learning info from being applied at high load/rpm, we set all the table cell values to "4," so each cell does its own learning, and updates its LTFT data after four seconds. This modification does not make more power per se; it's done for safety reasons, and to make sure the tune doesn't corrupt itself later.

For fueling, the stabilized OL fuel table was adjusted to target a 12:1 A/F at high loads for all rpm. Stock, it already called for 12:1 at the higher rpm, so this modification was also not expected to make any more top-end power, but it gave us some additional low-rpm tolerance for spark advance. We knew targeting 12:1 A/F would really have us in the mid-11s for the 10-percent ethanol blend fuel we were using, which is right where we want to be with that fuel, and is plenty safe (Note: In hindsight we realized we should have used straight gasoline for an introductory tuning article, since tuning with 10 percent ethanol fuel requires a bit more knowledge and adds a bit more complexity, but we wanted the 94 octane).

Spark tables were next on the hit list. The first spark table changed was to zero out the tip-in spark retard table, to again prevent any reduction in spark advance during transients. With the tip-in disabled, we also zeroed out the borderline spark adder for A/F ratio, to keep the spark advance more consistent and predictable. Both of these modifications are done to improve driving performance (or for tuning safety), but again are not expected to show anything on the dyno for horsepower.

All this tuning looks great on paper (or more correctly, a computer screen) but what does it do in the real world? To find out, we strapped our Cobra to the Superflow "lie detector" chassis dyno at Motion Performance in Winnipeg, Canada.

Spark advance is where there's power to be made, but with the greatest risk. As such, we're not just going to jump in and add 10 degrees more spark advance, then grit our teeth and grimace during WOT, hoping it holds together. In the borderline detonation spark advance table, we added a couple degrees of spark advance just about across the board for part throttle, then carefully tailored the higher Load (WOT) spark to make more power but still be safe.

If you recall from Part 2 of this series, the ECU will calculate spark advance from several independent sources, then select the lowest value calculated. One of those sources is the MBT spark advance table. So, once we were done in the borderline spark table, we double checked the MBT spark table and found it was in fact now calling for less spark advance at 6,500 rpm than our borderline table, so we bumped up the MBT values to match.

With the Cobra still strapped on the dyno, cooling off after the baseline runs, we simply flashed the new tune into the ECU using our Predator flash tool, and we were ready for more action. Using a Raptor to data log the ECU, we ensured the coolant temperature was consistent with the baseline runs, then let 'er rip with the custom tune. On the still otherwise-stock Cobra, the custom tune put us up over 17 rwhp, but with close to a 30-lb-ft wheel torque improvement (that you can really feel). A hot-lapped backup run got us within 1 hp, so we knew the results were real.

When a cold-air intake system is added, the MAF sensor accuracy more often than not goes out the window. As a result, our first step in the tune for the now modified Cobra, was to get the MAF sensor function properly programmed. Using an old SCT Raptor, we data logged MAF voltage and STFTs at various rpm steps while in closed loop mode then applied the necessary corrections to the lower end of the MAF sensor transfer function. To tune the higher end of the curve, we made dyno runs and compared the commanded A/F ratio (logged) to the dyno WBO2 numbers (and did our ethanol-blend correction math). It's important to mention that while we sorted out the MAF sensor function on the dyno, we ran conservative spark timing and would abort any dyno runs immediately if we saw the A/F ratio go leaner than 12.0:1.

Modified Cobra
Modifications to the Cobra included a cold-air intake system, which changes the way air flows into the MAF meter, thus requiring some custom tuning to get the MAF calibration accurate again. The added boost from the smaller blower pulley also required changes in spark timing, A/F ratio, and load ranges. The after-cat exhaust didn't really require any specific tuning changes on its own, so it was just along for the ride.

To get the low end of the MAF transfer function accurate, we simply did a "step" test (warm engine in closed loop mode), where engine rpm in neutral would be held for several seconds at say, 1,000-, 2,000-, 3,000-, and 4,000-rpm steps, while we data logged the MAF voltage and STFTs. The result would be discrete data points showing us how far off the MAF curve was for each step. For example, at around 2,000 MAF, voltage corresponded to 1.26 volts, and our average STFTs were around 0.90. Thus, our MAF curve flow numbers needed to be increased by 1/.9 or 1.11 at 1.26 volts to correct the error. Using the other data points from the step test, we made several adjustments to the MAF curve up to 2.15 volts, and smoothed all points in between.

To get the higher end of the MAF curve fixed, we'd need to run the engine under load to get the airflow up higher (i.e., dyno runs). Again, from the data logs, for straight gasoline you could simply compare the A/F ratio commanded at any given rpm to the actual A/F ratio achieved (as reported by the dyno WBO2) and make corrections as necessary (but for us there was slightly more math involved, due to the 10 percent ethanol blend of fuel). Of course, to be safe, we'd first set the commanded A/F ratio safely rich (and commanded spark advance safely conservative), then watch the dyno WBO2 display like a hawk during the dyno runs, to be sure we weren't still going dangerously lean. If things looked like they were going lean during a dyno run, we'd immediately abort the run, then richen the MAF curve as necessary before having another go at it.

With nothing else changed but our custom tune on the otherwise stock Cobra, we picked up an additional 17 rwhp and 30 lb-ft rwtq.

Once the MAF transfer function was corrected for the CAI, we could go back to the tune in search of more horsepower. First, we would rescale the fuel and spark advance tables to extend the load range out to 200 percent (load increases with the added boost), giving us more resolution and a greater useable range on the tables. The procedure to do this was previously outlined in Part 2 of this series.

The next thing changed was to increase the default load at sea level table. This table is used to infer load from rpm and TP if the MAF sensor is judged to be out of range, which could happen on a dense air day in our case, since we're close to pegging the stock MAF sensor with the added boost. Based on the actual load values data logged during the dyno runs, we bumped up the values in the table by around 25 percent.

With the housecleaning stuff covered, we could then tweak the fueling. For the A/F ratio, we prefer to run the engine a bit richer with the added boost, in order to provide some additional charge cooling effect, and to give us some more margin against detonation. So while we ran the stock Cobra at a commanded 12:1 A/F ratio for high loads, now we'd lower the commanded A/F ratio to 11.8:1 at the higher loads and higher rpm cells of the base, and stabilized OL fuel tables (this would show up on the dyno as A/F ratios in the low 11s for our 10 percent ethanol fuel).

For spark advance, we needed to completely rework both the borderline and MBT spark tables (due to the rescaling), ensuring reduced commanded spark at the higher loads. At the top of the tables, we limited spark advance to a maximum of 20 degrees, then added a bit more advance at the lower loads. On the dyno, we snuck up on the spark advance, shaping the power curve with the spark timing table, without adding enough spark advance to make us nervous with pump gas. Had we decided to use race fuel, we could have commanded a bunch more spark advance and likely made significantly more power, but this was to be a pump-gas/street tune.

Another thing we looked at carefully were the borderline spark modifiers, based on ACT and ECT. We wanted to make sure that if the inlet air temperature (after the supercharger) or coolant temperatures ever got too hot, the EEC would dial out the appropriate amount of spark timing to guard against detonation.

After the fueling was sorted out, we could carefully put some spark advance back into the mix. With the added boost from the smaller blower pulley, we needed to rescale the fuel and spark tables out to a greater load range. This forced us to completely rework the borderline detonation spark advance table. The final revision is shown here.

This brings up an important aside for the newer EEC stuff where the IAT sensor is integrated into the MAF sensor. If you have the MAF sensor upstream of a supercharger (a "draw through" MAF setup) the EEC will never see the higher inlet air temperatures from the compressor, and thus not retard the spark advance as necessary. For these installations, it's imperative to also install (and correctly wire) an IAT sensor somewhere in the inlet ducting after the supercharger. For our supercharged Cobra, the factory thought ahead and added a second IAT sensor after the supercharger.

OK, back on topic: After a bunch of dyno runs, tweaking the tune slowly and carefully along the way, we ended up with 470 rwhp, 490 lb-ft of rwtq, and a safe A/F ratio at the bottom of the 11s (equivalent to mid- to high-11s with straight gasoline).

At the end of the day, when we were happy with the tune, we went back into it one last time to reenable adaptive strategy. At that point, we were done.

In the end, our custom tune netted us an additional 10 rwhp over the off-the-shelf tune from the flash tuner. Custom tuning has its rewards.

Since we'd be nuts to run the stock tune in the modified Cobra with the added boost, we used a flash tuner "box tune" as a baseline for comparison. In this case, our custom-tuned numbers weren't up huge amounts compared to the box tune, but they were still up enough to make it worthwhile (oftentimes custom tuning finds significant gains in power and driveability over mail-order chips/tunes). Add in the confidence of knowing the tune is still safe for general consumption, and you can see why custom tuning has its place in the world of EEC performance.