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.
My car idles and runs like crap under 1100 rpm's in closed loop but great in open loop. I have open loop idle set. If I change the BLM-idle cell RPM threshold to 1100 will it stay open loop to 1100 and not effect anything else? I'm running open loop now but feel I might save a little fuel in closed loop.
Last edited by Larry; Jul 31, 2019 at 05:23 PM.
Reason: spelling error
Thanks! I'd like to see what you changed to smooth it out once you're happy.
Today I tried to smooth the idle with:
- PRP Gain Multiplier for Idle
- PRP Idle Duration
- PRP Gain vs O2 Error
- Idle O2 Error Correction
- INT - Added Update Delay When at Idle
- SA Idle High/Low Compensation (decreased it, even zeroed it out)
- INT Delay vs Airflow (my O2 is further downstream than stock)
- IAC - Idle High/Low Step Delays
- O2 - Idle O2 Window Terms (adjusted to 0.425/0.450/0.475mV for stoich) (also adjusted INT - Mean R/L, INT - Lean/Rich O2 to the same values)
- flattening the VE table in idle areas
- AE and Launch delta map qualifiers (the surging is so bad that it activates AE and Launch sometimes, so I increased the delta qulifiers)
- and other stuff I do not remember any more
Tried lots of combinations and values... in the end nothing worked
I am pretty sure it has to do with the PRP Gains because the surging does not occur in open loop. The problem is that a low gain multiplier does not create clean x-counts (INT is moving to create x-counts) while a high multiplier seems to make the surging worse (the WB O2 is also wildly swinging).
The surging is clearly related to the NB O2 swing... but it seems quite impossible to get the total AFR swing into smaller boundaries so it wont cause such a surging. I read hours in the forum an found tons of interesting information but it seems that a smooth closed loop idle is impossible with my combination.
I guess it's related to the big block TBI injectors... maybe 1.2-1.5ms PW is not controlable? My surging issue also occurs at higher rpm with no/little load... but PWs should be more controlable there??
To make a long story short: I cannot help with information how to smooth out the idle
Last edited by Schlabbeloui; Aug 2, 2019 at 04:00 PM.
- PRP Gain Multiplier for Idle
- PRP Idle Duration
- PRP Gain vs O2 Error
- Idle O2 Error Correction
- INT - Added Update Delay When at Idle
- SA Idle High/Low Compensation (decreased it, even zeroed it out)
- INT Delay vs Airflow (my O2 is further downstream than stock)
- IAC - Idle High/Low Step Delays
- O2 - Idle O2 Window Terms (adjusted to 0.425/0.450/0.475mV for stoich) (also adjusted INT - Mean R/L, INT - Lean/Rich O2 to the same values)
- flattening the VE table in idle areas
- AE and Launch delta map qualifiers (the surging is so bad that it activates AE and Launch sometimes, so I increased the delta qulifiers)
- and other stuff I do not remember any more
Tried lots of combinations and values... in the end nothing worked
I am pretty sure it has to do with the PRP Gains because the surging does not occur in open loop. The problem is that a low gain multiplier does not create clean x-counts (INT is moving to create x-counts) while a high multiplier seems to make the surging worse (the WB O2 is also wildly swinging).
The surging is clearly related to the NB O2 swing... but it seems quite impossible to get the total AFR swing into smaller boundaries so it wont cause such a surging. I read hours in the forum an found tons of interesting information but it seems that a smooth closed loop idle is impossible with my combination.
I guess it's related to the big block TBI injectors... maybe 1.2-1.5ms PW is not controlable? My surging issue also occurs at higher rpm with no/little load... but PWs should be more controlable there??
To make a long story short: I cannot help with information how to smooth out the idle
I must have a different issue - I set it to open loop at idle and it still surges. Then I noticed timing is jumping every so often. I replaced the ICM (AC Delco) a while back to cure a similar issue. Now I'm thinking the cap and rotor may be contributing to my issue since I bought a Spectra Premium distributor 3,000 miles ago and, if the ICM was junk maybe the cap and rotor are too. I ordered AC Delco this time.
I'm running 61#/HR injectors at 28 PSI so my PW is ~1.5-1.6ms.
If your timing is jumping you should check for the SA Idle High and Low Correction values. You should also check if your kPa is swinging so much that AE or Launch gets activated. You can increase the delta Map qualifier values for AE and Launch to avoid additional timing advance or retard. But check in the WUD before if the AE and Launch lights come on in idle (like they did before on my engine before I increased the deltas). If not I wont make a difference
I use this only to trace down the reason for the surging... just to take variables from the equation. Once I will find the problem (or being totally frustrated before...) I will try to get back to smaller delta AE/Launch qualifiers.
Hey guys, I have achieved some major improvements in the last days. Here a short summary... maybe it's a help for somebody else fighting with surging and PRP gains:
The issue was surging in idle and under light load. Playing with PRP gains and all the other stuff mentioned above did not work. The point where it all started to work out was when I started adjusting the INT vs. airflow delays (the time the INT "waits" before moving, note there is an additional delay for idle to be adjusted). With the sensors NB/WB a few inches behind the long tube headers the delay needed to be increased by quite a lot. Exhaust gas transport delay seems to be a big factor.
After that it was much easier to try out the PRP gains in the WUD because the INT did not always kick in and confuse the readings. I mainly used the diagnostic screen to check out the NB swing. The goal was lowering the PRP gains/duration as much as possible whilst still remaining proper X-counts. So far I only lowered the whole tables which already improved lot, next step will be some fine tuning for the different air flows in the tables. The amount of difference compared to the stock tables was quite shocking... PRP gain was cut in half just as an example. The big injectors make the difference as the PRP gains ad/subtract PW => so if the injectors are doubled it might be a good starting point to cut PRP gain vs airflow in half and do some further tuning from there.
In the end it was the adjustment of the INT delay that was needed to make the PRP tuning work. At least on my application it was a long overlooked point that caused a lot of headache.
EDIT:
The WB O2 was extremely helpful to see the delta of the WB getting much smaller with the PRPs getting better. You can also use the WB to Re-calibrate the INT MEAN R/L, INT lean and INT rich values so the command AFR matches reality better. It did that by comparing the (average) O2 readings to the commanded AFR and then moving the whole tables (all by the same amount up or down). But be aware of O2 passing into the exhaust with big cams at idle (there is already a lot written about that in this forum).
A question to @RBob : How much delta AFR could one expect in the closed loop cycling once the PRPs are set? I have about +/- 1 AFR (2 total delta) swing from the AVERAGE at idle... is that still too much?
Last edited by Schlabbeloui; Aug 9, 2019 at 07:53 AM.
A question to @RBob : How much delta AFR could one expect in the closed loop cycling once the PRPs are set? I have about +/- 1 AFR (2 total delta) swing from the AVERAGE at idle... is that still too much?
Hard to say, I usually run open loop idle on modified engines. It comes down to how the engine likes the AFR swing. If the engine reacts to the change in AFR, would try to lessen the swing.
If the engine just sits there like nothing is going on, can leave it as-is.
Hey guys, I have achieved some major improvements in the last days. Here a short summary... maybe it's a help for somebody else fighting with surging and PRP gains:
The issue was surging in idle and under light load. Playing with PRP gains and all the other stuff mentioned above did not work. The point where it all started to work out was when I started adjusting the INT vs. airflow delays (the time the INT "waits" before moving, note there is an additional delay for idle to be adjusted). With the sensors NB/WB a few inches behind the long tube headers the delay needed to be increased by quite a lot. Exhaust gas transport delay seems to be a big factor.
After that it was much easier to try out the PRP gains in the WUD because the INT did not always kick in and confuse the readings. I mainly used the diagnostic screen to check out the NB swing. The goal was lowering the PRP gains/duration as much as possible whilst still remaining proper X-counts. So far I only lowered the whole tables which already improved lot, next step will be some fine tuning for the different air flows in the tables. The amount of difference compared to the stock tables was quite shocking... PRP gain was cut in half just as an example. The big injectors make the difference as the PRP gains ad/subtract PW => so if the injectors are doubled it might be a good starting point to cut PRP gain vs airflow in half and do some further tuning from there.
In the end it was the adjustment of the INT delay that was needed to make the PRP tuning work. At least on my application it was a long overlooked point that caused a lot of headache.
Very interesting - I'm going to check out the INT delay's with respect to my idle surging as well - I seem to have a similar situation to what you are describing. My O2 is farther down stream due to running headers. I have about a 75 RPM idle surge that I'm working on eliminating.
Did you find that you had to change all the delay's? My issue is really only at idle so I'm thinking of trying to add to the update delay at idle and see if that is sufficient.
I'm going to have to replace my fuel pump. I'm worried that the new pump might deliver a slightly different pressure than the current one.
Is there a rule of thumb by how much the VE tables should be adjusted for each lb of fuel pressure change?
Fuel pressure is regulated by the mechanical fuel pressure regulator on the rail or on the TBI. The pump does not matter unless it makes less pressure than the regulator setting.
Grumpy, i need some help with an EBL flash 2 on my crossfire, just got it on and running, had an IAT SES light, masked it out with the mask bit, but have what looks like spark knocks, even though car seems to rum better than it ever has. Have set all of the CTS/IAT blends to 100% but nothing has changed, should i increase the fuel?? or decrease the timing, and if so, what are some hints, hate to sound stupid AND out of place but i am learning as i go and you are one of the best.
thanks
forgot to put in that it is a stock 82CFU running the EBL_CFI82 Bin
Last edited by Frank J Roberts; Sep 6, 2019 at 06:49 AM.
Reason: forgot informaion
Posted about this in my build thread but thought I might ask here as well since I am running EBL Flash.
I am working on finishing a install of a Mark VIII cooling fan. My taurus fan quit on me and I wanted an even better replacement since I am running AC on the car.
My harness setup will remain the same for low speed. I run a main relay powering my Volvo 2-Speed Fan Control Relay. Low Speed activated by the ECM at my set temps. What I am wanting to do is have my high speed controlled by the AC being on as well as having the option to turn it on manually with a switch. The Volvo relay is controlled by grounding for both Low/High. It is my understanding that the AC circuit through the AC switches is 12V and the compressor itself is grounded through the block. I am well aware there is nothing to be done internally or wired directly to the EBL Flash for a secondary fan control. That's been asked numerous times already.
I am trying to keep the High speed control as simple as possible. I want to avoid cluttering up the engine compartment anymore then I have to. So other then adding yet another relay to switch from 12V to ground when AC is running or installing a temp switch in a cooling passage do I have any other options?
Posted about this in my build thread but thought I might ask here as well since I am running EBL Flash.
I am working on finishing a install of a Mark VIII cooling fan. My taurus fan quit on me and I wanted an even better replacement since I am running AC on the car.
My harness setup will remain the same for low speed. I run a main relay powering my Volvo 2-Speed Fan Control Relay. Low Speed activated by the ECM at my set temps. What I am wanting to do is have my high speed controlled by the AC being on as well as having the option to turn it on manually with a switch. The Volvo relay is controlled by grounding for both Low/High. It is my understanding that the AC circuit through the AC switches is 12V and the compressor itself is grounded through the block. I am well aware there is nothing to be done internally or wired directly to the EBL Flash for a secondary fan control. That's been asked numerous times already.
I am trying to keep the High speed control as simple as possible. I want to avoid cluttering up the engine compartment anymore then I have to. So other then adding yet another relay to switch from 12V to ground when AC is running or installing a temp switch in a cooling passage do I have any other options?
Your setup is getting over complicated pretty quick. Here's what I have done in the past.
I used a solid state time delay box to delay the activation of the high speed. The fan control is composed of two relays. One for the main power, the other for switching the speeds. The NC contact of the switch goes to the low speed, and the NO contact goes to the high speed. The EBL will trigger the fan (and add IAC steps) whenever the car is hot, or compressor kicks on. The low speed stays on until the time delay box turns on, which energizes the coil on the speed control relay, de-energizes the low speed, and energizes the high speed. Basically a delayed high speed to prevent a huge power draw. All power to the motor goes through a hefty, self-resetting circuit breaker.
When you run a Taurus (or other good fan) you're gonna need the iac steps to compensate. These fans suck up a LOT of power. Leaving everything under the control of the EBL is the best way to go IMO. You can always add a fan bypass switch in the head or on the high side line, similar to factory, if you're concerned about the ecm control.
No reason to run a manual switch when you have an EBL.
The time delay is a good idea. Something I have read about but forgot about when brainstorming on this. That seems like the easiest and "simplest" solution at this point.
Its funny you mention the IAC. It really is crazy how much the fan kicking on can affect things even just low speed. I added some when the Taurus fan was installed. I might have to revisit those values some once the larger Mark VIII fan is finished.
What delay box did you go with? A quick search found a substantial selection but most seemed quite large in size.
The time delay is a good idea. Something I have read about but forgot about when brainstorming on this. That seems like the easiest and "simplest" solution at this point.
Its funny you mention the IAC. It really is crazy how much the fan kicking on can affect things even just low speed. I added some when the Taurus fan was installed. I might have to revisit those values some once the larger Mark VIII fan is finished.
What delay box did you go with? A quick search found a substantial selection but most seemed quite large in size.
I used a Dayton 2A562 from what I remember. One side was the signal to the coil (from the switched +12 on the first relay), and the load side went to the coil side of the second speed controller relay. The first relay, was controlled by the ebl.
Since then, the low speed took a dump. I’ve been running nothing but the high speed for several years. I definitely know when the fan comes on, but it’s not as bad once the iac stuff gets tuned. The best thing I did was put the relay and circuit breaker in a closed junction box. It’s been very reliable and problem free.
Here is a quick drawing showing my current setup and what is needed.
I don't believe that time delay will work as I need the input/output of the time delay to be a grounded source. Maybe something like HELLA 996152151 will work as it is a normal relay with time delay built in?
Here is a quick drawing showing my current setup and what is needed.
I don't believe that time delay will work as I need the input/output of the time delay to be a grounded source. Maybe something like HELLA 996152151 will work as it is a normal relay with time delay built in?
There are also a bunch of simple ones on eBay/amazon that are programmable. Most of those should also have a ground trigger. I’ve considered one of those before too. Simple enough to wire in and program, but I would definitely add some redundancy with a unit like that.
There are also a bunch of simple ones on eBay/amazon that are programmable. Most of those should also have a ground trigger. I’ve considered one of those before too. Simple enough to wire in and program, but I would definitely add some redundancy with a unit like that.
What I am struggling to find is one that has a ground trigger AND ground output. The Hella one I found is similar enough to a standard relay that I am assuming it can be connected like any other relay right? Similar to this but with 85 being (-) trigger shared from ECM/Low Speed Trigger and 86 being 12v sourced from main fan power relay (to keep everything tidy and closely located).
Edit:
Found this diagram of the HELLA Time Delay Relay. Looks like I could use this. I would have GND to 30, 12v from Main Fan Power Relay on 15, ECM Trigger (GND) to 31, and then come out of it with a delayed GND to 87.
My only question now is, sending the ECM GND Fan Trigger to 2 relays. Is this a no no?
Last edited by dabomb6608; Sep 17, 2019 at 12:05 PM.
Reason: Added additional image.
Continuing this fan conversation but keeping in line with EBL Questions. I believe I have my wiring and delay relay situation figured out. Below is how I will plan to wire everything up. My biggest question now is, is it okay to have the fan trigger coming from the ECM split as shown to trigger 3 relays like that? Its kept to the low current side of each relay circuit and only controlling the relay coils themselves.
I'm getting some spark knock after the engine gets hot, and I'd like to dial back the timing a bit.
Should I update SA-Coolant Comp Spark Advance or SA-IAT/CST Compensation, some combination of the two, or something else entirely?
For both these tables looks like they are fully populated with a default value of 9.84.
I'm getting some spark knock after the engine gets hot, and I'd like to dial back the timing a bit.
Should I update SA-Coolant Comp Spark Advance or SA-IAT/CST Compensation, some combination of the two, or something else entirely?
For both these tables looks like they are fully populated with a default value of 9.84.
I do not have a knock sensor in this application.
I would look at what your IAT values are seeing when spark knock occurs. If they are the main culprit then the SA-IAT/CST Comp would need more attention. If it is mostly just when coolant starts getting settled in to running temps then the SA-Coolant Comp will be your main changes. It will most likely end up being a combination of the two. Keep in mind how the SA Temperature Compensation tables work.
"SA - Coolant Comp Spark Advance
This table defines spark advance changes relative to coolant temperature and manifold vacuum. The 'SA - Coolant Comp Bias SA' term is subtracted from this table. The purpose is to allow negative SA compensation.
SA - IAT/CTS Compensation
This table defines spark advance changes relative to the intake air temperature and engine coolant. The 'SA - IAT/CTS Comp Bias SA' term is subtracted from this table. The purpose is to allow negative SA compensation. The IAT/CTS value is the blended value that is also used for the fueling calculation. See the 'IAT/CTS - Blend Filter' table. "
Just to update on my fan control wiring. I finished the install and got the Hella Adjustable Time Delayed Relay setup to activate high speed ~2 mins after the fan is commanded by the ECM to turn on. Seems to be working well so far with low speed spooling up and seamlessly changing over to high speed without any crazy voltage drops.
I drove around in some 90* weather yesterday with the AC on. Stopping at a few stores. Temps never climbed over 200* (Per factory gauge not CTS readings). I think I might end up lowing the delay to 30-60 seconds to help with frequent start/stops like that when running errands.
What are the bare minimum of tables that need to be adjusted to run some E85? I would like to run a tank of half E85 and half 93 gas to check the effect on a spark knock/detonation problem I've been having.
At first I was thinking that I would just bump the VE tables by 15% but then realized that there are tables where the AFR may need to change like PE – AFR Commanded and Closed Loop AFR. Then to confuse me more I thought that the Stoich AFR in the Wide Band Controller setup might come into play as well.
So question for the day is what is the quickest way to setup to run a tank of 50% E85? At this point I am not considering any fuel injector changes or anything else mechanical.
It would introduce fewer variables when checking for detonation if you run race gas instead of E85. Lot less work IMO. Couple of 5 gallon cans of VP C10......
Trying to guess at what octane you will get with blended E85 pump fuel..... E85 from the pump is notoriously NOT 85% Ethanol. The car on my dyno today has pump E85 and the ethanol content gauge in the car is reading E80. I have seen them read E65 from pump fuel. E85 is about 106 if you actually get E85. blend that with 92 and you probably are still under 100. How much under? Who knows really. It's too much of a guess unless you buy E98 in a pail from VP, etc and then blend that with quality 93 pump.... with the re-tuning required there's just too many variables and I don't think you could draw any conclusions from it.
GD
Last edited by GeneralDisorder; Oct 15, 2019 at 02:02 PM.
No need to change the VE tables. There is a handful of AFR values & tables that should be changed. Here are the values and tables to change for E45:
RBob.
Thanks RBob,
I adjusted the tune with your suggestions and with the half tank of E85, and the engine ran pretty well. One thing that I noticed from the data log was a much larger lean spike during gear changes than I had previously with 100% pump gas. Am I correct in increasing the AE- MAP PW & AE-TPS PW when running the E85, or is there a better way to deal with that lean condition?
Have a question in regards to the MAP - Normal/Transient Filter. Idle with a larger cam that has a bit of lope/chop to it results in a KPa fluctation of about 4 KPa. Spark advance at idle is locked and the IAC holds a single value for the most part at idle. WB readings at idle are somewhat useless due to the overlap so idle fuel and spark was tuned to lowest KPa as if it was a carb. VE table is smooth but not dead flat at idle area.
Would increasing the filter applied (lowering the numerical inputs for Normal Filter) help even out the fluctuating MAP reading at idle without negatively affecting other areas of drivability or is it just a nature of the beast kind of situation? I don't have any drivability issues I am trying to solve by doing this. Just something I noticed looking back at my datalogs in excel.
Have a question in regards to the MAP - Normal/Transient Filter. Idle with a larger cam that has a bit of lope/chop to it results in a KPa fluctation of about 4 KPa. Spark advance at idle is locked and the IAC holds a single value for the most part at idle. WB readings at idle are somewhat useless due to the overlap so idle fuel and spark was tuned to lowest KPa as if it was a carb. VE table is smooth but not dead flat at idle area.
Would increasing the filter applied (lowering the numerical inputs for Normal Filter) help even out the fluctuating MAP reading at idle without negatively affecting other areas of drivability or is it just a nature of the beast kind of situation? I don't have any drivability issues I am trying to solve by doing this. Just something I noticed looking back at my datalogs in excel.
Yes, but then you’re slowing the response of the map sensor for all of open loop fueling. Alpha-N blending will do exactly what you are trying to do at idle, and leave the response of the sensor unaffected.
I've always wondered what N-Alpha was useful for. I've spent some time today searching around for some descriptive responses on how to implement it and how the compensations for IAC and RPM work. I've read some posts describing scenarios for when it is helpful. And a few describing the need to zero the IAC and run with it unplugged to get some datalogs in order to fill in the 3d table for N-Alpha.
So lets say for example I wanted it to ONLY affect idle. I would take the TPS/RPM Blend Factor table and 0 out all RPMs above 1000 RPM correct? Then from there fine tune the MAP KPa vs RPM & TPS tables as well as the comp tables to report accurate KPa values at idle?
A follow up question to that would be how do I know when N-Alpha is active looking at the WUD and is the MAP KPa showing on WUD the blended value or only the value reported by the actual sensor?
RJ, we have the same cam albeit different intakes. Have you implemented N-Alpha? What KPa do you idle at? I'd be very intrigued to see a log of your idle verse mine. I idle at 32* Spark and roughly 50-56 KPa. WB readings bounce from 13-16 during idle but seem to average in the middle. I paid zero attention to WB when I fine tuned idle. Setup several tunes with progessively leaner VE and settled on the current values that resulted in lowest KPa values. Open loop full time.
I've always wondered what N-Alpha was useful for. I've spent some time today searching around for some descriptive responses on how to implement it and how the compensations for IAC and RPM work. I've read some posts describing scenarios for when it is helpful. And a few describing the need to zero the IAC and run with it unplugged to get some datalogs in order to fill in the 3d table for N-Alpha.
So lets say for example I wanted it to ONLY affect idle. I would take the TPS/RPM Blend Factor table and 0 out all RPMs above 1000 RPM correct? Then from there fine tune the MAP KPa vs RPM & TPS tables as well as the comp tables to report accurate KPa values at idle?
A follow up question to that would be how do I know when N-Alpha is active looking at the WUD and is the MAP KPa showing on WUD the blended value or only the value reported by the actual sensor?
RJ, we have the same cam albeit different intakes. Have you implemented N-Alpha? What KPa do you idle at? I'd be very intrigued to see a log of your idle verse mine. I idle at 32* Spark and roughly 50-56 KPa. WB readings bounce from 13-16 during idle but seem to average in the middle. I paid zero attention to WB when I fine tuned idle. Setup several tunes with progessively leaner VE and settled on the current values that resulted in lowest KPa values. Open loop full time.
I think you've done a pretty good job figuring out how it works. The "legit" way to do it is to datalog a drive with the IAC unplugged so you can figure out the Alpha-N IAC table. For what you/we are looking for, using alpha N in the idle area works fine if you taper out the blend tables after about 1000 rpm or so. (I'm still playing around with alpha n for the most part) If you have a hefty cooling fan, A/C, etc... then it makes sense to spend a couple of minutes tweaking the IAC table. Mine really doesn't add a whole lot to the map value.
As far as I know, there is no way to know you are in alpha N. Depending on how you bias the blend value, you'll have a pretty good idea if you are in alpha-N blend mode or not. To answer your question, the alpha-N mode does all the work in the background, and the MAP kpa value you see on the WUD is the value that is a function of the sensor value AND blend table. When I used it, I had a rock solid MAP value on the WUD with very little flutter. I ended up turning it off in the meantime, since I was able to get a decent idle at a higher target RPM.
Currently, I idle at around 55-60 kpa. About 850 rpm or so. I haven't checked in a bit, but my idle SA is in the 32-34* neighborhood. You're right in ignoring WB readings at idle. My WB shows 17-18:1 at idle. Any richer and it stinks even worse than normal, and any leaner it will start to surge. I've given the same advice about idle fuel tuning before, and people have had good results. I also recommend reading plugs to find where your engine wants to idle at. Alternatively, lean the crap out of it until it starts to surge, then add some fuel back in and you're golden. My only complaint about the idle right now is that it STINKS. Can't complain too much, as it's unrealistic to expect a stock idle from an engine with a big boom stick and lots of overlap. Feel free to PM me if you would like to discuss anything. I'm always interested in how that cam behaves for other people.
Long time lurker, first time poster. Just wanted to drop in, share my own EBL project & status, and say: I love your product! I tell anyone who will listen as much. Are you hiring sales reps?
I also really appreciate all you regular forum contributors, from whom I have gleaned gobs and gobs of helpful information, pointers to follow, and pitfalls to avoid. I am light years ahead of where I would be if I had to figure it all out alone, so, sincerely, thank you. I've read and reread this thread in particular a number of times, and I'm still learning.
I'm running an older EBL Flash I got for a steal from a user on a similar forum. Serial to USB style. It is the brilliant brains to my beating heart, a home-built 383 consisting of:
-SCAT stroker rotating assembly (cast crank, forged rods, forged flat tops)
-Zero-decked .030 over block
-Comp 12-250-3 XE284H-10 flat tappet cam
-Stamped 1.6:1 rockers
-RHS 180cc intake / 61cc combustion (milled) aluminum heart chamber heads
-Renegade crossfire-style intake
-Parallel-plumbed TBs with TJ11 injectors (80lb, unconfirmed)
-Aeromotive vac ref fuel pressure regulator
-Overly capable Walbro pump
-Hooker long tube headers to dual exhaust w/x-pipe and bullet cats
-AEM wideband with pillar gage and input to EBL
-Honeywell 0-50 PSI fuel pressure sensor with input to EBL
It lives in a C4 which my dad bought new in 1984. He kept it mostly stock, maintained it for the better part of 30 years, and left it to me to build. I do have an automotive background, but I ended up driving it for about a year doing no mods except the intake and exhaust. W the exception of a new wideband setup, I used only forum/eBay secondhand parts. Eventually added the heads when I found some floor models that needed machining. It was a slow creep, as I was trying to keep everything absolutely bottom dollar, without sacrificing quality of parts.
When it ate a rod bearing, the next logical step was a bulletproof bottom end. Aside from the WB, those were the first shiny new parts to go into this engine. I'm pretty proud of the combo I've been able to build on a (mostly) wife-friendly budget. New bottom end meant a good reason to go for more cubes, which, with the existing modifications, begged for a camshaft (OK, so I bought this, and the valvetrain to support it new as well - don't tell the wife ). And all that together required a fresh tune, which, in the DIY spirit of the project, I also wanted to handle myself - so, enter EBL!
Now five years into ownership of the car, and have been running on the EBL for the past 3 seasons (I'm in Michigan, so ~7-8 months good driving weather per year), since the engine rebuild - I broke in the cam on the stock computer, then swapped over all the connections only after I knew it would mechanically fire and run. And man, it runs great - and in particular, quite noticeably better at parking lot speeds, after recently adding an IAT sensor. From watching how slowly IAT temps adjust from traffic to cruise conditions, however, and knowing my hood has a built-in cold air passages, I do need to relocate the sensor farther upstream (currently in the air filter housing).
I'm still using open loop fueling, but will eventually go to closed once I iron out or compensate for a few minor fueling inconsistencies which seem to be cam-related. Idles super steady at a reported 13.8 - 14.2:1 AFR / 800 RPM / 68-72 MAP (~30 KPA VAC) when warm, with 5-10 IAC steps as recommended. Obviously that's fairly low vacuum for a street machine, but other than a little chugging at low speed (not timing- or fuel-influenced, so probably just unavoidable drivetrain windup with this combination of stick, cam, and stock 3.07 rear end), it runs great. Brakes work fine, cruise does not, but I have not gotten around to diagnosing that, so there's a good chance it's not vacuum related at all - supply should be sufficient.
My current state: can't seem to get truly consistent fueling. Idle, cruise, and WOT are pretty well nailed down, with variation minimal enough that closed loop corrections will work fine once implemented. However, at 35KPA MAP and below, VE corrections swing +/-12 in consecutive learns.
Unfortunately, logs say that at the current BPC and high vac, it's probably just a short pulsewidth/injector mechanical limit issue (~0.9ms commanded at minimum demand, and I believe the floor for control is around 1.2ms IIRC). Compounding that, I'm sure, is cam overlap doing funky things to the wideband reading in high vacuum/low RPM cells, making VE learn less effective, perhaps to the point of counteracting what the engine actually wants. So, being unable to control those factors directly, I ditched the liquid filled fuel pressure gage for a data-friendly sensor to investigate any inconsistency on that front.
Running 15 PSI fuel pressure at idle, which dips as low as 10 as vac increases, and rises to 19 at WOT (averages). The recent addition of a fuel pressure sensor made it clear that the calculated BPC was too high at the high vac end, so I recalculated at each vac interval according to actual fuel pressure vs vac pulled from drive logs. Below is an image from one of my logs, for those curious about the pattern of performance. Data shows a consistent fluctuation of +/-1 PSI at higher pressures, which drops to +/-0.5 down around 10 PSI (this is the Aeromotive 13301 regulator, using the low pressure spring). Interestingly, the FP-vs-VAC trend only has a constant slope from 0-50 VAC (100-50 MAP). From 55-75 VAC (45-25 MAP) fuel pressure remained steady, then dropped a bit further at 80 VAC.
What I really need is to get to the track for some 1/4 mile runs, to nail down the minimum fuel I need for ~12.6:1 at the top end. It's just a calculation-supported guess at this point. With real numbers, I can potentially drop some fuel pressure, and then raise the BPC back into the usable range for low MAP & RPM areas. However, lower demand would mean I'd be making less power than estimated...so I don't really know what to hope for! Will have to research whether introducing high load async might help find a happy medium.
Anyway, this is becoming a rather long post, so I'll leave it at that for now. I welcome any comments/questions/tips on my build & tune, and again, thank you all for supporting this fantastic product! It's been a helluva lot of fun so far
Last edited by fr383dom; Oct 24, 2019 at 05:32 PM.
I think you've done a pretty good job figuring out how it works. The "legit" way to do it is to datalog a drive with the IAC unplugged so you can figure out the Alpha-N IAC table. For what you/we are looking for, using alpha N in the idle area works fine if you taper out the blend tables after about 1000 rpm or so. (I'm still playing around with alpha n for the most part) If you have a hefty cooling fan, A/C, etc... then it makes sense to spend a couple of minutes tweaking the IAC table. Mine really doesn't add a whole lot to the map value.
As far as I know, there is no way to know you are in alpha N. Depending on how you bias the blend value, you'll have a pretty good idea if you are in alpha-N blend mode or not. To answer your question, the alpha-N mode does all the work in the background, and the MAP kpa value you see on the WUD is the value that is a function of the sensor value AND blend table. When I used it, I had a rock solid MAP value on the WUD with very little flutter. I ended up turning it off in the meantime, since I was able to get a decent idle at a higher target RPM.
Currently, I idle at around 55-60 kpa. About 850 rpm or so. I haven't checked in a bit, but my idle SA is in the 32-34* neighborhood. You're right in ignoring WB readings at idle. My WB shows 17-18:1 at idle. Any richer and it stinks even worse than normal, and any leaner it will start to surge. I've given the same advice about idle fuel tuning before, and people have had good results. I also recommend reading plugs to find where your engine wants to idle at. Alternatively, lean the crap out of it until it starts to surge, then add some fuel back in and you're golden. My only complaint about the idle right now is that it STINKS. Can't complain too much, as it's unrealistic to expect a stock idle from an engine with a big boom stick and lots of overlap. Feel free to PM me if you would like to discuss anything. I'm always interested in how that cam behaves for other people.
I do have a hefty fan (Mark VIII 2 speed setup that we discussed about a month ago with the delayed relay setup for high speed). It is surprisingly easy on the alternator/motor on activation. AC on the other hand is VERY noticeable and would require some attention I think to get N-Alpha to jive with it.
Forgot to mention my idle is at 900-950 at temp. I agree completely on idle and its smell. I want it to smell better. But realistically it just isn't possible without installing a pair of converters. And even then with the over lap I doubt the converters would last long.
I will look into N-Alpha some more after I address a valve spring issue I just kind of stumbled across. Long story short, the springs I have been running since installing the H/C/I (recommended by a forum member that was also running this cam) are not correct at all and its a miracle I haven't caused major damage in the 6 years this cam has been installed...I was going to ask for your spring part numbers but this is a Hydraulic Flat Tappet cam so I don't think yours would be the same.
Long time lurker, first time poster. Just wanted to drop in, share my own EBL project & status, and say: I love your product! I tell anyone who will listen as much. Are you hiring sales reps?
I also really appreciate all you regular forum contributors, from whom I have gleaned gobs and gobs of helpful information, pointers to follow, and pitfalls to avoid. I am light years ahead of where I would be if I had to figure it all out alone, so, sincerely, thank you. I've read and reread this thread in particular a number of times, and I'm still learning.
I'm running an older EBL Flash I got for a steal from a user on a similar forum. Serial to USB style. It is the brilliant brains to my beating heart, a home-built 383 consisting of:
-SCAT stroker rotating assembly (cast crank, forged rods, forged flat tops)
-Zero-decked .030 over block
-Comp 12-250-3 XE284H-10 flat tappet cam
-Stamped 1.6:1 rockers
-RHS 180cc intake / 61cc combustion (milled) aluminum heart chamber heads
-Renegade crossfire-style intake
-Parallel-plumbed TBs with TJ11 injectors (80lb, unconfirmed)
-Aeromotive vac ref fuel pressure regulator
-Overly capable Walbro pump
-Hooker long tube headers to dual exhaust w/x-pipe and bullet cats
-AEM wideband with pillar gage and input to EBL
-Honeywell 0-50 PSI fuel pressure sensor with input to EBL
It lives in a C4 which my dad bought new in 1984. He kept it mostly stock, maintained it for the better part of 30 years, and left it to me to build. I do have an automotive background, but I ended up driving it for about a year doing no mods except the intake and exhaust (with the exception of a new wideband setup, these were entirely forum/eBay secondhand parts). Eventually added the heads when I found some floor models that needed machining. It was a slow creep, as I was trying to keep everything absolutely bottom dollar, without sacrificing quality of parts.
When it ate a rod bearing, the next logical step was a bulletproof bottom end. Along with the wideband, those were the first and only shiny new parts to go into this engine. I'm pretty proud of the combo I've been able to build on a (mostly) wife-friendly budget. New bottom end meant a good reason to go for more cubes, which, with the existing modifications, begged for a camshaft (OK, so I bought this and the valvetrain to support it new, as well - don't tell the wife). And all that together required a fresh tune, which, in the DIY spirit of the project, I also wanted to handle myself - so, enter EBL!
Now five years into ownership of the car, and have been running on the EBL for the past 3 seasons (I'm in Michigan, so ~7-8 months good driving weather per year), since the engine rebuild - I broke in the cam on the stock computer, then swapped over all the connections only after I knew it would mechanically fire and run. And man, it runs great - and in particular, quite noticeably better at parking lot speeds, after recently adding an IAT sensor. From watching how slowly IAT temps adjust from traffic to cruise conditions, however, and knowing my hood has a built-in cold air passages, I do need to relocate the sensor farther upstream (currently in the air filter housing).
I'm still using open loop fueling, but will eventually go to closed once I iron out or compensate for a few minor fueling inconsistencies which seem to be cam-related. Idles super steady at a reported 13.8 - 14.2:1 AFR / 800 RPM / 68-72 MAP (~30 KPA VAC) when warm, with 5-10 IAC steps as recommended. Obviously that's fairly low vacuum for a street machine, but other than a little chugging at low speed (not timing- or fuel-influenced, so probably just unavoidable drivetrain windup with this combination of stick, cam, and stock 3.07 rear end), it runs great. Brakes work fine, cruise does not, but I have not gotten around to diagnosing that, so there's a good chance it's not vacuum related at all - supply should be sufficient.
My current state: can't seem to get truly consistent fueling. Idle, cruise, and WOT are pretty well nailed down, with variation minimal enough that closed loop corrections will work fine once implemented. However, at 35KPA MAP and below, VE corrections swing +/-12 in consecutive learns.
Unfortunately, logs say that at the current BPC and high vac, it's probably just a short pulsewidth/injector mechanical limit issue (~0.9ms commanded at minimum demand, and I believe the floor for control is around 1.2ms IIRC). Compounding that, I'm sure, is cam overlap doing funky things to the wideband reading in high vacuum/low RPM cells, making VE learn less effective, perhaps to the point of counteracting what the engine actually wants. So, being unable to control those factors directly, I ditched the liquid filled fuel pressure gage for a data-friendly sensor to investigate any inconsistency on that front.
When fine tuning with VE learns - reduce the size of the corrections that the WUD is allowed to perform, and after each learn you should go in and manually smooth areas around the learned cells that could not be learned - remember that cells are weighted based on surrounding cells depending on where in the VE table you are currently running.
Some variation is normal, but the VE map should not look like marble madness - transitions between cells need to be somewhat smooth or it will cause rapid changes in fueling causing things like idle surging, etc as the fueling jumps around from cell to cell.
Also at some point you have to stop - split the difference - and call it a day. With speed density you just ARE going to have a pretty wide variation in fueling due to ambient conditions and you have to use other means to counteract the situation. +/- 15% fueling is pretty common with SD tunes and you just do the best you can with it. Usually that means getting to the point you are at where successive learns are returning equal/opposite variations. You split the difference, add a margin to enrich for safety and call it good..... This is the WHY that engineers and car manufactures virtually always choose to use MAF based systems........ Move the IAT sensor away from places where it will badly heat soak, and you use the warm restart enrichment to fatten it up if you get some heavy heat soak in hot weather, and you run a heated O2 sensor and get it into a closed loop idle as quickly as you can to straighten out the fueling after startup (closed loop will counter the heat soak). If you can keep it within the ECU's ability to adjust with BLM and INT and see a solid 14.7 wideband under all idle/cruise seasonal changes you are doing good. Obviously radical cams that force open loop idle make things more difficult - there is N-Alpha for that - but the reality is that all professional tuners that are going to spend about 2-4 hours with the car on a dyno (unless you want to pay out the butt) are just going to drop it into open loop, fatten it up so it idles rich AF, get to not surge with accessories on/off and call it a day.
People get really caught up in achieving the magical 128 BLM/INT under all circumstances and the reality is that the factory limits of 108 and 160 represent only 16% and 26% fuel trims respectively (using both BLM and INT railed). That's 16% enleanment, and 26% enrichment to counter rich or lean conditions. Most modern cars don't even throw a code till they are +/- 25% and they have much more accurate MAF based injection systems for the most part. If you fire up a modern, accurate MAF based car and watch the trims.... it's not unusual to see +/- 5% or even 10%. With SD you will fight to achieve this and probably lose. You may win the day, or the week, or the month - but come 6 months later when the ambient conditions are totally different..... you'll see what I mean.
When fine tuning with VE learns - reduce the size of the corrections that the WUD is allowed to perform, and after each learn you should go in and manually smooth areas around the learned cells that could not be learned - remember that cells are weighted based on surrounding cells depending on where in the VE table you are currently running.
Some variation is normal, but the VE map should not look like marble madness - transitions between cells need to be somewhat smooth or it will cause rapid changes in fueling causing things like idle surging, etc as the fueling jumps around from cell to cell.
Also at some point you have to stop - split the difference - and call it a day. With speed density you just ARE going to have a pretty wide variation in fueling due to ambient conditions and you have to use other means to counteract the situation. +/- 15% fueling is pretty common with SD tunes and you just do the best you can with it. Usually that means getting to the point you are at where successive learns are returning equal/opposite variations. You split the difference, add a margin to enrich for safety and call it good..... This is the WHY that engineers and car manufactures virtually always choose to use MAF based systems........ Move the IAT sensor away from places where it will badly heat soak, and you use the warm restart enrichment to fatten it up if you get some heavy heat soak in hot weather, and you run a heated O2 sensor and get it into a closed loop idle as quickly as you can to straighten out the fueling after startup (closed loop will counter the heat soak). If you can keep it within the ECU's ability to adjust with BLM and INT and see a solid 14.7 wideband under all idle/cruise seasonal changes you are doing good. Obviously radical cams that force open loop idle make things more difficult - there is N-Alpha for that - but the reality is that all professional tuners that are going to spend about 2-4 hours with the car on a dyno (unless you want to pay out the butt) are just going to drop it into open loop, fatten it up so it idles rich AF, get to not surge with accessories on/off and call it a day.
People get really caught up in achieving the magical 128 BLM/INT under all circumstances and the reality is that the factory limits of 108 and 160 represent only 16% and 26% fuel trims respectively (using both BLM and INT railed). That's 16% enleanment, and 26% enrichment to counter rich or lean conditions. Most modern cars don't even throw a code till they are +/- 25% and they have much more accurate MAF based injection systems for the most part. If you fire up a modern, accurate MAF based car and watch the trims.... it's not unusual to see +/- 5% or even 10%. With SD you will fight to achieve this and probably lose. You may win the day, or the week, or the month - but come 6 months later when the ambient conditions are totally different..... you'll see what I mean.
GD
Thank you for your candor and your response! Good to know from what sounds like an industry-insider perspective that I’m in the ballpark and in good company. Also good to hear a voice of reason, because while I recognize that I’m chasing a pipe dream on inefficient, outdated architecture (by today’s standards) I’ve been known to get carried away in the minutiae regardless
The tuning bug has bit me bad, so now that I have a nice-running daily driver with (at minimum) 50% more horses than the measly 205 stock, I’m chasing the little things - for science.
It sure is fun, all this dabbling. I had played a bit with auto learns @ zero smoothing factor, and fully manual smoothing (have to flatten cells around 800RPM/70MAP to get idle rock steady), but I will work a bit more with that and see if I can tighten things up further.
Changing ambient conditions this time of year have been a challenge - and that’s actually the main reason I added an IAT sensor. It improved low RPM behavior more than I expected, and helps keep knock counts down when the sensor is reading cold enough (i.e. reading more accurate inlet temps).
I did do quite a few warmup log sessions pre-IAT to get the CTS fueling compensation dead on (with no startup choke fuel in play, for that purpose), so I’m sure it helps to have a solid starting point for the blend factor.
Despite the wisdom in your fair warning, I will probably continue to chase the perfect tune
I’m sure much of the remaining gains will come with dyno time specifically for dialing in the spark map. Watched an episode of Engine Masters recently where they threw fuel, and then spark way off ideal...ignition timing made a far more dramatic difference, by the numbers.
Last edited by fr383dom; Oct 25, 2019 at 07:05 AM.
Changing ambient conditions this time of year have been a challenge - and that’s actually the main reason I added an IAT sensor. It improved low RPM behavior more than I expected, and helps keep knock counts down when the sensor is reading cold enough (i.e. reading more accurate inlet temps).
I did do quite a few warmup log sessions pre-IAT to get the CTS fueling compensation dead on (with no startup choke fuel in play, for that purpose), so I’m sure it helps to have a solid starting point for the blend factor.
Despite the wisdom in your fair warning, I will probably continue to chase the perfect tune
The CTS compensation on the EBL consists of only the 1d table for CTS blend percentage vs. airflow grams/second (which is itself a derived value from the speed density calculations and the airflow scalar......) there are too many calculations and estimates being performed for it to be as accurate as you are seeking. Neither does it really need to be more accurate. One thing you come up against is the heat soak factor..... you can't eliminate it entirely and lets say it's about 100 degrees outside and you start the engine after it being parked fully up to temp and sitting in an asphalt parking lot for 20 minutes..... you start out in open loop and the IAT sensor says the air is something stupid like 170 degrees. You have to use the warm restart function to dump in a bunch of extra fuel to offset the SD calculation that's massively skewed due to the crazy IAT readings. Even blending in the CTS value will have little effect because if you blend in enough to fix the heat soak then the blend will totally fail when the IAT isn't heat soaked. And the IAT sensors (even the open element, plastic body units) don't respond fast enough to cool off within a reasonable amount of time (especially at idle airflow) so you are pretty much left either running super lean (which can cause a stall it's so ridiculously lean), or using the closed loop fuel trims to compensate. The usual strategy being to use the warm restart enrichment to bridge the gap and use a heated O2 to get the ECM into closed loop as quickly as possible and begin trimming it back to sanity. Used along with a slightly rich base VE so that it doesn't go way TOO lean, and then when it's trimming for cold IAT's it's pulling fuel out for being slightly rich - which is much more safe than lean. SD tunes tend to err on the rich side for safety and let the closed loop trim out the extra fuel.
At any rate - if you put the sensor somewhere up front outside the confines of the engine bay you can get the opposite effect where the IAT is wind chilled and also does not reflect accurately (this will even occur with the sensor inside the engine bay if it's cold enough). In fact the unromantic truth is that that IAT is very rarely (if ever) going to be 100% accurate and if it's got any variation at ALL you can't do anything about it with the CTS compensation because if you fix it in one direction (rich or lean) you will get farther from being accurate in the other direction (lean or rich). As RBob has stated to me and others - the IAT *MUST* accurately represent the intake air temperature. And you can get close - closer than where GM stuck it in the plenum - but you can't remove all error in this sensor. Ambient conditions introduce error to this sensor for which there is no compensation tables available (whatever these might look like) to trim out.
About the best I've been able to achieve is about a 7-8% split down the center. So that if it's really stupid cold outside (freezing) I can see BLM's in the 110 range (with the INT still at 128), and with a nasty heat soak situation I can see BLM's around 150 (INT still 128). This is not that bad in the scheme of SD tuning.
Another thing to watch is the calculated grams per second - which is used in the CTS compensation table and elsewhere. This should be about 5-6 grams per second at a normal 550-600 RPM factory idle speed. If it's not then you need to change the airflow scalar. At least that's the only way I've been able to move that data into the correct range.
GD
Last edited by GeneralDisorder; Oct 29, 2019 at 05:21 PM.
Another thing to watch is the calculated grams per second - which is used in the CTS compensation table and elsewhere. This should be about 5-6 grams per second at a normal 550-600 RPM factory idle speed. If it's not then you need to change the airflow scalar. At least that's the only way I've been able to move that data into the correct range.
GD
Your whole response was informative. I have always struggled with heat soak issues with my setup. Even with a bird cage IAT in the rubber 90* bend just ahead of the throttle body. Running strictly open loop definitely has its faults. This IAT fueling issue being one of the most glaring from what I have noticed. I can go from highway speeds reading mid 70s to 80s IAT (slightly above world temp) and drop to idle at a stop while they are still low and see WB closer to target. Then drive through town and IAT climb to 110 or so and idle leaner by +1 or more AFR
I quoted the above to ask a question. What would be the high side of that G/S at idle value? What are some typical values to see at idle for various engines. Especially far from stock engines like mine. G/S has been one thing I really haven't paid much attention to in all my tuning using EBL. Given it is a calculated value and not a measured value. Most tune changes I have made don't necessarily directly reference it even though the calculations performed behind scenes may. (IE a table that is VS MAP as opposed to tables that are VS G/S) My engine at temp idles at 23 G/S and mid 50s KPa around 900 RPM. I couldn't tell you if that G/S value is good/bad/indifferent.
Grams per second, from a purely mathematical / theoretical standpoint, should be about 1 gram per second, per 1 liter of engine displacement at a "normal" (factory) idle speed - usually about 550 - 650. That's a general rule of course but it's usually very, very close to that. So on a 305 you will generally see about 5 grams per second at idle. On a 350 you will see about 5.7. When you get into looking at other engines - say 4 cylinder engines for example - they naturally idle higher due to having fewer firing events per rotation so the idle is higher to smooth them out. A 2.5 L 4 cylinder with a factory idle of 750 RPM will usually be about 2.8 to 3.0 grams per second at idle. This is from experience working with engines that have MAF sensors and watching factory calibration live data.
Grams per second, from a purely mathematical / theoretical standpoint, should be about 1 gram per second, per 1 liter of engine displacement at a "normal" (factory) idle speed - usually about 550 - 650. That's a general rule of course but it's usually very, very close to that. So on a 305 you will generally see about 5 grams per second at idle. On a 350 you will see about 5.7. When you get into looking at other engines - say 4 cylinder engines for example - they naturally idle higher due to having fewer firing events per rotation so the idle is higher to smooth them out. A 2.5 L 4 cylinder with a factory idle of 750 RPM will usually be about 2.8 to 3.0 grams per second at idle. This is from experience working with engines that have MAF sensors and watching factory calibration live data.
GD
Interesting data and good to hear from someone that has "seen it first hand" on many platforms.
So if my 6.6L was idling at a lower speed, naturally, I would see a lower G/S. With me idling almost double that number I would see at minimum, with no other variables accounted, for double the G/S. Bringing it to about 13.2 or so G/S. Then add a large cam with 59* of overlap it would make perfect sense how it would increase even more so from that number. Definitely interesting and something I've never really bothered to think about.
Interesting data and good to hear from someone that has "seen it first hand" on many platforms.
So if my 6.6L was idling at a lower speed, naturally, I would see a lower G/S. With me idling almost double that number I would see at minimum, with no other variables accounted, for double the G/S. Bringing it to about 13.2 or so G/S. Then add a large cam with 59* of overlap it would make perfect sense how it would increase even more so from that number. Definitely interesting and something I've never really bothered to think about.
Yep you got the idea. I do a lot of diagnostic work at my shop so interpreting live data and seeing what makes sense and what doesn't is a big part of that. MAF sensors, O2/AFR sensors, etc are very important to drivability and CEL diagnostics.