Maker Pro
Maker Pro

Talking to (ELM327-based?) OBD2 reader's UART over USB-RS232

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
I have an OBD2 vehicle fault code reader possibly based on an ELM327 chip. It has an OBD-style plug on one end which is intended to plug into a car diagnostic port, and a USB-B socket on the other end which you plug into a computer USB port.

My Windows 7 PC recognised the device over USB and installed it as:

Manufacturer:FTDI; "US232B" on COM5 "USB Serial converter"

I installed a terminal program "PuTTY" & tried connecting to COM5 at 9600 Baud, 8 data bits, no parity, 1 stop bit, xon/xoff flow control. https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

PuTTY reported a successful connection, popping open an actual terminal window

tried issuing some commands.. ATI etc: http://www.obdtester.com/elm-usb-commands

Every keypress, I can see the OBD reader's USB TX LED wink. If I buffer up a long string before sending I get a long flash on the TX LED.

I'm seeing nothing visible in the terminal window though. I was expecting to see a few "OK"'s and maybe some ID information. As it is, I only get my own keypresses echoed back (if I manually configure PuTTY to do that - if I don't, I just get a stationary cursor)

Intuitively 'feels' like it's seeing my keypresses okay but that's as far as it goes, something stopping the replies

Unfortunately I don't have much info regarding the actual specifications of the serial converter inside the inscrutable blue box of the OBD2 reader. The only info I have is, it's 2010 vintage and calls itself "GENDAN EOBD Diagnostic Interface Multi Protocol www.gendan.co.uk".

The reader works fine with it's supplied Windows GUI software; also with some of the OBD reader Android apps on the Play Store loaded onto a Tesco Hudl tablet computer. Used it successfully on a few cars yesterday

I found a nice serial terminal app for Android on the Play Store but I get similar results with that on the tablet, as I do with PuTTY on Win7. Everything indicates a successful connection, but never get any replies to AT commands.
https://play.google.com/store/apps/details?id=com.timersnsavers.bluetoothusbwifiterminal

Tried a few different variations on the connection parameters (different baud rates, different combinations of stop bits, parity, flow control) - hit on nothing that helped. Save for a very few of the combinations I tried, most combinations seemed to result in a successful connection being reported. IIRC one or two combinations just timed out, and one seemed to lock up the TX LED

Any ideas?


chips inside the box:
"""""""""""""""""""""""""""

PIC18F2480-I /SO 0903ETD (Possibly as an ELM327?) DIL microcontroller
http://www.microchip.com/wwwproducts/en/en020612

FTDI FT232BL 1109 UART
lead-free version of http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232BM.pdf

ATNLH844 46D 1 Z8H2368A 8 pin DIL EEPROM

LM317 regulator

LM393 dual differential comparator
http://www.ti.com/product/lm393

MCP2551 Vehicle CANbus transceiver?
http://users.ece.utexas.edu/~valvano/Datasheets/MCP2551.pdf






This chap here >> https://mikesmodz.wordpress.com/tag/elm327/ >> seems to have had great success using PuTTY for exactly the same purpose as I'm trying, except his adapter is Bluetooth, not wired USB.
 
Last edited:

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
tried connecting to COM5 at 9600 Baud, 8 data bits, no parity, 1 stop bit, xon/xoff flow control.
Are you sure these parameters are a match for the (virtual) serial interface settings on the ODB-tester's side?

You can try to snoop on the communication between the windows app and the odb-tester e.g. by using this serial port monitor or a similar software. This should allow you to find the correct parameters. But frankly I don't know whether this software works with virtual COM ports, too.
 

kellys_eye

Jun 25, 2010
6,514
Joined
Jun 25, 2010
Messages
6,514
tried connecting to COM5 at 9600 Baud, 8 data bits, no parity, 1 stop bit, xon/xoff flow contro
xon/xoff isn't used for most ODB2 comms. Some USB-serial cables also have 'issues'. Do you have another make you can try?

Try sending ATZ to reset the ODB2 device.
 

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
Thanks peeps. Yes I tried ATZ but there was no response to that either. The OBD dongle does know when I type characters in the terminal, I get a little flash on it's USB RX lamp every keypress. Beyond that I don't know what it's doing.. whether it's actively receiving characters or just flashing to warn it's seen voltage fluctuations but doesn't know what to do with them.

One software I tried, which had asked for RS232 style connection parameters, did connect successfully using 9600/8/none/1. Unfortunately I can't recall which one of the myriads I've been through :-( IIRC it was happy with any baud rate from something around 1000 (might have been 1100?) all the way up to 115-thousand-something. Seem to recall I broke it when I went away from XON/XOFF.

Tried a few different USB leads, all seem to act the same; all seem to work fine on the precompiled full-fat softwares.

http://www.serial-port-monitor.com/ - good idea, thanks for the link, will give it a try.

EDIT. Tried it.. that is so useful! It's led me to believe that the Android apps are reporting a fully successful connection prematurely. Suspect the connection will not fully & truly complete until the OBD reader is actually plugged into a live diagnostic connector on a vehicle. I went back and retried the Windows software that came with the reader originally, I was sure I saw it working off the car and in the office with no OBD cable attached - but now I'm not so sure. The serial port monitor software shows a long sequence of ATI's and various other commands being sent whilst the TX lamp flashes and the OBD software retries a few times, but the modem is silent in response.

The two Android apps on the hudl both still swear blind they're "connected".. but they can't access anything. I think maybe they are lying!

I'm in my pyjamas and it's midnight though so, I'll leave verification in the street with the hood up, till tomorrow :)
 
Last edited:

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
Connected okay using Win7 PC & original software, with reader plugged into vehicle.

Got this coming back from the adapter amongst allsorts of other info from the serial port snooper:

Code:
IOCTL_SERIAL_GET_PROPERTIES: Retrieve COM properties
  Packet Size=64
  Packet Version=2
  services implemented=SP_SERIALCOMM
  Max Tx bufsize=0
  Max Rx bufsize=0
  Max baud rate=Changeable bps
  Specific provider type=RS232
  Capabilities supported=DTRDSR, RTSCTS, RLSD, PARITY_CHECK, XONXOFF, SETXCHAR, TOTALTIMEOUTS, INTTIMEOUTS
  Changeable parameters=PARITY, BAUD, DATABITS, STOPBITS, HANDSHAKING, PARITY_CHECK, RLSD
  Allowable baud rates=300 bps, 600 bps, 1200 bps, 2400 bps, 4800 bps, 9600 bps, 19200 bps, 38400 bps, 115200 bps, 57600 bps, Changeable bps
  Allowable byte sizes=7, 8
  Stop bits/parity allowed=1 stop bit, 2 stop bits, None Parity, Odd Parity, Even Parity, Mark Parity, Space Parity
  Tx buffer size=0
  Rx buffer size=4096

Code:
000059: Write Request (DOWN), 2017-08-29 16:18:13.7028603 +0.0000284 (1. Device: USB Serial Port (COM3)) Buffer size: 0xc bytes

61 74 69 0D 61 74 69 0D 61 74 69 0D
ati.ati.ati.



000066: I/O Request (UP), 2017-08-29 16:18:13.7294057 +0.0000039 (1. Device: USB Serial Port (COM3)) IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status Errors=0 HoldReasons=0 AmountInInQueue=15 AmountInOutQueue=0 EofReceived=FALSE WaitForImmediate=FALSE



000068: Read Request (UP), 2017-08-29 16:18:13.7294244 +0.0000043 (1. Device: USB Serial Port (COM3)) Buffer size: 0xf bytes Status: 0x00000000

45 4C 4D 33 32 37 20 76 31 2E 33 61 0D 0D 3E
ELM327 v1.3a..>

Still no joy with Win7/PuTTY though & it seems, both the OBD software and the terminal software on the hudl are not actually connecting at all, although their guis say they are.

The snooper saw nothing at all when I tried to connect from PuTTY
 
Last edited:
Top