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.
- 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.
- 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.
- 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.
Here are the steps to collect the OBD communication log and send this trace to me:
- Install Harry's GPS/OBD Buddy from AppStore or PlayStore.
- Start Harry's GPS/OBD Buddy and find the trace settings: App ‣ Settings ‣ Expert Settings ‣ Tracing (Developer only).
- In the Trace Classes page you find so called Trace Classes. Please make sure exactly OBD Troubleshooting is turned on. All other rows should be turned off.
- To start logging, return to the Tracing section header and select Logfile 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 ...
- ... enter your car, plug in the dongle, and follow the OBD dongle manufacturer's advices to connect the dongle to your iPhone.
- Watch the GPS 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 / iPhone connection - LapTimer cannot access the device at all.
- Select the row Send Logfile (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...
- 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.