Starting with version 17, LapTimer strictly checks OBD replies for parameters requested. This strict checking generates some problems for cars with an inconsistent OBD implementation. This articles discusses background and workarounds. In addition, I'd like to use this thread to collect specific solutions we have found out.
Background information: when talking to the car's sensors thru OBD, a client like LapTimer initially asks the dongle which PIDs are supported by the individual car connected to. "PID" is an abbreviation for On-board diagnostics Parameter ID - e.g. current wheel speed. Once this initial request has been answered, only PIDs available, and required by LapTimer, are requested. As an example, LapTimer is interested in the engine's oil temperature (EOT). Oddly, many cars do not deliver this PID to OBD. In a valid OBD implementation, the OBD would have answered availability of EOT initially with "not available".
The problem with inconsistent implementation is they initially mark certain PIDs as available, but actually cannot deliver them when requested. In situations like this, LapTimer considers this to be an error condition and will reset requests and start over - which will loop forever.
The current LapTimer version offers an Expert Setting that allows to exclude such PIDs from requests. It can be found in LapTimer ‣ Settings ‣ Expert Settings ‣ OBD Tweaks ‣ Exclude PIDs Once excluded (e.g. EOT from above), these PIDs are not requested any more and will not generate error conditions any more. In addition, this expert setting can be used to exclude PIDs one is not interested in. Keep in mind, every PID not requested, will not add time to the overall request cycle. Every PID you exclude, will increase the OBD update rate! The exclusion list is made up from a list of hexadecimal Mode/PID pairs (see below for samples).
Here is a list of all PIDs currently requested by LapTimer (if available):
Code: Select all
0100 "PID01-20"
0120 "PID21-40"
0140 "PID41-60"
0900 "PID01-20"
0920 "PID21-40"
0940 "PID41-60"
0101 "DTCCNT"
0902 "VIN"
011C "OBDSUP"
012F "FUELLVL"
0105 "ECT"
015C "EOT"
0106 "STFT1"
// It is not worth excluding any of the above PIDs as they are requested at a very low frequency
// Please do not exclude to tune update rates
0110 "MAF" // Exclusion will turn off current fuel consumption, current power, current torque
010C "RPM" // Exclusion will turn off rpm AND gear calculation
0111 "TPS" // Exclusion will turn off throttle position
010B "MAP" // Exclusion will turn off turbo boost gauge in video overlay
010D "VSS" // Must not be excluded
As stated initially, I want to use this thread to collect known solutions for specific cars. Here is the current list:
Code: Select all
2004 Lotus Elise 111R -> 0140015C010B
2007 BMW E92 (335i) -> 09020160010B
BMW E90 (325i) BMW7250AA -> 09020160010B0105010601100111 (nearly everything except VSS and RPM excluded
- Harry