AllPro Adapter
    
   
    
Home
AllPro Adapter
Windows Driver
Programming PIC18F
Products
References
About Me

OBD2 ELM327 compatible AllPro adapter with USB

 

Project Overview

On PC desktops the RS-232 serial ports are about to disappear from most computers (especially from laptops), replaced by the USB connection. This project was begun as a response to build simple ELM327 compatible USB adapter for On Board Diagnostic (OBD2) monitoring.

Hardware

Here is the issue - you need both CAN and USB in one chip. Microchip got a bunch of PIC18 processors with CAN functionality, for instance PIC18F2480 or PIC18F2580. But you are out of luck if trying to find the device supporting both CAN and USB. In this case Microchip has another solution - use the standalone CAN controller MCP2515 and interfacing with the main controller thru SPI bus. That is how AllPro adapter supporting CAN protocol. The schematic is shown in Figure 7. The ISO9141/14230 interface is implemented on MC33290, the J1850 VPW bus is controlled by MC33390 transceiver and the pair of P-channel and N-channel MOSFETs (Q1, Q2) is driving PWM bus and PIC18F2455 internal comparator together with resistors R4, R5 producing the differential PWM input. The sircuit is powered from USB bus. Transistor Q3 is for legacy L-line initialization in ISO9141 protocol.  I do not think that any car sold in US was ever using it but the specs says it might :) The firmware is available for download as well. Note, that previous schematic of AllPro with two crystals is in Figure 5 in case you need it.

 

The OBD2 Cable for AllPro adapter

The adapter uses 9 pin D type female connector to link up to vehicle’s OBD2 J1962 connector. The pinout was chosen to match many of the commercially available cables. The pin connections required of the cable are as follows:

J1962 PinDescriptionDB9F Pin
2J1850 Bus +7
5Signal Ground1
6CAN High3
7K Line4
10J1850 Bus -6
14CAN Low5
15L Line8
16Vehicle Battery Positive9

 

You can build the cable yourself as Mouser Electronics started selling J1962 OBD2 connectors made by Delphi.

Note, that it is just connector block, no shell provided and you have to ordered the connector pins separately, see the parts reference table below.

Description

Mouser #

J1962 connector 829-12110252
J1962 connector male pins

829-12047581

DB9 female connector

156-1309-E

DB9 connector shell

156-2009-E

 

Is it the right adapter for my car?

Any vehicles built for sale in US on or after 1996 have been required to have an OBD2 port. If your vehicle was built before 1995 it might have OBD2 connector but it is not necessarily OBD2 compliant. OBD2 standard comprises four different electrical interfaces:

  • ISO 9141/14230
  • J1850 PWM
  • J1850 VPW
  • ISO 15765 (CAN)

VPW (Variable Pulse Width) was originally introduced by General Motors when PWM (Pulse With Modulation) belongs to Ford. ISO 9141 and the later incarnation ISO 14230 (AKA Keyword 2000) is the one most of European and Asian vehicles using. All new model starting 2007/2008 have only CAN protocol. Here is the picture of typical a 16-pin OBD2 connector:

Find the connector in your vehicle and determine which pins are present using table below as the protocol reference:

         Protocol

Pin 2

Pin 6

Pin 7

Pin 10

Pin 14

ISO 9141/14230

 

 

ü

 

 

J1850 PWM

ü

 

 

ü

 

J1850 VPW

ü

 

 

 

 

ISO 15765 CAN

 

ü

 

 

ü

Note, that the only pins specific to particular protocols are listed. The exact location of the OBD2 connector varies from vehicle to vehicle, but it will be within three feet of the driver. Personally, I am using flashlight to get the clear view :)

 

Connecting and Testing

There is no driver required for Microsoft Windows XP/2000/Vista as the adapter using the standard Communication Device Class (CDC) driver usbser.sys included in the distribution. However, Windows doesn’t have a standard INF file for the CDC driver. You can download the info file here. Plug the adapter to a spare USB port on your PC. Windows Found New Hardware Wizard will launch. Skip the Windows Update screen and go to install screen. Select "Install from a list or specific location (Advanced)" as shown below and then click "Next". Select the OBD Adapter INF file and configure the driver.

Open the Device Manager and select "Ports (COM and LPT)", the device appears as a
"Communication Port". Go to  "Port Settings" tab and "Advanced" button. Select the port number you want to use.


Microsoft has a tool for examining the USB connections. USBView.exe is a freeware utility available for download, shows the USB connections tree and displays the details of USB devices connected to it, see the result below:

 

The Software

Here is the list the software I have tested so far with adapter:

Note that the free versions of ScanMaster and EeasyObdII are not supporting CAN protocol, apparently the authors are reluctant to keep them up-to-date.  Here are the screenshots of ScanMaster-ELM:

 

 

 

Adapter PCB

The adapter PCB is available for $6+S/H. The board was designed to fit SERPAC A20 enclosure, Mouser part reference 635-A-20-A or DigiKey part SRA20A-ND.

 

Adapter Kit

The Adapter  kit that including the PCB, preprogrammed PIC chip and all the components required is available as well, see Products page. The kit doesn't include the OBD2 cable.

 

Parts List

I have compiled the parts list for the most of popular electronic components vendors. PIC18F2455, MCP2515 and MCP2551 are available from Microchip Direct. MC33290 and MC33390 available from Freescale as part of free sample program in RoHS MCZ33290 and MCZ33390 modifications.

 

Part

Description

Mouser #

DigiKey #

J1

USB type B connector

737-USB-B-S-RA

609-1039-ND

J2

DB-9M connector

737-DE09-PL-24

A35113-ND

Q1,Q3

2N7000 transistor

512-2N7000

2N7000FS-ND

Q2BS250/VP2106 transistor781-BS250KL-TR1-E3BS250KL-TR1-E3CT-ND
IC1PIC18F2455579-PIC18F2455-I/SPPIC18F2455-I/SP
IC2MC33290841-MCZ33290EFMCZ33290EF-ND
IC3MC33390/MC33990841-MCZ33990EFMCZ33990EF-ND
IC4MCP2551/PCA82C250579-MCP2551-I/PMCP2551-I/P-ND
IC5MCP2515579-MCP2515-I/PMCP2515-I/P-ND
X1Crystal, 16.000Mhz815-ABL-16-B2X077-ND
D1Blue 5mm LED604-WP7113MBD67-1751-ND
D2Yellow 5mm LED604-WP7113YD516-1331-ND
D3Red 5mm LED604-WP7113ID516-1328-ND
D4,D51N4148 diode512-1N41481N4148DICT-ND
R1,R4,R5,R810K Ohm291-10K-RC10KQBK-ND
R2,R3330 Ohm291-330-RC330QBK-ND
R6,R722K Ohm291-22K-RC22KQBK-ND
R9,R10510 Ohm291-510-RC510QBK-ND
R11,R12100 Ohm291-100-RC100QBK-ND
C1,C215pF140-50N2-150J-RC490-3691-ND
C3,C6,C70.1uF871-B32529C104K189478-3383-ND
C40.47uF80-R82DC3470AA60J478-3415-ND
C8,C9560pF140-50P2-561K-RCBC1022CT-ND
C510uF 16V647-UVR1V100MDD1TA493-1036-ND
IC socket28 pin socket for IC1737-ICS-328-T3M5480-ND

 

Assembling Kit Notes

See assembling notes here

 

Schematic without MC33290 and MC33390

This is another proof on concept. Some folks are having problem obtaining MC33290 and 33390 chips. In this case you can bring into play the schematic shown in Figure 6. It is using SN75452 and 75453 drivers instead. Note, that it is not the better solution but rather workaround and using Freescale’s dedicated bus drivers is preferable.

 

 

Home | AllPro Adapter | Windows Driver | Programming PIC18F | Products | References | About Me

 

This page was last updated on 06/13/09