When you click on links to various merchants on this site and make a purchase, this can result in this site earning a commission. Affiliate programs and affiliations include, but are not limited to, the eBay Partner Network.
I've been fighting with a rich closed loop idle. My wideband is reading mid 14's at idle. But I've been told they can "off" at idle with a large cam. I data logged the car and got the MAF grams/sec it idles at. Then went and found that value in my MAF table. And lowered the number to lean the idle out. I've lowered the number three times and I see NO difference. It's still rich at idle. I don't even see a difference on the wideband. Am I missing something? Are there any other tables I can adjust? I'm using 6Eexpanded.xdf and a modified ARAP bin.
Closed loop will correct your fueling changes right back to “stoic” according to narrowband.
So you’re saying there’s no way to adjust your idle AFR? Besides tuning in open loop where it’s not going to look at the O2?
Im confused. I’ve seen people adjust the MAF tables for lean spots at like 3000rpm…etc. Wouldn’t that be the same situation as trying to adjust my idle mixture? Everytime I search for $6E fueling. All I see is recommendations to adjust the MAF tables.
Closed loop means the narrowband has closed the info loop and it’s correcting fueling based off the narrowband.
Changing the MAF table will alter PE and open loop fueling. However if closed loop learning is active the BLMs will change to “correct” your Maf changes in closed loop.
Are there O2 rich/lean thresholds for idle? In 8D speed density you can adjust these values to change the target voltage for the O2.
There absolutely are in the OS. No way around that.
problem with this is the further away from stoic you pull the less accurate the sensor is.
also knowing nothing of that mask, I doubt there’s idle crossover thresholds AND driving thresholds separate. Though it is entirely possible. So that means the change is across the board not just idle.
also knowing nothing of that mask, I doubt there’s idle crossover thresholds AND driving thresholds separate. Though it is entirely possible. So that means the change is across the board not just idle.
8D has separate ones for idle and non-idle. I've been able to use them to good effectiveness too...
Sounds like he's probably running 6E. Don't think you can run open loop only at idle (as was mentioned earlier). Even on 8D, you need the special SAUJP code to do that.
8D has separate ones for idle and non-idle. I've been able to use them to good effectiveness too...
Sounds like he's probably running 6E. Don't think you can run open loop only at idle (as was mentioned earlier). Even on 8D, you need the special SAUJP code to do that.
I’ve reverse engineered/tuned so many platforms computers I can’t keep straight which options are on which car ecu.
I appreciate the replies gents. It’s too bad. It’s really dialed in besides the idle. It’s not horribly rich. But rich. Maybe I should start to tune in open loop. I’ve had some slight surge issues during low rpm lock up also. Rbob and I discussed the prop gains. But it really never got better. Open loop is looking like a better option.
You can change the o2 offsets to target different air fuel at idle. I did on my big cam 383.
but how do you know its rich if its reading 14’s on wideband? Are the plugs dark? If so then ok change the rich lean swing point on the o2’s, and lean it out. Id have to look at my old tune if I have it still to remember which way it moved.
i think you can tell by the AIR system offset i think it added 100mv to account for the air injection into the exhaust. I cant remember but you can try adding or taking away 100-150 mv and tune to 128 and see which way the wideband moved
Some might say so. The combined effect of the integrator and blm is slightly less than 128 and the WBO2 is averaging about 1/2 point richer than the target AFR. Both are rich indications. So maybe about a half point offset between the narrow band and WBO2. AFR error of roughly -2% (rich). I would consider this a trivial difference.
How are you reaching the conclusion that it is rich and how rich is rich? Are you running large injectors? Maybe running into low pw limitations.
You can limit the INT and/or BLM if you think that closed loop control is somehow resulting in excessive fueling?
Sharing your data would help those trying to help you.
but how do you know its rich if its reading 14’s on wideband?
Originally Posted by tequilaboy
How are you reaching the conclusion that it is rich and how rich is rich? Are you running large injectors? Maybe running into low pw limitations.
The exhaust smells rich at idle. It's not blatantly obvious. But if I get close to the mufflers at idle (they dump before the axle) there is a very faint gray/black smoke coming out. That along with the smell leads me to believe it has a rich idle. I'm running 32lb injectors. When driving the AFR is in the high 14's. No black smoke or anything. I uploaded a datalog. It's long but in the beginning it's idling and goes into closed loop.
Last edited by IROCThe5.7L; Jul 29, 2025 at 01:15 PM.
The exhaust smells rich at idle. It's not blatantly obvious. But if I get close to the mufflers at idle (they dump before the axle) there is a very faint gray/black smoke coming out. That along with the smell leads me to believe it has a rich idle. I'm running 32lb injectors. When driving the AFR is in the high 14's. No black smoke or anything. I uploaded a datalog. It's long but in the beginning it's idling and goes into closed loop.
is there a well documented hac for your bin? If it’s as detailed as the $8d anht hac I could write a quick patch for you that does open loop idle. I need to do it for my car so I could very quickly do both at the same time.
Edit: Not that I could find. Looks like a poorly defined bin.
Last edited by Vanilla Ice; Jul 29, 2025 at 02:44 PM.
Pretty much averaging richlean following the slow motion of the integrator without much bpw variation with respect to load. Fuel trims suggest that the calibration is a bit lean (likely due to your maf table changes).
is there a well documented hac for your bin? If it’s as detailed as the $8d anht hac I could write a quick patch for you that does open loop idle. I need to do it for my car so I could very quickly do both at the same time.
Edit: Not that I could find. Looks like a poorly defined bin.
This I am not sure of. I know enough to tune this thing a bit. But I’m not even close to as knowledgeable as the people commenting in this post like yourself. 😂
After the transition into closed loop it is idling with reduced IAC counts, reduced mass airflow and reduced load. Same rpm, same spark advance. It is adding some fuel, but it is producing more torque with the richer mixture. I'd call this an improvement Injector pw is about the same (around 2 ms).
After the transition into closed loop it is idling with reduced IAC counts, reduced mass airflow and reduced load. Same rpm, same spark advance. It is adding some fuel, but it is producing more torque with the richer mixture. I'd call this an improvement Injector pw is about the same (around 2 ms).
Your easiest solution is to change the o2 rich lean thresholds.
Keep an eye on what tequila said.
If you have negative results revert back.
I have often reverted after not liking the change I made. I’ve had a minute tune change significantly lower power. It was weird it felt like 20whp with a tiny tweak to afr.
theres only one way to find your engines happy limits.
I mean play around with it. If wideband says 14’s and spark plugs look sooty and black, it aint 14’s. Will have to lean it out and that would require the rich lean thresholds/o2 constants. in the 6e expanded i believe its closed loop rich lean threshold vs airflow. You can change them around your idle grams sec. It looks like mine was around 600 mv at 08-16 gm sec. stock was 486 at 08 and 540 at 16
Adjusting the rich/lean thresholds is only going to shift the INT and/or BLM by about 1 count up or down with almost no effect on the resulting mixture due to the rate at which the O2 signal crosses the rich/lean threshold.
Adjusting the rich/lean thresholds is only going to shift the INT and/or BLM by about 1 count up or down with almost no effect on the resulting mixture due to the rate at which the O2 signal crosses the rich/lean threshold.
It had zero effect on the average AFR error/AFR error%. Everyone is free to experiment and reach their own conclusions.
Note: this car was setup for an E30 fuel blend at the time of this log, so the target afr and WBO2 signals were adjusted for 13:1 lambda.
Did you adjust rich AND lean thresholds or just one? I would think if both were moved together it would have more of an effect. I did it to one of my other cars and it effected it enough to change drivability. I haven’t messed with them on this car.
edit: looking at the table he posted below I have no idea what that ecu is doing with it.
Last edited by Vanilla Ice; Jul 31, 2025 at 05:09 PM.
I think i also changed the fast o2 rich lean threshold, the upper and lower zero error ref for slow o2. Upper and lower i went lower with the values in the 8-16 g/sec range. Not sure which one actually had affected it but i was pretty sure the blm and int went closer to 128 for a different leaner air fuel. But its been a while since i did this 2008 lol. I do know i went open loop eventually
You ARAP guys that want Open Loop idle, I don't see an Idle flag. If somebody can clue me in to it's address, I can create a patch. I'm staring at the Closed Loop subroutine and already see the hook address, but haven't found the idle flag.
I'd like to:
where OEM decides to go into closed loop
Jump to new code
then check if in idle
If in idle stay open loop.
If not in idle, go ahead and close loop.
and return to oem code.
Very simple. Only a few lines of code, but if there's no idle flag, it's more complex.
i can have it check for mph and tps and if under set levels force open loop. Still easy I suppose.
anybody?
Last edited by Vanilla Ice; Aug 1, 2025 at 05:23 PM.
Like others said, changing MAF tables will result in no improvement as INT/BLM will correct back based on O2 sensor signal. Changing MAF tables will results in correcting the INT/BLM values in closed loop. MAF tables correction only has an effect in open loop, PE and Highway Mode because the INT/BLM are not activated in these modes.
The $6E, just like other masks, is making calculation based on input from sensors (voltage). The ECM is trying to keep the O2 sensor voltage within certain windows. The signal will, most of the time, constantly swing from rich to lean. With narrow band O2 sensor, the further from 451mv, the less accurate. The MAF values in g/sec are assigned by a human. The ECM does not know what a g/sec is. It only reads a MAF voltage. The voltage is associated to a g/sec value entered by a human. The value is used to calculate injector pulse width (INJ PW).
Formula for basic INJ PW
(((((MAF/8)/(RPM/60))*2)/Commanded AFR) / ((Inj Flow Rate/60/60)*1000/2.20462)) * 1000/2
Example for a stock 305 LB9 in PE:
MAF = 167g/sec
RPM = 4375
Commanded AFR = 12.44
Inj Flow Rate = 19.48lbs/hr
The INT/BLM will correct the basic INJ PW calculation with the O2 sensor feedback. It does that by monitoring the O2 sensor voltage and attempting to keep it within a certain window entered by a human. Here's an example for APYS, 305 LB9 MT (they all work the same). In this case, the idle was lean from OEM BIN, making the idle a bit erratic. The AFR gauge was measuring a swing from high 14s to high 16s. Swings are normal as the BIN is designed to do just that for catalytic converter operation. After correction, the swing was from mid 13s to high 14s. Idle was way smoother. The correction was made by identifying the idle zones in the MAF table (yellow area), then increasing values by 50mv and test. In the above case, it took about 3-4 increases to really smooth things out. I did the same on a 383 TPI, however, it did not like idling under 850rpm. So every engine is different. The TPI system along with it's antiquated ECM was not meant to be running on top of performance engine with closed loop operation. It can results in funky things like erratic idle and weird INT/BLM swings.
UPPER ZERO ERROR REF FOR SLOW o2 R/L
Fast o2 Rich/lean Treshold vs Air Flow
LOWER ZERO ERROR REF FOR SLOW o2 R/L
Having said all that. It is also possible that your O2 sensor is not accurate because of, among other things, your cam profile, O2 sensor location, non heated O2 sensor, O2 sensor malfunction, exhaust leak, or uneven distribution of air intake charge.
At the end of the day, the O2 sensor is the king of the hill. It will override the ECM calculation.
Peace
Last edited by SbFormula; Aug 3, 2025 at 06:35 AM.
Thank you all for the suggestions. Sorry for the late reply (Work, kids...etc you know how it goes). I'm going to try some of the suggested things hopefully this weekend.
Originally Posted by tequilaboy
Note: I don't know what is causing the very rich BLM above ~18 gm/sec (cells 10 and above) but I suspect a botched maf table calibration.
My MAF tables are the same as the stock ARAP tables. I made small adjustments to the idle areas but that's it. But I made sure to change that also back to the original values.
If the maf cal is correct, take a close look at the injector offset table for low pulse widths. You're very rich at 2.438 ms (and generally rich between 2.194 ms and 3.169 ms) according to my BLM vs BPW histogram (history average for the last 100 samples). Kinda weird to be rich in the middle part of this table. Suggest zero offset above 1.950 ms.
I don't think its an injector offset issue, but an issue with the maf calibration, the injector slope, the injectors themselves, or the fuel pressure regulation. I still suspect an inflated non-linear (or non-parabolic) maf calibration.
Last edited by tequilaboy; Aug 5, 2025 at 04:24 PM.
Well I hate that I wasted everyones time. I apologize. I was going through my chip data in TunerPro and noticed my injector size was set at 30. They're the red Ford 30lb injectors (M-9593-BB302). But when ran at the standard GM fuel pressure they're 32lb. I have a bunch of backed up bins and notes on all changes I've made over the years. Somewhere along the way I must have edited an old bin and kept building it up from there where the injectors were set at 30lbs. I also returned my MAF tables to the original ARAP values. Rbob (god bless) gave me injector offsets for my injectors. They worked fine but I found the correct offsets on Fords website. I also changed those values. For now I let it idle and warm up and no black/grey smoke at closed loop idle.
I did read EVERYTHING everyone posted and learned some things. It is very much appreciated. If it happens to idle rich again I will absolutely try what was suggested here.
TunerPro has an excellent BIN compare feature. I use it all the time to make sure I haven't screwed up. I also give a version to each BIN every time I change something, so I can match them with proper datalog. That way, I know which datalog goes with which BIN. I also note, ambient air temperature, barometric pressure, % humidity, Avg ENG temp, Avg Voltage and Avg IAT, so things can be compared. I had incidents where I was datalogging along the shore where ambient air temperature was varying by 17Deg.F over the test!!! Here are a few screen shots:
PROM ID on my datalog custom dash (circle in yellow)
Parameters to set a PROM ID (BIN Version. 43 is Version 4.3, 44 is version 4.4 and let's say 310 would be version 3.10
Screen shot of "compare" feature on Tuner Pro RT, between version 4.3 and 4.4
Well....another update. I changed my oil and it was a tad low. Nothing crazy. I started thinking what if my wideband is correct, and I am burning oil. Maybe the strong exhaust smell (no cat) is "covering" the oil burning smell. Well long story short I started doing some investigating and I have multiple valve seals leaking. These are AFR 220 heads with around 7,000 miles on them. I purchased them fully assembled. Valve seals were the last thing I'd think of with that kind of miles on them. Ugh.
Once again I appreciate everyone's input and I still learned some new information.