Unable to Auto Detect CAN Protocol

Subject of the issue

When using any of the obd commands I get timeouts from vehicle.

Your environment

2020.05.27 (TMU)

Steps to reproduce

Plug in device and try to detect CAN bus protocol.

Expected behaviour

Protocol is discovered

Actual behaviour

Error about timeout from vehicle

2020-07-23 22:47:20,093 [messaging        :742 ][ERROR   ][661] Exception

  while processing event: {'tag':

  'obd/req/b4fd9abf-42db-49eb-9cfb-115d8aa0e3d9', 'data': {'_stamp':

  '2020-07-23T22:47:15.037523', 'handler': 'protocol', '_event_tag':

  'obd/req/b4fd9abf-42db-49eb-9cfb-115d8aa0e3d9', 'kwargs': {'set': 'AUTO'}}


  2020-07-23 22:47:20,124 [salt.minion      :1553][ERROR   ][1445] A command


  'obd.protocol' had a problem: No data received from vehicle within timeout

obd.status output:

justin4@Bolt $ obd.status


  status: bus_connected


    baudrate: 576000

    port: /dev/serial0


  baudrate: 500000


    - 2

    - 4

    - 1

    - 1

    - 1

    - 1

  id: '6'

  name: ISO 15765-4 (CAN 11/500)

  autodetected: true

_stamp: '2020-07-23T22:52:32.793065'

More logs that might be useful from startup:

2020-07-24 00:52:28,506 [obd.interfaces.elm327:474 ][INFO    ][16291] Protocol '6' set automatically: <obd.interfaces.elm327.ISO_15765_4_11bit_500k object at 0x735e0c70>
2020-07-24 00:52:28,508 [messaging        :769 ][INFO    ][16291] Triggering event 'system/stn/bus_connected': {'protocol': '6', 'autodetected': True}
2020-07-24 00:52:28,545 [obd.interfaces.elm327:349 ][INFO    ][16291] Connected successfully to vehicle: Port=/dev/serial0, Baudrate=576000, Protocol=6
2020-07-24 00:52:28,865 [werkzeug         :122 ][INFO    ][16300] - - [24/Jul/2020 00:52:28] "GET / HTTP/1.1" 200 -
2020-07-24 00:52:28,883 [obd.obd          :68  ][ERROR   ][16291] Unable to load OBD commands
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/obd/obd.py", line 66, in __init__
  File "/usr/local/lib/python2.7/dist-packages/obd/obd.py", line 135, in __load_commands
    response = OBD.query(self, get)
  File "/usr/local/lib/python2.7/dist-packages/obd/obd.py", line 275, in query
    messages = self.interface.query(cmd_string, header=header)
  File "/usr/local/lib/python2.7/dist-packages/obd/interfaces/elm327.py", line 697, in query
    lines = self.send(cmd, read_timeout=read_timeout, raw_response=not parse)
  File "/usr/local/lib/python2.7/dist-packages/obd/interfaces/elm327.py", line 779, in send
    raise ELM327Error(self.ERRORS[line], code=line)
ELM327Error: No data received from vehicle within timeout

I’ve same issues.

I’ve another issues. the bus status some time auto disconected. It’s must manual to connect by command.

Hi @JBassett.

Welcome to our community!

May I ask, what kind of vehicle do you have? Is it an electric one? If that’s the case, electric vehicles have some extra steps that need to be taken beforehand. You can follow those steps on this community post.


Hi @Nikola, I drive a Chevy Bolt (BEV). I did follow those instructions and I have gotten trips working. After a whole lot of digging through logs I figured out why I was getting a BUFFER_FULL message (Internal RS232 transmit buffer full) when trying to use obd.dump. I found that with executing an AT S0 command to disable spaces in response, I was no longer getting that error. However after a reboot I have to manually re run the disable spaces. Any idea how to make that part of startup?

I have checked and i am trying the same but the Precondition dose not match. There are no PID in community for Nissan Leaf. Can you please help ?

Precondition: A PID which on request delivers a RPM value related to the movement of the vehicle. It could be the RPM of an electric motor, a spinning wheel etc. If you do not know of such a PID for your model, you can always check the Community Library on https://my.autopi.io .

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.