The ELM327 allows you to talk easily with the on-board diagnostics (OBD) in your car.
There are tons of different devices on ebay and other stores. The authors recommended v1.3 or better. First I bought a v1.5a which is a scam. Even though the box says v1.5a and the device answers with v1.5a there is no such version, according to the developer page. The driver CD and the PCB reveals this it is actually a v1.2 - so do not buy this box. The PCB is pretty big and the Baud rate is only 9600.
![]() |
![]() |
I bought a second ELM327, this time v1.3a. The box looks almost identical to the one in the book. The PCB is maybe half the size to the v1.5a/v1.2 and the BAUD rate 38400 - much better!
![]() |
![]() |
The book recommends to connect the OBD-II to the ELM327 by using two cables - a standard OBD-II to DB9 cable and a adapter from DB9 to the 8 pin male header on the board. I also wanted to patch the USB connector, so I can use it later again. More about the serial DB9 connector can be found here. The pin layout is viewed from the front and the solder points pointing away from you.
Description | OBD-II (Male) | DB9 (Female) | DB9 (Male) | ELM327 |
---|---|---|---|---|
![]() |
![]() |
![]() |
||
Ground | 4 & 5 |
1 & 2 |
1 |
|
CAN high | 6 |
3 |
4 |
|
ISO K line | 7 |
4 |
6 |
|
CAN low | 14 |
5 |
3 |
|
J1850 bus- | 10 |
6 |
2 |
|
J1850 bus+ | 2 |
7 |
7 |
|
ISO L line | 15 |
8 |
5 |
|
Battery +12V | 16 |
9 |
8 |
I bought a standard cable for this. The OBD-II socket is below the steering wheel, a little to the left.
![]() |
![]() |
Unfortunately the plug sticks out too much towards the driver and interferes with driving. I opened the cable and decided it is easy to modify. I just saw off the end of the plug and moved the cables to the side.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Connecting the ELM327 is pretty easy...
Start the ELM327 and testing the version:
atz ELM327 v1.3a
Checking what protocol my Focus is running:
>atdp AUTO, ISO 15765-4 (CAN 11/500)
For this project I am only interested in Mode 1, which is "Show current data". Here is a list of potential OBD II PIDs, but first I have to find out what my Focus supports. Here is the output:
>0100 41 00 BE 3F BC 13 >0120 41 20 C0 17 E0 11 >0140 41 40 FC 00 00 00
PIDs |
Bit Mask |
_1 |
_2 |
_3 |
_4 |
_5 |
_6 |
_7 |
_8 |
_9 |
_A |
_B |
_C |
_D |
_E |
_F |
_0 |
01-10 |
BE 3F |
01 |
03 |
04 |
05 |
06 |
07 |
0B |
0C |
0D |
0E |
0F |
10 |
||||
11-20 |
BC 13 |
11 |
13 |
14 |
15 |
16 |
1C |
1F |
20 |
||||||||
21-30 |
C0 17 |
21 |
22 |
2C |
2E |
2F |
30 |
||||||||||
31-40 |
E0 11 |
31 |
32 |
33 |
3C |
40 |
|||||||||||
41-50 |
FC 00 |
41 |
42 |
43 |
44 |
45 |
46 |
||||||||||
51-60 |
00 00 |