This may sound obvious to some of you, but it came as a hard-learned lesson for me. So I figured I'd share this story, if nothing else just to put additional knowledge on the site and for others to contemplate.
TLDR: The ECU calculates the temperature of the Oxygen sensor while making Fuel Trim adjustments.
For nearly three years, I've run the AEM FIC-6 on my Turbo'd IS without a CEL. I accomplished this by fooling the ECU in several ways to keep it happy, and by carefully tuning while monitoring my fuel-trim data via OBD. Today's discussion will focus on a condition that has plagued my tune, but is now finally resolved.
After extensive research, I was able to fool the ECU into thinking all four oxygen sensors were present and accounted for - when I was only using one. I built an O2 simulator for the secondary (post-cat) O2's that output a "clean" signal and used high-wattage resistors to fool the heater circuits. For the primary O2's, however, I removed B1S1 and split the signal for B2S1 into B1S1 @ the ECU. This is a common mod with lots of information available on this site. This effectively ties the two banks together, so the ECU no longer gets independent feedback from B1 and B2. However, I did not split the heater circuit.
Instead, I left B2S1 heater connected to the Oxygen Sensor, and B1S1 heater connected to a high-wattage resistor that was rated within the repair manual specs. I made this decision based on my understanding of how the heater circuitry works. The heater circuits are controlled using a high-wattage pulse-width modulation circuit (PWM). This line outputs a square wave to heat the O2 sensor. Therefore, I assumed, if I were to connect the B1 heater circuit to the B2 heater circuit, I would end up with a confluence of square waves at the very least. There's a chance the current for B1 could overload the circuitry on B2 - or vice versa. By placing a stable resistance (relatively) on B1, I could sink this current and avoid overloading the heater circuits, damaging the ECU, or damaging the O2 sensor with too much current.
Herein lies my problem. By placing a stable resistance (relatively) on B1, and a temperature-fluctating resistance on B2, the ECU would drive B1 lean, and drive B2 rich. So no matter how I tuned the FIC, I would always have a ~10% variance between B1 and B2. I could marginalize the driveability impact of this by centering the variance over the 0% mark - but nonetheless, it was still there.
This is where it gets interesting: While reading up on some obscure Google eBook about Oxygen sensor theory and calculations, I learned the ECU not only controls a PWM heater signal to heat the sensor, but it also monitors how much current is consumed (or sensor resistance, see: ohms law) as an approximation of temperature. This temperature calculation is then used to interpret the O2 signal and, subsiquently, the fuel-trims.
Aha!
So I rewired both B1S1 and B2S1 heater circuits to be run off one sensor (as the original mod directs) and whala -- both B1 and B2 fuel trims are now perfrectly in-sync and FIC tuning seems more responsive. The next day I took the car on a 2hr road-trip and, just before arriving, a CEL appeared for P0032 - Heater Control Circuit High (Bank 1 Sensor 1). I cleared the code, monitors the sensor waveform and fuel-trims, and the code hasn't come back since. ** knock on wood **
Anyways -- I figured this might be useful, or at least interesting, for anyone considering the mod and just general tuning information. Or it's just a simple demonstration of how "following the directions" is important. One could theorize, that if you wanted to tune the banks independently, all you'd need to do is tweak the resistance as a crude method.
TLDR: The ECU calculates the temperature of the Oxygen sensor while making Fuel Trim adjustments.
For nearly three years, I've run the AEM FIC-6 on my Turbo'd IS without a CEL. I accomplished this by fooling the ECU in several ways to keep it happy, and by carefully tuning while monitoring my fuel-trim data via OBD. Today's discussion will focus on a condition that has plagued my tune, but is now finally resolved.
After extensive research, I was able to fool the ECU into thinking all four oxygen sensors were present and accounted for - when I was only using one. I built an O2 simulator for the secondary (post-cat) O2's that output a "clean" signal and used high-wattage resistors to fool the heater circuits. For the primary O2's, however, I removed B1S1 and split the signal for B2S1 into B1S1 @ the ECU. This is a common mod with lots of information available on this site. This effectively ties the two banks together, so the ECU no longer gets independent feedback from B1 and B2. However, I did not split the heater circuit.
Instead, I left B2S1 heater connected to the Oxygen Sensor, and B1S1 heater connected to a high-wattage resistor that was rated within the repair manual specs. I made this decision based on my understanding of how the heater circuitry works. The heater circuits are controlled using a high-wattage pulse-width modulation circuit (PWM). This line outputs a square wave to heat the O2 sensor. Therefore, I assumed, if I were to connect the B1 heater circuit to the B2 heater circuit, I would end up with a confluence of square waves at the very least. There's a chance the current for B1 could overload the circuitry on B2 - or vice versa. By placing a stable resistance (relatively) on B1, I could sink this current and avoid overloading the heater circuits, damaging the ECU, or damaging the O2 sensor with too much current.
Herein lies my problem. By placing a stable resistance (relatively) on B1, and a temperature-fluctating resistance on B2, the ECU would drive B1 lean, and drive B2 rich. So no matter how I tuned the FIC, I would always have a ~10% variance between B1 and B2. I could marginalize the driveability impact of this by centering the variance over the 0% mark - but nonetheless, it was still there.
This is where it gets interesting: While reading up on some obscure Google eBook about Oxygen sensor theory and calculations, I learned the ECU not only controls a PWM heater signal to heat the sensor, but it also monitors how much current is consumed (or sensor resistance, see: ohms law) as an approximation of temperature. This temperature calculation is then used to interpret the O2 signal and, subsiquently, the fuel-trims.
Aha!
So I rewired both B1S1 and B2S1 heater circuits to be run off one sensor (as the original mod directs) and whala -- both B1 and B2 fuel trims are now perfrectly in-sync and FIC tuning seems more responsive. The next day I took the car on a 2hr road-trip and, just before arriving, a CEL appeared for P0032 - Heater Control Circuit High (Bank 1 Sensor 1). I cleared the code, monitors the sensor waveform and fuel-trims, and the code hasn't come back since. ** knock on wood **
Anyways -- I figured this might be useful, or at least interesting, for anyone considering the mod and just general tuning information. Or it's just a simple demonstration of how "following the directions" is important. One could theorize, that if you wanted to tune the banks independently, all you'd need to do is tweak the resistance as a crude method.