GenBoard/Manual/Config/WBoxygen (2008-08-25 09:09:27)

LSU4 Wideband Oxygen Sensor Configuration GenBoard/VerThree - subpage of GenBoard/Manual/WBSensor

Below are misc notes that should NOT be needed in most cases. Not deleting it, so it is accessible for the curious.

and keep the big smile on your face.

The incredible ego_controller will be used, and the l table will help you on your way to keep engine around desired lambda automatically, not just cruise, but also at high power.


[[Manual: Detailed.Sensor.Wide.Config]]


Info on why and how:


Some links, dealing with PID control:

( should this be a separate page? )


an old method for testing Ri measurement part of the firmware

This was used before one got a real sensor, or before one was confident to hook up a real sensor. Mostly history by now.

Simple way of testing the Ri (acdc() output) measurement:

It can be tested without a real WBO2 sensor and without an OPA amplifier:

Use a voltage divider, eg.: 470 Ohm to GND, 5k to VCC. This is effectively a Ri=430 Ohm on a 450mV (or so) DC: about similar as a 71 Ohm Ri would be with OPA 6x amplification.

You can use a 4k7 variable R, where the midpoint is the cheat-sensor nernst node, of course. The ultimate method is using a 2k2 NTC towards ground and a 4k7..10k towards 5V. Thermally close-wrap the NTC with a 47 Ohm 2W resistor which is connected to +12V, other end controlled (with NPN or FET) from the heater pin. This makes it possible to check the heater control as well as the Ri measurement. Make your cheat sensor on a DIN5 connector, the same which we use for real sensor in the lack of VW-connector socket.

The cheat-sensor is pulsed by the 220nF and 10k from OC2 (5V, 256usec cycle, 128 low, 128 high), as a real would be.

You can dump the wbo2 samples and results to RS232 via mde01 menucommand, see wbo2.c. The perl side is not written yet, but bin/prog.pl (GenBoard/Firmware/BootLoader) should help a lot for RS232 usage from perl.


Configuration - unit of measure

WBO2 Heater

Warmup ramp speed [3f=0.2V/sec] 0.2 V/sec wbo2, warmup ramp speed [1.51 mV/sec]

wbo2_warmup_ramp=0xA0(160)

Warmup target

wbo2_warmup_target=0xFF(255)

Heater absolute limit [2a=12V ff=30V] wbo2, heater absolute limit [?](DA)

wbo2_abs_limit=0xE4(228)

Max time spent at abs_limit [262msec] wbo2, max time spent at abs_limit [262msec] (50)

wbo2_limit_maxt=0xA0(160)

Fallback V after maxt [1c=10V ff=30V] wbo2, fallback V after maxt [?]

wbo2_fallback=0x60(96)

Retry control after [4sec] wbo2, retry control after [4sec]

wbo2_retry_t=0x06(6)

WB02 Measurement and Control.

Edgetime correction constant C/R

wbo2_edgetime_corr=0xBA(186)

Smaller edgetimes are neglected [0.5usec]

wbo2_edgetime_min=0x50(80)

Target Ri (pulse amplitude:C3)[5V/4096] wbo2, target Ri (pulse amplitude) [5V/8192]

wbo2_ri_target=0x96(150)

Target nernstDC [5V/256]

wbo2_nernstdc_target=0x8D(141)

After warmup, measure nernst, we want voltage ~ 4 + 0.45V (4V on the yellow sensor-wire, and 0.45V higher, thus 4.45 on the black sensor wire.) Q: is this done only at free air or stoich on running engine, exhaling does make this go higher for a while. Note: the 20mV/step is after the OPA (on the AVR ADC input), before the OPA the resolution is about 5mV/step.

Pump zero dutycycle (default: 66) [5V/256]

wbo2_pump_pw_zero=0x66(102)

The easiest way to measure this is to match OC3A (shotly after powerup) to the 2V reference. Let's say I measure 1.96V instead of 2V (pin14 of the OPA closest to AVR). If I measure 2.04 V on OC3A (as the result of wbo2_pump_pw_zero=0x66 setting), I know that I must decrease wbo2_pump_pw_zero by 4 (to 62) to decrease the 2.04V to the required 1.96V (by 2.04-1.96V=80mV = 4*20mV since each step is 5V/256 = 20mV )

Calibration Constant

wbo2_calibration=0xF8(248)

The wbo2_calibration must be configured to read good values on LCD, or to use for EGO control.


Detailed logging of sampling and acdc()

This should not be needed for the average user, but interesting for the curious.

MembersPage/DaveBrul fabricated some code to log the WBO2 samples from AVR to PC and print some simple statistics. \n

perl bin/wbo2log.pl :COM5 mde02

command tells GenBoard/VerThree (that has WBO2 enabled in firmware and completed WBO2 hardware) to turn on the WBO2 even if the engine is not running, and print out some samples and WBO2 internal variables.


The closest to a standard vout we can get is the ETAS ouput format, where you have the lambda value in volts. Lambda1=1v, lambda0.65=0.65v.

According to http://www.emd.horiba.com/engmeas/ld700/ the output is lambda0=0v, lambda5=5v, but measures 0.7 to 1.5. Assume linear?

Obviously ETAS and Horriba have the same output voltage function. I guess that can be considered the standard.

Autronic controllers have 0v output at AFR=10:1 and 1volt at AFR=30:1.

Most popular curve (also used in AFreshTiny): 0.68 => 0V , 1.0 => 2.5V , 1.32 => 5V


Does the GenBoard support 2 wbo2 sensors ?

Yes, the board HW supports it. I don't know anyone who actually used 2 sensors on 1 engine.

What it will do if it get different signals from them ? What do you want it to do ?

it will be on a twin turbo V8 engine so either I put a WBO2 in each downpipe or I will use a Y-pipe and mount only one sensor after the Y

I think that if I use 2 sensors( 1 sensor for each bank ) I will be able to detect problems easly


See also:


Back to GenBoard/Manual

Back to GenBoard/Manual/Config