Hello all,
When I set the input of the speedometer from the OBD input, I found that it shows a lower speed then the GPS speed and a calibrated lasergun. The speed is around 2 KM/H lower when read from the OBD input then the GPS/Lasergun. Can I set Realdash to addup 2 a 3 KM/H to the input value when I go faster then 10 KM/H?
So whenever I drive under the input value of 10 KM/H I want the original value, when the value is over 10 KM/H I want Realdash to add up 2 KM/H and when the value is over 100 KM/H I want Realdash to add up 3 KM/H.
In short:
 <10KM/H = original value
 10 KM/H  100 KM/H = original value + 2

100 KM/H = original value + 3
Can this be done?
This is typical as it is required by law that speedometer must show less than real speed.
You can tweak this by using your own custom OBD2 XML file and add conversion, for example:
<command send="010d" skipCount="0" targetId="81" units="km/h" conversion="V*1.02"></command>
Oke thanks for that.
Your example affects the whole speed range, so the way I discribed is not possible?
To get the offset only from a certain speed (10 KM/H and above) and even a different offset when I drive at higher speed?
Like
 input is less then 10KM/H = V*1.0
 input is between 10 KM/H and 99KM/H = V*1.02
 input is 100 KM/H and above = V*1.03
I can’t think of a way to do that. Also, I highly doubt that the speed input on your vehicle is really nonlinear.
Well, at least between about 40 km/h and 120 km/h the difference between GPS speed and OBD2 speed is about 2 km/h. I even have wheel size and gear ratio set (to calculate current gear).
I have found a formula to maybe get the desired output, but I don’t know Realdash can understand “greater then” formulas, like this: V=(A>0)*(A+2)
If the formula above can be used, how to set it correctly in the conversion of the XML file?
Comparison operators are supported and produce either 0 or 1 as a result.
Ok thanks for your reply.
So the formula would give me the desired value?
Because I am not that familiar with how to setup the XML file, so how would the conversion look in the command line when using this formula?
V=(A>0)*(A+2)
“A” is the value of the OBD2 input and “V” should be the displayed value
Try this:
conversion="(B0>0)*(B0+2)"
Thank you, I will try.
Stupid question maybe, but why is it B in this case and not V, like in the first example you gave me? Just trying to understand and to learn more and more about this.
RealDash identifies individual bytes in conversions as B0,B1,B2 etc. Some other apps use A,B,C,D… Your formula used A, so I assumed that its important to refer to the first byte. If incoming value is only one byte, then V will work equally to B0, but if reply contains more than one bytes, the value of V is the value of all returned bytes.
aah oke, A in my formula was just an example where A was to refer to the value the car was outputing, but only for example.
So if I understand everything right: the command line should be:
Thank you for now. Have a great day.
That should work as expected. Give it a try.