OBDProg
OBDProg
The OBDScan Protocol Converter interfaces to the vehicle OBD-II bus on one side
utilizes an RS-232 interface to communicate with a host computer on the other. The host
can be a Windows computer, a Palm compatible handheld or anything with a RS232
interface. The RS-232 interface is fixed at 19200 baud, no parity, 8 data bits and 1 stop
bit. It uses the Transmit, Receive and Ground only, no hardware handshaking is required
or allowed.
The OBDScan is an OBD-II interface and as such is a specialized interface for
ISO-9141, J1850 PWM and VPW, and KWP2000. The OBD-II specification SAE-J1979
defines several modes of operation modes of operation for the retrieval of data. All of the
implemented J1979 Modes work the same on all OBD-II interface types. The protocol
converter automatically tests for all interface types and begins communication with
which ever is present, relieving the user from needing to know the interface type up front.
Initialization
On power up, the protocol converter begins testing for the four interface types and
outputs a string of “PIPIPIPIP” which indicate that initialization is being attempted. The
sequence starts with a P transmitted at the beginning of a search pass, the I is transmitted
when the ISO interface test times out, the VPW and PWM interfaces are tested then the
KWP2000 is tested. If no interface is found the the cycle starts all over. When an
interface responds to the initialization request the protocol converter starts sending a
string of “SSSSSSSSSSSSSSSSSS”, with each S being transmitted approximately every
40ms. Once the string of SSSSSS’s occurs, the user can begin communicating with the
protocol converter.
www.ghg.net/dharrison 1 of 7
Harrison R&D 4/24/2002
forget that when parsing the response string, the string starts with the V character and the
response message follows.
Vehicle Communication
The OBDScan protocol converter is designed to communicate with the vehicle using the
protocl as described in SAE-J1979. This document described several “Modes” of
operation to read data, read trouble codes and clear trouble codes. The OBDSCan
protocol converter will communicate to the vehicle using 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.
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-------
www.ghg.net/dharrison 2 of 7
Harrison R&D 4/24/2002
Fuel System 1 will be received as bytes 12-13 and Fuel system 2 as bytes 14-15 of the
received data stream.
www.ghg.net/dharrison 3 of 7
Harrison R&D 4/24/2002
www.ghg.net/dharrison 4 of 7
Harrison R&D 4/24/2002
www.ghg.net/dharrison 5 of 7
Harrison R&D 4/24/2002
Receive 13 bytes
Returns one byte response in location 12-13 of received data Receive 13 bytes
Returns one byte response in location 12-13 of received data
PID 00 - return supported PID’s - send string ‘02000A’ You would read 21 bytes, the V
and the 20 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 14,15 represent hex byte 1, 16,17 represent hex byte 2, 18,19 represent hex byte 3
and 20,21 represent hex byte 4.
Other than the above differences, Mode2 operates like Mode1.
www.ghg.net/dharrison 6 of 7
Harrison R&D 4/24/2002
Send string ‘03000A’ You would read 21 bytes, the V and the 20 ASCII characters which
represent the 10 bytes response message. There are three trouble code values packed into
the response. They are sent as 12 ASCII characters, starting with byte 10 of the received
string, as shown below. Each trouble code consists of four characters.
Byte Number
10 11 12 13 14 15 16 17 18 19 20 21
Read Firmware ID – This is used to read the firmware version in the protocol converter.
Send the string ‘900504’. The converter will respond with four characters in the form of
X.XX.
Change ECU – This is used to switch communication to another ECU, if any respond.
Send string ‘800204’. The converter will respond with a VT to indicate receipt of the
command. If a second responder is on the bus then communication will only occur with
the second ECU, or the first ECU if the change ECU command was previously issued.
Passthrough Mode - Future Command – This will allow the sending of any generic bus
message. This will be used only by advanced users as very detailed knowledge of the
vehicle bus protocol is required. The user will be able to receive up to six responses to
the command.
www.ghg.net/dharrison 7 of 7