Ok, one thing to ignore is the 'packet formatting discussed'. Its for a specific cable not VPW. But the rest of the reading is good for you guys..
--------------
Vehicle Communication
“Modes” of operation to read data, read trouble codes and clear trouble codes. Mode 1,2,3 and 4. This communication is described below.
Mode 1
Mode 1 - Read OBD-II data, format ‘MODE-PP-BC’ PP=Parameter Identification (PID), BC=byte count to be received by protocol converter. Remember that the received byte count is actually double the value because each byte is transmitted as two ASCII characters.
PID 00 - return supported PID’s - send string ‘010009’ You would read 19 bytes, the V and the 18 ASCII characters which represent the 9 bytes response message.
PID 00 returns four data bytes, 32 bits, where each bit represents a PID starting with PID 01, a ‘1’ indicates a supported PID and a ‘0’ represents a non-supported PID.
Bytes 12-13 represent hex byte 1, 14-15 represent hex byte 2, 16-17 represent hex byte 3 and 18-19 represent hex byte 4.
PID 01 - returns MIL status, send ‘010109’
This PID returns two bytes of ODB test status
receive 19 ASCII bytes
Byte 1 -
MIL Status -------x
Byte 2 -
Misfire support -------x
Fuel support ------x-
Component support -----0--
Reserved ----x---
Misfire status ---x----
Fuel status --x-----
Component status -x------
Reserved status 0-------
PID 02 - Get trouble codes – used by Mode2 only
PID 03 - Get Fuel System status, send ‘010307’
receive 15 bytes from this command
returns two bytes, each bit is defined as follows:
Byte 1 -- Fuel System 1
open loop 1-------
closed loop -1------
open loop driving --1-----
open loop fault ---1----
closed loop fault ----1---
Byte 2 -- Fuel System 2
open loop 1-------
closed loop -1------
open loop driving --1-----
open loop fault ---1----
closed loop fault ----1---
Fuel System 1 will be received as bytes 12-13 and Fuel system 2 as bytes 14-15 of the received data stream.
PID 04 - Get Calculated Load - send string ‘010406’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
Calculated load% = b/255*100
PID 05 - Get Coolant Temp.- send string ‘010506’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
coolant temp.C = b-40
coolant temp.F= (b-40)*1.8+32
PID 06 - Short term fuel trim bank 1 -send string ‘010606’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
short fuel trim bank1 = b/128*100-100 %
PID 07 - Long term fuel trim bank 1 -send string ‘010706’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
long fuel trim bank1 = b/128*100-100 %
PID 08 - Short term fuel trim bank 2 send string ‘010806’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
short fuel trim bank2 = b/128*100-100 %
PID 09 - Long term fuel trim bank 2 -send string ‘010906’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
long fuel trim bank2 = b/128*100-100 %
PID 0A - Get Fuel Pressure -send string ‘010A06’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
fuel pressure.Kpa = b
fuel pres. psi = b*3*0.14504
PID 0B - Get Manifold Air Pressure -send string ‘010B06’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
Manifold Pressure KPa = b
Manifold Pressure PSI = b*.29613
PID 0C - Get RPM - send string ‘010C07’
Receive 15 bytes
Returns two byte response in location 12-13 and 14-15 of received data
RPM=((b1*256)+b2)/4D
PID OD - Get Speed- send string ‘01040 Ù6’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
Speed Kph = b1
Speed MPH = b1/.621
PID 0E - Get Ignition Advance -send string ‘010E06’
Receive 13 bytes
Returns one byte response in location 12-13 of received data
Ignition Advance Deg. = (b1/2)-64