Related to GenBoard/Manual/WideBandHardwareTest
See AbsoluteMinimumForAnyRequest and MembersPage and MembersPage/BMW M50 turbo LSU4
Solved: '''WBO2 certainly did NOT work with the bogus
WBO2 pump PID integral limit of 30, but worked immediately with the correct 255 value'''.
Solution:
Summary: WBO2 pump PID integral limit was decimal 30 in yours, instead of default 255. This is a huge difference, and the limit=30 is so low that it prevents reaching pump target current.
-wbo2_pump_pid_ilimit=FF
+wbo2_pump_pid_ilimit=1E
Since there is a problem with Wideband (but cabling is good), the wideband setting are prime suspect (must be verified anyway).
When going into Wideband settings, and uploading (the small configlets, default values at the bottom of the dialog), Heater PID values make very little, insignificant change ... Changes appear in red (but must be burnt to accept and to be saved permanently.
When uploading the Pump PID values: it shows an extreme big change from 30 to 255:
WBO2 pump PID integral limit was 30 in your config, instead of default 255. This is a huge difference, and the limit is so low that it prevents reaching pump target current.
Most of the changes are minor, no significance, but the last one: wbo2_pump_pid_ilimit 30 instead of 255 is a smoking gun... Not sure how and why it was changed in your config, most likely accidentally, but that bogus config value limited pump PID to not reach target, and WBO2 cannot work, or even be calibrated with so low setting (less than 1/8 of default value, the ECU is shipped with wbo2_pump_pid_ilimit=255).
I also checked dozens of defaultfirmwareconfigs in VemsTune, all are FF, eg. defaultfirmwareconfigs/config_1.2.38.vemscfg:wbo2_pump_pid_ilimit=FF
For completeness, your full diff (graphical diff is more spectacular, but this also shows, + prefix is the bogus deviating config):
+wbo2_abs_limit=F5
+wbo2_limit_maxt=A0
+wbo2_fallback=61
wbo2_retry_t=06
als_retard_rpm1=FF
als_retard_rpm2=FF
-wbo2_ri_target=A5
-wbo2_nernstdc_target=86
-wbo2_pump_pw_zero=68
-wbo2_calibration=CB
-wbo2_heater_pid_kp=45
-wbo2_heater_pid_ki=11
+wbo2_ri_target=B4
+wbo2_nernstdc_target=85
+wbo2_pump_pw_zero=67
+wbo2_calibration=DA
+wbo2_heater_pid_kp=46
+wbo2_heater_pid_ki=10
wbo2_heater_pid_kd=1A
-wbo2_heater_pid_ilimit=81
+wbo2_heater_pid_ilimit=80
wbo2_pump_pid_kp=15
wbo2_pump_pid_ki=4E
wbo2_pump_pid_kd=00
-wbo2_pump_pid_ilimit=FF
+wbo2_pump_pid_ilimit=1E <= value extremely OFF... very different from the pump PID default value that is easily uploadable in VemsTune at the bottom of Wideband settings dialog)
We tested your config (first in 1.2.38 firmware), WBO2 certainly did NOT work with the bogus
WBO2 pump PID integral limit of 30, but worked immediately with the correct 255 value.
I hope that helps.
A rare case, that happened in 2026: it turned out using 1.1.96 fw was attempted (without documenting .vemscfg or even specifying the fw. version being used... without How to Report Bugs Effectively attempt). - wasting considerable effort instead of specifying the basic circumstances together with the request
- notable rule: If it works perfecty with newest fw, we consider there is nothing to fix.
- This worked with 1.2.31 (still an old fw, but at least not as ancient as the 1.1.96).
- See VemsTune ("update ini files from web", and upgraded to newer firmware ... in this case not to newest, but the 1.2.31).
- we don't know if it works with vemstune and some "good ini files for 1.1.96" because anything older than 1.2.31 is not considered for any test or support if it works with newest fw (especially if it also works with an old fw like 1.2.31)
- finished building a new engine and got it running but cannot get the O2 sensor to work properly.
- When trying to calibrate the sensor in fresh air it reaches maximum calibration value and still doesn't read oxygen content high enough.
- All the wiring is correct and I've checked each wire for high resistance.
- I've also replaced the O2 sensor and nothing has changed
Basic measurements
Indicative measurements: (assuming 100 Ohm between nernst and pump- and also 100 Ohm between nernst and pump+)
- in the ECU config the nernst-dc_target=133 => measured voltage was at 207mV at the connector between nernst and pump-
- and with max nernst-dc_target=255 the measured voltage only increased to 325mV
- is lower than 450 mV and way too low:
that indicates the pump current is somehow too low (or nernst input is partially shorted, or "shunted").
We assume the ECU supply voltage is normal (>11.5V), because too low (EC36/25) supply voltage (especially less than 10V) might also result in insufficient pump+ current.
Options:
See [repair/upgrade] but it can be repaired with minimal cost with some patience.
Speculation
- It might be some contamination inside (perhaps some small metal piece came loose''' and got to the wrong place)
- or corroded solder joint near the pump circuit (voltage to current OPA circuit)
- at worst the LM2902 (commonly used instead of LM324 because of better specs) needs to be swapped (some solder corrosion problem is more likely).
Possible more measurements
One measurement without disassembling ECU: 1k from +12V to nernst means appr. +7.5 mA current (injected externally)'''
- that would increase nernst voltage by appr. 0.75 V (assuming 100 Ohm) unless the nernst input has something weird.
- This measurement distinguishes between insufficient pump+ current, or partially "shorted" nernst input
More measurements with disassembled ECU are possible.
- Remove endplate first, than clamping plates, finally frontplate, remove mainboard carefully not to damage the insulatorsheet
- inspect visually, especially the pump+ related circuit and the nernst input circuit
- It might be a good idea to clean the PCB with alcohol and solder/reheat the related components (possibly with some flux, and SMALL amount of fresh solder where necessary - not needed at most places).
- Pb36-Sn63 (or Pb37, does not matter) solder is much more reliable in the long run (used in aviation, space, medical and engine management where reliability is important).
- This part can be tested without assembling the ECU (make sure not to drive ignition coils and injectors, you don't want to fill cylinders with fuel).
NOTE: thematically organized project page is required for technical support MembersPage (any email must contain the reference to thematically organized project page which is required for technical support, otherwise optional).
Fill in MembersPage/BMW M50 turbo LSU4. Required for support. Otherwise optional.
After repair we apply Plastik-70 spray or similar solderable oxidation-prevention coating, and strongly recommend it.
- it might make a difference of 6 years or 26 years of ECU expected MTBF