Introduction to Injector Scaling - javiermuniz/tuning GitHub Wiki

Getting Started

Whenever you modify anything to do with the fuel system, whether it is upgrading your fuel injectors, upgrading your fuel pump, or installing an aftermarket fuel pressure regulator, you may need to scale your injectors. Before you get started, you should understand and have configured EvoScan for logging, have a way to measure your fuel pressure, and have a Wideband O2 sensor installed on your car. Without these tools, it is impossible to scale your injectors properly. If you do not have these tools, stop and get them before continuing or you will most likely destroy your vehicle.

WARNING: This tutorial assumes that you have a properly scaled MAF. If you do not, then following this guide will result in an improperly tuned car. For this reason, it's best to make fueling changes and intake changes at different times, and tune properly for each change after it is done. It is possible to tune for MAF and injector scaling at the same time, but it greatly increases the complexity and difficulty of the task.

Core Concepts

When scaling injectors there are several core concepts that you should understand in order to fully grasp all of the variables involved. Understanding these concepts will help you to reason through the results you are getting as you change values in your ECU:

  • Injector Flow Rate Flow rate is the rate at which fuel flows when the injector is fully open. When you buy 1000cc injectors, you are buying injectors with approximately a 1000cc/min flow rate. This flow rate changes based on the size of the injector as well as fuel pressure.
  • Injector Latency Latency is the time it takes for the injector to open. This time changes based on voltage and fuel pressure.
  • Injector Pulse Width Pulse width is the period of time that the ECU is sending voltage to the injector, causing it to open. Injector pulse width should be equal to the amount of fuel flow desired multiplied by the flow rate, plus injector latency. You may sometimes see this written as simply "IPW"
  • Fuel Trims The fuel trim is the amount of fuel that your car is adding or subtracting to the fuel mixture in order to achieve the desired air fuel ratio. It does this by increasing or decreasing the injector pulse width. Our cars have 4 Fuel Trim values: Short Term, Long Term (idle), Long Term (cruise), Long Term (high). Fuel trim calculated during "closed loop" driving, when the car is using your O2 sensor to lock-in a AFR of exactly 14.7. However, it is applied during open loop driving, when the car is using your fuel tables, load, scaling, etc. to calculate the proper fueling based on your tune. For this reason, it's extremely important to have your fuel trims accurate, or your AFRs will be off by a significant margin when driving in open loop which will damage your motor. A properly tuned and running vehicle will show all of the long term values close as close zero as possible and certainly not more than +-5.

ECU Values

When scaling injectors there are several values that you will definitely want to adjust:

  • Injector Scaling The injector scaling value is the value that the ECU uses to dynamically adjust injector pulse width based on the airflow entering the motor. Essentially this value is how the ECU determines what amount of fuel is needed at WOT vs. at idle. A lower value means more pulse width will be added at WOT vs idle, a higher value will mean that less pulse width is added at WOT vs idle. In short: a smaller value here means MORE fuel, which is why we increase this value when upgrading injectors.
  • Injector Battery Voltage Latency Compensation This value is a constant value of pulse width that will be added based on the voltage coming from the battery. Since this value is varied based on battery voltage a NOT airflow, it will add pulse width (fuel) regardless of whether or not you are a WOT or idle. Higher values here mean more fuel, unlike the injector scaling value.
  • Cranking Enrichment IPW Adder This value is used during cranking (starts) to add pulse width based on coolant temperature. The colder the motor, the richer the mixture needs to be in order to start your vehicle. If you have issues with warm starts, or starts in cold climate, this table is a good place to look.

Step 1: Injector Scaling

The rule-of-thumb formula for calculating the new scaling value is to take the stock injector scaling (532 in my ROM) and divide it by the stock injector flow rate at stock base fuel pressure (I believe this is 600cc/min) then multiply the resulting value by the flow rate of your new injectors at the current base fuel pressure. This is why it is so important to measure your fuel pressure when tuning injector scaling. Fuel pressure affects everything. In my car, I have 1000cc Injector Dynamics injectors with a flow rate of 1015cc at my fuel pressure of 43.5. This means that my rule-of-thumb injector scaling value would be:

(532/600)*1015 = ~884

Since the ECU will not accept that value directly, I use the closest acceptable value of 886. It is important to note that this is just a starting value, and we will need to fine-tune it through logging fuel trims later. Do not simply place this value in your ECU and assume that it is correct.

Step 2: Injector Battery Voltage Latency Compensation

Fuel injector latency can not be calculated based on injector size. This value is determined by other design parameters of the injector and can vary from brand to brand. The absolute best way to properly tune your latency compensation table is to get the proper values from the injector manufacture themselves. Injector Dynamics is particularly good at providing this information, and you can find the proper scaling values for any of their injectors right on their website.

If you have this information, make sure that you record your fuel pressure as the injector latency changes significantly with fuel pressure as well (typically, injectors take longer to open at higher fuel pressures). Once you have these values, you can enter them into your ECU. You can adjust both columns of the table (both battery voltage, and ms) to match the values you got from your manufacturer. The ECU will only accept values that increment by 0.015 here, but that should be close enough. For example, for my Injector Dynamics 1000cc injectors @ 43.5 PSI of fuel pressure, my table looks like this:

Injector Latency Compensation Table Example

You will notice that the highest (18v) and lowest (6v) values are not from the Injector Dynamics website. You can safely estimate these values based on the curve of the others. If your car is operating at 18v or 6v being slightly off on your fuel trims will most likely be the least of your concerns. Unless of course you have also modified your electrical to operate at higher voltage. If you've done that, you're probably building a dedicated race car and I have no idea why you're reading this tutorial.

Step 3: Cranking Enrichment IPW Adder

The injector pulsewidth adder will need to be adjusted based on the flow rate of your current injectors at current fuel pressure vs. the flow rate of the stock injectors at stock fuel pressure. You can do this by calculating a multiplier and applying it to all of the values on the right hand side of the table (do not adjust the coolant temperature side). The general rule of thumb for the multiplier is simply the stock flow rate / current flow rate. Using the example of my ID1000 injectors with a flowrate of 1015cc @ 43.5PSI I get:

(600 / 1015) = ~.6

I can now take the stock table and multiple each value by .6 to arrive at:

IPW Adder Table Example

Again, these calculations are just a rule of thumb, and you may need to fine tune them. I highly suggest that you carry around a laptop for a while in your car so that you can log and if necessary reflash. It sucks to be stuck with a car that won't start while hot or cold because these values are not correct.

Step 4: Flash and Reset Fuel Trims

Using EcuFlash, flash your changes into your car, and reset your DTCs. Then using EvoScan use the "EvoX FuelTrims Reset" Actuator to reset your fuel trims. It's important you do this before you start the next step.

Step 5: Logging Fuel Trims

Now that you have your starting values in place, it's time to check your fuel trims and see how far off you are. If you followed the instructions above you should be pretty close, but probably not quite perfect. In order to dial in your changes, you will need to log your LTFT Idle and Cruise values over a significant amount of time. The values that are most important to log are your STFT, LTFT Idle, LTFT Cruise, LTFT High, and Injector Pulse Width (IPW). I also like to log speed, rpm, battery voltage, and coolant temperature for sanity checking the values in the other columns, but they are not strictly necessary.

Start by logging your idle trims. In order to do this you will want to let your car idle for at least 20 minutes to let the fuel trims settle in. Once they have, stop your logging and save the log file. At this point your LTFT Idle should already be within +-5. If these values are off by more, stop, and go through steps 1-4 again and check all of your values. Do not drive your car if the idle trims are way off since it means you probably made a mistake somewhere in your math or have a typo in one of your table values. Assuming your idle trims are OK, let's move on to cruise trims.

For Cruise Trims, you will need to find a place that you can drive for a fairly long period of time at the same speed. It is very important at this point that you do not go into boost and try to stay out of open loop. You can see the open loop cross-over points in your Open Loop Load High Octane tables. Open loop kicks in on the stock ROM above 5250 RPM regardless of load so be sure to stay below 5000 RPM while logging.

After you have driven for about 30 minutes, stop logging and look at your LTFT Cruise values. If they are within +-5 then congratulations your fuel trims are good! In the more likely scenario that they are not, we will need to fine-tune our injector scaling.

Step 6: Fine Tuning

Take your logs, load them into Excel then remove any empty columns (to make things easier). The first step here is to determine the difference between your injector pulse width at idle vs. your pulse width at cruise. To do this you'll need your logs from your cruising run as well as your idle run. Take each log file and select the IPW column and average them. Then calculate your IPW Multiplier using:

IPW_Multiplier = IPW_Cruise / IPW_Idle

Armed with your IPW Multiplier, and LTFT Idle and Cruise values, you are ready to fine tune your injector scaling using the steps below:

First, adjust your injector battery latency compensation by multiplying each value by:

Latency_Multiplier = (((LTFT_Idle - LTFT_Cruise)/200) * IPW_Multiplier) + 1

Next, calculate your new LTFT Idle and Cruise based on your new Injector Latency values and your IPW Multiplier:

LTFT_Idle_2 = LTFT_Idle - ((Latency_Multiplier - 1) * 100) LTFT_Cruise_2 = LTFT_Cruise - (((Latency_Multiplier - 1) * 100) / IPW_Multiplier)

Finally, calculate your new Injector Scaling value using the following formula:

New Value = Current Value * ((((LTFT_Idle_2 + LTFT_Cruise_2) / 200) + 1)

If you do all of this properly, your fuel trims should both be extremely close to 0. Repeat step 5 to be sure. In some cases you may need to tweak your settings based on the ECU's ability to accept exact values.