ELM327 emulator

I’ve been wanting to get diagnostic data from my truck for quite a while, but I haven’t wanted to spend the big bucks on the tools. Recently though I came across the ELM327. It’s an all-in-one IC solution for a scan tool. It even has a UART. You just need a few external parts for different COM interfaces and an OBDII connector. However, the IC itself is $32.50, and you still have to source the OBDII connector, create the schematic, do the layout, make the board, etc. So I decided to try one of the “ELM327 based” products off eBay.  It was $20 shipped from Hong Kong, and already has a USB interface.

dtcsComposite

The product is based on a PIC18, with an FTDI FT232R serial to USB converter. Use FTDI’s driver when you connect it to your PC though. I used the driver included on the CD that came with the tool, and it enumerated as a “high speed USB serial UART” and wouldn’t communicate.  I had to use FTDI’s driver removal tool to get rid of it so I could reinstall the correct one.

I tried the device on my truck with a couple different software programs: ScanTool.net, OBD2Spy, and wOBD. However the results were underwhelming, as I got two different sets of codes with the first two and the last program wouldn’t communicate with the tool.  ScanTool.net reported P0403, P0405, and P0460. OBD2Spy gave me P0204, P0304, and P0500. Obviously that’s not very helpful.

So I opened up the ELM327 datasheet and Realterm.  Realterm is always my favorite terminal program, but in this case I had to switch to Hyperterminal since Realterm doesn’t have the “Append line feeds to incoming line ends” feature. Realterm overwrites everything from the device on the same line.

I started with a simple protocol test, to make sure everything is working. Then I tried pulling PID 05, which is coolant temperature. It responded with the proper value. So I moved on to checking the number of codes. There were two. Finally I pulled those codes. They turned out to be P0204, P0304, and P0500. I’m not sure why the ECU thought there was two codes but listed three. Anyway, OBD2Spy gets the nod here. If you look at the output you can see that the other program was off by one byte, which is why the codes are similar but incorrect.

So the emulator works as advertised, at least in this test. The next problem though is that there are only a handful of previously defined PIDs that auto manufacturers use so that they can get diagnostic tool companies to pay for the extended PIDs required to actually do any useful troubleshooting. In order to get real-time data of detailed systems, you have to pay for software that has the extended PIDs.

Thursday, October 6th, 2011 Automotive

2 Comments to ELM327 emulator

  • Debraj says:

    Hi,

    I was able to read the OBD data from my car (CAN bus based). Please refer to the web link. If you have similar protocol, you can try my information. It will be cheaper and entirely diy!!

  • chuck says:

    Hi – I have bought the same device and got same results – I did not see your web link, nor am I really code savvy. I hate to just junk this if there is a reasonable fix. Any chance you have a step process I can follow?

  • Leave a Reply