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
  1. 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 EditorEdit>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 scannerHistogramdisplay. FileConnect. ThenToolsVCM Controls>Fuel & Spark>Fuel Trim Learn>Reset Fuel Trims.
D.Changes to theLTFT’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 to enter 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 displayLTFT's. Open the VCM Editor>Edit>Engine>Airflow>Main VE andselect Primary VE vs. RPM vs. MAP.
E.The goal is to get ALL LTFT’sbetween -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, ADDthe 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 VCMEditor>Edit>Engine>Airflow>Main VE>Primary VE vs. RPM vs. MAP table. For example, In the VCM ScannerHistogram 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. Ifthe 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 VERYCLOSE.

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 theVCM Editor>Edit>Engine>Airflow>Main VE>Primary VE vs. RPM vs. MAP>3DSurface graph. If the 3D Surface graph looks choppy, click on polynomial smoothing ONCE. This willsmooth out the table values and provide a crisperthrottle 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.

VE Tuning Info

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.

its kinda 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 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 frequecny, 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?
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.

VE and Burst Knock

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.

SD Tuning, LTFT’s and MAF Table Scaling

Once the MAFless (SD) VE table is correct andthe mass air flow sensor is reconnected,the LTFT’s will go positive. Nowscale theVCM 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 atthe observed LTFT values.

MAF Sensor Info

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.

MAF Tuning – In Work

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 anExcel 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!

LS1 VCM Main Airmass Calculation

The VE table looks as though it is in meters cubed; it is just not used like a conventional VE table. 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.

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)
RPM < 4000
------
if RPM < 2400 and MAP < 84 kPa then
Steady MAP threshold = 0.0 kPa
else
Steady MAP threshold = 0.8 kPa
If (Steady MAP) then
Calculate MAF Air mass/SD Air mass ratio (used for Unsteady MAP operation)
Correction Air mass = MAF Air mass (filtered)
else
Correction Air mass = SD Air mass x MAF/SD Air mass Ratio (calculated during Steady MAP conditions)
Transient Corrected Air mass = previous Final Air mass + proportion of Correction Air mass
Final Air mass = fn(MAF Airflow, previous MAF Airflow, prev 3 MAP readings, prev 3 TPS readings,
Transient Corrected Air mass)
There are 9 coefficients to this filter (and a total of up to 16 different sets of coefficients depending on operating conditions). It is worth noting that the previous value is weighted heaviest followed by the 2 MAF terms, so MAF dominates IMHO).
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)
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 calculatedair 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".

LTFT and STFT Info

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.

+ LTRIMS, PCM is sensing a lean condition and adding extra fuel

- LTRIMS, PCM is sensing a rich condition and subtracting fuel

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.