|
The data stream is an 8 bit stream with no
parity, one stop bit at 8192 baud. The output is inverted
but that's corrected by the connector so you don't have to
worry about that.
The stream is composed of blocks sent in
arbitrary order. A block is defined as a block identifier
byte, a length byte, the data, and a checksum byte. The length
byte is the length of the remaining data bytes in the block
minus 0x55 (e.g., 3 more data bytes is 0x58). The check sum
byte should make the low byte of the sum of all the bytes
in the block equal 0.
Block:
byte 1: block identifier
byte 2: length + 0x55
byte 3-n: data
last byte: checksum
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0x20
|
1
|
0-7
|
State of Charge
|
|
2
|
0-7
|
hours till charged while charging
|
|
3
|
0-7
|
minutes till charged while charging
|
|
4
|
0-7
|
?
|
|
5
|
0-7
|
range remaining in km
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0x21
|
1
|
0-3
|
odometer, upper half byte of decameter (0.1 km) reading
|
|
4
|
bar display; 0 = battery state, 1 = power use
|
|
5
|
?
|
|
6
|
?
|
|
7
|
?
|
|
2
|
0-7
|
odometer, middle byte of decameter (0.1 km) reading
|
|
3
|
0-7
|
odometer, lower byte of decameter (0.1 km) reading
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0x30
|
N/A
|
-
|
0 bytes in this block
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0x31
|
1
|
0-7
|
?
|
|
2
|
0-7
|
?
|
|
3
|
0
|
Coast Down button state (1 == down)
|
|
1
|
Startup sequence in progress
|
|
2
|
Trip button
|
|
3
|
Gauge button
|
|
4
|
Reset button
|
|
5
|
MI/km button
|
|
6
|
Cabin Precondition
|
|
7
|
?
|
|
4
|
0
|
Recirculate button
|
|
1
|
Outside air button
|
|
2
|
Air to feet button (also Air to feet and face)
|
|
3
|
Air to face button (also Air to feet and face)
|
|
4
|
Heat button
|
|
5
|
Off (vent off) button (also AC which is bit 4 and 5)
|
|
6
|
Vent button
|
|
7
|
Rear defog button
|
|
5
|
0
|
Increase fan speed button
|
|
1
|
Decrease fan speed button
|
|
2
|
?
|
|
3
|
?
|
|
4
|
De-Ice button
|
|
5
|
Defog button
|
|
6
|
?
|
|
7
|
?
|
|
6
|
0-3
|
hour (current time)
|
|
4-7
|
?
|
|
7
|
0-7
|
minute (current time)
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0x40
|
1
|
0-7
|
half pack voltage
|
|
2
|
0
|
amps high bit 9
|
|
1
|
amps high bit 10
|
|
2
|
?
|
|
3
|
?
|
|
4
|
?
|
|
5
|
?
|
|
6
|
?
|
|
7
|
1 if charging
|
|
3
|
0-7
|
amps, low byte. Subtract the value of these bits from
800 to get the twice the amps being drawn from the pack.
Negative numbers are draining the pack, positive are
recharging.
|
|
4
|
0-7
|
PSOC
|
|
5
|
0-7
|
?
|
|
6
|
0-7
|
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0x41
|
1
|
0
|
?
|
|
1
|
?
|
|
2
|
?
|
|
3
|
maybe coast down on
|
|
4
|
?
|
|
5
|
?
|
|
6
|
?
|
|
7
|
?
|
|
2
|
0
|
drive or reverse
|
|
1
|
?
|
|
2
|
?
|
|
3
|
?
|
|
4
|
drive
|
|
5
|
neutral
|
|
6
|
reverse
|
|
7
|
park
|
|
3
|
0-7
|
?
|
|
4
|
0-7
|
?
|
|
5
|
0-7
|
speed in kph
|
|
6
|
0-7
|
?
|
|
7
|
0-7
|
?
|
|
8
|
0-7
|
? only for gen II cars
|
|
9
|
0-7
|
? only for gen II cars
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0x90
|
1
|
0
|
bar 9 lit (counting from the bottom up)
|
|
1
|
bar 10 lit
|
|
2
|
bar 11 lit
|
|
3
|
?
|
|
4
|
?
|
|
5
|
?
|
|
6
|
?
|
|
7
|
?
|
|
2
|
0
|
bar 1 lit (counting from the bottom up)
|
|
1
|
bar 2 lit
|
|
2
|
bar 3 lit
|
|
3
|
bar 4 lit
|
|
4
|
bar 5 lit
|
|
5
|
bar 6 lit
|
|
6
|
bar 7 lit
|
|
7
|
bar 8 lit
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0x91
|
1
|
0
|
?
|
|
1
|
maybe relay triggered by brake press, second click
|
|
2
|
maybe brakes
|
|
3-7
|
?
|
|
2
|
0-7
|
?
|
|
3
|
0-7
|
something to do with wheel speed, FFFF is stopped
|
|
4
|
0-7
|
|
5
|
0-7
|
|
6
|
0-7
|
|
7
|
0-7
|
|
8
|
0-7
|
|
9
|
0-7
|
|
10
|
0-7
|
|
11
|
0-7
|
?
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0xA8
|
N/A
|
-
|
0 bytes in this block
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0xA9
|
1
|
0-7
|
Outside air temperature plus 40 degrees centigrade
|
|
2
|
0-7
|
hour (current time)
|
|
3
|
0-7
|
minute (current time)
|
|
4
|
0
|
Outside air on
|
|
1
|
Recirculate on
|
|
2
|
Air to face on
|
|
3
|
Air to feet on
|
|
4
|
Air to face and feet
|
|
5
|
De-ice on
|
|
6
|
Defog on
|
|
7
|
Rear defogger on
|
|
5
|
0
|
Fan is on
|
|
1
|
?
|
|
2
|
maybe cooling mode
|
|
3
|
maybe heat pump on
|
|
4
|
?
|
|
5
|
fan setting, lo to hi is; 100,010,110,001,101
|
|
6
|
fan setting, lo to hi is; 100,010,110,001,101
|
|
7
|
fan setting, lo to hi is; 100,010,110,001,101
|
|
6
|
0-7
|
?
|
|
7
|
0-7
|
? only for gen II cars
|
|
Block
|
Byte
|
Bit
|
Description
|
|
0xF0
|
1
|
0-7
|
request for data
|
|