[HOWTO] Debugging OBD Communication

Collection of all FAQs and HOW-TOs posted throughout the system. Read only.
User avatar
Harry
Site Admin
Site Admin
Posts: 10518
Joined: Sun Sep 12, 2010 10:32 am
Location: Siegum, Germany
Contact:

[HOWTO] Debugging OBD Communication

Post by Harry »

Hi,

Problems with OBD connections are a common issue. Although OBD II is standardized, it supports several different car buses with different characteristics. And car manufacturers use different implementations. Especially when applying optimization to boost the update rate, problems can occur.

But let us start with an item not related to adapter / car at all: when an app accesses the OBD adapter, it kind of locks it exclusively. No other app can access it. Most OBD apps - including the ones coming with your adapter - are bad citizens and do not release the adapter when sent to background. So if an OBD app has been used, it will block LapTimer from accessing it. To work around, please kill these apps. In case you are not sure, reboot the phone and it will be cleaned from background processes.

So the next thing to do when you see your OBD sensor's update rate is fluctuating a lot (changes by a few Hz are fine, regular drops to 0 Hz signal an issue), is turning off optimizations or simplifying access. Try the following changes one by one. The settings described are available in LapTimer ‣ Administration ‣ Settings ‣ Expert Settings ‣ OBD Tweaks. After changing one of the named expert settings, goto LapTimer ‣ Administration ‣ Sensors and select Refresh to reload the OBD integration. Wait for the OBD connect and check whether the connection is stable now.
  1. By default, LapTimer broadcasts requests to all ECUs built into your car. This may result in long replies and inconsistencies. You can try addressing only one ECU by setting ECUs Addressed to ECM or TCM instead of ALL. Besides reduction of complexity in communication, this change will create a speed advantage.
  2. LapTimer applies its own adaptive timing strategy to minimize waiting times in ELM327 communication. However, this optimization may fail for certain adapters and car / adapter combinations. You can try setting Adaptive Timing to Enabled instead of Optimized. This change will reduce the update rate, but stabilize the connection.
  3. For CAN based cars, LapTimer requests multiple parameters in parallel by default. Again, this optimization may fail for certain adapters and cars. You can turn this optimization off by setting Disable Parallel Requests to NO.
In case none of these changes stabilize your connection, I need to have a look into the connection sequence and dialog going on between LapTimer and the OBD dongle connected. To log, please use Harry's GPS/OBD Buddy, not LapTimer or some other Harry's app. These apps have logging disabled, so the free Harry's GPS/OBD Buddy needs to be used.

Here are the steps to collect the OBD communication log and send this trace to me:
  1. Install Harry's GPS/OBD Buddy from AppStore or PlayStore.
  2. Start Harry's GPS/OBD Buddy and find the trace settings: App ‣ Settings ‣ Expert Settings ‣ Tracing (Developer only).
  3. In the Trace Classes page you find so called Trace Classes. Please make sure exactly OBD/Engine Troubleshoot is turned on. All other rows should be turned off.
  4. To start logging, return to the Tracing section header and select Trace File from the Type row. Switch to the GPS View. In case you have done everything right, you see a small gray recording symbol in the bottom right. Please note LapTimer is writing the log already - and it is lots of stuff per minute. So immediately ...
  5. ... enter your car, plug in the dongle, and follow the OBD dongle manufacturer's advices to connect the dongle to your smartphone.
  6. Watch the GPS View (in case you have purchased the Engine feature, please use Engine View) and wait until you get the OBD gadgets displayed (most probably showing no data and a red dot blinking from time to time). In case you do not get the OBD gadgets inserted, please switch to Sensor List and check the OBD dongle is visible and Connected. Wait a minute (not a lot more) and return to Expert Settings. In case you do not see the OBD dongle in Sensor List, you need to work on your dongle / smartphone connection - LapTimer cannot access the device at all.
  7. In App ‣ Settings ‣ Expert Settings, select the row Send Trace File (if available) - and LapTimer will bring up a note including the log file. In case you are not prompted with this prepared email, you need to setup mail operation on your device first...
  8. You are NOT done! Please do not send this file without adding some information I need to debug and understand the context of the mail: a) add the name you used when you pinged me on the Forum or Facebook so I can identify the thread b) add the brand and model of your OBD dongle c) add the brand / model / year of the car we debug.
Now you are done. I will have a look into the log and let you know if there is something you can do to get OBD working with the LapTimer production version available, or if I need to add a bug fix and release another version, or if there is some problem with your dongle / your car I cannot resolve.

- Harry
Image Image Image Image
dcampbell
20 or more Posts ★★★
20 or more Posts ★★★
Posts: 36
Joined: Wed May 22, 2013 2:08 am

Re: [FAQ] Debugging OBD Communication

Post by dcampbell »

Thanks Harry I will give this a try. I have a post in the problem cars post with my 2006 BMW 330xi and gopoint BT1. Maybe this will help us. I did notice that when using the gopoint tools it was picking up many more PID info than HLT. So there has to be a secret somewhere to make this work.

Have you got any cooperation from gopoint at all?
2006 BMW 330xi
LT GP 19.0.16
Go point BT1
Gopro Black Hero3
Ipad gen3
XGPS150A
dcampbell
20 or more Posts ★★★
20 or more Posts ★★★
Posts: 36
Joined: Wed May 22, 2013 2:08 am

Re: [FAQ] Debugging OBD Communication

Post by dcampbell »

File sent. Let me know if I captured a good trace for you. Thank you again for taking the time to debug.
2006 BMW 330xi
LT GP 19.0.16
Go point BT1
Gopro Black Hero3
Ipad gen3
XGPS150A
M54ccibo
Fewer than 10 Posts
Fewer than 10 Posts
Posts: 4
Joined: Fri Aug 23, 2013 6:53 am

Re: [FAQ] Debugging OBD Communication

Post by M54ccibo »

Hello Harry. Trying to get the PLX Kiwi Wifi working with my 2013 BMW M5. Just sent a trace to you...let me know if it looks good. Specifically, I get CRAZY RPM fluctuations and the shift icon flickers on/off.

Thanks!
User avatar
Harry
Site Admin
Site Admin
Posts: 10518
Joined: Sun Sep 12, 2010 10:32 am
Location: Siegum, Germany
Contact:

Re: [FAQ] Debugging OBD Communication

Post by Harry »

M54ccibo wrote:Hello Harry. Trying to get the PLX Kiwi Wifi working with my 2013 BMW M5. Just sent a trace to you...let me know if it looks good. Specifically, I get CRAZY RPM fluctuations and the shift icon flickers on/off.

Thanks!
See viewtopic.php?f=20&t=1576
Image Image Image Image
rollerman
Fewer than 10 Posts
Fewer than 10 Posts
Posts: 1
Joined: Wed Mar 19, 2014 10:46 pm

Re: [FAQ] Debugging OBD Communication

Post by rollerman »

How can i troubleshoot the obd connection with an android device.
I get the message "the obd sensor does not receive data at expected rate" and connects and disconnects a lot from the obd device.
I have a chinese 327 elm obd bluetooth adapter that works just fine with other applications.
User avatar
Harry
Site Admin
Site Admin
Posts: 10518
Joined: Sun Sep 12, 2010 10:32 am
Location: Siegum, Germany
Contact:

Re: [FAQ] Debugging OBD Communication

Post by Harry »

In LapTimer for Android the logging capabilities are enabled. So please just follow the description above and use your LapTimer Rookie edition instead of GPS Buddy.

- Harry
Image Image Image Image
froggy47
20 or more Posts ★★★
20 or more Posts ★★★
Posts: 129
Joined: Tue Feb 25, 2014 2:20 am

Re: [HOWTO] Debugging OBD Communication

Post by froggy47 »

Got OBD2 MX BT today with high hopes. It connected quite easily to the companies diagnostic software (an app on my android phone). Not so much with HLT. It seems maybe it "paired" as I can see it on the sensor list. But connect, no.

Do I need to uncheck all those expert settings that I checked for the generic obd2?

I only bought this for HLT as the generic works fine with Torque.

Please help.

Thanks.

Also how do I delete sensors that are no longer in use, can't seem to get rid of them. Press/touch/long touch/drag/etc.
Autox & HPDE
2004 Corvette Z06
Moto X/android, Dual 160, generic OBD2
User avatar
Harry
Site Admin
Site Admin
Posts: 10518
Joined: Sun Sep 12, 2010 10:32 am
Location: Siegum, Germany
Contact:

Re: [HOWTO] Debugging OBD Communication

Post by Harry »

On basic connection level, make sure you have only one app at a time accessing the dongle. If for example the OBDLink app is active in background, it may block the connection for LapTimer. Once LapTimer is the only app accessing the dongle, check it appears in Sensor List with a green / connected status. In case you see no update rate (or 0 Hz), there is a problem on protocol level. In this case, you may follow the route in the first post of this thread. In case you want me to check you settings first, please create snapshots showing all OBD Tweaks from Expert Settings and post it here.

- Harry
Image Image Image Image
froggy47
20 or more Posts ★★★
20 or more Posts ★★★
Posts: 129
Joined: Tue Feb 25, 2014 2:20 am

Re: [HOWTO] Debugging OBD Communication

Post by froggy47 »

Harry wrote:On basic connection level, make sure you have only one app at a time accessing the dongle. If for example the OBDLink app is active in background, it may block the connection for LapTimer. Once LapTimer is the only app accessing the dongle, check it appears in Sensor List with a green / connected status. In case you see no update rate (or 0 Hz), there is a problem on protocol level. In this case, you may follow the route in the first post of this thread. In case you want me to check you settings first, please create snapshots showing all OBD Tweaks from Expert Settings and post it here.

- Harry
Yes I turned off OBDLink first.

Will try to figure out how to post expert settings.

Really the only 3 checked per your previous attempt to get generic obd2 working, are:

auto exclude pids
ignore no data/nak replies
force insecure bt connection

nothing else touched
:)

How do I delete sensors no longer in use?

Do I want to pair the obd2 with the android PHONE AND HLT or just HLT?

Tried some more without changing anything, it's connecting for about 1 second and dropping, this with key on engine off or engine running.

At this point not much better than the generic except cost more.

The generic (Blue VGate) did actually work decently (not perfectly) for a few laps then I put it away & next time I went to use it was the "not connecting". Of course this is very frustrating.

:)
Autox & HPDE
2004 Corvette Z06
Moto X/android, Dual 160, generic OBD2
Post Reply