Announcement

Collapse
No announcement yet.

ELM327 devices and unexpected replies

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ELM327 devices and unexpected replies

    Hi,

    I bought a couple of ELM327 devices in China (that is: ELM327 compatibles, because they're not from ELM electronics). They all seem to behave differently it seems. For example one constantly returns EOF when it is not transmitting data to the vehicle.

    I've got two questions:

    When I request a list of supported PIDs/ECUs using 0x01 0x00 (or any other, e.g. 0x01 and 0x20), I sometimes get back two responses:
    > 0100
    < 41 00 80 10 80 01
    < 41 00 BE 3E B8 13

    > 0120
    < 41 20 80 07 A0 11
    < 41 20 00 01 80 01

    > 0140
    < 41 40 40 00 00 00
    < 41 40 FC 00 00 00
    This is rather strange: either it should support a sensor or it should not? So what presence-bitmap should I use? The order in which these multiple-line responses come in is also not always the same, sometimes I receive
    41 00 80 10 80 01
    41 00 BE 3E B8 13
    and sometimes I receive
    41 00 BE 3E B8 13
    41 00 80 10 80 01

    Anyone got a suggestion?

    Also occasionally when I request a "supported PIDs" bitmap, the device returns a 0x51 (I expect e.g. 0x41 and 4 bytes but it just returns 0x51 instead). What does that byte mean? Because if I repeat the command, it returns the data fine.


    Thanks,

    Folkert van Heusden.

  • #2
    You're likely getting responses from two different ECU's. Turn headers on (ATH1) to see which ECU it is coming from.

    As for the 0x51 when 0x41 is expected.... it's a chinese clone. What do you expect? I've seen all sorts of weird stuff from the cheap ebay devices... which is why I've totally stopped using them.
    "stop with the REINSTALLS, what do you think we got some lame-o installer!!!" - mitchjs
    RevFE
    My Shop

    Comment


    • #3
      Yes buy something from Scantool.net their products work perfectly and they also do regular updates to firmware to add features. I have the S and MX models after making the same mistake you did with the knock-off clones. Just my 2 cents SNO

      Comment


      • #4
        If you are communicating with these devices through code, be careful to not flood them or overlap your queries. Things can get crazy real fast. I once flooded the ECU, and the car suddenly reported failure in my ABS, Stability Control, and Traction Control.

        I recommend doing your initial testing with a Terminal app.

        I use a clone ELM327. But yeah, knock-offs may or may not have some quirks. Some of the initialization commands may control things like EOFs, headers, etc.

        Comment


        • #5
          Thanks all for replying.
          To have a more stable interface I bought this afternoon a reader from scantool.net.

          For now I'll just ignore all responses that are just 0x51 (and no more than that).

          Regarding the multiple responses to 0x01 0x20/0x40/etc: I dove in the ELM327 documentation and indeed: it is possible to retrieve multiple responselines to a pit bitmap request. Wonder why I did not see that before! Indeed multiple ECUs may respond to such a request.
          Gives me two questions:
          - does anyone know if the OBD2 specifications are somewhere on the net? (for free, doing this as a hobby so no budget)
          - should I just "or" these multiple responses into one set of 4 bytes? e.g.:
          > 0120
          < 41 20 80 07 A0 11
          < 41 20 00 01 80 01
          would become:
          < 41 20 80 07 A0 11

          Comment


          • #6
            (it seems my previous reply got lost?)

            Thanks all for replying.
            Decided to buy a device from scantool.net to make sure the problem is indeed in the chinese elms and not in my program or car.

            Also did some tests (indeed via a terminal) and indeed I'm receiving replies from multiple sources for some pids. It looks as if the "duplicate" replies for 0x01 + 0x00/0x20/0x40/etc. are a subset of each other so I just "or" them and use the result. This works. I'm not sure what to do with multiple replies for e.g. the throttle and the rpm sensors.
            Does it mean there are multiple sensors for measuring the throttle? Or is it that there are multiple board computers that probe the same sensor and all reply to my request? How should I decide which value to use?

            Comment

            Working...
            X