LSX Tuning Guide
LSX Tuning Guide
* *
*The Basics *
IDEAL
(Rich) (Lean)
Base (ltrims) - 0 +
(Lean) (Rich)
Knock Retard : 0
LTFT�s : -5 to +5
MAF Flow :
*Injector Duty Cycle Chart - *The general rule is to not exceed 80% duty
cycle.
Duty Cycle
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
RPMs
3000
4 ms
8 ms
12 ms
16 ms
20 ms
24 ms
28 ms
32 ms
36 ms
40 ms
3500
3 ms
7 ms
10 ms
14 ms
17 ms
21 ms
24 ms
27 ms
31 ms
34 ms
4000
3 ms
6 ms
9 ms
12 ms
15 ms
18 ms
21 ms
24 ms
27 ms
30 ms
4500
3 ms
5 ms
8 ms
11 ms
13 ms
16 ms
19 ms
21 ms
24 ms
27 ms
5000
2 ms
5 ms
7 ms
10 ms
12 ms
14 ms
17 ms
19 ms
22 ms
24 ms
5500
2 ms
4 ms
7 ms
9 ms
11 ms
13 ms
15 ms
17 ms
20 ms
22 ms
6000
2 ms
4 ms
6 ms
8 ms
10 ms
12 ms
14 ms
16 ms
18 ms
20 ms
6500
2 ms
4 ms
6 ms
7 ms
9 ms
11 ms
13 ms
15 ms
17 ms
18 ms
7000
2 ms
3 ms
5 ms
7 ms
9 ms
10 ms
12 ms
14 ms
15 ms
17 ms
7500
2 ms
3 ms
5 ms
6 ms
8 ms
10 ms
11 ms
13 ms
14 ms
16 ms
8000
2 ms
3 ms
5 ms
6 ms
8 ms
9 ms
11 ms
12 ms
14 ms
15 ms
* *
1 : Non load
2 : Non load
3 : Non load
4 : Non load
5 : Non load
15 : WOT
16 : Idle PARK, A4
17 : Idle NEUTRAL, A4
22 : WOT
* *
* *
*AFR Info*
* *
Here is a chart that I have that should give you some insight into what
standards are for lean cruise etc...
* *
/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 berich 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 knock retard at
WOT this is often the solution.
/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.
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.
itskinda like this. from the factory the ve table is the backup
controller, the maf is the primary 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 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?
Its 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 the VE
cells in that range.
Once the VE table is correct, tune out any detected burst knock by
increasing the Edit>Engine>Spark Retard>Burst KR Enable Delta Cyl Air
Threshold vs. RPM table. The ultimate measure is whatever it takes to
eliminate the error between commanded and measured AFR.
Once the MAFless (SD) VE table is correct and the mass air flow sensor
is reconnected, the LTFT�s will go positive. Nowscale the VCM
Editor>Edit>Engine>Airflow>MAF Calibration>MAF Airflow vs. Output
Frequency table positive to get the LTFT�s back to where they were when
it was MAFless (SD). The point is to get an accurate VE table and then
adjust the MAF calibration table to agree with the VE table at the
observed LTFT values.
The stock mass air flow calibration is correct +-4% as long as nothing
in the intake tract has been modified. If the MAF meter, air lid, air
intake, or air filter has been modified than the MAF Airflow vs.
Frequency table will need modification. Do this after the VE table has
been corrected.
1.) Make sure you log Dynamic Airflow vs MAF Frequency (Hz) In HP Tuners
it is measured in lb/min so we will have to convert this later for the
MAF table (g/sec).
2.) Go do enough driving to log a variety of MAF frequencies. You
probably won't get a whole lot of data above 10,000 Hz or below 2000 Hz,
but get as much as you can. Cruising on the highway is a good place for
this as you can cover all rpms and a wide range of mph.
3.) Save the log run and export the data into an Excel readable format
and sort the data by MAF frequency (smallest to largest).
4.) Section off MAF frequency ranges that register with the frequency
points on the MAF table (i.e. For MAF table freq = 3000, you want to use
the data you logged in the range of 2940 to 3065) Take the average of
all the Dynamic Airflow data in this range. The reason you want to use
this range is so that the average is calculated using a sort of "swing
error" that straddles the calibration point itself.
5.) Once you have calculated averages for each range (this will be very
tedious and take quite a bit of time, but using excel functions makes it
much easier) you will have new MAF Airflow data to rebuild the table
with. 1 lb/min is equal to 7.58 g/sec so do that calculation and you
will derive a new MAF table.
6.) For all the calibration points that you were missing data for (above
10K Hz, below 2K Hz) you can either shoot in the dark and scale up
accordingly, or if you choose to log raw MAF air readings in tandem with
Dynamic Airflow and frequency, you can calculate the variance b/w your
dynamic airflow and MAF airflow and scale up by the trends you see on
either extreme. (i.e. If as you get closer to 10K and you notice the dyn
airflow is 10% 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!
The equation
VE = ((mass flow * IAT / (MAP * RPM * Displacement))
Mass flow: grams/sec
IAT: Degrees Kelvin
MAP: Bar
RPM: RPM
Displacement: Cubic Meters
To solve for the mass flow in g/sec simply re-arrange the equation.
Mass flow = (VE * MAP * RPM * Displacement) / IAT
A very important calculation the VCM must make to ensure correct fuel
mixtures under all driving conditions is the dynamic air mass
calculation. This is the main calculation the VCM uses to determine how
much air it should use for the Base Fuel Calculation (Inj PW). The air
mass calculation is not simple and uses various combo's of MAF and SD
inputs depending on engine operating conditions such as current engine
RPM. It may also make decisions based on whether the engine is in a
steady load state (steady MAP) or unsteady load state (Unsteady MAP).
Note, that these thresholds change with RPM and MAP. E.g. at higher RPM
or high MAP readings you have more leeway before the VCM decides that
you have an Unsteady MAP condition. This unsteady MAP definition is
basically there to decide if a throttle transient has occurred (or
other) i.e. the MAF input is known not to be accurate under these
operating conditions.
Under normal conditions (i.e. all sensors working properly) in the code
I�m looking at it is like this:
(caveat: many of these thresholds may vary between code revs and vehicle
type)
RPM > 4000
----------
trust MAF completely and ignore SD calcs (apart from MAF sanity
checking purposes)
Final Air mass = fn(MAF Airflow, previous MAF Airflow, prev 3 MAP
readings, prev 3 TPS readings,
Transient Corrected Air mass)
There are also a number of checks at the end to make sure things do
not exceed certain limits.
To summarize:
1. High RPM behavior is totally based on MAF
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)
At no stage does the MAF get ignored completely in these calcs (the
dominating terms of the main filter calc are always MAF based).
* *
* *
*/STFT Info/*
The PCM uses the Short Term Fuel Trim (STFT) for real time fueling
corrections. They have a 10% window that will only affect the Long Term
Fuel Trim (LTFT) if the fueling correction is beyond the 10% window for
10 seconds. If this condition exists, the LTFT is changed and acted upon
during the next PCM timed cycle, which is every 10 minutes.
*/LTFT Info/*
The purpose of LTFT�s is to compensate for engine and sensor age and
variation over time.
Positive long term fuel trims (LTFT's) indicate the PCM is commanding
more fuel in order to compensate for what is being perceived as a lean
condition. By doing so it maintains a stoichiometric air-fuel ratio of
14.7:1 during closed loop operation. That is, less than wide open throttle.
Negative LTFT's indicate the PCM is commanding less fuel due to what is
perceived as a rich condition although the air-fuel ratio remains the
same at 14.7:1 and in reality it's neither truly lean nor rich.
However, positive LTFT's can result in a rich air-fuel ratio during WOT
operation because the PCM will add fuel in addition to the PE table. If
they were negative no fuel is subtracted during WOT as that could result
in a lean condition resulting in detonation.
If the LTFT's are positive, often resulting in a rich AFR during WOT,
horsepower may be gained by getting the LTFT's as close to zero or
slightly negative during closed loop. In this way no additional fuel is
added during WOT. If the LTFT's are negative no additional horsepower
can be gained because the AFR at WOT is then determined solely by the
power enrichment table without any additional fuel being added except
during CAT over temp conditions.
*Idle Info*
*General Operation*
The PCM calculates the IAC position based on a number of Airflow
calculations and estimations, the final idle airflow value consists of
the following two main components:
- Base Idle Airflow (Base + LTIT)
- Adaptive Airflow correction (STIT)
The first thing to realize is that the PCM only runs the adaptive idle
control routines when at idle conditions (below certain TPS and MPH
limits). However, the base airflow routine is controlling the IAC
position during all driving conditions (things you are aware of already,
such as the Throttle Cracker, and if you set your Base Running Airflow
values too high you get cruise control etc.). The combination of all
these components is what I call the Base Idle Airflow in grams/sec.
The ETC logic is quite simple in that it has two main inputs
the Accelerator Pedal Position (APP%) and the "Desired throttle area
percent" (IAC%). In the ETC code there is a maximum value that the IAC%
is clipped at as a safety check (mostly on the throttle cracker), but
the Throttle Cracker, Follower, Adaptive and various compensation
routines are all the same tables (i.e. the ETC code has nothing extra).
Now, the ETC looks at the APP% and checks if it is 0. If it is
not 0 then the commanded ETC position is a direct function of the
APP%+IAC% (accounting for throttle cracker). If it is zero then the ETC
position is controlled via the IAC% (as you would expect).
Once this ETCDesiredThrottleArea% has been passed thru the
numerous limiter functions (ETC RPMlimiters, MPH limiter,
TorqueMangement etc.) the final ETC Rotation% is calculated via a simple
transfer function of ETC Rotation% vs DesiredThrottleArea%.
There are maximum slew rates, minimum position checks and a
few other parameters here, but in terms of idle nothing else comes into it.
Unless you have modified your ETC in anyway, there would be no
reason to change the ETC% vs EffectiveArea scaler or anything else there
as far as i can see.
*What else?*
In addition to the Idle Airflow routines the PCM also has an RPM based
idle spark correction "closed loop" operation that it uses to control
the idle RPM. Since the spark advance can move much faster than the IAC,
it can provide very fine control of idle speed. When logging you will
see this as a jagged spark advance chart, most noticeable with cams at
lower idle RPM�s where the spark advance generally oscillates between
its min/max allowed values as the engine lopes at idle.
*Idle Tuning*
To set idle speed go to VCM Editor>Edit>Engine>Idle>Idle RPM>Target Idle
RPM vs. ECT table and change cell values to desired idle RPM. If idle
RPM is modified up or down, the VCM Editor>Edit>Engine>Idle>Base Running
Airflow>Idle Airflow vs. ECT table must be adjusted up or down also.
1. Set idle speed to desired RPM. 900-950 is good for cars with
aftermarket cams.
2. Go to all your spark tables and set the park and drive idle values
to about 22 degrees.
3. Now switch to a scanner that lets you see IAC counts and TPS
voltage. This is where we will spend some time.
4. We want IAC counts to be 40-60 for cars with aftermarket cams. The
stock cam runs about 60-80 counts. A car with an aftermarket cam
will want less IAC counts.
5. To reduce IAC counts turn off the car. Turn the idle set screw
clockwise to open the throttle blade a LITTLE. Unplug the TPS, turn
the key to the on position, DO NOT start the car, for 30 seconds.
Turn the key off and plug TPS back in.
6. Start the car and begin scanning. Monitor the IAC counts and repeat
step 5 until the IAC counts come into line. It will take about 4-6
times to get the IAC counts correct.
For closed loop idle fueling the 400, 800, and 1200 rpm cells at the
lowest MAP value�s in the VCM Editor>Edit>Engine>Airflow>Main VE>Primary
VE vs. RPM vs. MAP table has control over idle fueling.
* *
* *
*Tuning the VE table in HPTuners - Overview*
The LTFT value is your indicator of how much error is in your Volumetric
Efficiency table. If Block Learn is at 0% everything is just right. If
your STFT is more than 3 % away from 0 , the LTFT value is still
"learning". A motor is considered well tuned to have LTFT values between
+- 4%. Not every motor can achieve this though.
*/Method 1 using the LTFT and STFT corrections from the scanner
histogram data:/*
The VE table corrections can be derived by the following formula:
(+-LTFT%) + (+-STFT%) = Final % Learned
If your LTFT histogram value @1600 RPM, 30 kPa Map is +7 and the
associated STFT value is -2 your total % fuel correction is +5. Use
about � the correction (2.5%) on the VE table cell @1600 RPM 30 kPa Map
to avoid overshoot.
Repeat this process for any LTFT histogram value until you see a +- 4%
range. After you reflash your VCM with the new VE table, use the VCM
Controls function to reset the fuel trims before you start recording new
data. This will give you a �clean slate� to work with.
It will take you the better part of an afternoon to log the LTFT, make
the corrections to the VE table, then verify the results on the
histogram again.
*/Method 2 using the STFT corrections only from the scanner histogram
data:/*
This will require you to disable the LTFT process.
Use of this method requires your VE table to be no more than 10% off. If
your VE table is beyond this, start with method 1 first.
Depending on your model you can either turn the LTFT enable option to
�Off� (Edit>Engine>Fuel Control>Open &Closed Loop>Long Term Fuel Trim
Enable = OFF) or set the LTFT minimum Engine Coolant Temp (ECT) to its
maximum value. Using the scanner reset your Fuel Trims. Go for a drive
and record the STFT's.
The above step of disabling the LTFT learning process will let the VCM
run the STFT correction, but no make any LTFT corrections.
The advantage to this is you only have to use the STFT table on the
histogram to get your fuel % correction values. You no longer have to do
the (+-LTFT %) + (+-STFT %) math or keep track of the LTFT cell number
in use.
The number derived in the histogram can now be used as a 1:1 ratio in
the VE table. So, if you are showing -7 in your histogram, you could
subtract 7 from the corresponding VE cell, the net result should be a
value closer to 0 during your next logging session.
This will take you about � the time to log the STFT, make the
corrections to the VE table, then verify the results on the histogram
again.
Once you have achieved a histogram of near 0 values, you can go back
into the editor and re-enable your trims.
* *
* *
* *
This document will attempt to layout a step by step process to guide you
in the tuning of your ls1 powered vehicle
*Requirements *
In order to properly tune your car there are a few items that you need
to have available
1. HP Tuners
2. Laptop computer
*Outline *
There are many different ways one can tune a car, but below I have
outlined a methodical process which should work well.
1: Set absolute parameters
3: Tune idle
5: Tune WOT
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 injector flow/constant
itself changes. If a vacuum referenced regulator is used, (some
supercharger setups, etc.) then simply fill in a constant value across
the range.
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 suggested minimum parameters to
be logged are:
RPM, MAF flow (g/sec or lb/min), MAF Frequency, MAP, Spark Advance,
Knock Retard, Injector Pulse width (left and right banks), O2 sensors -
B1S1 and B2S1, IAC Position, L-trim (left and right), S-trim (left and
right).
Now we are ready to start the car. Start it and begin logging. First
verify everything seems mechanically sound (oil pressure, etc.). Next,
look at the MAF flow and/or frequency. As you blip the throttle this
value should increase/change. Let the car run for a while to heat up and
go through its DTC tests. Watch out for any kind of SES light. If any
are observed determine if it is a mechanical/electrical problem or if it
is simply caused by a new engine combination (camshaft, etc.). Once the
vehicle is up to operating temperature verify that the O2 sensors are
responding to changes in the throttle. If the vehicle seems to be
running decently (no pinging or potentially problematic situations)
drive it around for awhile. Monitor the STFT�s, LTFT�s, and O2 values
and ensure no great splits exist, exhaust leaks, etc. If the O2 sensors
are old or just aren't switching fast enough (anti-freeze and RTV can
both kill them easily) they should be replaced before continuing any
further.
/3: Idle /
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 load idle, 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:
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.
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.
Once this is complete repeat the logging process above and check the new
LTFT value. We want 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 lines as they are grouped in the PCM.
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.
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 for part 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.