Electrical – How to set timeout using AT commands and ELM327

bluetoothcanobd

Hello I'm working on Android App that can read data from CAN bus. The interface I'm using is ELM327. The problem is that this interface uses Bluetooth. So I cannot read all the data from CAN bus because after half of the sec the buffer is full. The the interface is v. 1.4.7. And I am using Bluetooth terminal on Android. The commands I used:

ATZ -> to reset the interface

ATH1 -> set header 

ATS1 -> set spaces 

ATL1 -> Linefeeds on 

ATAL -> Sets long message 

Then I want to set delay for lets say 1 sec

ATST FF -> Set delay to 1 sec

ATSP 6 -> I'm using CAN so this is protocol no 6

ATCM 170 -> setting mask

ATCF 176 -> set filter

ATMA -> Monitor all

And using that there is no delay.. Is there any way to 'slow down' a little bit this lets say flow control? It is very important because without delay the buffer is full in half of a sec. I will be grateful for any help! Thank you M.

Best Answer

Read the datasheet for the ELM327 to understand the maximum message rate that can be accommodated. There is no buffer (it has only the RX and single message buffer in the chip) in the ELM327, so any buffering is done by whatever MCU they used to manage configuration and BL.

You clearly (from page 12 and page 74 on) should not turn on LF or AL if you want to get the maximum throughput message rate with least buffer utilization.

One has to say, if you really want to investigate the CAN-bus (all messages at high speed) and are not simply trying to do OBD-II codes, you should get a serious CAN-bus analyzer such as the Microchip one.