Silicon ChipAn OBDII Interface For A Laptop Computer - February 2010 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: Wind farms are a blight for people in their vicinity
  4. Feature: A Look At Automotive On-Board Diagnostics by John Clarke
  5. Feature: Saving the Whales with the Aussie Pinger by Ross Tester
  6. Project: An OBDII Interface For A Laptop Computer by John Clarke
  7. Project: A Milliohm Adaptor for Digital Multimeters by Jim Rowe
  8. Project: Internet Time Display Module For The WIB by Mauro Grassi
  9. Project: A Multi-Function GPS Car Computer, Pt.2 by Geoff Graham
  10. Project: Precision Temperature Logger & Controller, Pt.2 by Leonid Lerner
  11. Vintage Radio: The Mullard Meteor 600 4-Valve Mantel Receiver by Rodney Champness
  12. Book Store
  13. Advertising Index
  14. Outer Back Cover

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":
  • OBDII Interface for Laptop Computers PCB pattern (PDF download) [05102101] (Free)
  • OBDII Interface for Laptop Computers front panel artwork (PDF download) (Free)
Items relevant to "A Milliohm Adaptor for Digital Multimeters":
  • Milliohm Meter Adaptor PCB [04102101] (AUD $10.00)
  • Milliohm Meter PCB pattern (PDF download) [04102101] (Free)
  • Milliohm Meter front panel artwork (PDF download) (Free)
Items relevant to "Internet Time Display Module For The WIB":
  • dsPIC33FJ64GP802-I/SP programmed for the Webserver in a Box (WIB) [0711109A.HEX] (Programmed Microcontroller, AUD $25.00)
  • Webserver in-a-Box (WIB) Programming Tables (PDF download) (Software, Free)
  • dsPIC33 firmware (HEX file) and website files for the Webserver in-a-Box project (Software, Free)
  • Webserver in-a-Box (WIB) PCB pattern (PDF download) [07111092] (Free)
  • Webserver in-a-Box (WIB) front panel artwork (PDF download) (Free)
  • Webserver in a Box (WIB) Internet Time Display Module PCB [07102101] (AUD $10.00)
  • PIC18F1320-I/P programmed for the Internet Time Display Module [0710210A.HEX] (Programmed Microcontroller, AUD $15.00)
  • PIC18F1320 firmware and source code for the WIB Internet Time Display module [0710210A.HEX] (Software, Free)
  • Webserver in-a-Box (WIB) Internet Time Display PCB pattern (PDF download) [07102101] (Free)
Articles in this series:
  • WIB: Web Server In A Box, Pt.1 (November 2009)
  • WIB: Web Server In A Box, Pt.2 (December 2009)
  • Web Server In a Box, Pt.3 (January 2010)
  • Internet Time Display Module For The WIB (February 2010)
  • FAQs On The Web Server In A Box (WIB) (April 2010)
Items relevant to "A Multi-Function GPS Car Computer, Pt.2":
  • GPS Car/Boat Computer PCB [05101101] (AUD $12.50)
  • PIC18F4550-I/P programmed for the GPS Car Computer [0510110E.HEX] (Programmed Microcontroller, AUD $20.00)
  • VK2828U7G5LF TTL GPS/GLONASS/GALILEO module with antenna and cable (Component, AUD $25.00)
  • Firmware (HEX file), source code and USB driver for the GPS Car Computer [0510110E.HEX] (Software, Free)
  • GPS Car/Boat Computer PCB pattern (PDF download) [05101101] (Free)
Articles in this series:
  • A Multi-Function GPS Car Computer, Pt.1 (January 2010)
  • A Multi-Function GPS Car Computer, Pt.2 (February 2010)
Items relevant to "Precision Temperature Logger & Controller, Pt.2":
  • Software for the Precision Temperature Logger and Controller (Free)
Articles in this series:
  • Precision Temperature Logger & Controller, Pt.1 (January 2010)
  • Precision Temperature Logger & Controller, Pt.2 (February 2010)

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