Version 0.1

Warning – this document is an incomplete preliminary draft and is not ready for use as a tuning guide. It is under active development and none of the information included should be considered complete, reliable, or accurate.

[This document starts with obvious things you may already know since it is hard to know where to begin.]

1 What is an EEC? The EFI computers in the Ford EEC family – and in fact any EFI computer - have the job of opening and closing the fuel injectors by sending them electrical pulses and firing the spark plugs by sending a signal to the coil (or coil packs if there is no distributor.)

[There are other minor functions controlled by the EEC, e.g. controlling the fuel pump, electric fans, EGR valve, etc, but we are not going to worry about those for now.]

The EEC runs a stored program that monitors sensors and makes the decisions to open injectors and fire the coil at just the right instant and for just the right amount of time. The sensors are pretty basic and common sense: The EEC has a sensor called TPS that tells it how far open the throttle is; the MAF sensor tells it how much air is flowing into the engine, the O2 sensors say richer/leaner than 14.64, and there is sensor coming back from the distributor telling the EEC the position of the camshaft. [Yes, there are a bunch of other minor sensors, include coolant temp, inlet air temp, etc. but they are beyond the scope of this introduction.]

1.1 Principals of Operation By paying close attention to all these sensors, the EEC can do a pretty good job of running the engine using its stored program from Ford.

1.2 Operational Modes The EEC operates in three distinct modes.

1) In closed loop mode the EEC uses the MAF sensor to determine the amount of air entering the engine to calculate a "guess" of how much fuel to inject. It uses facts about the engine (number of cylinders, injector size) to calculate the injector pulse width to deliver the right amount of fuel, and then at the appropriate instant when the cam position sensor says the engine is at the right point in the 4 stroke cycle, the EEC switches on +12V to the particular fuel injector and holds it there for just the right amount of time - the pulse width. Then it continuously uses the too-rich / too-lean signals from the O2 sensors to add a bit or subtract a bit of time to the injector PWs to achieve 14.64 A/F ratio. [14.64 A/F ratio is called stoichiometric mixture. It is the chemical mixture where gasoline burns with best emissions. FWIW, 15.1 results in slightly better fuel economy, but creates more emissions. And you can't by an O2 sensor calibrated for 15.1 anyway.]

The EEC operates in closed loop mode almost all of the time.

2) In open loop mode the EEC completely ignores the O2 sensors and hopes to achieve some specific A/F ratio just by using the MAF sensor voltage, RPM, number of cylinders, and injector size to calculate fuel injector PW. I say hope because it is typical for your MAF transfer function and / or injector slope to be as much as 10% off. Without the O2 sensor feedback used in closed loop, open loop commanded A/F ratios are never very precise. Open loop mode is used whenever the EEC needs to achieve A/F other than 14.64.

Typically open loop is used at startup and at WOT when the engine needs an A/F ratio mixture richer than stoichiometric. Richer A/F is needed at engine startup, especially with a cold engine, just like a carbureted engine has a choke. Richer A/F is needed at WOT: Maximum HP at WOT typically occurs somewhere between 12 and 13. Also, this slightly richer mixture helps cool the combustion chamber and exhaust valves at the higher combustion temperatures of WOT.

3) Another mode the EEC may operate in is called limp mode. As the name implies, this mode is only invoked when the EEC thinks something is wrong. A typical reason for limp mode is failure of one or more sensors. Depending on what sensors failed, the EEC may refuse to operate or may operate in limp mode. [The Check Engine light always accompanies limp mode.] For example, if O2 sensors fail the EEC operates but cannot run in closed loop. The EEC can even run in limp mode with the MAF disconnected by using TPS and RPM to estimate PW - It just won't run very well.

1.3 KAMRF The accumulation and use of KAMRF data inside the EEC is an essential part of its operation. As the EEC runs the engine in closed loop mode it continuously corrects its PW guesses using the O2 sensor data. Over time the EEC remembers for specific PW, load and voltage how far wrong its guesses tend to be. These estimated correction values are called KAMRF and are stored and reported as numbers in a range around 1.00 + / - 15%. (Actually the 15% limit is a parameter in the EEC calibration that you can change.) If the KAMRF for a particular PW, load, and battery voltage is smaller than 1 it indicates that for some reasons the EECs calculated PW are too large producing an A/F richer than desired. So after calculating the PW the EEC applies the KAMRF by multiplying the calculated PW by the KAMRF value to produce the actually PW to use.

KAMRF data is lost when the battery is disconnected. And the longer the EEC operates the more complete its KAMRF data becomes.

Although KAMRF data is only accumulated in closed loop, it is used to calculate open loop PW if available. However, many open loop situations, e.g. WOT, would never have KAMRF data available since there would never be any closed loop opportunity to collect data for those PW and load factors.

1.4 Calibration The EEC program – just a computer program, nothing very special - operates by "knowing" a bunch of "facts" about your engine. For example, it knows the engine is 302 cid. It knows the injectors flow 19 lbs/hr. It knows if your MAF signals 2.0v it means xxx Kg/hr of air is flowing into the engine. And it even knows the engine needs xxx lbs/hr of air to idle at 850 RPM.

After we modify the engine the EEC's idea of reality is false.

The best way to see how important it is for the EEC to have a good sense of reality is to look at open loop fuel calculations.

For every fuel injector pulse the EEC calculates

PW = (MafAirFlow * 2.205 / 60) / RPM / (NumberOfCylinders / 2) / DesiredAFR / (InjectorSlope / (60*60)

So what happens to the accuracy of this calculation if you replace your 19lb/hr injectors with 30lb/hr injectors? Every single time the EEC try to calculate PW it will come up with a PW that is 1.57 times too long and your engine will be at AFR 9 instead of 14.64.

[Notice that if your MAF intentionally under-reported air measurements by 63% your PW calculations would be correct. Although this solution has other side effects, that is exactly what happens when you have 30 lb/hr injectors and a new MAF calibrated for 30 lb/hr injectors.]

Here's another example of how bad things happen when your EEC is out of touch with reality. Timing advance is very dependent on knowing engine load. When the engine is at light load it needs as much as 25 degrees more timing advance then when it is at high load at a given RPM. For example, at 3000 RPM WOT your engine may want 32 degrees of advance for optimum power, but at 3000 RPM steady cruise with very light throttle, your engine probably needs more like 50 or 55 degrees of advance. [This is what vacuum advance does on old-fashioned engines.] All the timing advance tables in the EEC are load specific, with separate rows of values for 10% load, 20% load, ... up to 100% load. The EEC calculates load as

Load = SeaLevelScaling * airflow / displacement

Imagine how this calculation works out if you have a stock EEC, 30 lb injectors, and MAF calibrated for 30 lb injectors. The MAF is falsely under-reporting air into the engine by 60%. For this engine then the maximum WOT load would be calculated as 60% (assuming all other things are unchanged) and at WOT the EEC will be using the timing advance rows for 60% load. The only thing that will save this engine for blowing up at WOT is how conservative the stock timing advance numbers are. (And a stroked engine would show load artificially high.)

Idle calibration is even trickier: The EEC has a table that tells it how much air you need to idle at given RPMs and it uses a little device attached to the throttle body called the ISC to let more or less air in when you are idling to achieve a specific RPM. There is no way your modified engine is going to need the same amount of air the stock table says. The result is usually idle surge and bucking at very low RPM when lugging. (My F303 cam is pretty big for a 302, but I can still accelerate smoothly at 1000 RPM in 5th gear just by flooring it.)

1.5 TwEECer Overview Enter the TwEECer. It does two things: First, it lets you use your laptop to edit any of the calibration values in the EEC so you can give the EEC all the correct data about your engine combo. And if you get a TwEECer RT [and you should] then you can datalog what the EEC is doing while you drive.

Tuning is pretty involved – I won’t minimize the time and effort - and to do it right you will end up knowing a lot about how the EEC works. If you like to tinker then this is the way to go. Otherwise you can skip the TwEECer and get a chip from any of the tuner companies that will be pretty close, but not perfect. But if you go with a chip you don't have to worry about learning all this stuff.

Personally, I love learning about this stuff and that is why the TwEECer is the right solution for me.

2 Tuning Roadmap The following tuning steps are usually tackled in more or less the order shown below, but every situation is different and you may need to take them in a different order. And you will often need to backup and repeat a step since calibration changes made in one step may affect another.

2.1 Mechanicals Don't even begin to tune your calibration until you are sure that all mechanical aspects of your engine are solid.

Be sure there are no vacuum leaks anywhere.

Be sure you fuel pressure is stable at the correct value and you fuel pressure regulator decreases pressure with vacuum. (And increases it with boost if appropriate.)

Be sure your plugs, wires, cap rotor, etc. Are all in good condition.

And be sure there are no exhaust leaks. (It isn't that I hate the pops, but exhaust leaks work both ways and the air that leaks into your exhaust will screw up the O2 sensor readings. Really.)

2.2 Initial Tune Constants The first part of tuning is pretty basic: Starting with a stock tune you use the editor that comes with the TwEECer to put in all the hardware descriptions for you car. This is stuff like your injector size, MAF transfer function, engine size, etc. And at this time you can set things you know you want to change like idle RPM, speed and RPM limits, fan turn on/off, etc. Don’t mess with timing advance or A/F ratios yet!

Your car should start and run but depending on how wild your engine is it may not drive very well.

2.2.1 Injector Size If you are using stock injectors then leave all these values stock. If you have other injectors set the high slope, low slope, breakpoint, and offset function. tk Figure TM40 Injector settings

1) Feel free to ask one of the tuning community bulletin boards for advice from someone running the same injectors you have. Important: if someone else gives you their slopes to try, you must have the same offset function they used.

2) Or plug in your injector size, e.g. 30 for 30 lb/hr injectors for both the high and low slope, 2e-5 (or anything else since it is ignored) for the breakpoint, and build a battery offset v. Injector offset function with a 14v intercept of 0.5ms but shaped more or less like the stock function. tk Figure My FRPP 30 Injector Settings

3) Or if you like the idea of different high and low slopes, plug in your injector size, e.g. 30 for 30 lb/hr injectors for the high slope and about a 10% larger number for the low slope, Plug in a number that matches a breakpoint of around 2.5ms. Build a battery offset v. Injector offset function with a 14v intercept of 1ms but shaped more or less like the stock function. tk Figure My Alternate Injector Settings

2.2.2 Injector Cranking PW The cranking PW table tells the EEC how long to open the injectors during cranking to start the engine. This table is in MS and needs to be scaled to match your injectors. Just scale the table up or down by the factor of how much bigger or smaller your injectors are than the injectors in the stock calibration you are using. For example, if you have 30 lb injectors and are starting with a calibration built for 19 lb injectors, divide 19 / 30 to get .63, and then multiple EVERY number in the table by .63 to make them match your injectors. tk Figure. J4J1 Cranking PW for 24 lb Injectors tk Figure. J4J1 Cranking PW Scaled for 30 lb Injectors

2.2.3 MAF Transfer Function If you are using a stock MAF just keep the stock MAF transfer function. If you are using an aftermarket MAF you MUST use the transfer function supplied by the manufacturer of the meter. (If you have a 9-point MAF curve convert it to a 30-point curve before using it.)

There are also two MAF scalars you need to set. Put 4.99999 into the MAF Maximum Voltage. And put the number from the smallest non-zero voltage into the MAF min voltage. [You may decide to alter the MAF minimum voltage after you have some datalogs to see the smallest values you really experience.]

2.2.4 Engine Size, Number of Cylinders, Firing Order Unless you are trying to use an EEC from a different engine you won't want to change the firing order or number of cylinders.

Set the engine size as exactly as possible to match the displacement of your actual engine.

2.2.5 Speed Limits Want to keep the stock speed limits? Be my guest, otherwise put in xxx to disable speed limits. tk Figure My J4J1 Disabled Speed Limits

2.2.6 RPM Limits The EEC has RPM limits but I don't recommend you use them. The EEC limits RPM by cutting off fuel, but at high RPM and high load the last thing your engine needs is to go lean as it is starved for fuel. If you really want RPM limits get yourself an aftermarket ignition that works by dropping spark.

To disable the EEC RPM limits just make the numbers way big and you'll never hit them. tk Figure My Disabled (Way High) RPM Settings

2.2.7 PIP The EEC base loop is executed every 1/PIP seconds. No mater what hardware is in your engine and no matter that you disable the RPM limits, you engine is never going to be able to spin faster than the PIP allows. But you can't just put in a million because the EEC CPU isn't fast enough to run 1 million base loop cycles each second. tk Figure Stock J4J1 PIP tk Figure Higher J4J1 PIP

2.2.8 Fan Temps If your EEC is controlling your fans and you must insure that the fan's on / off temperatures match the engine thermostat. (If the fans come on at a cooler temperature than the thermostat, you are just wasting fan electricity since the thermostat isn't circulating water through the radiator yet.

So set the LowSpeedFanOn temperature to your thermostat value plus a couple and the LowSpeedFanOff to exactly the thermostat value. Add about 10 degrees to the LowSpeedFanOn to get the HighSpeedFanOn, and use the LowSpeedFanOn value exactly as the HighSpeedFanOff value. tk Figure Stock TM40 Fan Settings for 192-Degree Thermostat tk Figure J4J1 Fan Settings for 180-Degree Thermostat

2.2.9 EGR Your engine came from the factory with an EGR system to re-circulate a little exhaust into the intake to improve start-up emissions. A correctly working EGR is mandatory to pass emissions test and shouldn't affect performance since the EEC will command the EGR valve to close at WOT. If you have stock EGR hardware on your engine be sure you calibration is set appropriately.

But, lots of us remove the EGR system anyway. This is an easy mechanical change: Remove and cap the EGR pipe that exits your exhaust system. Remove and cap the EGR pipe at the EGR valve bolted to your intake. (In fact, just blocking the pipe would suffice to disable the EGR system. But there is no good reason not to remove the entire EGR value and replace it with a small, fabricated aluminum plate. As far as I'm concerned, anything I can lose from my crowded engine compartment is a good thing.

But, after all the hardware is gone, you must tell you EEC your car is not equipped or you will get a Check Engine light. tk Figure Stock (EGR-Present) Calibration tk Figure Calibration with No EGR

2.2.10 Thermactor (Air Pump) The Thermactor AKA Air Pump AKA Smog Pump is another bit of hardware essential to passing your Smog test. It also functions mostly at cold start time and really should not impact performance. But is does help make you engine compartment look just that much more complicated and messy.

Removing the thermactor is really pretty easy. Just start taking off the pump and all the plumbing connected to it. There will be a small balance tube left that blows the pumped air into the air ports at the back of you heads. If your engine is out of the car, of course the neatest thing to do is plug the holes in the head. But probably the engine is in the car so leave the balance tube and just make a good airtight plug.

(I don't want to incite any of the Smog Police, and I am clearly stating that removing either or both is a violation of emissions law, but it is amazing how getting ride of both cleans up your engine bay.

With the thermactor gone the stock serpentine belt and routing will no longer work. You can go to all the trouble of getting an idler pulley that bolts where the thermactor came out and keep the stock belt and routing. Or you can use an alternate routing and a shorter belt and that works great too. For late model 5.0 Mustangs an 88.5 or 89.5 serpentine belt will probably do the trick. tk Figure Stock (Thermactor-Present) Calibration tk Figure Calibration with No Thermactor

2.3 Air Measuring and Fuel Metering [Expect to spend more time on this one aspect of tuning than all the others put together.]

It turns out just because you buy 42 lb injectors doesn't mean that 42 is the right number to plug into the EEC for your car. Your fuel pressure, fuel rails, intake track before MAF, etc. will all have something to do with what's perfect for you.

Using data logging and just KAMRF data or a WB O2 we can detect specific points where our calibration is producing a rich or lean mixture. But, and here's the Big Catch, we have no way of knowing if the rich/lean condition is caused by a mistake in measuring air using the MAF transfer function or if the mistake is caused by a mistake metering fuel using the injector slopes / breakpoint / offset.

The corollary to this principal is that you can fix a rich / lean condition by either changing the MAF transfer function OR by changing the injector parameters. Either way works. But getting this right is essential to good drivability and good performance. No amount of closed loop and KAMRF can deliver good drivability if the baseline guesses the EEC makes for A/F are wrong.

Air / fuel calibration (not air / fuel tuning, we'll get to that later when we talk about performance) is absolutely 100% a statistical process. You'll log 1000s of data points and make the changes to based on averages and the shapes of plots of the data. And if the imprecision introduced by statistical methods wasn't messy enough, the KAMRF and WB O2 data we use may be statistically reliable, but is both skewed and contains random variations. WB O2 data is skewed because the WB O2 is seriously downstream from the combustion event. My WB O2 is 2 ft behind my X pipe merge, call it about 7 ft from the exhaust port, and that makes it about 1 second skewed from the combustion event that it is measuring at low RPM and load. Of course this delay is much smaller at high RPM and high load so no simple fudge can fix it. And the mixing of exhaust gas creates a mechanical averaging so sharp changes in the combustion event become fuzzy changes by the time they reach the WB O2 sensor.

KAMRF data turns out to have its own significant problems resulting from the way data logging works: we treat each data tupple collected by logging as reflecting a consistent event in the engine. In fact, they really represent a group of numbers discretely collected and related only in the sense that they were all collected at a similar BUT NOT IDENTICAL point in time. As the throttle snaps shut after a near WOT run the airflow will go from high to low. The point in the datalog may show a MAF value before the airflow slowed down, but the KAMRF value in the datalog grabbed by the TwEECer a split second later may be calculated on the much smaller MAF value the EEC was then reading. There really is no way of knowing if a specific KAMRF value in the datalog best matches the PW and or MAF of the same sample, or the previous sample, or the next sample.

All we can really do is process log data statistically, assuming the data in the sample really is self- consistent (and we know it isn't), and not get too concerned about the fuzziness of the resulting data.

[At a more fundamental level, I have some serious doubts that the EEC algorithm for accumulating and calculating KAMRF is perfect either. There is some evidence that the EEC inadvertently has a time skew problem in its KAMRF accumulation algorithm, Here's the evidence. MAF tuning at low MAF values with plentiful KAMRF data produces poorer results than MAF tuning using a WB O2.]

Air / fuel calibration is where some people like to tune by adjusting the MAF xfer function - I prefer to do it using injector slopes and offset - it is a quasi-religious thing.] Either way, being able to datalog the EEC KAMRF values using the TwEECer RT make this tuning possible.

2.3.1 What is the MAF Transfer Function? The MAF is an air meter than reports a positive voltage between 0 and 5v to indicate air passing through the MAF and into the engine. The more air going through the MAF, the high the voltage it reports. The MAF transfer function is a table in the EEC calibration that relates MAF voltage to airflow in Kg/hr.

The EEC has room for up to 30 entries in the table, and usually the first entry should be 0V and the 30th entry should be 5V. The EEC interpolates within the table so if the MAF reports 1.78V the EEC uses the table entries below and above this value to estimates the airflow. Although the EEC only has room for 30 entries in the MAF table, we want it to be as accurate as possible. There are some things we can do to our MAF transfer function to make it as accurate as possible.

1) Don't waste extra MAF table entries below your minimum MAF voltage. For example, if your car idles with the ISC disconnected at .48V on the MAF, use 0v as the first table entry and .45V as the second. Having MAF table entries for .3v and .4v in this example would just waste precision we can use elsewhere in the MAF curve.

2) Separate MAF table entries by approximately the same percentage. For most of us with a 5V MAF and a minimum MAF voltage around 0.5V this means we want approximately a 15% increase between MAF table entries.

3) Preserve the shape of the MAF function. It is almost impossible to image a legitimate need to adjust points in your MAF curve up and down and up and down, etc. When you are done adjusting your MAF it should never be jaggy.

4) Change the voltage if necessary to preserve accuracy. Near the beginning of the MAF curve the Kg/Hr values are small, e.g. Less than 100 Kg/Hr. The EEC stores the Kg/Hr as low precision floating point numbers with only about 0.4 Kg/Hr precision. You have probably noticed if you have a MAF entry with a value of 25.303 and you tried to increase it by 2% to 25.8 it went back to 25.303 after you refreshed the table. The EEC has no way to distinguishing a MAF value between 25.303 and 25.918 so you can't make a very precise change between Kg/Hr values. But you can alter the MAF curve by changing the voltage value in the table. Just put the ideal table into MS- Excel (or use your calculator) and interpolate the voltage value for a Kg/hr value you can precisely represent.

Don't be afraid to rescale your MAF table to meet these requirements.

2.3.2 What are the Injector Values? The EEC meters fuel using the injector scalars high slope, low slope, and breakpoint, and the offset function. The EEC calculates a desired amount of fuel to inject in the intake port for a cylinder by mass measured in Kg (or Lbs). But what the EEC controls to inject the fuel is how long it keeps the signal active to open the injector. This time measured in milliseconds is called pulse width (PW).

Big injectors deliver more fuel in the same PW than small injectors. That's why we need bigger injectors. If our modified engine is producing more power it is only because it can pump more air through it. And the fuel demand is proportional to the air being pumped by the engine.

If we were using the fuel injector by just holding it open for a long time, all we'd need is a single, simple number to tell us how much fuel flowed over a given time period. But the way we actually use fuel injectors is by constantly opening and closing them so metering the flow rate is anything but simple. How ever we meter fuel we need to account for a finite time required for the injector to mechanically open once we send it the signal to open. Typically it takes the fuel injector between 0.5ms and 1ms to open completely. But with big injectors the PW at idle may be smaller than 2ms. Obviously if 25% of the duration of the PW is taken just to open the injector we need to account for that. Of course, the injector will start flowing some fuel as soon as the injector starts to open, it just won't be flowing at full capacity until it is completely open. And just as obviously the injector will continue to flow a little fuel as it is closing after the EEC turns off the PW signal. It may be less obvious, but if we constantly turn on and off the injector at very short PW, the fuel pressure built up behind it may actually flow fuel at a greater rate. (Think of a garden hose with a spray nozzle and with the water turned on to the hose: When you first squeeze open the spray nozzle the first burst from the hose may be faster than the steady flow.) All of these factors combine to make setting the correct fuel injector settings anything but simple.

High slope is a scalar the represents the flow rate of the injector at large PW. This number is usually how we talk about the size of injectors, e.g. 30 lbs or 19 lbs or 42 lbs.

Low slope and breakpoint are artificial constructs introduced in Ford EECs to instruct the EEC to calculate small PW as if the injector has a larger slope. When low slope is used and larger than high slope, the EEC calculates very small PW using low slope and very large PW using high slope. The curve is therefore asymptotic on the high slope. Breakpoint is specified in lbs of fuel and defines the point where the slope curve is halfway between high and low slope values. (Not all EEC calibrations make use of low slope. Injector setting. Depending on other details of the calibration it may be possible to set low slope = high slope and ignore breakpoint without diminishing tuning results. tk Figure Graph of Injector Slope vs. PW

Tuning Injector offset is not discussed as much for EEC tuning as it is for other EFI computers, perhaps do to the complexity introduced by low slope and breakpoint. Offset is one of the primary tuning parameters used for other EFI computers.

Offset instructs the EEC to add a fixed length to the calculated PW. For example, if the EEC calculates it needs a 2.5 ms PW, and the offset is 0.5 ms, the actual signal sent to the injector is 3.0 ms in duration. (And, the value logged in the datalog is 2.5ms.) The idea behind having an offset is the injector takes some time to open after the signal to open is received. And if we really want 2.5 ms of fuel, continuing with the previous example, then we'd better keep the injector open signal going for 3.0 ms. Actually, the offset is a steep function increasing as the battery voltage goes down since the speed of the injector pintle opening is going to slow down as the voltage goes down. Typically bigger injectors have a larger offset. And typically bigger injectors have a steeper offset curve. It can easily take an extra 0.5 ms or more for the injector to open at 12V than at 14V.

[It is time to set the record straight about a bizarre difference between the stock 5.0 GT calibration and the stock 5.0 Cobra calibration because a lot more than just the injector high slope change from 19 to 24 is going on. You can get a reliable, drivable EEC tune using two very different approaches: you can set the high slope = low slope, ignore the breakpoint, and use a smaller offset value; or you can use a bigger offset but then you need a numerically larger low slope. The GT calibration uses a larger offset value and therefore also uses different high and low slopes. The Cobra calibration uses a smaller offset and the same high and low slopes.] tk Table TM40 vs. J4J1 Injector Slopes

2.3.3 Minimum Pulse Width While we are discussing injector settings, there is one more we should mention, minimum injector PW. When the EEC calculates the fuel requirement and corresponding PW, it may result in a very short PW. If the PW calculated is smaller then the minimum PW specified in the calibration, the EEC doesn't bother to open the injector at all, effectively commanding a zero PW. If you have large aftermarket injectors and leave this value unchanged, the EEC will be unable to deliver fuel in situations that require short PW. You can feel this effect in the seat of your pants as you decelerate when the EEC cuts fuel abruptly (the car jerks into deceleration) and then abruptly restores fuel (the car jerks forward). To correctly set this value scale the stock value smaller by the factor of your injector size increase.

2.3.4 Tuning High Slope with a WB tk How to set high slope and offset with a WB

2.3.5 Tuning High Slope with KAMRF tk How to set high slope and offset with a KAMRF

2.3.6 Tuning Low Slope with a WB or KAMRF tk How to set low slope and offset with a WB or KAMRF

2.3.7 Tuning the Low V Offset with WB or KAMRF tk How to set low V offset with WB or KAMRF

2.4 Load Scaling Next up is using the datalog to figure out proper values for some of the SeaLevelLoadScaling table. This table is essential for drivability, performance, and reliability.

[Multiple WOT runs will be required to correctly set this table. Do NOT attempt WOT runs on public streets where you will create a danger to yourself and others. Also, do not attempt this until your Air / Fuel calibration is close to correct. Otherwise a lean condition could damage your engine.

Data logging RPM and LOADX make several WOT runs from 1000 RPM to max RPM. Plot the average LOADX vs. RPM for all runs. The objective is near 100% LOADX across the entire RPM range. Adjust the SeaLevelLoadScaling table as follows: If LOADX values are less than 100% at a specific RPM, proportionately decrees the value in the SeaLevelLoadScaling table. If LOAD is more than 100% increase the value in the table.

Example: at 3000 RPM LOADX at WOT is .8 and the SeaLevelLoadScaling table has an entry of .73 at 3000 RPM. Calculate the new value for the table at 3000 RPM as .73 / .8. Put .9 in the table at 300 RPM. Make similar calculation for other points in the table and retest.

There is nothing sacred about the X values in this table. Feel free to interpolate and choose other X values if necessary for your engine. This is especially likely if you have an aftermarket cam. tk Figure Stock J4J1 Scale Function tk Figure My J4J1 Scale Function

This discussion assuming your load-scaling switch is set to X to command load scaling using the SeaLevelLoadScaling table. This is the recommended method to tune engines that see street time where drivability is a concern; Tuning with other values for load scaling is beyond the scope of this document.

[These instructions apply ONLY to tuning a normally aspirated engine. The TwEECer is very capable of tuning if you have forced induction, but there are some different steps and it is slightly more complex so I'm just not going to talk about it here. See the discussion of Boost latter in this document.]

2.5 Idle If you have good drivability (other than idle and closed throttle deceleration) it is time to move on and fix your idle. If you still have any drivability problems go back to air / fuel calibration, you are not done there yet. Or go back and check your mechanicals since that could also cause drivability problems.

If you do have otherwise good drivability and correct air / fuel then it is about time to get your idle tune right. [And if you do ever back up and make any MAF transfer function changes at low values you will have to redo all these idle settings.]

By data logging idle at various RPMs you can find the right values for those tables. And by data logging with the ISC disconnected you can find how much air gets past a closed throttle body - that goes in something called the throttle body airflow scalar.

2.5.1 Throttle Body Airflow With your car warmed up and at stable idle disconnect the wiring harness at the ISC. The idle will drop and maybe get rough, but your car should continue to run. (Your car will never idle slower than the idle with the ISC disconnected. If this idle speed is too high then don't hesitate to adjust the throttle body idle setscrew. And if you car won't idle at all when you disconnect the ISC then use the set screw to open up the closed position of the throttle body just enough to get your engine to idle without dying.)

Datalog this rough idle and average the RPM and average the MAF Kg/hr. For some obscure reason the idle calibration is in lbs/minute. So convert the MAF datalog average by multiplying by 2.205 and divide by 60. This MAF number goes into the ThrottleBodyAirflow scalar. And the RPM/Airflow values go into both the ISCDriveIdleAirflow and ISCNeutralIdleAirflow functions as the first entry in the table.

2.5.2 ISC Airflow Both of these tables need to be filled out by data logging your car as it idles at different RPMs in both neutral and drive. (If you have a manual transmission, just put the same values in the drive table that you put in the neutral table.)

The second data point for your tables is the RPM you set for your idle speed. For the rest of the table you can use the stock RPM values or you can just datalog at arbitrary, increasing RPMs and use those speeds.

[You can keep resetting the idle RPM in you calibration and datalog at successive speeds. Or I found I could just make one datalog and carefully increase the throttle 0.01V at a time, letting the RPM stabilize for 15 to 30 seconds before moving on. Then I plotted the resulting RPM v. MAF lbs/min (converted from Kg/hr using the formula above) and just completed the airflow tables from that. tk Figure Datalog Plotted Airflow vs. RPM

2.5.3 Dashpot The only other idle related calibration is your dashpot settings. These settings control just how quickly the EEC drops the idle RPM. If all your other idle settings are correct and your RPM drops to far and / or too fast you can use the dashpot settings to slow how fast the EEC will let the idle drop. Slowing down the idle drop will help the EEC to hit your target idle RPM and stabilize without going under.

2.6 Maximum Drivability If you’ve successfully done everything so far you’ve achieved better drivability than almost any custom tuner chip will provide and you may be tired and ready to call good enough, good enough. But there are a couple of minor improvements left if you want to pursue them.

2.6.1 Accelerator Pump

2.6.2 HEGO Delay

2.6.3 Injector Timing There may be some drivability improvements to be had by tuning Injector Timing, but to be completely fair there is no objective way to measure it and no one can really claim a provable improvement to making changes here.

Injector timing specifies the point in the 4-stroke (0 - 720 crankshaft degrees) where the injector PW should complete. (Some people have suggested the timing number is the beginning of the cycle or even the middle of the PW. It has also been suggested there may be a flag in the calibration to select among these different meanings. The best consensus is still that the number represents the end of the PW.) Although it would be nice to assume that Ford had it exactly right and then all we'd have to do is make a small change for different camshaft profiles, in fact the stock Ford calibrations are so different it probably isn't reasonable to conclude that it makes much difference and Ford knew what they were doing..

Generally, at low load and low RPM we want the PW to complete right before the intake valve starts to open. The idea is avoiding spraying raw fuel through an open intake valve and washing a cylinder wall clean. This works up to the point that PWs become so long that the injector has to share time with an open intake valve. If we kept the same optimum injector timing at larger PW as smaller PW then the injector would start to open at about the same time the intake valve was closing. It has been suggested that should be avoided if possible. So most people think that at small PW your should time the end of the PW for right before the intake starts to open, and at larger PW (and that means high load where the intake flow will help mix the air and fuel, you should move end of the PW to the point where the intake is just starting to close. tk how to convert cam timing events into 0-720 crankshaft degrees tk Figure My J4J1 Injector Timing

2.7 Drivability Conclusions At this point you should have pretty good drivability. It took me about 6 months of playing around to get to this point. But I was learning from ZERO. And the whole tuning process wasn't documented very well. Searching the 'net archives gives you lots of bits and pieces but sometimes the forest gets lost among the trees. Given a mechanically correct engine – even a radical one, a TwEECer RT, and a WB O2, I think I could get a tune pretty close to perfect in a week or two of evenings and still have time to drink a beer. With everything an inexperienced tuner needs to learn, if you approach it methodically I think you could do it in about twice that might time. But all these time estimates really depend on how perfect you are going for. I was always the guy in class that wasn't happy if I got a 99 on my exam.

3 Maximum Performance BTW, we're not done with tuning, at this point we left of tuning we had excellent drivability, but we hadn't gone for max performance yet. It turns out, that with dialed in injector / MAF settings it is trivial to just put in different numbers in the stabilized open loop A/F table and alter your WOT A/F ratio. So put in 13 or 12.8 or 11.5 until you get what you want. Most people say 12.5 or so is good, but it does vary from car to car and some runs on the dyno or strip is the only way to see if you've improved the HP. Timing advance is just as easy to adjust. There are a couple of tables and you just put in what you want. Try 32 degrees. 30 degrees and 34 degrees max advance and see what works right for you. And if you are concerned about hitting it with two much advance you can always put 11:1 in your A/F table to protect against detonation until you find out what timing is best for you. Then you can start backing of the A/F.

3.1 A/F Ratio Tuning for Maximum Performance tk Target AFR for optimum performance tk How to set them

3.2 Timing Advance for Maximum Performance tk Target advance for max performance tk How to use tables to set them

4 Special Topics 4.1 Boost Although turbocharged and supercharged engines increase the need for modified calibrations, there really isn’t anything magic about what they need or how to get it. The EEC is more than capable of delivering the right amount of fuel (assuming your fuel system is up to it) without any crutches like an FMU. And the EEC is more than capable of delivering the spark at the right time without any crutches like an ignition retard.

4.1.1 Boost Hardware tk – Fuel system capacity and ignition voltage requirements

4.1.2 Boost Tune-up requirements tk – Spartk advance needs for boost tk – AFR needs for boost

4.1.3 Boost Load Tricks tk – scaling load

4.1.4 Boost AFR tk – creating headroom in the AFR tables and populating them

4.1.5 Boost Advance tk – creating headroom in the ignition tables and populating them 5 Conclusions It is just sooo easy, once you become an EFI junkie you will never want to go back to carbs again.