View Full Version : TBI Tuning Guide


discostu
07-20-2007, 11:29 AM
This data was gathered by 91chevZ71, through correspondence from fullsizechevy.com and thirdgen.org. This should be a sticky.

TBI Tuning Guide

PROM ID
Prom ID is useless at this point. It was used to ID a chip or calibration when datalogging. If you want to use it, do it, but NEVER forget to update it or it'll ruin that whole idea of organizing calibrations with datalogs. Oh, and it can be any value you want to make it. It doesn't affect anything important.

Fuel Tables
The main fuel tables are added together and above 3200rpm the last row (or column?) is used with the VE #2 table. If that isn't clear let me know. Just remember that the VE #2 is ALWAYS used, not just above 3200rpm.

Fuel Correction (BLM & INT)
The BLM/INT works differently on different masks. I'm not an expert on the 7747 but with the F-body 8746 the BLM/INT would be reset to 128's when in open loop. Some masks like the TPI F-body's would reset the BLM/INT when they were below 128 but keep them if above (lean). This was a safety measure. The BLM is the long term learned correction that is multiplied into the final pulse width and the INT is the short term learned correction that is added into the final pulse width. When I say multiplied and added it isn't that direct. 1 computer byte = 256 decimal or d256. Half of that is d128. The code does a divide by 128 to come up with the multiplier and addition value for the final pulse width. So if the BLM=120, the multiple=120/128=0.94. Anything multiplied by this number makes it smaller, hence lower BLM's mean your original fuel tables are too rich for closed loop!

Open Loop Idle
Open loop idle is used when your o2 sensor is a single wire NON-heated version and/or your o2 sensor is far from the original location (y-pipe), and/or you o2 sensor has been cooling off too much when at idle. It isn't uncommon for a single wire o2 sensor to cool down too much when you decelerate and then come to a stop. There isn't much air and fuel burning in the engine to keep the o2 sensor HOT, hence open loop. If it stayed in closed loop the engine would run funky IF the o2 sensor cooled down too much. I highly recommend installing a heated o2 sensor. This way you can keep closed loop idle.
Be careful with "lean idle AFR at open loop". Don't touch that OR the AFR vs. CTS and AFR vs. Vac tables. These tables all tie together in a funky way. Basically speaking, the idle AFR constant is used in place of the AFR vs. Vac table. If you look at the stock engine vacuum at idle, then look up the value in the AFR vs. Vac table they should be similar to the idle AFR constant. This constant is used to lean out the idle, which can save gas and smooth the engine out. I don't like to lean out my motor because it would then hesitate ever so slightly at throttle tip in. Just didn't feel responsive enough. So in other words, don't touch until you know what it does :)
Yes, the max AFR caps the AFR so it doesn't run too lean.

Open Loop
The engine will operate in open loop warm when you go WOT. It won't, however use the open loop AFR's but instead will use the PE AFR. Other times the engine will run in open loop mode are highway mode, decel enlean, and DFCO (decel fuel cut-off). Basically when-ever you want an AFR OTHER than stoich (14.7). Highway mode uses a leaner AFR to get a little bit more mpg. Usually the gains are so minimal that it isn't worth it on a heavy vehicle. Only good on light weight Camaro’s and Vette's with big engines. This is similar to DOD, which also doesn't work well with heavy vehicles.
Remember the open loop tables are added together! You're just looking at the one based on MAP. There is also the one based on TEMP. Look back in this e-mail about the PE AFR table and why the open loop AFR drops at the higher engine load/MAP. So sure that table has a 4 in it but the coolant temp table probably has a 9 or 10 in it which adds up to 13 or 14:1. I hope that clicks together. It's a hard concept to visualize but that is because this computer isn't exactly a speed demon so they saved memory by making the tables 2D rather than 3D. 2x2D tables added together are a fraction of the size of 1x3D table. It’s a royal PITA, but it’s effective.

AFR Enable Delays
Don't bother with the Open loop idle AFR enable blah blah blah. The delays should be left alone. Going lean too quickly can stall your engine if your tune isn't near perfect! And by perfect I mean GM dyno testing for months and then months of on-road testing so yeah, don't mess with these values.

Initial Spark Advance
Initial Spark advance is your base timing. Whatever your distributor is set at set this to the same. If you don't and let's say you have 4 degrees of base timing, well how in the world is the ECM going to know this? All of your SA values won't be TRUE engine SA (remember SA stands for spark advance). This is very important if you have too much timing in a table and the ECM limits your max SA to 42 degrees. If your initial is still at 0 then when the limiter gets hit your engine would have actually experienced 46 degrees of SA!!!

Extended Spark Slope
The rest of the constants you seem to grasp. I won’t use the extended RPM slope. Set it to zero and just use the Main SA table. You should have all of your timing in by 3600rpm anyways and the extended would just be hard to visualize."

Main Spark Bias
The main spark bias is subtracted from the total timing table. Depending on the xdf file you're using it might already be taken into consideration when you view the main spark table.

Spark Compensators
The cool compensation spark gives more timing when the engine is cold. It also removes some timing if your engine is overheating. The reason for adding SA at colder temps is 2 fold. 1st reason is to quickly heat up the engine. When running a cold engine it's usually in open loop for a WHILE. This is when you want heat FAST so by advancing the timing it burns more of the fuel in the combustion chamber and less heat goes out the exhaust. This warms up the coolant (engine) which gives you heat faster. The other reason it runs more timing is because it can! A cold/cool combustion chamber can handle more timing without detonating. This is because the combustion pressure's CAN be higher without pinging (detonation from heat). Ideal gas law says if volume stays constant, and pressure increases, so does temperature. Hence the reasons power adder vehicles can only use a very little bit of SA. It's the same reason the LS1's only run mid to low 20's on WOT SA. They are filling the combustion chambers with a LOT of volume so they don't need and can't USE the extra SA to make more power. What ever you do, don't think you need more SA to make more power. The better the engine, the less SA it needs :) . Your coolant SA table might show a dip. This is for EGR. Flatten it out. If that doesn't make sense don't worry, I'll send you a bin file later that shows the difference. By retarding the SA in the "warm" area of the table it helps EGR. I can go into more details but it is very confusing.

Power Enrichment
PE stands for Power Enrichment. The delay isn't really desired unless you tow and/or have a cat still in the exhaust stream. Even then, if you just have a cat it would probably be a good idea to remove the delay by setting it to 0.
PE mode gets evoked based on the amount of throttle position vs. engine RPM (PE evoke TPS vs. RPM?). In other words, yes, PE mode is pretty much only on at WOT or near WOT. At lower RPMs it is evoked sooner.

PE Spark
PE does only add spark, it can't remove it. I zero this table out. It's useless in most healthy engines. Just use the main SA table. WOT or PE mode usually takes place in the 90-100kpa rows (or is it columns?). Letting off the throttle brings a vacuum usually in the 20kpa area. This can help slow down a vehicle :) . Remove timing in the main SA table in the 20kpa area's and it'll engine break more. Too much retard and it'll back fire through the exhaust.

Entering PE
Yes, TPS vs. RPM for PE is just as it sounds. For better mpg, raise the lower RPM values to the 70's or even 80's. For more "fun", lower all of the values to below 50. Something in the 30's is as low as I'd go.

PE AFR
PE AFR vs. RPM is the desired (target) AFR for PE mode but it assumes that your VE tables and injectors bpw are correct. So even if you command a 12:1 that value could be way off. You can make a nice curve with this and just use the VE table's to get a good PE AFR. This table is NOT used if you haven't bee in closed loop yet. What this means is that if you start up your engine cold, and go WOT before ever getting the o2 sensor hot enough, it will be using the open loop AFR tables (combined like we talked about). That is why if you look the open loop AFR tables add up to very low values at high manifold pressure (90-100kpa). Keep this in mind so you know how to go about "fixing" an issue like a cold engine back-fire through the intake. I had this for a while until I understood how it worked. I was spending my time richening up the PE AFR table when it was my Open Loop AFR tables that were too lean! A good PE AFR for a truck would depend on the TPS for PE vs. RPM. Low TPS for PE you would want to have leaner AFR's, like 13.5:1 up until about 2600rpm where as High TPS for PE would want around 12.0:1. Generally speaking it's pretty safe to set all these values to 12.5:1 and just use the VE #2 table to get your AFR's richer or leaner. Either way works, only draw back to using the VE #2 table is that this will also effect your low MAP (manifold air pressure, like decel or cruising) VE values that are above 3200rpm :/ . Totally up to you. I can't say I like one way more than the other.

Acceleration Enrichment
You understand the Accel Enrich (AE) so I won't indulge much more. The only trick with it is to understand that the MAP is more useful for tuning back fire through the intake issues. When it back fires through the intake it is almost always because of not enough AE. You can try increasing the TPS AE but I find the MAP AE to do better with that. Too much TPS AE and it'll load up the engine (with fuel) when you're driving spirited on a cold/cool motor. Also note that the AE is based on pulse width!!! This is critical to visualizing AE. When you change your bpw your AE fuel volume with also change, even though you didn't touch those tables. Same goes for it you change the physical injector flow rates with either bigger injectors or fuel pressure changes. Increasing either and not re-adjusting the AE tables will RICHEN up your tip-in. Keep that in mind when you start tuning the AE. You'll often have to come back to this unlike the SA tables. For the most part, you can set the SA tables up to be safe and it'll run 90-95% optimal with 4-6 degrees less than its peak tolerance. Example; you won't loose much power if you program in 28 degrees of total WOT timing and just leave it there while you work on getting the AFR's correct. Then once the fuel is correct, you'll come back to the SA and creep up on it :) . That's the name of the game, back and forth, not both at the same time or you won't know which helped and which hurt! You'll waste more time if you try and save time. The bin I send you will run well and shouldn't require more tweaking so you had better take your time focusing on one issue :) . Ok, back to the tables...

Cranking AFR
Don't touch the crank AFR vs. temp. This is used independently of the open loop tables but IS used with the VE tables!!! In fact all of the open loop tables still assume the VE tables are correct. This mean the VE tables affect a LOT :) and require a good amount of initial tuning. When you learn in the VE tables based on the BLM's you'll notice that you won't hit every cell, in fact you won't even come close to some of them. In these cases it's safe to extrapolate. So assume that at lower RPM's below peak engine torque, the VE will be less, same with above peak torque. Then assume that higher MAP values will always be higher than lower MAP. A peaky pitfall VE table is bad. It should be smooth like a hill, not a rocky mountain. Also note that VE follows your torque curve. The peak torque comes very close to peak VE.
Back to cranking AFR: if you want, you can lean these tables out a little bit if you find your engine is flooding after start-up. Though if it's flooding, you might look at the VE or injector constant first because truly the stock cranking AFR table shouldn't flood an engine ;) . Increasing the values isn't abnormal after you've done a lot of VE closed loop tuning and want the engine to startup with less cranking. For now, leave it alone and hopefully you'll never need to touch it.

Idle Air Control
IAC steps vs. CTS is to increase engine rpm when it's cold. This again is 2 fold. The 1st reason is to heat up the engine; the 2nd is to prevent stalling like you said. You're right, cold engines need more air but only if you want to heat them up faster. I had my engine running so well that it's cold start-up RPM was 900rpm. I did this because I hated how my transmission felt when going from park to drive with higher RPM’s. You can lower these steps and I advise that you do right off the bat. The best TBI idle is with little to no IAC steps (higher steps = higher air flow). This is because the IAC by-passes the butterfly's and that is bad because the fuel is then sitting on the throttle blades and the engine goes a little lean/rich then lean/rich again and again while the fuel puddles and drips off the throttle blades. By lower the IAC and using more throttle you'll atomize the fuel better with all of the engine air-flow going past the throttle blades. The more air going past the throttle blades the higher the velocity which is the same reason small carbs "feel" better at idle and cruising! So at your ideal operating temp, set the IAC steps to 0 and then increase them at engine over temp (raises water pump flow rate) and increase them at lower engine temps. I would just subtract from the whole stock table what-ever it takes to get a 0 at your ideal engine temp. Then you'll probably need to take a screw-driver and re-set your min idle. Don't worry about the TPS voltage!!! That is self-correcting :) . The ECM looks at the lowest TPS voltage as zero percent so when-ever the ECM is powered on, like before engine cranking even begins, it looks at that TPS value and says THAT is "0%". Even when you crack the throttle open with your foot and crank, when-ever you lift off, it'll find that new lower value and make it the new reference point for 0%. It's still a good idea to adjust the TPS sensor to get a lower voltage like around .6 on a hot engine idle. The other way to quickly get an ideal min-idle screw setting is to set the min-idle screw while watching the IAC steps (counts, what-ever you want to call them). Opening up the throttle blades will bring down the IAC steps because it'll be trying to aim for the target idle RPM. Low IAC counts at a hot engine idle = perfect. Low would be anything below 20 or better yet, 10. Zero should be avoided so that the IAC doesn't get stuck closed which it can do if it's dirty. Don't you love how complicated this stuff gets. This is almost as complicated as the Iraq war but a little more scientific.

Idle Air Control Timer
IAC park position is meant for start-up. Don't mess with this value. You can try and lower it but it might effect your engine's starting. It doesn't affect idle speeds.
Warm closed loop delay timer is used for how long before closed loop operation after a warm engine restart. Cold same thing, just replace warm with cold is that last sentence.

Target Idle RPM
The target idle RPM is only used with closed loop. Open loop uses the IAC steps vs. CTS table.

EGR
EGR stuff = useless, so zero them out.

Base Pulse Width
BPW is relative. There are good calculations but the basic idea is larger injectors/engine size = lower number and vice versa.

BPW Constant
BPW constant vs. airflow vs. egr d/c is because the EGR causes air-flow into the combustion chamber that isn't accounted for by the MAP sensor. Without EGR, you don't need to touch this :) .

Torque Converter Clutch
TCC is really simple. Basically speaking you only want it to engage at low TPS. If you try and have it on at higher TPS and WOT you can destroy the clutch material and have it load up the trans with clutch particles. They just aren’t strong enough unless you get a multi-plate aftermarket design.

Highway Mode
Highway mode is an open loop mode that is used to lean out the engine to increase fuel economy. It does work but at the risk of burning up the piston rings and over-heating the engine oil. When you lean out an engine you then have to add more timing because lean = burn slow and when you add more timing more heat goes into the combustion chamber! Inside the combustion chamber you have the heads and the pistons. Lucky for the valves, head gaskets, and cylinders they are cooled directly by the engine coolant. The pistons on the other hand aren't so fortunate. They only get cooled by the oil! More heat in the combustion chamber = more heat going into the oil so when using highway mode it's best to have an oil temp gauge that you can monitor. Highway mode has 2 sub modes, fuel and spark. The highway fuel can be evoked without highway spark but most of the time they come together at the same time. The highway mode SA is stupid. Don't use this, just zero out that table and use the main SA table to have your "cruising" SA. A normal value is around 38-44 degrees but with vortec heads and a truck I'd go with 38-40 max in the main SA table.

discostu
07-20-2007, 11:30 AM
Cell Boundaries
Don't touch the BLM cell boundaries. This is again a space saving device just like the 2D open loop AFR tables. There are 16 cells all divided up by these boundaries where as an ideal situation would have a BLM cell for ever VE cell.
The boundaries make it so that when you go into unlearned (not closed loop and o2 sensor not ready) the BLM value for other cells around it can be assumed! It's a safety measure for a bad VE table. Just because you're lean at idle necessarily mean you're lean at higher RPM's, hence the BLM cells. I move these boundaries around to help "learn" faster and more accurately. If I were only tuning idle and light cruising I'd bring the RPM boundaries down closer, same with the MAP boundaries. This isn't critical so just ignore them for the time being."

BLM
Block Learn Multiplier, this is the correction term your ECM uses to correct fueling. 128 is perfect, above this and your lean, below and you’re rich. You aim to get your BLM's +- 10 for a ruff tune and +-5 for a decent tune and +-2 for a spot on tune. Those are rough guidelines.
BMmonteSS is offline Report Post
Reply with Quote

Use WINALDL; look at the Wide Average BLM table. Then adjust your VE tables by using the BLM. Say that your BLM at 1,200 rpm and 80 MAP, is 135, divide it by 128(represents 14.7:1), then multiply the by the current VE in the VE table lets say 55%. That is 135/128x55%=58.00%. Enter that in the VE table. Do the same for the whole table. I ignore the information for any cell that has under about 10 data bits. Now just the opposite, lets say your idle is rich. That would be around 114 BLM at 800 RPM and 45 MAP. For the example lets say the VE table has 28% in it. That would go as follows 114/128x28=24.93%

VE tables (main and adder)
Question:
Can someone please clarify how the 2 fuel tables are used?
I am guessing that either as table 2 has no load/MAP axis, it is used only under high load (80-100MAP) or when above table 1's max rpm limit - 3200.
OR
Table 1 and 2 are added together under all conditions, above 3200 the ecu calculates based on the 3200 value in table1+the table 2 value at the present RPM’s.
Under WOT does the ECU calculate how much fuel to inject based on the WOT/target AFR plotted solely against the VE value in table 2
tables 1and2 added together
some other combo.
Answer:
Table one is the main VE table.
Table two is an adder.
The values in table 2 are added to those in table 1, all the time.
Table two allows for saving code space and processing time.
You'll notice the VE 2 values drop at the higher rpm, as the VE of the engine decreases.
The PE AFR is based on the two VE tables giving a Stoich AFR.
The BPC, VE1, VE2, PE AFR, all have to play nice together for it all to work

Question:
Can I ask you to clarify please, if I understand you correctly then:

Scenario 1
I am cruising down the road at 1600 RPMs/40Map, the VE will therefore be
the table1 1600/40 value of "43"
+
the VE2 table adder 1600 value of "44"
giving a total VE of 87.

Scenario 2
I am pressing on, 4000RPM/80 MAP , the total VE will be
the table1 3200/80 value of "50"
+
the VE2 adder value at 4000RPM "39"
giving a total VE of 89.

As the VE1 table only goes to 3200 I am assuming the last highest value at the present MAP level is used?

Answer:
Yes, that is correct.
OK, SOAK THAT UP!!!!!!!!!!

Question:
I thought I had the idle nailed down, but it would appear that I was wrong. I have been running, tuning, and burning all day. I have good stuff in the upper end and mid range stuff and that is getting lots better...BUT...
I keep having to change my idle VE in the VE1 table. This is bizarre. It is down to 9.56 at 800 rpm and 40kPa and I bet I can get to nothing if I really want to. Is this a problem that requires a VE2 table change? I am starting to think so. I also got a pop out of the TB earlier...not good, but I know what that is...timing advance.
HELP!!!!

Answer
Just looking at those tables and I can see a few "issues" if you may. First off in the VE2 adder I see a jump of 12% between 3200 and 3600. Combine those tables and graph the results. You'll see what I'm talking about. Not to say that you shouldn't give your engine what it wants but I would recommend keeping the tables pretty smooth without many divots. Grumpy will tell you to give the engine what it wants but if you're using 160 baud ALDL then trust me on this one, keep it smooth. Dips in the tables will mess with your AE and transitions. The only time for dips is to force the engine to do something abnormal. Basic physics says that if you have more pressure then the volume of air is greater hence VE of an engine should always be increased with pressure, never the other way around.
How are you going about tuning the VE tables? BLM, INT, and/or O2?
I don't know because I haven't played with it much but I think the 61 mask is aggressive with the idle SA adjustments. I really haven't played with it much but I still get a stumble almost stall every once in a blue moon. This was messing with me and I haven't checked the o2 sensor. I haven't done much tuning as of late, I usually do a couple changes, pick what I like best and drive around with it for a few weeks taking mental notes.
If it helps, the VE "curve" should look like your torque curve. This is just a suggestion and might save you some time; slap on a carb and program in a typical ignition curve, chassis dyno it making certain the AFR is pretty good (not too rich and not too lean), then look at your torque curve results. This will get you a peak for your VE curves. I was going to do this but had access to some very powerful simulation software.
Don’t forget about lowering fuel from ve#2 and adding to ve #1, up to 3200 RPM’s.

Idle
Opening the IAC means you need to supply a large slug of fuel during crank. BTW, it can take awhile for the *slug* to burn off.
You've got to balance the commanded AFR, to IAC to commanded idle. And you want to get the decay AFR right.
Opening the IAC, and richening up the cold AFR is just going to use more and more fuel. I've been having good luck with closing the IAC down some, and then leaning the cold AFR. IMO, having the engine fire up and run cleanly cold at 900 RPM is a goal.
If you have to open the IAC up, then that might be an indication that you’re too rich.
This is a carb trick for idle setting: pull fuel out until you get the highest vacuum/lowest map reading. This may be difficult since the engine will be warming up and the ECM will start pulling fuel out based on CTS.
You could make a few cells in the CH AFR vs. CTS the same so it won't pull fuel out though.
As an EFI Novice, this is something I would try.

A Little on PE
When the ECM goes into PE mode the commanded AFR is changed to the value from the PE AFR vs. RPM table. As the RPM changes the ECM will track the RPM AFR value of that table. There is no locking of the AFR at the entry to PE mode.

In PE mode: Learn is turned off and the INT is locked at 128. If the BLM is < 128 it is ignored (128 is used). If the BLM is >= 128 it is then used. The upper BLM RPM limit is only used during learn. IOW, no learning takes place above that limit (such as above 3600 RPM).

However, the use of the BLM table extends past this boundary. So when in PE mode (or not in PE mode), there is no upper RPM limit for the use of the BLM cells. They extend to infinity. This is also true for the upper and lower MAP limits. These limits only affect learn, not the usage during fueling corrections. And, the BLM cell is use will also change to reflect the changing MAP/RPM values.

The best way to tune the upper VE table areas including high MAP is to force open loop, set the BLM limits to 128, and use a WB. Change the VE table to match the commanded AFR. For the commanded AFR you will need to flatten the open loop AFR tables (two of them). This way you will know what the AFR is being commanded to be (unless using a Lockers high speed data acquisition system, then you will have the commanded AFR along with the WB AFR at the same time).

Do the same with the PE mode AFR table; make it the same value at all RPM's. Then you will know what the commanded AFR is. And be able to change the VE table to have it match up to the WB. No need to lock out PE mode, which is not a good idea.

More on VE/PE
Question:
How does the ECU know how to calculate the 12.5:1 or so that is commanded in that table? Does it assume the BLM's place the CL A/F at 14.7 and then deliver additional fuel needed based upon the BPW in constants?

Answer:
The commanded AFR is used as part of the PW calculation:
PW = BPC * MAP * ~T * ~AFR * VE * BVcor * BLM * DFCO * DE +- CLT
Note the ~AFR term. That is the inverse of the AFR ratio. Need to use the inverse or FA ratio to make the PW larger as the AFR decreases (gets richer).

FUEL INJ
At 7.9 msec you are static at 3800 RPM or greater. . .
Static is at 100% or greater. The '747/'8063/'8746 ECMs fire an injector every time a plug fires. There are two injectors. They alternate on plugs firings.
Before I go too much further this is in synchronous mode. Sync mode is sync'd to plug firings. This is the most common mode. I have seen a few cals that are always in async mode, but never an f-body cal.
So for each revolution (V8) there are four plug firings. It takes two revolutions to fire all eight cylinders/plugs. Alternating injectors, that means each injector fires twice on each engine revolution.
At 4,000 RPM (revolutions per minute), divide by 60 for revolutions per second: 4000 / 60 = 66.67 revolutions per second. Invert this value for the time of each revolution (or frequency thereof): 1 / 66.67 = 0.015 seconds. Or, 15 milliseconds (msec) per revolution.
With each injector firing twice each revolution we need to divide the amount of time in half: 15 msec / 2 = 7.5 msec.
This 7.5 msec is the amount of time an injector has before it is fired again (at 4,000 RPM). The higher the engine speed, the less time there is for an injector to deliver the required amount of fuel.
This is why it is important to keep an eye on the injector PW. Once the PW value exceeds that given amount of time, no more fuel can be added. The darn injector is on ALL of the time.
At this point the only thing that can be done is to increase the delivery of fuel. Bigger injectors and/or higher fuel pressure is required.
As another data point at 6,000 RPM a TBI injector is static once it hits 5.0 msec of on time. For best results TBI injectors shouldn't be open for more then 85% duty cycle. At 6K RPM this is 4.25 msec's.

BPC Stuff
Ok our BPC (base pulse constant) is basically an injector constant and engine size all rolled up into one. So to calculate it we need to know a couple of things and get them in the right units and then plug it into the formula below.

BPC = 1461.5 * (cyl size / gm/s of fuel)
For cyl size you find your engine size in Liters. 350 * 16.39 = 5736.5 cc or 5.74 liters Then divide this by 8 to get your cylinder size 5.74/8 = .717L
For say a 65 lb/hr injectors: 65 / 3600 * 453.6 = 8.19 gm/s
So our formula works out to be:
BPC = 1461.5 * (0.717 / 8.19) = 127.95

So our new BPC is going to be 128.

discostu
07-20-2007, 11:30 AM
O.K., I'm going to answer these one at a time. There is a lot more to it so I will just give basic answers geared to the beginner tuner.
7747 ecu in tunerpro (arju.bin, $42.xdf)

Question:
Talking about constants, there is the main spark bias. This is a value the ECM uses in conjunction with others to produce total timing.

Answer:
You’re sort of right. The main spark bias is just a number that is subtracted from the main spark tables to produce the final result. Why, you ask? This number is used because the ECM cannot store negative numbers in the Prom. For example, if in the calibration -2 degrees of spark is required, the table can have an unbiased value of 6 and if the main spark bias is 8, the result is -2.

Question:
What is bypass power enrich delay? It's set at 2800 rpm, with the next constant being PE mode delay, set at 0 sec. The only table I found for PE is the added spark in WOT table. Is PE only engaged at WOT, and the corresponding amount of added spark given? Does PE only add spark and AE add only fuel?

Answer:
The bypass power enrich delay is the RPM at which the PE delay is stopped or bypassed. With PE delay of 0 sec., this is moot. PE (synonymous with WOT) in the $42 mask is entered when a certain differential in TPS % is detected above a preset RPM. Once this differential is detected, the PE delay timer begins and continues until one of two things happens. One is the bypass RPM being reached, two is the high TPS threshold is reached. Again, with a delay timer of 0 sec., this is all moot. Once in PE, the PE AFR vs. RPM is used to modify the fuel calculations and PE spark is added. AE only adds fuel in transitions like the accelerator pump in a carburetor.

Question:
Next constant - BPW constant. This is just the injector size, correct? I did some math and came up with 122 for 68 lb inj's. I think I understand this one.

Answer:
The BPW constant is the relationship of the volume of a single cylinder to the injector size. For TBI, it is as follows:

TBI
; Val = 1461.5 * (VOL/RATE)
; VOL = Vol of 1 Cylinder in liters
; RATE = Injector flow in gms/sec

Question:
These next constants are making me dizzy.
Before I ask about them, I want to understand what BLM and INT is. They are fuel corrections made to achieve the target BLM’s in the BPW constant vs. Air vs. EGR D.C. table, right?

Answer:
Block Learn Multipliers (BLM), also called Long Term Fuel Trim (LTFT), is just as the name suggests. The VE table is sectioned into blocks, like map grids. When in closed loop, the ECM uses the feedback from the oxygen sensor to determine whether the fueling, as calculated from the VE table and scaled by the BLM's and INT's, is rich or lean of stoich (14.7 AFR). In the short term, this is accomplished with the INT's (Integrator value) also known as Short Term Fuel Trim (STFT). The ECM constantly checks to see if it is rich or lean. If lean, the ECM increments the INT by a value of 1 and checks again. If still rich, INT is bumped again and checked again. This continues until either the ECM is happy or the INT value reaches a preset number. If this preset number is reached, then the BLM for the current block is incremented and the INT is reset and the process starts over again. The BLM values for the particular blocks are stored in non-volatile memory for recall when entering a particular block. INT's are not stored as they are for short term corrections on the fly only. Make sense?

Question:
If we start talking about BLM's and INT's, then we half to mention open and closed loops. Open is when the engine is cold (startup) and closed is normal operation? During open loop, the ECM is ignoring the O2 sensor and just fueling off of the primary VE table, right? Is it using BLM's and INT's in open loop? What triggers the switch to closed loop?

Answer
You’re pretty much right. Open loop is not limited to a cold engine. If the O2 sensor is determined to be bad, the ECM stays in open loop and in some applications, idle is open loop. Open loop does not use the O2 sensor. Fueling calculations are from the VE table only. Closed loop, as mentioned above, uses the O2 sensor feedback for fuel corrections. Since there is feedback, it is considered a closed servo loop, hence the name. Closed loop O2 sensor timers designed to allow the O2 sensor ample time to become active are what triggers the switch to closed loop. If the sensor is determined to not be active, a DTC is set and open loop is used.

Question:
BLM's and INT's are used in closed loop; I think that's for sure. I need a little 101 on the whole BLM/INT thing.

Answer:
See above.

Question:
The next constants - open loop idle constants.
Speed to enable open loop idle is currently set at 4 mph. Why would you want open loop idle? I don't get this one.

Answer:
Some applications don't idle well in closed loop. This is mostly due to O2 sensor placement. If an O2 sensor is of the unheated variety, they require a certain amount of heat from the exhaust to remain active and work properly. Some applications (like HD 4wd trucks) can't keep enough heat in the sensor at idle for it to be stable so open loop is used at idle. This can also be handy when running a large cam that drives the O2 sensor nuts at idle.

Question:
%tps for open idle - set at 1.95%. Since there will pretty much always be more than 1.95% TPS, is this (along with the next two constants - max AFR in open loop idle and lean idle AFR at open loop) the only idle mode there is?

Answer:
%TPS for open loop idle goes with the first question. The ECM will not enter open loop for idle until the %TPS is less than the constant setting AND the speed is less than the speed to enable open loop idle constant setting AND the RPM is lower than the open loop enable constant etc., etc. Once all the constants are met and open loop idle is enabled, the AFR constants for open loop idle are used. If one of the enable constants for open loop is not met, the ECM uses closed loop fueling for idle.

Question:
Max AFR in open loop (non-idle) = set at 15.00. Sounds like its set to make sure the engine doesn't run lean.

Answer:
This is a failsafe. If a leaner AFR is attempted it is reset to this setting.

Question:
TCC stuff - not worried about right now
IAC park pos = got it (might work with IAC tables to determine idle rpm)
IAC park offset = just +/- for steps in above constant

Answer:
It’s pretty self evident.

Question:
Warm closed loop delay timer = no idea
Cold closed loop timer = lost

Answer:
See yesterday’s answers. O2 sensor needs time to become active.

Question:
Open loop idle AFR enable RPM threshold = set at 25 rpm
Open loop idle AFR disable RPM threshold = set at 50 rpm what's going on with these two?

Answer:
Refer to answers above. Since these RPM's won't be attained in normal operation, obviously open loop idle won't be entered. If these were set to 850 and 900 RPM then when the RPM came down under 850 and all other open loop idle constants are met, open loop idle is entered. Once the RPM rises above 900, open loop idle is exited.

Question:
Open loop idle AFR enable delay = why?
Open loop Idle AFR time delay = why?

Answer:
These are mostly to prevent stalling or surging. Since TBI is a wet flow system, there can be fuel in the runners and plenum that needs to be burned before idle can be stable.

Question:
PROM ID = just a number, or something more?
Initial spark advance = set at 0, not messing with this

Answer:
PROM ID is just a number assigned to the PROM. No calibration value. Initial spark advance is the base timing set at the distributor. This must match the actual mechanical timing set or several bad things happen. First and foremost, the ECM has no way of knowing this value unless it is set properly by the user. If the settings don't match, the timing value reported by the ECM via the ALDL datastream is no longer accurate and neither is the main timing table. The ECM relies on accurate timing to detect knock as well. It "looks" for knock within a certain timing window, which if skewed by bad settings, can let knock go undetected. The way the ECM calculates timing is like this. Say you need a value of 32 deg. set at a given RPM and load. If the Main spark bias is 10 deg. and the initial spark advance is 6 deg. the final value is calculated like this. The ECM looks up the timing value desired which in this case is 42 deg. (TunerPro and TunerCat can be setup to display the proper values in the main spark table with the main spark bias already removed so that what you see is what you get), it then looks up the main spark bias and subtracts it, the result bieng our desired value of 32 deg. which is what is displayed to us by TunerPro or TunerCat and put out to the ALDL datastream. The ECM then looks up the initial spark advance value, in this case 6 deg. This value is subtracted from our desired value of 32 deg. and a spark pulse is sent to the ignition control module 26 deg. in advance of the next distributor reference pulse. Since we have 6 deg. of mechanical advance and the pulse is 26 deg. advanced from that, we reach our desired spark pf 32 deg. advanced. Make sense? It can get a little confusing.

Question:
Highway mode stuff - not messing with right now
MIN/MAX BLM values = understand these
Min Coolant temp for closed loop fuel = this is where she goes into closed loop.
MIN/MAX INT values = work with BLM to manage fuel, right?
Extended spark RPM Slope = set at 5.5 deg/1K... more timing advance for higher RPM's?
Idle rpm adder (a/c on) = more rpm's for increased load of a/c at idle
max rpm for extended rpm spark = got it.

Answer:
No astrophysics here. You get these.

1BadZ71Tahoe
07-20-2007, 12:35 PM
O.K., I'm going to answer these one at a time. There is a lot more to it so I will just give basic answers geared to the beginner tuner.
7747 ecu in tunerpro (arju.bin, $42.xdf)

Question:
Talking about constants, there is the main spark bias. This is a value the ECM uses in conjunction with others to produce total timing.

Answer:
You’re sort of right. The main spark bias is just a number that is subtracted from the main spark tables to produce the final result. Why, you ask? This number is used because the ECM cannot store negative numbers in the Prom. For example, if in the calibration -2 degrees of spark is required, the table can have an unbiased value of 6 and if the main spark bias is 8, the result is -2.

Question:
What is bypass power enrich delay? It's set at 2800 rpm, with the next constant being PE mode delay, set at 0 sec. The only table I found for PE is the added spark in WOT table. Is PE only engaged at WOT, and the corresponding amount of added spark given? Does PE only add spark and AE add only fuel?

Answer:
The bypass power enrich delay is the RPM at which the PE delay is stopped or bypassed. With PE delay of 0 sec., this is moot. PE (synonymous with WOT) in the $42 mask is entered when a certain differential in TPS % is detected above a preset RPM. Once this differential is detected, the PE delay timer begins and continues until one of two things happens. One is the bypass RPM being reached, two is the high TPS threshold is reached. Again, with a delay timer of 0 sec., this is all moot. Once in PE, the PE AFR vs. RPM is used to modify the fuel calculations and PE spark is added. AE only adds fuel in transitions like the accelerator pump in a carburetor.

Question:
Next constant - BPW constant. This is just the injector size, correct? I did some math and came up with 122 for 68 lb inj's. I think I understand this one.

Answer:
The BPW constant is the relationship of the volume of a single cylinder to the injector size. For TBI, it is as follows:

TBI
; Val = 1461.5 * (VOL/RATE)
; VOL = Vol of 1 Cylinder in liters
; RATE = Injector flow in gms/sec

Question:
These next constants are making me dizzy.
Before I ask about them, I want to understand what BLM and INT is. They are fuel corrections made to achieve the target BLM’s in the BPW constant vs. Air vs. EGR D.C. table, right?

Answer:
Block Learn Multipliers (BLM), also called Long Term Fuel Trim (LTFT), is just as the name suggests. The VE table is sectioned into blocks, like map grids. When in closed loop, the ECM uses the feedback from the oxygen sensor to determine whether the fueling, as calculated from the VE table and scaled by the BLM's and INT's, is rich or lean of stoich (14.7 AFR). In the short term, this is accomplished with the INT's (Integrator value) also known as Short Term Fuel Trim (STFT). The ECM constantly checks to see if it is rich or lean. If lean, the ECM increments the INT by a value of 1 and checks again. If still rich, INT is bumped again and checked again. This continues until either the ECM is happy or the INT value reaches a preset number. If this preset number is reached, then the BLM for the current block is incremented and the INT is reset and the process starts over again. The BLM values for the particular blocks are stored in non-volatile memory for recall when entering a particular block. INT's are not stored as they are for short term corrections on the fly only. Make sense?

Question:
If we start talking about BLM's and INT's, then we half to mention open and closed loops. Open is when the engine is cold (startup) and closed is normal operation? During open loop, the ECM is ignoring the O2 sensor and just fueling off of the primary VE table, right? Is it using BLM's and INT's in open loop? What triggers the switch to closed loop?

Answer
You’re pretty much right. Open loop is not limited to a cold engine. If the O2 sensor is determined to be bad, the ECM stays in open loop and in some applications, idle is open loop. Open loop does not use the O2 sensor. Fueling calculations are from the VE table only. Closed loop, as mentioned above, uses the O2 sensor feedback for fuel corrections. Since there is feedback, it is considered a closed servo loop, hence the name. Closed loop O2 sensor timers designed to allow the O2 sensor ample time to become active are what triggers the switch to closed loop. If the sensor is determined to not be active, a DTC is set and open loop is used.

Question:
BLM's and INT's are used in closed loop; I think that's for sure. I need a little 101 on the whole BLM/INT thing.

Answer:
See above.

Question:
The next constants - open loop idle constants.
Speed to enable open loop idle is currently set at 4 mph. Why would you want open loop idle? I don't get this one.

Answer:
Some applications don't idle well in closed loop. This is mostly due to O2 sensor placement. If an O2 sensor is of the unheated variety, they require a certain amount of heat from the exhaust to remain active and work properly. Some applications (like HD 4wd trucks) can't keep enough heat in the sensor at idle for it to be stable so open loop is used at idle. This can also be handy when running a large cam that drives the O2 sensor nuts at idle.

Question:
%tps for open idle - set at 1.95%. Since there will pretty much always be more than 1.95% TPS, is this (along with the next two constants - max AFR in open loop idle and lean idle AFR at open loop) the only idle mode there is?

Answer:
%TPS for open loop idle goes with the first question. The ECM will not enter open loop for idle until the %TPS is less than the constant setting AND the speed is less than the speed to enable open loop idle constant setting AND the RPM is lower than the open loop enable constant etc., etc. Once all the constants are met and open loop idle is enabled, the AFR constants for open loop idle are used. If one of the enable constants for open loop is not met, the ECM uses closed loop fueling for idle.

Question:
Max AFR in open loop (non-idle) = set at 15.00. Sounds like its set to make sure the engine doesn't run lean.

Answer:
This is a failsafe. If a leaner AFR is attempted it is reset to this setting.

Question:
TCC stuff - not worried about right now
IAC park pos = got it (might work with IAC tables to determine idle rpm)
IAC park offset = just +/- for steps in above constant

Answer:
It’s pretty self evident.

Question:
Warm closed loop delay timer = no idea
Cold closed loop timer = lost

Answer:
See yesterday’s answers. O2 sensor needs time to become active.

Question:
Open loop idle AFR enable RPM threshold = set at 25 rpm
Open loop idle AFR disable RPM threshold = set at 50 rpm what's going on with these two?

Answer:
Refer to answers above. Since these RPM's won't be attained in normal operation, obviously open loop idle won't be entered. If these were set to 850 and 900 RPM then when the RPM came down under 850 and all other open loop idle constants are met, open loop idle is entered. Once the RPM rises above 900, open loop idle is exited.

Question:
Open loop idle AFR enable delay = why?
Open loop Idle AFR time delay = why?

Answer:
These are mostly to prevent stalling or surging. Since TBI is a wet flow system, there can be fuel in the runners and plenum that needs to be burned before idle can be stable.

Question:
PROM ID = just a number, or something more?
Initial spark advance = set at 0, not messing with this

Answer:
PROM ID is just a number assigned to the PROM. No calibration value. Initial spark advance is the base timing set at the distributor. This must match the actual mechanical timing set or several bad things happen. First and foremost, the ECM has no way of knowing this value unless it is set properly by the user. If the settings don't match, the timing value reported by the ECM via the ALDL datastream is no longer accurate and neither is the main timing table. The ECM relies on accurate timing to detect knock as well. It "looks" for knock within a certain timing window, which if skewed by bad settings, can let knock go undetected. The way the ECM calculates timing is like this. Say you need a value of 32 deg. set at a given RPM and load. If the Main spark bias is 10 deg. and the initial spark advance is 6 deg. the final value is calculated like this. The ECM looks up the timing value desired which in this case is 42 deg. (TunerPro and TunerCat can be setup to display the proper values in the main spark table with the main spark bias already removed so that what you see is what you get), it then looks up the main spark bias and subtracts it, the result bieng our desired value of 32 deg. which is what is displayed to us by TunerPro or TunerCat and put out to the ALDL datastream. The ECM then looks up the initial spark advance value, in this case 6 deg. This value is subtracted from our desired value of 32 deg. and a spark pulse is sent to the ignition control module 26 deg. in advance of the next distributor reference pulse. Since we have 6 deg. of mechanical advance and the pulse is 26 deg. advanced from that, we reach our desired spark pf 32 deg. advanced. Make sense? It can get a little confusing.

Question:
Highway mode stuff - not messing with right now
MIN/MAX BLM values = understand these
Min Coolant temp for closed loop fuel = this is where she goes into closed loop.
MIN/MAX INT values = work with BLM to manage fuel, right?
Extended spark RPM Slope = set at 5.5 deg/1K... more timing advance for higher RPM's?
Idle rpm adder (a/c on) = more rpm's for increased load of a/c at idle
max rpm for extended rpm spark = got it.

Answer:
No astrophysics here. You get these.

That's a good start.

- B

91chevZ71
07-20-2007, 04:31 PM
nice dude, much better

THanks

speedracer326
08-28-2008, 08:56 PM
Gravedigging FTW. At least now no one can say I don't search the living crap out of this forum. Why is this not stickied? I've got a couple q's to add to it. When tuning the VE table are we shooting for stoich all the way through it? That's what it sounded like to me if you're shooting for BLM's of 128 everywhere. What good is datalogging off the stock ECU at that point? Is it common to do this with a narrowband? I've got a wideband with its own datalogging software, maybe I'll just use that to get it in the neighborhood and use the narrowband and stock ECU datalogging once it's close enough to stoich for the NB to work properly. So how do you get the table stoich at WOT? That seems like somewhat of a bad thing to me, also seems that the PE table would interfere with that. Unless you set a desired PE AFR and adjust the VE table until your desired PE AFR is met? Also, how would you know when to change TPS AE or MAP AE?