PCM Tuning Process Flow 1.DISABLE ALL TORQUE MANAGEMENT– This will eliminate all torque management within the PCM. Ignore this step for a standard transmission (M6) and continue to step 2. A. Open the VCM Editor>Edit>Transmission>Torque Management B. Set Abuse Mode Enable = False C. Set Abuse Mode RPM, Abuse Mode TPS and Abuse Mode Speed = 0 D. Select>Abuse Mode Torque Reduction vs. RPM. Set all values = 0 2.LTFT TUNING–A. In the VCM Editor>Edit>Engine Diagnostics>Gener al>MAF Sensor Fail Frequency = 0. This will set a P0103 code and turn on the SES light. Ensure that the P0103 DTC is enabled and you are seeing P0103 in the DTC list. Don’t worry about the DTC at this time.B. In the VCM Editor>Edit>Engine>Spar k Advance>Main Spark vs. Airflow vs. RPM Open Throttle/Moving. Copy the High Octane table to the Low Octane table. The computer reverts to the low octane table when a MAF failure is indicated, this will assure optimal timing. C. Start the VCM scanner>Histogram display. File>Connect. Then Tools>VCM Controls>Fue l & Spark>Fuel Trim Learn>Reset Fuel Trims. D. Changes to the LTFT’s do not take effect immediately – the PCM requires about 50 minutes or roughly 100 miles to all ow for the PCM to relearn the fuel curve. Try not to enter PE mode while driving and l ogging for this procedure. Log about 30 minutes ofdriving at many different speeds and conditions. Try to hit as many cells in the histogram as possible. Stop logging and save the log. Do NOT turn off the engine until the log is saved or i t will be lost. Go to VCM Scanner>Histogram display>LTFT's. Open the VCM Editor>Edit>Engine>Airflow>Main VE and select Primary VE vs. RPM vs. MAP. E. The goal is to get ALL LTFT’s between -5 and +5. Positive LTFT's indicate fuel is being added because of a lean condition. Richen this cell by increasing the VE table value by the amount of the LTFT value. The operation is opposite for negative LTFT's. If LTFT = (4), VE cell value is 67, result would be (67) + (4) =71 - increasing the VE, which is adding fuel. If the LTFT was (-4), the result would be (67) + (-4) =63, decreasing VE and thus reducing fuel. To decrease LTFT values, a smaller number or number closer to zero, ADD the difference between the positive LTFT value and zero to the corresponding cell in the VCM Editor>Edit>Engine>Airflow>Main VE>Primary VE vs. RPM vs. MAP table. To increase a LTFT value, a larger number or number farther away from zero, SUBTRACT the difference between the LTFT value and zero and SUBTRACT
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
1. DISABLE ALL TORQUE MANAGEMENT – This will eliminate all torque management
within the PCM. Ignore this step for a standard transmission (M6) and continue to step
2.
A. Open the VCM Editor>Edit>Transmission>Torque ManagementB. Set Abuse Mode Enable = False
C. Set Abuse Mode RPM, Abuse Mode TPS and Abuse Mode Speed = 0
D. Select>Abuse Mode Torque Reduction vs. RPM. Set all values = 0
2. LTFT TUNING –
A. In the VCM Editor>Edit>Engine Diagnostics>General>MAF Sensor Fail Frequency =
0. This will set a P0103 code and turn on the SES light. Ensure that the P0103 DTC is
enabled and you are seeing P0103 in the DTC list. Don’t worry about the DTC at this
time.
B. In the VCM Editor>Edit>Engine>Spark Advance>Main Spark vs. Airflow vs. RPM
Open Throttle/Moving. Copy the High Octane table to the Low Octane table. The
computer reverts to the low octane table when a MAF failure is indicated, this will assure
optimal timing.
C. Start the VCM scanner>Histogram display. File>Connect. Then Tools>VCM
Controls>Fuel & Spark>Fuel Trim Learn>Reset Fuel Trims.
D. Changes to the LTFT’s do not take effect immediately – the PCM requires about 50
minutes or roughly 100 miles to allow for the PCM to relearn the fuel curve. Try not toenter PE mode while driving and logging for this procedure. Log about 30 minutes of
driving at many different speeds and conditions. Try to hit as many cells in the
histogram as possible. Stop logging and save the log. Do NOT turn off the engine until
the log is saved or it will be lost. Go to VCM Scanner>Histogram display>LTFT's. Open
the VCM Editor>Edit>Engine>Airflow>Main VE and select Primary VE vs. RPM vs. MAP.
E. The goal is to get ALL LTFT’s between -5 and +5. Positive LTFT's indicate fuel is being
added because of a lean condition. Richen this cell by increasing the VE table value by
the amount of the LTFT value. The operation is opposite for negative LTFT's.
If LTFT = (4), VE cell value is 67, result would be (67) + (4) =71 - increasing the VE,
which is adding fuel. If the LTFT was (-4), the result would be (67) + (-4) =63,
decreasing VE and thus reducing fuel. To decrease LTFT values, a smaller number or
number closer to zero, ADD the difference between the positive LTFT value and zero to
the corresponding cell in the VCM Editor>Edit>Engine>Airflow>Main VE>Primary VE vs.
RPM vs. MAP table. To increase a LTFT value, a larger number or number farther away
from zero, SUBTRACT the difference between the LTFT value and zero and SUBTRACT
from the corresponding cell in the VCM Editor>Edit>Engine>Airflow>Main VE>Primary
VE vs. RPM vs. MAP table. For example, In the VCM Scanner>Histogram display, the (.8,
40) cell, 800 RPM's and 40 kPa, is 4. To bring the VCM Scanner>Histogram
display>LTFT cell (.8, 4.0) DOWN to 0 from 4 ADD 4 to the (.8, 4.0) cell in the VCM
Editor>Edit>Engine>Airflow>Main VE>Primary VE vs. RPM vs. MAP table. If the VCM
Scanner>Histogram display>LTFT cell (2.0, 30) is -10, SUBTRACT 10 from the (2000,
30) cell in the VCM Editor>Edit>Engine>Airflow>Main VE>Primary VE vs. RPM vs. MAP
table to bring it UP to 0. This will not work out exactly but will be VERY CLOSE.
F. Repeat steps D-F until ALL values in the VCM Scanner>Histogram display>LTFT are
between -5 and +5. Try to complete this on the same day for best results as LTFT
values can vary +-4% per day.
G. Once all values are between -5 and +5, look at the VCM
Editor>Edit>Engine>Airflow>Main VE>Primary VE vs. RPM vs. MAP>3D Surface graph.
If the 3D Surface graph looks choppy, click on polynomial smoothing ONCE. This willsmooth out the table values and provide a crisper throttle response. The table can also
be hand smoothed using the 3D graph. Look for spikes in the table and
increase/decrease the cells around the spike, creating a smooth table. Now rescan, and
go back to step E.
3. WOT PE TUNING – Do this only AFTER all LTFT's are -5 to +5. This method uses the
stock narrow band oxygen sensors which are not accurate for this type of tuning.
A. Open the VCM scanner, do not worry about resetting the fuel trims they should be
learned at this point. If not, it takes roughly 100 miles or 50 minutes of driving to set
the LTFT's.
B. Open the VCM Scanner>Histogram display and do a nice 0-70 or preferable 0-
100mph run. Look at knock retard FIRST. If knock retard is present, skip to section 4. If
knock retard is not present, continue to the step C.
C. Open the VCM Scanner>Histogram display>Air/Fuel tab and look at the 100(kPa)
row. Most cars seem to like narrow band oxygen sensor reading between 890mv -
900mv.
D. For example, at 100(kPa), 3200(RPM) the narrow band oxygen sensors are at
950mv. We want to bring that down to 890mv. Go to the VCM Editor
Engine>Fuel>Power Enrich, PE Enrichment>V8 Molt. vs. RPM. Make sure Plus and
Selected are bubbled in. In this case the narrow band oxygen sensor is reading rich, so
bring it down by SUBTRACTING .01. NOTICE THE DECIMAL!!!! VERY IMPORTANT!!! If
lean, BELOW 890mv then ADD .01 at a time. This is a small increment but we do not
E. After making the changes, go back to step B and repeat until the oxygen sensors are
in the 890mv to 900mv range.
4. ELIMINATING KNOCK RETARD -
A. In the VCM Scanner>Histogram display>Retard, look for ANY knock retard. For
example, cell (4.0, .20) shows 4 degrees of knock retard. This should be 0, so
SUBTRACT 4 from the VCM Editor>Edit>Engine>Spark Advance>Main Spark vs. Airflow
vs. RPM Open Throttle/Moving>High Octane (4000, .20) cell. Values cannot be less than
zero in this table.
B. In the VCM Editor>Edit>Engine>Spark Advance>Main Spark vs. Airflow vs. RPM
Open Throttle/Moving>High Octane, go to the (4000, .20) cell AND/OR whatever other
cells that have knock retard and SUBTRACT the amount of knock retard that is present
in the Histogram display from the value that is in the corresponding cell in the VCM
Editor>Edit>Engine>Spark Advance>Main Spark vs. Airflow vs. RPM OpenThrottle/Moving>High Octane table. Subtract by simply clicking on the Plus selection and
in the box type -4 or whatever number you have to subtract by and click commit.
C. Scan again and verify NO knock retard is present. If still present, repeat from step A.
5. A4 TRANSMISSION SETTINGS -
A. Ensure all Torque Management is disabled. If not, see Section 1.
B. Open the VCM Editor>Edit>Transmission>A4 Shift Speed. Set WOT Shift Enable
%TPS = 90.
C. Set WOT Shift Disable %TPS = WOT Shift Enable %TPS-10 or 80 if you used the
parameter in step B.
D. Look at VCM Editor>Edit>Transmission>WOT Shift RPM vs. Shift. Set these table
parameters to the desired WOT shift RPM for each gear. Keep in mind there is a slight
delay at the shift point that will cause the engine to exceed these RPM settings. Ensure
the VCM Editor>Edit>Engine>Fuel Control>Fuel Cutoff, DFCO>RPM Limits>P/N Cutoff
RPM is roughly 500 RPM higher than these settings. We don’t want to hit the rev limiter
during the WOT shift. Set Normal, Performance, and Hot tables to the same parameters.
E. VCM Editor>Edit>Transmission>WOT Shift Speed vs. Shift--PLEASE PROVIDE ME
WITH A GOOD LINK FOR THIS. I KNOW THERE ARE TABLES/CALCULATORS PER GEAR
OUT THERE.
F. VCM Editor>Edit>Transmission>Shift Speed vs. %TPS vs. Shift = Leave stock
parameters.
G. Go to VCM Editor>Edit>Transmission>A4 Shift Properties>Desired Shift Time vs.
Torque>Normal. I basically guessed here, and could use some input. For the first half of
Here is a chart that I have that should give you some insight into what standards are forlean cruise etc...
9.0:1 BLACK SMOKE (NO POWER)
11.5:1 RICH BEST TORQUE @ WOT
12.2:1 SAFE BEST POWER @ WOT
13.3:1 LEAN BEST TORQUE @ WOT
14.6:1 STOCHIMETRIC AFR ( CHEMICALLY CORRECT )
15.5:1 LEAN CRUISE
16.5:1 BEST FUEL ECONOMY
18.0:1 CARBURETED LEAN LIMIT
22.0:1 EFI LEAN LIMIT
PE Tuning Info
Naturally Aspirated
Air/fuel ratio for peak power is 12.8. If tuning on a Dynojet, try for 12.2 – 12.5 air/fuel
ratio. If tuning on a Mustang dyno or on the street try for 12.8 – 12.9. Some tuners say
that LS motors run the best at 13.1. The AFR curve should be rich up to max torque then
lean out slightly up to maximum RPM and then go a little rich a few hundred RPM’s beyond
maximum for safety.
PE Delay
If the RPM is below the delay RPM defined it will blend in PE at the PE enrichment rate.
That’s why many people set the enrichment rate to 1. With a lower RPM delay PE will apply
immediately above the RPM specified and full PE will activate at the RPM specified.Normal practice for automatic transmissions is to set that RPM limit to the stall speed of the
converter. For manual transmissions set it a little less than the take-off RPM. An
enrichment rate of 1 effectively negates the delay RPM. For cars that experience tip-in
Higher VE values add fuel (telling the PCM you have more useable oxygen in the cylinder)
Lower VE values subtract fuel (telling the PCM you have less useable oxygen in the cylinder)
If using a MAF sensor, only tune the idle and part throttle areas of the VE table, 4000rpm
and below. If not using a MAF (Speed Density), tune the entire operating area of the table.
A rough VE table will be more susceptible to burst knock retard.
1. I personally smooth each time, but I don't think it's necessary. I don't stick with the raw
polynomial results, however. I have a spreadsheet which compares the poly value to the
range the value should be within to stay within my AFR range. I don't let the value fall
outside of these bounds.
3. The adjoining cells should be smooth, not spikey. If it's a dip, it should look like a U, not
a V. You should tweak the spike and the values around it to smooth it out.
4. I'm guessing that the max VE cell value you'll see for a stock vehicle would be ~100-110.
I think I've seen VE tables from FI cars which are in the 150+ range.
It’s kind of like this. From the factory the VE table is the backup controller, the MAF is theprimary measuring device for airflow, the MAF reading is double checked against the VE
table to make sure nobodies gone crazy. Now in a perfect world you VE table would be
perfectly tuned to match your engine then you plug the MAF in and perfectly tune it to
match your VE table.
Now for the imperfect world most of us live in.
Log your rpm, mass air flow g/sec (use imperial pounds if you must), mass air flow
frequency, TP, dynamic cylinder air and fuel trims, save the logs
Now what you will have to do is open the log in excel and figure out what frequency areas
of the MAF need massaging to bring your fuel trims in line, keep in mind that changing the
VE alone will not make much if any change to the fuel trim but changing the MAF flow VS
frequency even 1% makes big changes. Also keep in mind that if you change MAF without
changing VE you can start setting codes and getting flat spots and bogs in throttle response.
Confused yet?
It’s not that hard, histogram shows which VE cell, if you look at raw data in excel, you will
easily find the MAF frequency that was in play when that particular cell was in use. My rule
of thumb is if I add 1% to a MAF frequency range I will add double (2% in this example) in
higher than the stock MAF airflow, then you can go ahead and "assume" that above 10K Hz
it will most likely behave the same, otherwise you could try to log 155+ mph runs)
I know this seems like a very painstaking way to do this but it worked very well for me and
using a lot of excel functions I was able to reduce the time on this project significantly. I
have verified that my MAF reports almost exactly what dynamic airflow the motor sees and
therefore does not cause any confusion for the trims (this other bit of business in this
thread is not MAF related). Some people have tried using scatter plot functions to derive
equations that will supersede any manual calculation, but having to "best fit" the curve for
the logged data leaves an element for bias and human error. Manual calculation appears to
be the most error free method that I can think of. Hopefully someone can come up with an
easier way!
LS1 VCM Main Airmass Calculation
The VE table looks as though it is in meters cubed; it is just not used like a conventional VEtable. The VE values are such that the PCM can directly back calculate to g/cyl, the primary
means to determine fueling and timing.
This is what makes it so confusing. You can't solve for air mass, you have to solve for g/cyl.
2. Mid RPM behavior has an allowance on Steady MAP behavior before it switches to
Unsteady MAP
3. Low RPM behavior (where the bulk of the fuel cells are) is dictated by unsteady MAP
behavior that is still mostly dominated by the MAF input with small tweaking from SD)
If the VCM decides that a throttle transient has occurred (unsteady MAP), the airflow
incorporates a "correction" from the SD calculations. This value is the SD calculated air
mass multiplied by the previous ratio of measured MAF air mass to calculated SD air mass
(this normalizes it, since you are worried about the transient deviation from MAF air mass
only). The way I understand it is this, imagine you are cruising (MAP is steady), you have a
decent vacuum in the manifold and you change the throttle position quickly. Air rushes into
the manifold to service the change in air demands from the engine itself but also to try and
fill the vacuum. The result is that the MAF reads higher than it should at that point in time(spikes). This is more pronounced at low RPM where the engine airflow is smaller and the
relative proportion of extra airflow due to filling vacuum is higher, also the MAF is known to
be more inaccurate at lower RPM and more non uniform airflow. IMHO, the SD correction is
to account for filling and emptying of the manifold during throttle transients and also to
smooth the MAF's spikiness at lower RPM’ s.
The bottom line is that if the engine is at a steady load state or operating at high RPM then
the airflow is 100% based on the MAF once you get thru all the filters and calculations. And
the SD calcs only get used for transients and smoothing lower speed operation.
At no stage does the MAF get ignored completely in these calcs (the dominating terms of
the main filter calc are always MAF based).
An interesting point to note is that removing the MAF basically bypasses the whole system
and directly sets the Final Air mass value to be the result of the SD lookup (it also disables
things like knock learn and a few other nice things). Most have taken to calling this "Backup
SD Mode" which is as good a name as any I guess and I meant to allow the engine to run
with a failed MAF (although it is quite possible to tune using this mode (e.g. HSV GTS
300kw comes factory this way). There is another way to disable the MAF system completely
(i.e. without setting the DTC's) and by tuning of the thresholds and other flags you can get
a fully functional SD tune happening, the so called "True Speed Density Mode".
horsepower. Or to put it another way: not as much H.P. as you can obtain should that extra
fuel not have been added.
For this reason you want the LTFT's as close to zero or slightly negative during closed loop
so no extra fuel is added during WOT. You do this by using scanning software and a
program such as LS1 Edit, etc. to get the LTFT's correct. Once they are you can then tune
WOT using a wideband O2 meter and typically adjust the PE vs. RPM table for the AFR you
want. Note: some applications such as nitrous or forced induction cars usually require a
richer AFR than a normally aspirated car.
What is closed loop you ask? Closed loop operation means the front O2 sensors (forward of
the catalytic converters) are used to help determine the AFR and offer feedback to the PCM
as to the current AFR. The PCM then adjusts the injector pulse rate to maintain a 14.7:1
AFR. So it's just that, a closed feedback loop.
What does open loop operation mean? Well, instead of using a closed feedback loop (the O2
sensors are not used for input) the PCM uses a lookup table that, to put it simply, is just atable that says "at this RPM use X amount of fuel." This is called the PE vs. RPM table or
"Power Enrichment vs. RPM" table.
Deleting Rear Oxygen Sensor’s
Driver Side Codes:
137 - HO2S Circuit Low Voltage Bank 1 Sensor 2
138 - HO2S Circuit High Voltage Bank 1 Sensor 2
140 - HO2S Circuit Insufficient Activity Bank 1 Sensor 2
141 - HO2S Heater Performance Bank 1 Sensor 2
Passenger Side Codes:
157 - HO2S Circuit Low Voltage Bank 2 Sensor 2
158 - HO2S Circuit High Voltage Bank 2 Sensor 2
160 - HO2S Circuit Insufficient Activity Bank 2 Sensor 2
161 - HO2S Heater Performance Bank 2 Sensor 2
Go to Edit>Engine Diagnostic’s>DTC’s>Error Mode = 3 for each of the codes above.
Go to Edit>Engine Diagnostic’s>DTC’s>SES Enabled = Off for each of the codes above.
Idle Info
General Operation
The PCM calculates the IAC position based on a number of Airflow calculations and
- additional airflow to open the IAC based on MPH and RPM
- zero during idle conditions
- a table
Throttle Follower Airflow
- controls rate of closing the IAC valve during throttle closure
- zero during idle conditions
- a few tables of initial value and decay rates
Long Term Idle Trim Airflow (LTIT)
- a slow moving correction based on the adaptive idle routines (think LTFT's for fuel)
- the idea of this correction is to bring the Short Term Idle Trims (STIT) to zero
- it has +VE and -VE limits
- a calculated value
AC Airflow
- airflow correction for when the AC is on, this is a torque based calculation that estimateshow much torque the AC is pulling and calculates an airflow correction to compensate.
IAC Park Airflow
- airflow used to calculate IAC position when ignition is off and engine not running
- used in place of all of the above
- a table
Adaptive Idle Control
The whole point of the idle control routines is to maintain the desired Idle RPM. The PCM
therefore needs to "close the loop" and use the Idle RPM error as a feedback to provide this
control. The monitoring of the Idle RPM results in a Short Term Idle Trim (STIT) that
provides the fast moving closed loop control of the IAC valve. Again here it is very
analogous to the STFT's and feedback from the O2 sensors. That’s why I chose these names
rather than Proportional, Integral, and Derivate.
Okay, so the PCM has a Desired Idle RPM it is trying to achieve and it is constantly
measuring the current RPM and calculating an Idle RPM error value. The PCM uses various
aggressive and not so aggressive algorithms to control the STIT, to provide fast
convergence (and also stall saver capability) but also reasonable idle stability.
During all this, the PCM is maintaining a fairly complex state machine of, Are we at
idle?, Is the engine transitioning back to idle?, etc. The PCM does remember a few different
last known state of the STIT, for example, when you turn on the AC the PCM stops updating
the "ACoff STIT" and starts updating the "ACon STIT" (again here think Fuel Trim cells). The
idea of this is that when you turn the AC off the PCM can quickly return to the original IAC
operating point. For A4 vehicles you also have the PN/Gear dimension as well.
At this point the laptop is connected to the car and the base program is downloaded and
saved (*always* start with YOUR base program). The number one thing to remember when
editing the PCM is to make only one or a few small changes at a time.
First start with the "absolute" parameters. These values can be known and set with total
objectivity. These generally include gear ratio, fan turn on temps, rev limiter, etc. Choose a
desired idle rpm and enter it initially. The main idea here is to keep the program as stock as
possible - we only want to change values that have a concrete value - leave shift points,
fuel, spark, and other subjective values alone.
The only tricky parameter to set here will be injector constant. This is because the LS1 does
not have a manifold vacuum regulated fuel pressure, so as manifold vacuum changes (and
rail pressure stays constant) the pressure drop across the injector change, so the injectorflow/constant itself changes. If a vacuum referenced regulator is used, (some supercharger
setups, etc.) then simply fill in a constant value across the range.
2: Start car, verify
Now we will start the car and verify that everything is working properly. Before we actually
key on we should have our scanning/logging software hooked up and ready to go. The
Now that we have verified everything is in proper working order we can begin tuning. Idle is
the best place to start. Previously we set the desired idle rpm - subjectively decide if this
rpm correct. If not, change the value and re-evaluate. Once the desired idle rpm is
achieved, we can begin tweaking it for stability. Take note of the IAC counts. In a no load
situation (neutral, no ac) they should be no lower than 30, and no higher than 50. A hole
may need to be drilled in the throttle body or enlarge the one that is already there to bring
down the IAC values. Do this until they are acceptable. Now put a load on the car (D if
automatic, and put the AC on). The values here should be no higher than 120 or so. If they
are enlarge the hole.
Repeat the above process until the IAC values fall inline. If the idle is still unacceptable then
try adjusting the timing. Be careful of adding to much timing - it can give a great no loadidle, but with any kind of load will become erratic. A “hunting" idle is a sure sign of too
much timing. To adjust the timing at idle the base spark tables are the easiest place. The
tables are scaled vs. rpm and g/cyl of airflow. The rpm part is evident. To calculate the g/cyl
use the following formula:
g/cyl = 15 * MAF(g/sec) / RPM
This formula takes mass flow per unit time and converts it to mass flow per cylinder. The 15
is a constant which corresponds to the characteristics of a V8 running a 4-cycle combustion
cycle. The easiest thing to do is to load the log file into excel (export it as a CSV), then
create a formula in excel which applies the formula above.
4: Part Throttle
Not that the idle is correct and we have verified that the car is in proper working order we
can begin part throttle tuning. The first step in this is to record a long log file of driving, a
minimum of 20 minutes, but the longer the better.
Once we have a log file we can begin the data reduction. The first element we will tune will
be the fuel delivery. At part throttle the computer uses the MAF meter to find the amount of
air entering the engine. It then calculates the amount of fuel required to maintain a 14.7:1
A/F ratio. It injects this fuel by controlling the injector pulse width. The O2 sensors, which
are very accurate at 14.7:1, provide feedback to the computer and let it know how close it
is to the goal. The computer uses this feedback to tweak the fueling of the motor to achieve
a proper 14.7:1 a/f ratio. This "tweaking" is exhibited to through the STFT and LTFT
parameters. These values indicate how the computer is correcting. Since injector flow and
pulse width are known with great precision, and we have no control over the internal
algorithms we will assume that any inaccuracy (which is exhibited by nonzero trim
percentages) is a result of an incorrect MAF transfer function.
In tuning part throttle we will tweak the MAF transfer function according to the LTFT values
we logged. There are 2 ways of doing this, the simplest is to view the LTFT values, average
them, and scale the entire MAF table by a percentage which will give the LTFT’s a 0 to -4.
LTFT’s are in units of percent so this is easy. If the average LTFT’ s are around +5 and we
want to shoot for -4, then we would just multiply the entire table by 109% (or an increase
of (+5 - (-4))=9 percent). Likewise if we were at -10 and wanted to shoot for negative 4 we
would decrease the entire table by 6 percent, or multiply by 94%.
Once this is complete repeat the logging process above and check the new LTFT value. Wewant to avoid positive LTFT values since they will be applied at WOT and will lead to
inconsistent fueling. Negative values are okay, though we shouldn't go too far out of whack.
The second option is a little more complicated. It uses the same premise above, but instead
of taking the average value it applies a localized LTFT correction to each point of the MAF
transfer function and derives a new curve. This method is not for everyone, but in certain
instances is very useful.
After repeating the above method until LTFT’ s fall in line, fueling should be complete. Now
we can address spark. Spark advance is a rather difficult item to tune directly, but here is a
suggested method. This method relies on a properly functioning knock sensor without any
desensitization.
Assuming the car is naturally aspirated and does not ping with the stock timing advance:
Take the entire timing table and increase it by 5 degrees. Now start driving the car while
logging. Try and emulate every possible driving condition. If pinging is detected at any point
back out. If the car pings constantly reduce timing across the board two degrees.
When done logging export the data to a CSV file and open in it excel. Here we will make a
pivot table. Create a column with g/cyl, spark retard, and rpm. Use these three items to
make a pivot table. Scale the table with g/cyl on the x axis and rpm on the y axis. Put spark
retard in the middle and set it's mode to average. You should group the axis along the same
We now have a table of the average spark retard taken out at each timing point. Now go to
the table in the PCM and subtract 75% of this value from the actual spark advance at each
point where spark retard occurred. Re-log the car. Repeat the procedure until no spark
retard is detected. The timing curve should now be tuned.
If the car is an automatic we will now start tuning shift pressure, shift points, and TCC.
5: WOT tuning
The first thing to do is make a quick WOT pass in a low gear (a low load) and check both
O2's and knock retard. O2's are NOT accurate or precise at this a/f ratio, but can still be
used for a ballpark estimate. If they aren't 850-950 we will adjust the PE vs. RPM table
accordingly. This table is where all fueling changes at WOT are made. If knock retard is
present we need to localize it to a point in the timing table, so using the method above forpart throttle tuning, we will do the same thing for WOT tuning.
If either spark or fuel is changed then go back and check the other by logging. A wideband
O2 sensor is required to accurately set the fuel map. If wideband feedback is available the
a/f ratio will generally end the richest at your torque peak and leaning out from there to
peak horsepower and then a little rich before and after the shift point for safety.
Once fuel and spark are set then begin playing with the shift points and transmission
parameters automatic cars. If it’s a manual transmission we are good to go!
Follow-Up
After a week or so you need to re-verify all your logged values and ensure they haven't
drifted. If they have, repeat the processes necessary to bring them back in line.