Subtracting a negative number.
Thread Starter
Senior Member
Joined: Jul 1999
Posts: 786
Likes: 2
From: Guilford, NY
Car: 1988 IROC-Z
Engine: 350 TPI
Transmission: 700R4 w/TransGo
Axle/Gears: BW 9-bolt w/3.73s
Subtracting a negative number.
So this may be a weird and/or dumb question....but if you really want to add a value, using an offset table, which actually subtracts the offset from other tables, by putting in negative values for the entries of the table?
Seems like it would work, its just math......?
Seems like it would work, its just math......?
COTM Editor




Joined: Oct 2008
Posts: 1,365
Likes: 216
From: PA
Car: 91/89/85/82 Z28s, 88 TA, 88/88 SC
Engine: SBC and LS variations
Re: Subtracting a negative number.
yes but it would depend on if the table range allows that number, a lot of tables in the older masks are not set up for positive / negative numbers
Thread Starter
Senior Member
Joined: Jul 1999
Posts: 786
Likes: 2
From: Guilford, NY
Car: 1988 IROC-Z
Engine: 350 TPI
Transmission: 700R4 w/TransGo
Axle/Gears: BW 9-bolt w/3.73s
Re: Subtracting a negative number.
As far as the parameter info, didnt see anything that would prevent the neg table entry....the conversion is just 1.00000*X +0.00000, so shouldn't it work?
I suppose the other option would be to reverse the numbers......put in higher values in the 3x O2 tables, and just subtract it down till I get what I really want, once the engine warms. (Prolly what GM wanted in the first place)
Mike
Senior Member


Joined: Jun 2010
Posts: 580
Likes: 32
From: Montgomery, AL
Car: 84 El Camino
Engine: 360 TPI
Transmission: 700R4
Axle/Gears: 3.42 + Truetrac, Moser 28 Spline
Re: Subtracting a negative number.
Interesting point......something to think about. the table i am referring to is, "O2 Rich/Lean Offset vs Coolant Temp." Its in both $6E and $8D masks, I wouldnt call it "old". Both my 2 masks, have a little bit of voltage, in this table to be subtracted from the 3x O2 tables. What I am thinking, is to set the 3 tables to the values I really want, then maybe add a little offset, at the cooler temps, in order to make it a little more richer, as the engine warms up. Just have it dwindle down to 0 mV added, as it gets up to normal operating temp. Thus I was thinking of putting in a negative number, so in essence it "adds" it my values.
As far as the parameter info, didnt see anything that would prevent the neg table entry....the conversion is just 1.00000*X +0.00000, so shouldn't it work?
I suppose the other option would be to reverse the numbers......put in higher values in the 3x O2 tables, and just subtract it down till I get what I really want, once the engine warms. (Prolly what GM wanted in the first place)
Mike
As far as the parameter info, didnt see anything that would prevent the neg table entry....the conversion is just 1.00000*X +0.00000, so shouldn't it work?
I suppose the other option would be to reverse the numbers......put in higher values in the 3x O2 tables, and just subtract it down till I get what I really want, once the engine warms. (Prolly what GM wanted in the first place)
Mike
Mike ---
1) What I am thinking, is to set the 3 tables to the values I really want, then maybe add a little offset, at the cooler temps, in order to make it a little more richer, as the engine warms up.
Not possible to do what you want by subtracting a 1-byte negative value from a 1-byte positive value to achieve a higher positive 1-byte value without code modification and the use of 2s complement hex math.
What are you really trying to accomplish? I’ve done extensive testing on o2 table and Scalar values and prop counts and have found that the use of the $8d table you reference (0x4F6=Loop Closed Param, o2 Rich/Lean Offset .vs. Coolant Temp) is IMO unnecessary. It’s also why the S_AUJP default values all =0.
Note also that the 0x4F6 table reduces Swing Point and Upper and Lower boundary table values only where this condition does NOT exist: TPS <= 2.3% AND MPH <= 15. If that condition exists, Scalar 0x49D=AIR, o2 Rich/Lean Reduction Volts when AIR Diverted is used to adjust similar o2 Scalars. If AIR is not installed, 0x49D is not used.
Take a look at the attached document that explains everything about NBo2. Particularly look at the visual results of various o2 settings on pages 69-72.HTH, Elky
Thread Starter
Senior Member
Joined: Jul 1999
Posts: 786
Likes: 2
From: Guilford, NY
Car: 1988 IROC-Z
Engine: 350 TPI
Transmission: 700R4 w/TransGo
Axle/Gears: BW 9-bolt w/3.73s
Re: Subtracting a negative number.
Mike ---
1) What I am thinking, is to set the 3 tables to the values I really want, then maybe add a little offset, at the cooler temps, in order to make it a little more richer, as the engine warms up.
HTH, Elky
Mike ---
1) What I am thinking, is to set the 3 tables to the values I really want, then maybe add a little offset, at the cooler temps, in order to make it a little more richer, as the engine warms up.
Not possible to do what you want by subtracting a 1-byte negative value from a 1-byte positive value to achieve a higher positive 1-byte value without code modification and the use of 2s complement hex math.
What are you really trying to accomplish? I’ve done extensive testing on o2 table and Scalar values and prop counts and have found that the use of the $8d table you reference (0x4F6=Loop Closed Param, o2 Rich/Lean Offset .vs. Coolant Temp) is IMO unnecessary. It’s also why the S_AUJP default values all =0.
Note also that the 0x4F6 table reduces Swing Point and Upper and Lower boundary table values only where this condition does NOT exist: TPS <= 2.3% AND MPH <= 15. If that condition exists, Scalar 0x49D=AIR, o2 Rich/Lean Reduction Volts when AIR Diverted is used to adjust similar o2 Scalars. If AIR is not installed, 0x49D is not used.
Take a look at the attached document that explains everything about NBo2. Particularly look at the visual results of various o2 settings on pages 69-72.HTH, Elky
FYI, the stock $6E-ARAP mask, has 16 mV for offsets, and my stock C4 -AFRP bin has 71 mV for offsets. Not questioning your AUJP bin, having al 0's for offsets. That mask is for 90-92 TPI L98......not my ride(s). Just trying things out my way, can always change them later. My ride does have AIR, and the scalar at x49D is 102mV. When is AIR diverted actually called for? Only at the low TPS and MPH? That condition is tricky to grasp.....i think of it as "Idling" or "NOT idling"......scalars used during idling, and tables used NOT idling......i know, i know, idling condition can have car moving slowly......just the way i think of it.
And yes, i have looked at your Word doc, about the NB o2 controlling fuel. Read thru it many times before, totally on board with getting the swing points at 400-450-500mV. Can't wait to test it out come spring!
Mike
Joined: Apr 2004
Posts: 3,180
Likes: 3
From: Browns Town
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Re: Subtracting a negative number.
Check out this oldie 
This is what I did in the AUJP to find the values I wanted. The xls plots it so you can see what they are instead of guessing if they overlap.
Since you can't input negative values, you are correct by reducing all the values and using the coolant modifier to bring them up as desired.
O2 Swing points
Look at posy #8, There is a spreadsheet I made to see what I was doing.
The only thing to keep in mind is the coolant table is actually in "counts" and not as I have it.
There may have been an update to the xls but I can't find it in my mess of files ATM.
The graphic display helped me understand, Maybe it will help if you still want to shift things.
Jp

This is what I did in the AUJP to find the values I wanted. The xls plots it so you can see what they are instead of guessing if they overlap.
Since you can't input negative values, you are correct by reducing all the values and using the coolant modifier to bring them up as desired.
O2 Swing points
Look at posy #8, There is a spreadsheet I made to see what I was doing.
The only thing to keep in mind is the coolant table is actually in "counts" and not as I have it.
There may have been an update to the xls but I can't find it in my mess of files ATM.
The graphic display helped me understand, Maybe it will help if you still want to shift things.
Jp
Thread Starter
Senior Member
Joined: Jul 1999
Posts: 786
Likes: 2
From: Guilford, NY
Car: 1988 IROC-Z
Engine: 350 TPI
Transmission: 700R4 w/TransGo
Axle/Gears: BW 9-bolt w/3.73s
Re: Subtracting a negative number.
Check out this oldie 
This is what I did in the AUJP to find the values I wanted. The xls plots it so you can see what they are instead of guessing if they overlap.
Since you can't input negative values, you are correct by reducing all the values and using the coolant modifier to bring them up as desired.
O2 Swing points
Look at posy #8, There is a spreadsheet I made to see what I was doing.
The only thing to keep in mind is the coolant table is actually in "counts" and not as I have it.
There may have been an update to the xls but I can't find it in my mess of files ATM.
The graphic display helped me understand, Maybe it will help if you still want to shift things.
Jp

This is what I did in the AUJP to find the values I wanted. The xls plots it so you can see what they are instead of guessing if they overlap.
Since you can't input negative values, you are correct by reducing all the values and using the coolant modifier to bring them up as desired.
O2 Swing points
Look at posy #8, There is a spreadsheet I made to see what I was doing.
The only thing to keep in mind is the coolant table is actually in "counts" and not as I have it.
There may have been an update to the xls but I can't find it in my mess of files ATM.
The graphic display helped me understand, Maybe it will help if you still want to shift things.
Jp
As far as your post #8, link to SS is broken. Maybe re-post it here?
you are correct by reducing all the values and using the coolant modifier to bring them up as desired. I think you made this statement backwards? eg "Increase the values in the o2 tables, and use the coolant table to reduce them as desired". The o2 offset R/L table subtracts from the 3 main tables....Not sure what you are saying about this table being in "counts".
Mike
Trending Topics
Senior Member


Joined: Jun 2010
Posts: 580
Likes: 32
From: Montgomery, AL
Car: 84 El Camino
Engine: 360 TPI
Transmission: 700R4
Axle/Gears: 3.42 + Truetrac, Moser 28 Spline
Re: Subtracting a negative number.
Ok, copy that, will not try to put in neg numbers for the offsets. I might set the table values higher, then put in the offsets, to decrease the O2 swing points to 400, 450, 500mV, once the engine is fully warmed up. Just thought it should be a little richer, on cold engine and during warm up.
OL AFR = 6553.6 / (((6553.6 / Stoich_AFR) * (0x45D + 0x45E + 0x41F + 0x420 + 0x46F)) / 256)
--41A=Stoich AFR =0x01BD(445d) (14.73)
--45D=Open Loop AFR % Change .vs. Temp Scalar =0xDD(221d)
--45E=OPEN LOOP AFR % CHANGE .vs. TEMP [DEFAULT=Coolant] =0x19(25d) at any temp >= 68*F
--41F=CHG OPEN LOOP F/A % CHG AT IDLE =0x00
--420=OPEN LOOP FUEL/AIR % CHG .vs. MAP =0x08(@45kPa) to 0x24[36d](@100 kPa) (Only in OL AFR calc)
--46F=STARTUP ENRICH OFFSET .vs. [SCALED MAT] =0x00 at <= 154*F (only applies to high MAT startup))
Startup values will have been decayed out in approx 1-1.5 minutes. Others will remain. Can also reduce the time before a cold engine enters CL (0x48C=Loop Closed Param, If COLD Consider CL if Time >=).
FYI, the stock $6E-ARAP mask, has 16 mV for offsets, and my stock C4 -AFRP bin has 71 mV for offsets. Not questioning your AUJP bin, having al 0's for offsets. That mask is for 90-92 TPI L98......not my ride(s).
Also, remember that GM had to provide calibrations to satisfy EPA and other emission requirements -- not necessarily those that would provide the best performance. Also note that S_AUJP stands for "Super" AUJP (for performance) and eliminates AIR, EGR, CCP, etc. which is why the o2 offset table =0 and why the docs discuss how to disable each, or enable using opposite settings.
My ride does have AIR, and the scalar at x49D is 102mV. When is AIR diverted actually called for? Only at the low TPS and MPH? That condition is tricky to grasp.....i think of it as "Idling" or "NOT idling"......scalars used during idling, and tables used NOT idling......i know, i know, idling condition can have car moving slowly......just the way i think of it.
AIR is diverted to the atmosphere:
--In a rich operation
--When the ECM recognizes a problem and sets a trouble code
--During deceleration
--During high RPM operation when air pressure is greater than the setting for the internal relief valve
And yes, agree that the "Low TPS and MPH" condition is difficult to grasp, but it's necessary to use it in discussions because it is NOT "idle" as the code sees it. Many important decisions (especially CL o2) are made based on being in or out of Low TPS and MPH (Low: TPS<=2.3% and MPH<=15). This is opposed to many other decisions made if in an idle state, which is anytime TPS% is <= 0.78%. Sorry for the necessary confusion.
Joined: Apr 2004
Posts: 3,180
Likes: 3
From: Browns Town
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Re: Subtracting a negative number.
I was just showing that you could reduce the values, not just increase them. Allowed me to play with values while tuning.
By offsetting all values lower by 100 as an example, then use the modifier to add 100 back in, that put them back to the same values but allows you to adjust lower by NOT adding the full 100 back. Code doesn't have a way to lower them with the modifier.
Then you could set the tables to target the spot you want. Granted, there are other influences on the values by the time a BPW is output.
Maybe I'm missing your point but those tables and window settings are setting how the BLM correction is started and centered upon during cruise. Not the actual output but the add/subtract function of the INT.
Not sure if I put that spreadsheet in the V4 pack. If not will repost the latest.
JP
By offsetting all values lower by 100 as an example, then use the modifier to add 100 back in, that put them back to the same values but allows you to adjust lower by NOT adding the full 100 back. Code doesn't have a way to lower them with the modifier.
Then you could set the tables to target the spot you want. Granted, there are other influences on the values by the time a BPW is output.
Maybe I'm missing your point but those tables and window settings are setting how the BLM correction is started and centered upon during cruise. Not the actual output but the add/subtract function of the INT.
Not sure if I put that spreadsheet in the V4 pack. If not will repost the latest.
JP
Joined: Apr 2004
Posts: 3,180
Likes: 3
From: Browns Town
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Re: Subtracting a negative number.
the coolant modifier table is in "counts".(Thx Rbob )
I didn't figure out how much one count was in relation to the mV in the other tables.
Jp
Thread Starter
Senior Member
Joined: Jul 1999
Posts: 786
Likes: 2
From: Guilford, NY
Car: 1988 IROC-Z
Engine: 350 TPI
Transmission: 700R4 w/TransGo
Axle/Gears: BW 9-bolt w/3.73s
Re: Subtracting a negative number.
Understand the logic, but IMO, what you're trying to do is analogous to fine-tuning a battleship with Swiss clock precision. Don't believe you'll see any material change in OL AFR by adjusting the o2 values with an offset. Might consider altering the $8d OL AFR values below to get the desired richness:
Startup values will have been decayed out in approx 1-1.5 minutes. Others will remain. Can also reduce the time before a cold engine enters CL (0x48C=Loop Closed Param, If COLD Consider CL if Time >=).
TPI on a V8 is TPI regardless of the car it's sitting in. I believe it's ARFP $8d (90 'vette) with TPI. And ARFP is not much different than $8d AUJP with regard to o2 values (see Appendix A of the attached o2 doc which compares AUJP with ARFP). You'll also note that all are pig rich relative to 450mv and in some cases the swing point equals the upper boundary which also sets everything to the rich side.
Also, remember that GM had to provide calibrations to satisfy EPA and other emission requirements -- not necessarily those that would provide the best performance. Also note that S_AUJP stands for "Super" AUJP (for performance) and eliminates AIR, EGR, CCP, etc. which is why the o2 offset table =0 and why the docs discuss how to disable each, or enable using opposite settings.
Startup values will have been decayed out in approx 1-1.5 minutes. Others will remain. Can also reduce the time before a cold engine enters CL (0x48C=Loop Closed Param, If COLD Consider CL if Time >=).
TPI on a V8 is TPI regardless of the car it's sitting in. I believe it's ARFP $8d (90 'vette) with TPI. And ARFP is not much different than $8d AUJP with regard to o2 values (see Appendix A of the attached o2 doc which compares AUJP with ARFP). You'll also note that all are pig rich relative to 450mv and in some cases the swing point equals the upper boundary which also sets everything to the rich side.
Also, remember that GM had to provide calibrations to satisfy EPA and other emission requirements -- not necessarily those that would provide the best performance. Also note that S_AUJP stands for "Super" AUJP (for performance) and eliminates AIR, EGR, CCP, etc. which is why the o2 offset table =0 and why the docs discuss how to disable each, or enable using opposite settings.
Had a typo on my stock 8D bin, it is ARFP, except i have 3.33 gears, not 2.59. From your document:
ANHT 90 Corvette TPI Auto with 3.07 (only minor o2 difference from AUJP-see Table 0x4DE below)
AXCS 91 Corvette TPI Auto with 2.73 (only minor o2 difference from AUJP-see Table 0x4DE below)
ARFP 90 Corvette TPI 6-Speed Manual with 2.59 (major o2 differences)
AXCN 91 Corvette TPI 6-Speed Manual with 2.73 (major o2 differences)
ANJF 90 F-Car TPI (o2 values Identical to AUJP)
AUJP 90-92 TPI “VIN 8” L98
Says (major o2 differences).......as compared to AUJP.
Mike
Last edited by MikeT 88IROC350; Jan 3, 2022 at 08:45 AM. Reason: update
Thread Starter
Senior Member
Joined: Jul 1999
Posts: 786
Likes: 2
From: Guilford, NY
Car: 1988 IROC-Z
Engine: 350 TPI
Transmission: 700R4 w/TransGo
Axle/Gears: BW 9-bolt w/3.73s
Re: Subtracting a negative number.
I was just showing that you could reduce the values, not just increase them. Allowed me to play with values while tuning.
By offsetting all values lower by 100 as an example, then use the modifier to add 100 back in, that put them back to the same values but allows you to adjust lower by NOT adding the full 100 back. Code doesn't have a way to lower them with the modifier.
Then you could set the tables to target the spot you want. Granted, there are other influences on the values by the time a BPW is output.
Maybe I'm missing your point but those tables and window settings are setting how the BLM correction is started and centered upon during cruise. Not the actual output but the add/subtract function of the INT.
Not sure if I put that spreadsheet in the V4 pack. If not will repost the latest.
JP
By offsetting all values lower by 100 as an example, then use the modifier to add 100 back in, that put them back to the same values but allows you to adjust lower by NOT adding the full 100 back. Code doesn't have a way to lower them with the modifier.
Then you could set the tables to target the spot you want. Granted, there are other influences on the values by the time a BPW is output.
Maybe I'm missing your point but those tables and window settings are setting how the BLM correction is started and centered upon during cruise. Not the actual output but the add/subtract function of the INT.
Not sure if I put that spreadsheet in the V4 pack. If not will repost the latest.
JP
Mike
Senior Member


Joined: Jun 2010
Posts: 580
Likes: 32
From: Montgomery, AL
Car: 84 El Camino
Engine: 360 TPI
Transmission: 700R4
Axle/Gears: 3.42 + Truetrac, Moser 28 Spline
Re: Subtracting a negative number.
Thread Starter
Senior Member
Joined: Jul 1999
Posts: 786
Likes: 2
From: Guilford, NY
Car: 1988 IROC-Z
Engine: 350 TPI
Transmission: 700R4 w/TransGo
Axle/Gears: BW 9-bolt w/3.73s
Re: Subtracting a negative number.
No hard feelings, at least you owned up to it! No matter what mask, O2 values are rich for sure.
Joined: Apr 2004
Posts: 3,180
Likes: 3
From: Browns Town
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Re: Subtracting a negative number.
Just to finish this out, Finally got back into my files.
I updated the spreadsheet from many years ago so the Coolant Table" indicates in "counts" not mV.
Use it more as a visualization tool to see where your settings are.
Green box shifts main tables "Down"
Blue box adds "Counts" to coolant modifier table.
If Green box value is the same as the Blue box value, your tables are at the original values.
This also lets you see where your "windows" are for switching indications.
The graph give you a nice visual of all table settings.
John
I updated the spreadsheet from many years ago so the Coolant Table" indicates in "counts" not mV.
Use it more as a visualization tool to see where your settings are.
Green box shifts main tables "Down"
Blue box adds "Counts" to coolant modifier table.
If Green box value is the same as the Blue box value, your tables are at the original values.
This also lets you see where your "windows" are for switching indications.
The graph give you a nice visual of all table settings.
John
Thread
Thread Starter
Forum
Replies
Last Post





