Here is a complete list of the raw data used in OBDZero. You can also find this list in the OBDZero user manual. Download it from odbzero.dk The list is in the manual's Annex 2. Note that in this case the bytes are numbered from 0 to 7 not 1 to 8. Bits are number by their positional value i.e. 1, 2, 4, 8, 16, 32, 64, 128.
Parameter Units Description Source Conversion
AC on/off Airconditioning PID 3A4 byte(0) bit 128
ACAmps amps Airconditioning amps PID 384 (byte(0) * 256 + byte(1))/1000
AirRec on/off Air recirculation PID 3A4 byte(0) bit 64
BatACalOut amps Amps out of the battery calibrated -(BatteryA + 0.66)
BatCapAh amp-hours Battery 100% capacity PID 374 byte(6)/2
BatteryA amps Amps in to the battery (both + & -) PID 373 (byte(2)*256 + byte(3) -32768)/100
BatteryTmax oC Maximum cell temperature PID 374 byte(4) – 50
BatteryTmin oC Minimum cell temperature PID 374 byte(5) – 50
BatteryV volts Battery volts PID 373 (byte(4)*256 + byte(5))/10
Brake unknown Brake pressure PID 208 byte(3)
BrakeOn/Off on/off Brake PID 231 byte(4)
Charge12Amps amps 12volt battery charger amps in PID 384 byte(3)/10
ChargeADC amps Charging unit amps to battery PID 389 byte(2)/10
ChargeTemp1 oC Charging unit temperature 1 PID 389 byte(3) – 50
ChargeTemp2 oC Charging unit temperature 2 PID 389 byte(4) – 50
ChargeVAC volts Charging unit volts from mains PID 389 byte(1)
ChargeVDC volts Charging unit volts to battery PID 389 2*byte(0) + 1
ChargeAAC amps Charging unit amps from mains PID 389 byte(6)/10
FanDirect number Air direction control position PID 3A4 byte(1) low nibble
FanMax on/off Max fan PID 3A4 byte(0) bit 32
FanSpeed number Fan speed PID 3A4 byte(1) high nibble
Gear number 3 = P/N, 1 = Reverse, 4 = Drive PID 236 see note 2
Heat/Cool number Temperature control position PID 3A4 byte(0) low nibble
HeaterA amps Heater amps PID 384 byte(4)/10
KeyOn/Off on/off Key on (either ready or not ready) PID 412 byte(0) = 254
LDrive on/off Headlights PID 424 byte(1) bit 32
LFrontFog on/off Front fog lights PID 424 byte(0) bit 8
LHigh on/off Highbeams PID 424 byte(1) bit 4
LPark on/off Parking lights PID 424 byte(1) bit 64
LRearFog on/off Rear fog lights PID 424 byte(0) bit 16
Parameter Units Description Source Conversion
MotorA amps Motor current PID 696 (byte(2)*256 + byte(3) - 500)/20
MotorRPM rpm Motor rpm PID 298 byte(6)*256 + byte(7) – 10000
MotorTemp0 oC Motor temperature 0 PID 298 byte(0) – 50
MotorTemp1 oC Motor temperature 1 PID 298 byte(1) – 50
MotorTemp2 oC Motor temperature 2 PID 298 byte(2) – 50
MotorTemp3 oC Motor temperature 3 PID 298 byte(3) – 50
Odometer km Total km driven PID 412 byte(2)*256*256 + byte(3)*256 + byte(4)
QuickCharge% % Chademo percent PID 697 byte(1)
QuickChargeA amps Chademo current PID 697 byte(2)
QuickChargeOn/Off on/off Chademo connected PID 697 byte(0)
RearDefrost on/off Rear window defrost PID 424 byte(6) bit 8
RegenA amps Regeneration amps (negative) PID 696 (byte(6)*256 + byte(7) - 10000)/5
RestRange km Car's estimate of remaining km PID 346 byte(7)
SoC1 % State of Charge 1 PID 374 (byte(0) - 10)/2
SoC2 % State of Charge 2 PID 374 (byte(1) - 10)/2
Speed km/h Indicated speed PID 215 (byte(0)*256 + byte(1))/128
Steering degrees Steering wheel position PID 236 (byte(0)*256 + byte(1) -4096)/2
WindWiper on/off Windshield wipers PID 424 byte(1) bit 8
Note 1
Each PID contains 1 to 8 bytes. The first byte is numbered 0 and the last byte is numbered 7. When on/off
information is code it is usually coded in the bits of a byte, a bit equal to 1 means on. The bits are
numbered in the table above by positional value in the byte. Of the 8 bits in a byte bit 128 is the most
significant and bit 1 the least significant. The low nibble in a byte is the number represented by the 4 least
significant bits and the high nibble is the number represented by the 4 most significant bits.
Note 2
The gear position is a bit complicated. The information is contained in PID 285. If byte(6) equals 12 then the
position is either Park or Neutral with no indication of which. If byte(6) equals 14 and byte(7) equals 16
then the position is Drive. If byte(6) equals 14 and byte(7) doesn’t equal 16 then the position is Reverse.
There is probably another PID where the gear position is more explicit, but I haven’t found it yet. Another
thing, the iMiev has two more gear positions than the CZero and the iOn. Both these positions are shown
as Drive in OBDZero.
Note 3
The coding of the individual cell information is found in PIDs 6E1-6E4. Byte(0) is the module number. A
more detailed explanation will have to wait for a later manual.
Note 4
The BatteryA, the current to the battery can be both positive and negative. The sign is in relation to the
battery so charging is positive and discharging is negative. However most of the computations in OBDZero
are from the perpective of the motor and auxiliary functions. So for BatACalOut, the calibrated current,
discharge is positive and charging is negative. MotorA, motor current is always positive and RegenA, the
regenaration current is always negative. HeaterA, heater current and ACAmps, airconditioning current are
both positive. However this convention doesn’t apply to ChargeADC, charging unit current to the battery
and QuickChargeA, Chademo current to the battery both of which are positive.