This page describes λ_{16}. For WBo2 wideband firmware xx61 (and higher) the RS232 2.0 frame format is modified. The Wideband ADC value (bytes 6 and 7) is changed to be Lambda-16 (abbreviated in normal text to L16 or to λ_{16} in formatted text).
Lambda-16 is an unsigned 16 bit number representing lambda (λ). For simplicity and to preserve accuracy across the possible range of Lambda, Lambda-16 is a dual-slope transfer function covering the ranges :
Lambda (λ) is converted to Lambda-16 (λ_{16}) as follows
If (λ < 5.0) λ_{16} = ( λ - 0.5 ) * 8192 else λ_{16} = 36864 + (( λ - 5.0 ) * 128)
Lambda-16 is converted to Lambda as follows:
if (λ_{16} < 36864) λ = ( λ_{16} / 8192 ) + 0.5 else λ = 5.0 + ((λ_{16} - 36864 ) / 128)
Note that AFR is directly related to λ, and λ_{16}, by
AFR = λ * AFR_{stoich}
AFR = (( λ_{16} / 8192 ) + 0.5 ) * AFR_{stoich}
(for the useful vehicle tuning range)
Where AFR_{stoich} is the AFR value at stoich for the fuel used (14.7 for unleaded).
For lambda < 5.0 the granularity of Lambda derived from Lambda-16 is (1/8192) = 0.000122 so for Lambda between 0.500 and 5.000 it is represented very precisely to 3 decimal places.
For Lambda > 5.0 the granularity is (1/128) = .0078 so a 1 (or closer to 1.5) decimal place representation for Lambda is very precise.
The limits for the Lambda-16's representation of Lambda are 0.5 (L16 = 0) and Lambda = 224.0 (L16 = 65,535).
Bosch have a (rough) formula for calculating λ from percent oxygen (xO2) - it only works in the lean region where % oxygen is positive, and it also assumes the H/C (Hydrogen to Carbon) ratio is 2.0. Here K is a constant and, depending on the Bosch document, is either 4.76 or 4.77 (it depends on what you define as the free-air oxygen concentration). Also xO2 is a fraction, eg. 0.207 for free-air:
Note that Ipx (see below) is fairly linear when graphed against xO2. Ipx graphed against λ is very non-linear and they actually have a reciprocal relationship.
Go here for more information about oxygen percentage.
The original Tech Edge wideband controller (the 2A0) worked with just one sensor family (the LSU 4.0/4.2). We didn't think of all future possibilities when we made some firmware design decisions. For RS232 logging we specified a 2.0 data frame with two Lambda representations:
This created some future problems:
We wanted to resolve these problem, which were not significant except for those customers who wanted the best possible accuracy our equipment was capable of (and who doesn't). So, we introduced Lambda-16 and put it in the DAC-Count field which was most likely to change anyway.