Speed Density Tuning using Wideband O2 Input by William Henn, 'foff667'

Speed Density Tuning using Wideband O2 Input

Application: GM V8 based vehicles

Hopefully you’ve already worked out your idle & set your ifr table. If not start there & come back to this when that’s finished.

If you are running a 1999 or 2000 operating system, you should consider upgrading to a 2001 or later operating system or splurge for the 1 bar speed density license, as they will really simplify the process in the end. If you’re unfortunate enough to own a 1998 operating system at this time, my sincere condolences. You’ll still be able to do SD tuning but you have no way to update to a later operating system without major work involving a PCM swap and major rewiring.

First things first…determine what the car is going to be used for mainly. This tuning guide is for semi mild setups as in the end we will be putting the car back in closed loop. If you plan on having a complete racecar that rarely or never sees the street an open loop speed density tune might be the answer. I’ll get to that in my next write-up since there are a few differences in how things will be done.

Setting up your scanner

  1. Open the HPT Scanner.
  2. Open the Table portion to set up your PIDs
  3. The default config is a good starting point, from there just add:
    Wideband Input ie LM1, LC1, PLX, etc…
    Air Fuel Ratio Commanded Hi Resolution

    Just keep in mind that the more PIDs you have the less frames per second of data it will gather so make sure you keep it under 24 bytes.
  4. Save the PID file as SD tuning.cfg by clicking on the Save Config file button

    It should look something like this

Set up Open Loop Speed Density

  1. Read your PCM & Save as stock.hpt
  2. Open the saved file with the editor
  3. Open both Primary & Secondary VE Tables if applicable and multiply these tables by 1.15…this is just to add extra fuel in so you run safer while in SD mode.

    It should look like this

  4. Under Fuel Cutoff/DFCO set DFCO enable normal to 284°F this is so deceleration fueling wont effect the tuning process. Under normal conditions the computer leans out the a/f mixture when you let off the gas which can skew the numbers you gather for tuning your VE table.

    It should look like this

  5. Under Power Enrichment set the EQ ratio vs. RPM to your desired a/f across the board. This will keep your engine safe & make for one less step once you go back into closed loop.

    It should look like this

  6. Under Fuel Control-Open & Closed loop open “Open Loop EQ Ratio” and set it to 1.00 all the way across. This will set all cells to a 14.7:1 air fuel ratio.

    Like this

  7. Next set Short Term Fuel Trims & Long Term Fuel Trims to Disabled or set their limits accordingly.

    Like this

  8. Then set All Closed Loop Enable Temp cells to 284°F this will ensure you go into open loop.

    Like this

  9. Under COT, Lean Cruise set COT to Disabled. This is mainly to simplify the fuel tuning…the less adders & multipliers involved the better.

    Caution: This can damage catalytic converters if you still have them on your car.

    Like this

  10. Under Spark control open both your high & low octane tables then copy you’re your high octane table to the low octane table using the copy & paste buttons…this because once in SD mode it falls to the low octane table.
  11. Set MAF fail frequency to 0.
    The PCM will detect a MAF fault as soon as you key on and thus revert to speed density mode.
    The PCM requires a MAF DTC to be set to revert into speed density mode. If you set all of your MAF DTCs (101, 102, 103) to no error reported the PCM will not revert to speed density.
    The factory settings will work but if you are concerned about an SES light, set the DTC's to No MIL Light. The PCM will still set the code for a MAF fault and thus still revert to speed density.
  12. Pop the hood and unplug the MAF sensor. This step is a precautionary step to make certain that your vehicle does not use the MAF sensor to calculate fueling while tuning in speed density. It is not required on all vehicles.
    Note: If your MAF has a 5-pin plug, your IAT sensor is built into the MAF.
    You will need to make provisions to get the IAT signal into the PCM.
    Various write-up’s on this can be found at www.ls1tech.com
  13. Save this tune as SDStarter1.hpt and perform a calibration only reflash of this file into your PCM.

Data Logging

  1. Prepare your wideband for use with the usual preheating procedure.
  2. Start the engine and let it come up to full operating temperature.
  3. While the engine is warming up, start the HPT Scanner, connect to the vehicle and start monitoring your data (do not log at this time).
  4. Once the engine is warm (160 °F or higher), start your drive and start Data logging. Your driving style should be very calm. Avoid sudden throttle changes. The smoother you can make your driving style while covering as much of the histogram as you can, the better your results will be.
  5. It helps to have a passenger viewing the AFR Error Histogram while it is displaying the cell count. You want to hit as many cells as you can, as many times as you can. Try to get a cell count of 50+ per cell.
  6. After you have finished logging data, save the log file as SDtune1.hpl

Update .HPT File

  1. Start the HPT Editor & open SDStarter1.hpt
  2. Start the HPT Scanner & open and open SDtune1.hpl
  3. Open your pre-configured AFR error % histogram & set cell his required to 50, click average & load all data.
  4. Next highlight & copy all cells
  5. Switch to the SDStarter1.hpt file & open your main & secondary VE tables & paste special-multiply by % to the main & hand blend the surrounding unaffected cells. Then copy each line to the secondary.
  6. Now Save your tune as: SDtune1.hpt & perform a calibration only reflash to the PCM
  7. If necessary repeat the until the average cell values in your AFR error map(s) are close to 0 (aim for +/- 1%).
  8. At this point if you have completely removed your MAF & have made the decision to never use it again you are done and can go about your way. If you are going to put your MAF back on keep reading.

Dialing in the MAF

  1. To re-enable the MAF simply plug it back in (if you previously unplugged it) and set your MAF Fail requency back to its original value and write it to the vehicle.
  2. Load the MAF - AFR Error.hst histogram.
  3. Make sure you log MAF in Hz in the table and go for a drive.
  4. Hit as many of the higher frequency cells as possible as many times as possible
  5. Copy & paste special-multiply % to your MAF airflow vs. frequency table & smooth
  6. Save & load new calibration
  7. Repeat if necessary
  8. Again the cells in the histogram should get closer & closer to 0% indicating 0% difference between actual AFR and commanded AFR.

Setting Everything Back to Closed Loop-MAF

  1. Open your Stock file
  2. Copy & paste your new, verified, VE primary & secondary, PE, & MAF tables in.
  3. Save & load the new file


  1. Start the HPT Scanner and open the default config file also scan for the w/b & commanded a/f
  2. Start your engine and the Scan Tool and go for a drive
  3. Monitor Commanded AFR and WBO2 AF, they should be extremely close.
  4. Long-term fuel trims should eventually settle in the range –4 to 0
  5. You should also look over & evaluate your injector duty cycle…if your running over 90% you might want to consider stepping up in injector size.


  1. After all this you’re ready to start with Spark tuning

Thanks To All That Helped Put This Together