From what I understand, you want to intercept the signals before they reach the ECU and then send the ECU the altered output in order to trick it into running different timing and fuel values based on the faked parameters.
As far as the O2 sensor goes, I'm working on some code right now to intercept the true signal and then generate an altered signal that the ECU will believe is from the O2 sensor. Narrowband O2 sensors are pretty simple in the way they're used by the ECU. The ECU only really cares if the O2 voltage is high (~0.8V) or low (~0.2V). The sensor itself outputs voltages along a sinusoidal wave pattern, but the ECU only checks to see if the value is high or low. If the value is above .5V, the ECU believes the engine is running rich. Below .5V, the ECU thinks the engine is running lean. It basically just keeps adding fuel until it sees a rich value from the O2 sensor and then starts cutting fuel until it sees a lean value.
In theory, this allows for control of the fuel system in closed loop. Taking in other parameters to determine load could allow one to run super lean under highway driving conditions.
Voltage output from a microcontroller is most often in the form of PWM, but this can be corrected with a low-pass filter (basically just a resistor and capacitor). The filter will turn the digital PWM into an analog voltage that the ECU is looking for.
Basically, my setup is taking in O2 voltage and referencing a cutoff value. The output will be relatively the same as the input, but anything above the cutoff value will be put out as ~0.8V. The lower the cutoff value/voltage, the richer the ECU will believe the engine is running. As it reduces fuel, the input from the O2 sensor will report a lean condition. Once the frequencies of high and low voltages reach a predetermined point, the microcontroller will output a stoich wave pattern.
Matt
Last edited by drivenByNothing; 12-02-2008 at 11:42 AM..
|