ELM327

ELM327 is an electronic IC that acts as a bridge between RS232 and the OBD protocol.

Sending
ELM327 accepts OBD commands with this format

 

Receiving
Each OBD response received from the ELM (by default) is one of the following

Single Line Responses
<40 + mode> 

Multi-line Responses (CAN Format) from a single ECU


0: <40 + mode> 

1: 

2: 

...etc.

Multi-line Responses (CAN Format) from multiple ECU's
To be able to differentiate between messages from different ECU's, you must enable the headers

 <(first-frame?1:2)(message-sequence-number)> 

 <(first-frame?1:2)(message-sequence-number)> 

 <(first-frame?1:2)(message-sequence-number)> 

 <(first-frame?1:2)(message-sequence-number)> 

...etc

Error Messages and Alerts

 * ACT ALERT:
 * BUFFER FULL:
 * BUS BUSY:
 * BUS ERROR:
 * CAN ERROR:
 * DATA ERROR:
 * <DATA ERROR:
 * ERRxx:
 * FB ERROR:
 * LP: ALERT:
 * LV RESET:
 * NO DATA: If no responses are available after a timeout (default 200ms)
 * "
 * 3) Instruct ELM to search for an appropriate communication protocol using "AT SP 0". Optionally, you can configure the protocol manually (see below)
 * 4) Start sending OBD-specific commands (see "OBD commands" above)