Old’ (lm-1) lambda/afr channels – Innovate Motorsports OT-2 SDK User Manual
Page 16
16
000
Lambda valid, lambda value contains lambda reading in .001 lambda increments
Offset by .5 lambda (0x000 = .5 lambda, 0x3FF = 1.523 lambda)
001
Lambda value contains O2 level in 1/10%
010
Free air calibration in progress, Lambda data not valid
011
Need Free air Calibration Request, Lambda data not valid
100
Warming up, Lambda value is temp in 1/10% of operating temp.
101
Heater Calibration, Lambda value contains calibration countdown.
110
Error code in Lambda value
111
reserved
If you don’t want to parse all possible states, you can simply go on 000 means valid data,
not 000 means invalid data. Last we have the information needed to approximate AFR
from the actual lambda reading:
Word
Bit
15
Bit
14
Bit
13
Bit
12
Bit
11
Bit
10
Bit
9
Bit
8
Bit
7
Bit
6
Bit
5
Bit
4
Bit
3
Bit
3
Bit
1
Bit
0
0
0
1
0
F2
F1
F0
1
AF
7
0
AF
6
AF
5
AF
4
AF
3
AF
2
AF
1
AF
0
1
0
0
L12 L11 L10 L9
L8
L7
0
L6
L5
L4
L3
L2
L1
L0
This is the ‘Air Fuel Multiplier’, scaled by 10. In other words, 147 really represents 14.7.
You would multiply this number by the lambda measurement to get approximate AFR for
the fuel currently specified.
Although you probably have figured all this out, we get asked how to calculate the proper
values from this packet a lot, so, at the risk of repeating, the basic measurements are:
Assemble “L”
Assemble “AF”
Assemble “F”
if (F == 0) // Valid
{
float lambda = (L * 0.001) + 0.500;
float afr = lambda * AF / 10;
}
‘Old’ (LM-1) Lambda/AFR Channels
The old lambda channel (sent only by the LM-1) is the most complicated, and also the
most troublesome for parsing. Although all the sample applications properly parse this
packet, frankly, if you are writing your own parser you might do well to simply ignore it,
unless you know that you will have to deal with connected LM-1’s.
Word
Bit
15
Bit
14
Bit
13
Bit
12
Bit
11
Bit
10
Bit
9
Bit
8
Bit
7
Bit
6
Bit
5
Bit
4
Bit
3
Bit
3
Bit
1
Bit
0
0
LM1 R
0
F2
F1
F0
0
AF
7
0
AF
6
AF
5
AF
4
AF
3
AF
2
AF
1
AF
0
1
0
0
L12 L11 L10 L9
L8
L7
0
L6
L5
L4
L3
L2
L1
L0
2
0
0
mb
2
mb
1
mb
0
bv9
bv8
bv7
0
bv6
Bv5
bv4
bv4
bv2
bv1
bv0