Long post so please bear with me. Many replace GM factory Multec injectors, and others, with Bosch IIIs (B3)s of various flow rates and worry because they don’t have B3 Low Pulse Width (PW) and Voltage Offset (VO) data. Much has been written about the lack of VO data, but without a resolution.

I believe we need a solution and believe this post provides one, but am throwing this out for further discussion should there be disagreements. If there are, that's OK provided good, fact-based discussion results. Clearly, if injector data is available it should be used, but with caution as we’ll see later. However, when it’s not available, my position is that it’s not needed unless tuning an all-out race car. Note here we're talking about the OBDI world and not OBDII. We’re not tuning each individual cylinder.

$8D AUJP will be used for discussion because it’s believed to be similar to other GM OBDI masks with respect to injector PW correction.

Let’s start with this. What’s the purpose of low PW and VO data? It’s really simple, although a very complicated subject. The purpose is to account for the laws of physics and mechanical characteristics of the injectors by increasing code-calculated (commanded) PW so the ECM keeps the injectors open for the required time in milliseconds (ms). The two areas of concern are:
Area #1: Low PW in the non-linear (idle) area, and
Area #2: Injector latency (where the physical characteristics of the injector, voltage and fuel pressure are considered)

Area #1: Low PW
Here, a low PW calibration table value is added to the code-calculated PW when it's less than Xms. It's widely accepted that when installing B3 injectors, all values in the Low PW table should be set = 0 because the B3s flow so much better at low PW than the factory Multecs.

When this table is zeroed, how then must AFRs/BLMs be adjusted to desired values? Only two ways:
1. Adjust VE/MAF values, and/or
2. Where applicable, change the Injector Flow Rate
These are the primary tools available aside from changing fuel pressure.

So lacking low PW information, we ignore the B3 low PW flow characteristics and rely solely on VE/MAF values for proper tuning. Therefore, we have essentially taken the position that B3 low PW injector data is not needed and tune accordingly. One area down, one to go.

Area #2: Injector Latency (aka: Lag time or Dead Time)
The attribution for this was unfortunately lost: "The purpose of injector voltage offsets is to account for physics. Injector components have mass. It takes time for any mass to accelerate and begin moving. The voltage offset table attempts to account for this and adjust for the fact that the injector parts move slower with lower voltage and faster with higher voltage (but never move instantly)".

Very true! Here’s an example. Without VOs, if the code-calculated PW is 4.0ms, the injectors will go through the following phases during one open/close cycle of delivering fuel (ms values are examples only):
0.0 - 0.3ms: ECM commands injectors to open and move toward fully open
0.3 - 3.9ms: Fully open (3.6ms of fuel delivered)
3.9 - 4.0ms: Fully open to closed (takes much less time to close than to open)

The opening 0.0 to 0.3ms and closing 3.9 to 4.0ms in this example represents 0.4ms of latency/lag/dead time, during which no fuel, or less than the calculated fuel, is delivered. For simplicity, we’ll assume no fuel is delivered during this period. So without VOs, only 3.6ms of fuel is delivered when 4.0ms was calculated (commanded). The VO table attempts to account for this lack of fuel delivery by merely increasing the calculated PW, solely based on voltage at the moment.

Further assume 13.6 volts are being supplied to both the ignition switch and the fuel pump, and assume the VO table contains:
12.8v = 700 micro seconds (Us)
14.4v = 100 Us
Because this table is linearly interpolated by the code and because 13.6 volts is midway between 12.8v and 14.4v, 400Us ([700Us + 100Us] / 2) will be added to the calculated PW of 4.0ms. Said another way
Actual PW to ECM (4.4ms) = Code-calculated PW (4.0ms) + Latency/Lag/Dead Time (0.4ms VO)

Here, 0.4ms is added to the 4.0ms calculated PW to account for the time during which no fuel will be delivered. The 4.4ms PW is sent to the ECM, the ECM commands the injectors to remain open 4.4ms; and during that time, 4.0ms of fuel is delivered as required.

We can see that with precise VO data, there is theoretical exactness! But even with this exactness, we still don’t know if it will provide the desired AFRs/BLMs -- just that the mechanical characteristics of the injectors have been, “on average”, accounted for, (“on average” explained below).

That's the theoretical world. Let's now look at reality. How do injector manufacturers account for:
- flow at different constant fuel pressures
- flow at different constant voltages
- variances among injector internal masses for various flow rate injectors, and
- possibly fuel temperature affecting flow rate in addition to the above
They test a large lot of similar injectors and come up with an “average latency” at various pressures and voltages. These averages become the VOs at each pressure tested.

But when the pristine injector test world is vacated and the injectors are installed in the real world, how are these VOs used to increase PW? Three ways:
- While cranking: VOs are added to the calculated fuel requirement
- While engine is running: VOs are added to the sum of the calculated momentary fuel requirement and the Speed Density (SD) AE-MAP or the MAF equivalent
- As-needed while running: VOs are added to the sum of: (i) SD AE-TPS or the MAF equivalent, (ii) DFCO Stall Saver and (iii) if AC turned on

Remember that VO table values are linearly interpolated; but the VO data in between table voltage values is likely non-linear. That would interject an error, albeit small.

So, what to do when VO data are not available? We could disregard VOs altogether, zero the VO table and adjust above-idle VE/MAF values a certain percentage to increase PW across the board. That’s exactly what the VOs are doing based on voltage as opposed to RPM, manifold pressure/load. But doing this is not the solution because at some point more fuel may be required than those adjustments can provide. Table limits could be exceeded.

Suggested Approach that Works
The suggested approach is to begin with estimates of VOs. But the purists will say this is unacceptable; we must have precise VOs to 6 decimal points. Really? What about the inaccurate linear table interpolation? What about tuning with WBo2 sensors using AFR rather than Lambda when using E10 gasoline? AFR will be off 3-4% from actual depending upon the Stoich AFR used for E10. This error is accepted without realizing it, but very precise VOs are required. Really?

We only need to estimate VO values that cover cranking, idle and above idle. Voltages below and above those occurring in those engine states can be disregarded. With a sound electrical system and alternator, there is normally little difference between idle and above-idle voltage. On average, cranking voltages run between 9.5 and 12v, and engine-running voltages between 13.5 and 14.5v. That says there are really only 4 VO table values that are meaningful -- those at 9.6v, 11.2v, 12.8v and 14.4v.

So it’s recommended to begin with 75% of the factory Multec values due to the better B3 flow/spray. Log and see what happens. Adjust as required for gross errors (where overly rich or lean conditions are reported). Fine tune with VE/MAF values. It’s acknowledged this procedure is far from exact, but so are many other factors far from exact as previously discussed.

To summarize:
- Disregard B3 low PW data, zero the Low PW Table and tune with VE/MAF values
- Estimate VOs that will be added to calculated PW, knowing that the VOs are not exact
- And even if we have exact injector-matching low PW and VO data, we still have to dial-in AFRs/BLMs over the entire engine operating range with VE/MAF values, which is what has to be done with VO estimates anyway.

I rest my case that precise low PW and VO data are not needed.

Bottom line, desiring to get VOs "absolutely precise" for a street car and even for a Saturday night street drag car is like trying to fine tune an old gear-driven clock with Swiss clock precision.

Finally, there are all too many B3 installations that have not gone well. Just search the forums and read the horror stories. IMO, many of these problems result from installing B3s with a flow rate much higher than needed. That, combined with the superior B3 flow/spray generally results in rich conditions, particularly at idle.

I say install injectors, zero the low PW table, set VOs to 75% of Multec values, select the most consistent voltage source (ignition switch or fuel pump), log while idling in-gear and in P/N, plus while driving at various RPMs and manifold pressures, adjust VOs and VE/MAF values and be done with it.

Some time ago, I installed B3 injectors without having low PW and VO information using the above procedure. The VO estimates proved to be acceptable above idle, providing reasonable BLMs; but as expected, idle was overly rich. Everything was dialed-in with only VE Table changes in about an hour after three 10-15 minute logs. No change was made to the VO estimates. That may not always be the case, but have to start somewhere. Maybe I’m an exception but don’t believe so.

If you have a better solution, please post it.

PS ---
One thing that tends to get lost in all this is that PW for any injector is the same (=the amount of time it's to be open). But PW has absolutely nothing to do with how much fuel is supplied during that time. That's a function of the individual injector.