ELM327 Bluetooth dongle

These bluetooth OBD-II dongles are available quite cheaply. The main functionality is generally provided by an ELM327 "OBD interpreter" ic. The dongles actually sell for much less than the chip with discounts would be. So, it's probably always a clone or a "factory special" and the circuitry may also vary.

The ELM327 is a programmed microcontroller produced by ELM Electronics for translating the on-board diagnostics (OBD) interface found in most modern cars. The ELM327 command protocol is one of the most popular PC-to-OBD interface standards and is also implemented by other vendors. -- ELM327@wp

The Bluetooth version is especially convenient and has a common USB UART board tacked on top.


It worked once and failed to work a lot.

For software I went with a certain manufactorer specific tool and Torque on Android. Both recognize the module and pair well.


While opening the module, I managed to knock the BT board off. I soldered it back and can communicate with the ELM, so I'm presuming the connections are ok.


I haven't managed to connect to ECU or other computers for a while now. I suspect there is a termination or impedance problem that could be solved somehow. The pcb sandwich inside the module has been soldered into a stack with pin headers and would be hard to take apart. I've been planning to cut the connectors and either solder them back or invent some other way to put it back together.

I could also poke around more effectively with a terminal or possibly pyserial.

Terminal run

I used blueman applet to attach rfcomm, so no better notes there. PIN 1234.

% picocom /dev/rfcomm0 -b 9600 -p n -d 8  --imap crcrlf
picocom v1.7

port is        : /dev/rfcomm0
flowcontrol    : none
baudrate is    : 9600
parity is      : none
databits are   : 8
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv
imap is        : crcrlf,
omap is        : 
emap is        : crcrlf,delbs,

Terminal ready


ELM327 v1.5



ELM327 v1.5


ELM327 v1.5




USER1 (CAN 29/500)

OBDII to RS232 Interpreter



T:00 R:00

07 18 DB 33 F1 02 01 00 00 00 00 00 00


1:-- 2:--







So, that's how it behaves without a car attached :)