This is only a preview of the February 2010 issue of Silicon Chip. You can view 17 of the 104 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Items relevant to "An OBDII Interface For A Laptop Computer":
Items relevant to "A Milliohm Adaptor for Digital Multimeters":
Items relevant to "Internet Time Display Module For The WIB":
Items relevant to "A Multi-Function GPS Car Computer, Pt.2":
Items relevant to "Precision Temperature Logger & Controller, Pt.2":
Articles in this series:
Purchase a printed copy of this issue for $10.00. |
Build an OBDII interface
for a laptop computer
. . . and read fault codes & other data in your car’s ECU
If you have a laptop PC you can build your
own OBDII interface so you can access all
the information available to a dedicated
hand-held scan tool but at a much lower
cost. Not only can you access all the fault
codes in your car’s ECU but you can
then store them in your laptop for future
reference.
Design by JOHN CLARKE
E
LSEWHERE IN THIS issue, we
have a major feature on the topic
of On-Board Diagnostics (OBDII) and
here we describe how to build your
own OBDII scan tool. If you are not
familiar with OBDII, then you should
read the feature article before reading
further about this project.
Hand-held OBDII scan tools are very
convenient, especially where they can
be used everyday in a car workshop.
However, for the home mechanic, the
cost of a hand-held unit may not be
justified, especially when it might only
be used occasionally.
8
16
7
15
6
14
5
13
4
12
3
11
2
10
1
9
VEHICLE
OBDII SOCKET
While this OBDII Interpreter does
have an obvious drawback in that you
must use it with a laptop computer, it
does duplicate all the features available in a hand-held scan tool using
freely-available software.
Alternatively, for those who have
a Palm computer or a Pocket PC2002
or 2003 with a serial port, there is
software available that allows these
units to be used as an OBDII scan tool
instead of a standard PC. We have not
tried the software for the Palm or Pocket PC but we expect that it will work
as claimed by the software vendors.
For the PC, there are several free
software programs that are suitable
for computers running Windows 98
through to Vista. We tried three of these
software programs on a laptop running
Windows XP with success.
The SILICON CHIP OBDII-to-RS232
Interpreter enables your laptop PC,
Palm etc to operate with OBDII protoRS-232C LEAD OR
RS-232C TO USB
CONVERTER
SILICON CHIP
OBDII TO RS-232C
INTERPRETER
OBDII PLUG
RS-232C
OUTPUT
PC WITH SERIAL RS-232C
OR USB PORTS
Fig.1: the OBDII-to-RS232C Interpreter is connected between the vehicle’s OBDII socket and a laptop computer.
24 Silicon Chip
siliconchip.com.au
cols including CAN, ISO, KPW, PWM
and VPW. The Interpreter converts the
signals from OBDII format to a form
suited to communication with a PC.
General arrangement
Fig.1 shows the general arrangement. The OBDII Interpreter comprises
a small diecast box with a connector
that plugs into the in-vehicle OBDII
socket, while a DB9F connector provides an RS232 connection to the
laptop computer. If only USB ports
are available on the computer, then
an RS232-to-USB converter cable will
have to be connected to the OBDII
Interpreter instead.
LEDs on the OBDII Interpreter indicate when power is on and when
OBDII data and serial data is being
sent or received.
The key chip inside the OBDII Insiliconchip.com.au
The unit is housed in a rugged metal diecast
case and is powered via the vehicle’s OBDII socket.
terpreter is an ELM327 which is based
on a PIC16F873 microcontroller (or
similar). Considerable development
of the software has been done by ELM
Electronics, based in Canada, to ensure
the chip works correctly with all currently used communication protocols.
Note that there are low-cost OBDII-
to-RS232 interpreters available at
various sites on the internet and these
are often based on a pirated clone of
the ELM327. However, many of these
cloned interpreters can have erratic
operation due to software bugs.
We have specified the genuine
ELM327. Data for the ELM327 is availFebruary 2010 25
STATUS LEDS
26
25
28
27
1
20
MCLR
5
6
7
18
17
15
16
Vcc
INSIDE THE ELM327
MEMORY
BAUD RATE
LF MODE
Rx
Tx
RS-232C
INTERFACE
Vmeasure
A/D
CONVERTER
2
COMMAND
AND
PROTOCOL
INTERPRETER
OBD INTERFACES
RTS
ISO 15765-4
CAN
BUSY
XT1
XT2
10
9
ISO 9141-2
ISO 14230-4
SAE J1850
PWM & VPW
GND
8
19
23
24
21
22
12
3
4
14
13
11
4MHz
Fig.2: internal arrangement of the ELM327 IC. It’s basically a custom-programmed PIC microcontroller.
able at www.elmelectronics.com
Fig.2 shows the internal arrangement of the device. All OBDII communication protocols are catered for
so that the device will work with any
vehicle that complies with the OBDII
standard. These standards are CAN
(Controller Area Network), ISO (International Organisation for Standardisation) 9141-2, ISO 14230 KWP2000
(Keyword Protocol), SAE (Society of
Automotive Engineers) J1850 PWM
(Pulse Width Modulation) and SAE
J1850 VPW (Variable Pulse Width).
Circuit details
The full circuit for the OBDII Interpreter is shown in Fig.3 and is largely
based on the application literature
from Elm Electronics.
For the CAN protocol, IC2, an
MCP2551 Controller Area Network IC
from Microchip is used. Pins 6 & 7 of
IC2 drive the OBDII connections for
the CAN bus. IC1 sends data from its
CAN Tx pin 23 to IC2 at pin 1. Data is
received at the CAN Rx pin 24 from
pin 4 of IC2.
A 4.7kΩ resistor at pin 8 sets the rise
and fall rates on the CAN bus drive
to less than 25V/µs. This slow rise
and fall rate reduces electromagnetic
interference.
Data for the MCP2551 is available
from www.microchip.com
Transistors are used to provide the
necessary level shifting for the other
OBDII communications standards.
ISO communications use pins 15
26 Silicon Chip
& 7 of the OBDII connector and these
are driven by transistors Q6 & Q7 from
pins 22 & 21 of the ELM327. Note that
510Ω pull-up resistors are connected
between each transistor collector and
the +12V supply rail.
The signal from pin 7 of the OBDII
connector is reduced by about 32%
using a 47kΩ and 22kΩ voltage divider and is then applied to the pin 12
Schmitt trigger input of IC1. If pin 7 of
the OBDII connector is at +12V, then
pin 12 of the ELM327 will be at +3.83V
and this is recognised as a high level.
VPW communication is via pin 2 of
the OBDII connector while the PWM
protocol is via pins 2 & 10. An LM317
adjustable 3-terminal regulator, REG2,
sets the voltage swing at pin 2 to approximately 7.5V for the VPW protocol
and 5V for the PWM protocol.
When IC1 pulls its pin 3 to 0V, the
total resistance between REG2’s ADJ
terminal and 0V is 240Ω plus the two
240Ω resistors in parallel. This sets
REG2’s output to +5V. When pin 3 of
IC1 is set at +5V, the output of REG2 is
set to +7.5V. This is applied to pin 2 of
the OBDII connector via transistor Q2
and diode D2. This occurs when transistor Q1 is switched on via pin 4 of
IC1, in turn switching on transistor Q2.
Pin 10 of the OBDII connector is
pulled low by transistor Q3 when it
is switched on via the pin 14 output
of IC1.
For PWM operation, transistors Q4
& Q5 convert the differential signals
at pins 2 & 10 of the OBDII bus to a
single-ended signal which is fed to
pin 13 of IC1.
IC1 monitors the vehicle battery via
a voltage divider comprising 47kΩ and
10kΩ resistors on pin 2 (Vmeas). It then
converts the input to a digital value.
This becomes part of the live data and
is displayed on the computer screen.
RS232 operation
While IC1 does have RS232 (Tx) and
Receive (Rx) lines for serial data at
pins 17 & 18 they require translation to
the standard RS232 levels. This is the
task of the MAX232 RS232 driver, IC3.
IC3 converts the 5V signal levels from
IC1 to ±10V levels for RS232 signalling. To do this, the 5V supply to IC3
is doubled in value and also inverted
using internal switching circuitry and
the external 1µF capacitors.
Default settings
Pins 5, 6 & 7 of IC1 are all tied high
(+5V) on the PC board to select default
options. For example, pin 5 of IC1 is
connected to +5V to select the memory
option – it remembers the last OBDII
protocol connection. So if your vehicle
uses the VPW protocol for example,
this will be selected when the Interpreter is used next time.
Selecting the memory option makes
connection much faster. Without the
memory, each protocol would have
to be tested for a valid connection
until successful communication was
achieved.
Pin 6 is connected to +5V to set the
siliconchip.com.au
OBDII
CONNECTIONS
16
+12V
D1 1N4004
10
A
REG1 7805
+11.3V
K
100 F
16V
+12V
+5V
OUT
IN
100nF
A
10 F
16V
GND
K
+5V
3
CAN
L
CAN
H
6
2x
560pF
2x
100
OBD
Rx
LED2
K
A
A
RS-232
Tx
LED3
K
470
K
470
RS-232
Rx
470
LED4
A
POWER
470
LED5
MCLR Vdd
RTS
28
24 CAN
OBDTx
Rx
27
23 CAN
OBDRx
26
Tx
RS-232Tx
25
RS-232Rx
6 CAN Vdd
4
RxD
L
7 CAN
1
IC2
TxD
H MCP2551
5
8
Rs
Vref
Vss
2
14
LED1
A
470
15
20
1
OBD
Tx
K
4.7k
MEMORY
5
REG2 LM317T
ISO
L
BAUD 6
RATE
OUT
IN
510
120
ADJ
15
LF MODE
C
B
Q6
240
240
E
+12V
3 J1850
VOLTS
240
510
ISO
K
+5V
2.2k
22 ISO
L
7
C
2.2k
B
Q7
21 ISO
K
E
47k
12 ISO
IN
2
Vmeas
22k
BUSY
16
IC1
ELM327
+5V
16
1 F
2
10k
E
C
100nF
3
B
Q2
10k
1 F
RS-232 17
Tx
4.7k
A
C
D2
4.7k
B
Q1
E
K
RS-232 18
Rx
4 J1850
BUS+
4
IC3
MAX232
10k
1 F
T1o 14
RS-232C
CONNECTOR
10 T2in
T2o 7
1
12 R1o
R1in 13
2
6
7
3
R2in 8
11 VPW
IN
+5V
1 F
5
11 T1in
9 R2o
10k
2
1 F
6
1
47k
J1850
(+)
7
8
4
15
9
5
22k
DB9F
22k
100k
D3
J1850
(–)
GND
GND
10
K
A
B
4
5
C
Q3
E
B
LEDS
4.7k
E
13 PWM
IN
Q4
C
B
C
Q5
E
4.7k
10k
XT1
14 J1850
BUS–
XT2
Vss
8
10
X1 4.0MHz
SC
OBDII INTERPRETER
LM317T
Q2, Q4: BC327
B
E
C
C
7805
GND
OUT
K
D2, D3: 1N4148
A
B
E
D1: 1N4004
2010
Q1, Q3, Q5–Q7: BC337
27pF
27pF
Vss
19
A
K
A
9
K
ADJ
OUT
IN
IN
GND
OUT
Fig.3: the complete circuit diagram of the OBDII-to-RS232 Interpreter. As well as the ELM327 microcontroller, it also
uses an MCP2551 Controller Area Network IC (for the CAN protocol) and a MAX232 driver (IC3) for level translation.
siliconchip.com.au
February 2010 27
II D B O 1 0 1 2 0 1 5 0
DB9F
1 F
IC3 MAX232
1 F
120
1 F
10k
47k
4.7k
4.7k
10k
4148
Q1
10k
D3
LED5
22k
10k
D2
1 F
4.7k
Q2
240
Q7
22k
22k
100nF
Q6
IC1 ELM327
4.00MHz
2.2k
X1
15
10
1 F
REG2
100nF
2.2k
2
100 F
REG1
IC2
MCP2551
16
7
470
470
470
470
560pF
4.7k
10 F
27pF
4,5
LED1 LED2 LED3 LED4
10k
470
47k
240
4.7k
240
27pF
10
4004
14
100
100
6
510
510
D1
560pF
4148
100k
Q4
Q5
Q3
Fig.4: install the parts on the PC board as shown in this layout diagram.
Note that 3-terminal regulators REG1 & REG2 and the two electrolytic
capacitors have to bent over to clear the case lid (see photo below).
CABLE TIES
RS232 baud rate to 38,400 bits/s. When
pin 6 is tied to 0V, the baud rate is 9600.
With pin 7 at +5V, IC1 sends a line
feed signal after each block of data as
well as a carriage return. With pin 7
at 0V, only a carriage return signal is
sent. You could change each of these
options by cutting and linking the
tracks associated with pins 5, 6 & 7
but we cannot think of why anyone
would want to do so.
A 4MHz crystal connected to pins 9
& 10 of IC1 sets the frequency of operation and determines the accuracy of
the baud rate and the OBDII data rate.
LEDs 1-4, connected to pins 25-28
of IC1, show RS232 and OBDII signal
operation.
Power for the circuit is derived from
the 12V supply from the OBDII port
(pin 16) via a 10Ω resistor and reverse
polarity protection diode D1. The 10Ω
resistor and 100µF capacitor filter the
voltage applied to the 7805 5V regulator, REG1. LED5 is the power indicator.
Construction
The SILICON CHIP OBDII Interpreter
is assembled onto a PC board coded
05102101 and measuring 105 x 56mm.
It is housed in a diecast box measuring
111 x 60 x 30mm. An 8-way cable provides connection to the OBDII connec-
Table 2: Capacitor Codes
This is the view inside the prototype. Note the cable ties (arrowed) attached
the tabs of the two 3-terminal regulators. They are necessary to prevent the
metal tabs from shorting to the case lid.
Value µF Value
1µF
1µF
100nF 0.1µF
560pF NA
27pF
NA
IEC Code
1u
100n
560p
27p
EIA Code
105
104
561
27
Table 1: Resistor Colour Codes: OBD Interceptor
o
No.
Value
4-Band Code (1%)
5-Band Code (1%)
o
o
o
o
o
o
o
o
o
o
o
o
1
2
3
5
5
2
2
5
3
1
2
1
100kΩ
47kΩ
22kΩ
10kΩ
4.7kΩ
2.2kΩ
510Ω
470Ω
240Ω
120Ω
100Ω
10Ω
brown black yellow brown
yellow violet orange brown
red red orange brown
brown black orange brown
yellow violet red brown
red red red brown
green brown brown brown
yellow violet brown brown
red yellow brown brown
brown red brown brown
brown black brown brown
brown black black brown
brown black black orange brown
yellow violet black red brown
red red black red brown
brown black black red brown
yellow violet black brown brown
red red black brown brown
green brown black black brown
yellow violet black black brown
red yellow black black brown
brown red black black brown
brown black black black brown
brown black black gold brown
28 Silicon Chip
siliconchip.com.au
A
A
A
A
7
6
9
A
5.5 5.5 5.5
8
17
18
25.4
B
10
CL
30
A
(LEFT-HAND
END OF CASE)
ALL DIMENSIONS IN MILLIMETRES
10
11.5
A
(RIGHT-HAND
END OF CASE)
(CASE LID/FRONT PANEL)
ALL CORNERS OF HOLE B
HAVE 3.0mm RADIUS
HOLES A ARE ALL 3.0mm IN DIAMETER
Fig.5: follow this diagram to mark out and drill the holes in the the metal case. The cutout for the RS232 socket can be
made by drilling a series of small holes around the inside perimeter, then knocking out the centre piece & filing.
tor while an RS232 female connector
provides connection to a computer.
Fig.4 shows the component layout
for the PC board. Begin construction by
checking the PC board for any defects
such as shorted tracks or breaks in the
copper. Check also that the corners
have been shaped to clear the internal
corner sections of the box. The corner
cut-out shaping required is outlined
using thin tracks on the underside of
the PC board.
Insert the 0Ω links and the resistors first, taking care to place each in
its correct place. Use the colour code
table as a guide to select each resistor and check each one with a digital
multimeter before installing it on the
PC board. That done, solder in the PC
stakes for the OBDII cable connections
– see also Fig.6..
Now install the diodes and the IC
sockets. For IC1, it can be difficult to
obtain a DIP28 socket that is 0.3-inch
wide. A 0.6-inch wide socket can be
used instead but with the socket cut
into two separate 14-way strips which
are then mounted separately. Take care
to orient the sockets correctly.
The capacitors can be installed next
but be careful with the two electrolytic
types – they must be oriented with
the polarity shown. In addition, the
latter must be bent over to clear the
lid of the box.
Transistors Q1-Q7 can be mounted
next, taking care to use BC337 NPN
transistors for Q1, Q3, Q5, Q6 & Q7 and
BC327 PNP transistors for Q2 & Q4.
Now for regulators REG1 and REG2.
They must have their leads cranked
siliconchip.com.au
OBDII Interpreter: Main Features
•
•
•
•
•
•
•
•
Enables checking for diagnostic trouble codes
Clears trouble codes and Malfuntioning Indicator Lamp (MIL)
Shows real-time data
Extra features are software dependent
Interpreter interfaces between the vehicle’s OBDII port and a computer
Serial or USB connection (via an adaptor) to computer
Power for the OBDII Interpreter obtained via the vehicle’s OBDII port
Works with CAN, ISO, KPW, PWM and VPW protocols
so that they can clear the lid of the
case. We placed a cable tie through the
mounting hole of each regulator tab
and secured the tie in place around the
end of the tab. This ensures the metal
tabs will not make contact with the
metal case lid – see photo.
The LEDs are next on the list. Install each one so that its top is 21mm
above the surface of the PC board. This
will allow them to protrude slightly
through the lid when it is in place.
Take care to orient each with the
anode (longer lead) toward the top of
the PC board.
A cardboard spacer cut to 16mm and
inserted between the leads of each LED
as it is soldered into place can be used
to accurately set their heights.
Finally, install the crystal and RS232
DB9F right-angle connector. Note that
the mounting clips for the connector
may need expanding a little on the
underside of the PC board so the connector is held in place securely rather
than relying on the soldered pins holding it in place.
Boxing it
The first step here is to mark and cut
out the shape required for the DB9F
connector in the side of the case. All
the relevant dimensions are shown
in Fig.5.
The cut-out can be made by drilling
a series of holes around the inside of
the marked perimeter and then knocking out the centre section. Use a file to
finish the job.
A semicircular cut-out is needed at
the opposite end of the case to accept
the cord grommet. The grommet is ultimately secured in place with the lid.
Next, unscrew the two spacers on
the DB9F connector and insert the PC
board into the box. That done, mark
out the corner mounting holes in the
base of the box, then remove the PC
board and drill these out to 3mm.
These holes are then countersunk
February 2010 29
9
16
1
8
16
OBDII
CONNECTOR
9
6
14
4,5
16
6
14
4,5
2
15
16
RUBBER
GROMMET
DOUBLE SIDED
PC BOARD WITH
CONNECTION PINS
7
10
DIECAST BOX
(REAR VIEW)
1
8
OBDII Connector Wiring
(FRONT VIEW)
PC BOARD
CABLE TIE
CABLE CLAMP/
CONNECTOR BOOT
15
7
CABLE TIE
2
10
Fig.6: this diagram and the photos on the following page show how the 8-core
Cat-5 cable is wired to the OBDII connector board and to the main PC board.
Take care with the orientation of the PC board in the OBDII connector shell.
from the underside of the box to suit
countersunk screws.
Finally, five holes must also drilled
in the lid of the case for the LEDs.
Once the drilling has been completed, the PC board can be mounted
in the case. Begin by attaching the
6mm spacers to the underside of the
PC board using M3 x 4mm screws,
then insert the board into the box
and secure with it using countersunk
screws through the bottom. The DB9F
spacers can then be screwed onto the
connector to secure it to the box.
Cable wiring
To wire up the OBDII connector you
will need a 600mm length of 8-core
Cat-5 cable. The details of the cable
wiring are shown in Fig.6. Note, however, that the wire colours shown are
not what you would find inside a real
Cat.5 cable. We’ve used the colours
shown in Fig.6 for clarity.
First, strip the outer sheath back by
about 30mm at each end and then strip
the insulation off each wire, prior to
soldering. At the PC board end, pass
the lead through a grommet and fit a
small cable tie over it to act as a cord
clamp. That done, fit heatshrink sleeving over each of the eight wires before
soldering them to the eight PC stakes
on the board.
At the OBDII connector end, pass
the cable through the stress-relief/cord
Fig.7: the COM port
you will be using on
the laptop must be set
to 38,400 baud, 8-bit
data, no parity and
one stop bit. Leave the
flow control setting at
none. Note: this dialog
is accessed through
Device Manager (see
text).
30 Silicon Chip
clamp before soldering the wires to
the small double-side PC board of the
OBDII connector. This board comes
with 16 pins already fitted which connect to eight PC pads in between the
two rows of pins.
To make it easy to connect the 8-way
Cat-5 cable to it, we first soldered eight
PC stakes to the board. The eight wires
are then soldered to the stakes. As you
can see in the relevant photos, each
individual wire is first fitted with a
10mm-long heatshrink sleeve before
being soldered to its PC stake.
Before soldering the wires, make
sure the pin labelling (1-16) on the
rear of the double-sided PC board
matches the pin numbers moulded
into the OBD
II connector housing
(as seen from the front), ie, pin 1 on
the rear of the double-sided PC board
must match pin 1 on the inside front
of the plug. Fig.6 shows the details.
Why do we make a point of this?
As supplied, our connector had the
double-sided PC board with the connector pins oriented incorrectly by
180°. This can be fixed by removing
the PC board/pin assembly from the
OBDII connector shell and reinserting
it with the correct orientation.
A cable tie around the cable will
prevent it from being pulled out
through the cable relief/cord clamp
(we found that the cord clamp does
not sufficiently anchor the cord). The
wiring at the other end of the cable is
simply connected to the PC board pins.
Finally, make sure that the wire
colours going to the pins in the OBDII
connector match those going to the PC
board, as shown in Fig.6.
siliconchip.com.au
The leads from the 8-core Cat-5 cable are wired
to PC stakes at the back of the OBDII connector
board. Be sure to get the pin numbering correct
and be sure to match the lead colours at both
ends (see Fig.6).
Another view of the wiring to the OBDII connector board.
Use a cable tie to stop the lead from pulling through the cord clamp
At this stage, you should be finished
with the assembly, so let’s discuss
computer ports and software.
Computer ports
Before proceeding with the software
downloads, decide what port you will
be using on your computer for the
OBDII Interpreter connection – ie,
either an RS232 serial port or a USB
port. If you have an older PC or laptop with a serial port, then this is the
cheaper option as you only need a serial extension cable. However, to state
the obvious, a PC is not portable and
requires 230VAC power.
By contrast, if you have a laptop that
doesn’t have a serial port, your only
option is to use a serial-to-USB cable
to connect to one of the USB ports.
For serial port use, the COM port
needs to be set for 38,400 baud, 8-bit
data, no parity and one stop bit. To do
this in Windows XP, first right-click
My Computer to bring up the System Properties dialog, then click the
Hardware tab and click on the Device
siliconchip.com.au
Manager button. Now click the “+”
sign next to Ports (COM & LPT), the
right-click the Communications Port
entry, click Properties and select the
Port settings tab to bring up the dialog
shown in Fig.7.
Finally, change the serial (usually
COM1) port settings to the values
listed above, ie, 38,400 baud, 8-bit
data, no parity and one stop bit (leave
the Flow Control setting at none).
Using a USB port
If you are using a USB port, then you
will have to install a USB-to-serial converter driver. The CD supplied with the
cable contains drivers for Windows
Vista, Windows XP and Windows 98,
so be sure to choose the correct driver
to suit your operating system.
When you plug the USB-to-serial
converter into a USB port, you will
be automatically prompted to install
a suitable driver from the disk. You
can either manually select the driver
or choose automatic installation by
selecting the appropriate options.
The PC stakes are
installed from the
pin side of the
OBDII connector
board.
Be sure to fit the connector shell/
keyway over the pins with the
correct orientation – see text & Fig.6.
In operation, the USB driver uses
a virtual serial communications port.
Depending on the operating system,
you may be required to select a COM
port number for the USB-to-serial
converter. Be sure to select a COM port
number that is free to use.
For computers without a serial
port, you can usually select COM1.
Conversely, for computers with a
serial port, a COM port number that
is different to the original COM port
must be selected.
In addition, the settings for the virtual serial port will need to be checked.
To do this in Windows XP, go to the
Device Manager (as outlined above),
click the “+” sign next to Ports (COM
& LPT), right click the USB-to-serial
bridge entry and change the Port Settings to 38,400 baud, 8-bit data, no
parity and one stop bit.
Software packages
As mentioned earlier, we tested
three software packages with the
OBDII-to-RS232 Interpreter. A sumFebruary 2010 31
Fig.8: EasyObdII has lots of features. It works with our
Interpreter but only when using a serial-to-USB converter.
Fig.9: this General Data screen grab shows just some of the
information that’s available using EasyObdII.
Fig.10: typical oxygen sensor data from EasyObdII. The
outputs from two Bank 1 sensors are shown here.
Fig.11: EasyObdII’s On Board Diagnostics Tests page
shows which tests have been carried out & completed.
mary of the features available for each
package is shown in Table 3.
(1) The EasyObdII v2 software covers
most OBDII features and is written
specifically for Scantool OBDII interfaces only. However, it does run using
our OBDII Interpreter but only when
using a serial-to-USB converter and a
USB port on the PC. It’s available free
of charge from http://www.easyobdii.
com (although you have to go through
the on-line purchasing process).
After completing your details, an
email will be sent informing you of the
site location to download the software.
The software downloads as an executable file called EasyOBDII.exe.
The EasyOBDII.exe file can be saved
Table 3: Summary Of OBDII Software Features
EasyObdII v2.3.0
wOBD v1.51
ScanTool v1.15
Read DTCs*
Yes
Yes
Yes
Clear MIL* and DTCs
Yes
Yes
Yes
Real-Time Data
Yes
Yes
Yes
Continuous I/M* Monitors
Yes
Yes
-
Non-Continuous I/M Monitors
Yes
Yes
-
-
-
-
Vehicle Information
Freeze Frame Data
Serial Or USB Operation
Yes
-
-
USB only
Both
Both
*DTC = Diagnostic Trouble Code; MIL = Malfunction Indicator Lamp; I/M = Inspection & Maintenance
32 Silicon Chip
into a new folder called c:\programs\
Easy OBD. Then a shortcut can be created and placed on the desktop. When
run, the COM port is automatically
selected and the OBDII connection
is made. The port status can also be
checked by clicking the Show COM
Port Configuration button – see Fig.8.
A sample of the general data available with the Easy OBDII software can
be seen in the screen grab of Fig.9.
Oxygen sensor data is shown in the
screen grab of Fig.10, while on-board
diagnostic tests are shown in Fig.10.
(2) Werner Digital Technology at OBD2
Crazy.com provides free software for
the ELM32X based OBDII converters.
This software can be downloaded as
a zipped file (FULwOBD.zip) from
http://www.obd2crazy.com/software.
html. Download the file, open it and
run setup.exe to install the program
and place a shortcut on the desktop.
The version we used was wOBD v1.51.
siliconchip.com.au
In order to use this program, both
the COM port and the baud rate must
first be set. It’s just a matter of selecting the correct COM port number and
setting the baud rate to 38,400. The
screen grab of Fig.12 shows a COM4
setting and this is for a virtual serial
port using a USB input on our laptop
computer. This COM number may be
different for your computer.
The Check Engine page of wOBD
(Fig.13) shows the Diagnostic (MIL)
Codes and the status of both the Continuous and Non Continuous Monitoring functions. Fig.14 (Poll Data) shows
some of the data available. The white
sections are the valid data while the
grey sections show data that has yet
to be updated. Note that some data
is in imperial units (°F, psi and mph)
while other data is in metric units (kPa
and gm/s).
The data can be updated repetitively
by setting the screen refresh update
rate to 1s.
(3) The third program, ScanTool v1.15,
is open source software and can
be downloaded from http://www.
scantool.net/scantool/downloads/
diagnostic-software/. The download
file is scantool_net115win.exe. This
file is then run to install the ScanTool
software and a shortcut is placed on
the desktop.
As before, both the COM port and
baud rate need to be set. The port is
Fig.13: the Check Engine dialog of wOBD shows the
diagnostic codes (if any) and displays the status of the
Continuous and Non-Continuous Monitoring functions.
siliconchip.com.au
ScanTool v1.15 is just one of
several freeware programs
that can be used with the
OBDII-to-RS232 Interpreter.
Fig.12 (left): wOBD is another
excellent freeware program that
works with our OBDII-to-RS232
Interpreter. A COM4 port setting
is shown here (change this to
suit your computer) and you
must set the baud rate to 38400.
Fig.14: wOBD displays a range of data, including engine
RPM, ignition advance, air flow & coolant temperature.
February 2010 33
Parts List For OBDII Interpreter
1 PC board, code 05102101,
105 x 56mm
1 diecast box, 111 x 60 x 30mm
(Jaycar HB-5062)
1 front panel label, 90 x 55mm
1 OBDII 16-pin connector (Jaycar PP-0720)
1 DB9 male to DB9 female
extension cable (all pins wired
straight through); OR
1 DB9 male RS232-to-USB converter cable (Jaycar XC-4834)
1 DB9F female right-angle PC
mount connector
1 DIP28 IC socket with 0.3-inch
spacing (or cut down a 0.6inch socket or use two DIP14
sockets end-to-end, or use
two SIL14-pin socket strips)
1 DIP16 IC socket
1 DIP8 IC socket
1 4MHz crystal (X1)
1 rubber grommet for 6mm cable
4 M3 x 6mm Nylon tapped spacers
4 M3 x 4mm screws
selected by clicking the Options button (see Fig.15) – just select the correct
COM port number and set the baud rate
at 38,400. The COM4 setting shown in
Fig.16 is for the virtual serial port using
the USB connection on our computer.
This number may be different for your
computer.
Either metric or imperial units for
4 M3 x 5mm countersunk
screws
1 600mm length of 8-core Cat-5
cable
4 100mm cable ties
1 200mm length of 2.5mm heatshrink tubing
16 PC stakes
Semiconductors
1 ELM327P microcontroller
(28-pin slimline PDIP package); available from ELM Electronics (www.elmelectronics.
com) (IC1)
1 MCP2551-I/P CAN IC (8-pin
PDIP); available from Microchip
(www.microchip.com) (IC2)
1 MAX232CPE multi-channel
RS-232 driver/receiver (IC3)
1 7805 5V 3-terminal regulator
(REG1)
1 LM317T adjustable 3-terminal
regulator (REG2)
5 BC337 NPN transistors (Q1,
data should be selected, depending on
your preference.
A sample of some sensor data using
ScanTool is shown in Fig.17. Data will
not be shown unless the corresponding
"ON" button is on. These buttons are
toggled on or off using the mouse. If
you receive the error message shown
in Fig.18, the data cannot be displayed.
To restore communication, left
mouse click on the OK button and the
Q3,Q5,Q6,Q7)
2 BC327 PNP transistors (Q2,Q4)
1 1N4004 1A diode (D1)
2 1N4148 diodes (D2,D3)
4 3mm red LEDs (LED1-LED4)
1 3mm high-efficiency green
LED (LED5)
Capacitors
1 100µF 16V PC electrolytic
1 10µF 16V PC electrolytic
5 1µF monolithic ceramic
2 100nF monolithic ceramic
2 560pF ceramic
2 27pF ceramic
Resistors (0.25W, 1%)
1 100kΩ
5 470Ω
2 47kΩ
3 240Ω
3 22kΩ
1 120Ω
5 10kΩ
2 100Ω
5 4.7kΩ
1 10Ω
2 2.2kΩ
3 0Ω links
2 510Ω 0.5W
software will close. That done, unplug
the OBDII connection and reload the
ScanTool software. Finally, select
Sensor Data and plug the OBDII connector into the OBDII socket to regain
communication.
Other software
As previously mentioned, software
is also available for PalmOS and the
Pocket PC. This is called OBD Gauge
The unit is compact and rugged and handles all common
OBDII protocols including CAN, ISO, KPW, PWM & VPW.
It duplicates all the features found in commercial scan
tools but uses a laptop computer for the display.
34 Silicon Chip
siliconchip.com.au
Fig.15: ScanTool v1.15 is easy to use – just click the
relevant button on the opening dialog.
Fig.16: clicking the Options button lets you choose the
COM port (COM4 selected here) and the baud rate (38400).
Fig.17: this screen grab shows just some of the sensor data
that cab be obtained using ScanTool v1.15.
Fig.18: ScanTool v1.15 sometimes throws up this error
message. Refer to the text for the way around this problem.
and can be found at: http://www.qcontinuum.org/obdgauge/
Conclusion
EasyObdII software is the best
choice if you are connecting to the
laptop via a USB port. That’s because
it includes most OBDII functions
although as previously stated, not all
functions will necessarily be provided
with your vehicle.
For serial connection we liked the
ScanTool software because of its impressive presentation. However, its
lack of Freeze Frame data and I/M
readiness monitoring makes it less
attractive. Future versions of this software may include these features since
the selection buttons are already there
(but not yet operational).
That leaves wOBD as the best opsiliconchip.com.au
tion for serial computer interface use.
It only lacks vehicle information and
Freeze Frame data. Whether or not
lack of Freeze Frame data is a concern
depends on whether your vehicle
provides this feature.
Another disadvantage of the wOBD
software is that it shows some data in
imperial units, such as °F and miles
SC
per hour (mph).
An RS232-to-USB
converter cable is
required to connect
the OBD-to-RS232
Interpreter to a
laptop computer.
Alternatively, you
can use a serial
cable to connect it
to a desktop PC.
February 2010 35
|