Maker Pro
Maker Pro

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

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
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.
 
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.
 
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:
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