2

I'm newbye in this area, so I apologize in advance if I will ask something stupid. Shortly, I'm writing a software on top of connected cars that means that we are going to decorate and package data coming from an OBD_2 dongle.

Now, we are testing our product on a new Mercedes with connect.me service already installed. This service gets data throw another dongle plugged to the obd port (in the dashboard).

So in our case, the car has 2 dongles reading data from obd port.

The problem is that when we plug our device in,the dashboard shows an error message saying something like "limited me.connect service"

What are the reasons of this conflict? How can a read only device cause problem to another?

I'm sure I didn't use the right words but the point is how ro devices can cause problems each other.

  • 1
    Welcome to Motor Vehicle Maintenance & Repair! Realistically to me, you should be able to do this without conflict. I mean, the OBD2 system runs over a CAN Bus with many different computers vying for time on the Bus. As long as you are requesting information correctly through the bus, I'd think you shouldn't have an issue. I'd suspect your "reader" is trying to take over instead of just reading. I'm no expert, so this is just conjecture ... leaving it as a comment. – Pᴀᴜʟsᴛᴇʀ2 Mar 14 at 14:38
  • Thank you @Pᴀᴜʟsᴛᴇʀ2. What do you mean with "...trying to take over..."? – Luca Rasconi Mar 14 at 14:59
  • How are the two devices connected? As Mike and JPhi1618 have said, there's usually only one port. If you've added some kind of adaptor to allow two devices to connect to one port, this might not be passing all the manufacturer-specific pins correctly? – Nick C Mar 14 at 16:25
  • @LucaRasconi - Obviously there's a conflict with what you're putting on your CANBus and what already exists on the system. I'm suggesting whatever your putting on there is overriding the me.connect. I'm not quite sure what you mean by "decorate and package" data. Would it in any way be better for the car system to send/receive data through the me.connect system instead of interrogating the OBD2 system directly? – Pᴀᴜʟsᴛᴇʀ2 Mar 14 at 16:49
3

Because having two devices connected at the same time can possibly change the behavior of the host system in some situations...

The manufacturer may only expect one device to be connected at any one time (whether it be a diagnostic reader, insurance recorder, fleet management recorder etc etc) - and not tested or warranted the performance for 2 or more devices to be connected at the same time... If you step out of the envelope then don't expect normal behavior.

  • How can a manufacterer expect only one device? I mean a diagnostic check can use obd port, insurances may suggest you to use an obd device, fleet management software can rely on data gathered from obd, for the taxi we can have same... there are several use cases where you can plug obd... I don't know – Luca Rasconi Mar 14 at 14:57
  • 1
    One device connected at any one time... You can have obd devices for different tasks, that's not an issue. – Solar Mike Mar 14 at 15:21
  • 1
    There is only one port, so they assume only one device at a time is able to connect. If there was a port under the dash and another one in the engine bay, they would have to assume both could be used at one time and deal with it. – JPhi1618 Mar 14 at 15:39
  • 1
    @JPhi1618 and if they provide two ports then they would make sure there was "termination" or suitable to prevent transmission errors... – Solar Mike Mar 14 at 15:41
0

Because most devices connect to the same addresses on CAN, this can be a problem. It’s very easy to connect to a device and steal the connection before the query to keep the connection alive is sent out.

Example: device A connects, device A queries something, module responds, device A acknowledges, device B sends out disconnect signal, device B connects, device A sends out keep connection alive signal, device B sends query, device A sends query, module responds to B, device A gets confused by response and sends out disconnect signal, device B acknowledges, device B sends query, no response.

In this situation both devices disconnected from the module and received incorrect responses, and from someone who has developed an OBD2 device that has thousands of users I can tell you this happens a lot more frequent than you would think. OBD2 protocols were developed for one device communication, but they run on CAN which can support multiple devices. OBD2 was not developed thinking that consumers would have displays and other extended devices added on to their car.

  • So, as a developer, what are you going to implement to allow your obd device to negotiate with others? – Solar Mike Mar 15 at 6:28
  • No, there’s no real way to do it, the protocols are not meant for it. – Damon Earl Mar 16 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.