Ever since getting my M Roadster I've had a feeling that the speedo is indicating higher than the actual speed. Recently I had a chance to confirm this when a friend was in the car and used a GPS speed app on his phone. At 100km/h I was doing 10% slower than the speedo indication!
At first we suspected it could be the 19" CSL replicas on the car so I punched the stock and new sizes into https://tiresize.com/calculator/ and compared them. The thing is, even though the rims are a larger diameter, the tyre profile is smaller and hence the overall difference in circumference does not change significantly (it actually reduces despite the larger rim!):
Stock: 255/40r18 Circumference = 81.7"
New: 265/30r19 Circumference = 79.3"
Handily, that site also calculates the speedo error of 2.7% faster. That's still a lot less than the measured 10% though. So I did some more digging.
Firstly, we need to convert the circumferences to impulses per km. I understand that the wheel speed sensors output 10 pulses per revolution.
Stock: Circumference = 2.07518m = 481.9 revs/km = 4819 impulses/km
New: Circumference = 2.01422m = 496.47 revs/km = 4965 impulses/km
I then grabbed the AKMB coding in NCSExpert, which reports the following:
Z_KAHL_TACHO - IMPULSES PER KILOMETER FOR SPEEDO
4961_imp/km
4974_imp/km
4539_imp/km
4846_imp/km
4812_imp/km
4764_imp/km <---- this one is selected
This is interesting - note that there is one option that is extremely close to our calculated impulses/km for the stock size (4812 imp/km), yet the one in use is 1% lower.
I wondered if perhaps the previous owner had monkeyed around with any of the settings so I recoded the car back to its vehicle order and everything stayed the same.
I have read that BMW calibrates speedometers to read 5% faster, but the question is where is that done? If its done before the Z_KAHL_TACHO calculation is performed then that could explain what's going wrong here: 5% (BMW rules) + 1% (Z_KAHL_TACHO) + 2.7% (tyre circumference) = 8.7%, which is not too far off from the (approximate) 10% we measured using the GPS.
So, to bring me back to the BMW 5% error I would need to set Z_KAHL_TACHO to what I calculated from the new circumference, the closest match being 4961_imp/km. Note, I am aware that there are techniques to set the Z_KAHL_TACHO value to other values not listed, but it's a little more complex and risky.
Has anybody else found similar issues and made such adjustments?
At first we suspected it could be the 19" CSL replicas on the car so I punched the stock and new sizes into https://tiresize.com/calculator/ and compared them. The thing is, even though the rims are a larger diameter, the tyre profile is smaller and hence the overall difference in circumference does not change significantly (it actually reduces despite the larger rim!):
Stock: 255/40r18 Circumference = 81.7"
New: 265/30r19 Circumference = 79.3"
Handily, that site also calculates the speedo error of 2.7% faster. That's still a lot less than the measured 10% though. So I did some more digging.
Firstly, we need to convert the circumferences to impulses per km. I understand that the wheel speed sensors output 10 pulses per revolution.
Stock: Circumference = 2.07518m = 481.9 revs/km = 4819 impulses/km
New: Circumference = 2.01422m = 496.47 revs/km = 4965 impulses/km
I then grabbed the AKMB coding in NCSExpert, which reports the following:
Z_KAHL_TACHO - IMPULSES PER KILOMETER FOR SPEEDO
4961_imp/km
4974_imp/km
4539_imp/km
4846_imp/km
4812_imp/km
4764_imp/km <---- this one is selected
This is interesting - note that there is one option that is extremely close to our calculated impulses/km for the stock size (4812 imp/km), yet the one in use is 1% lower.
I wondered if perhaps the previous owner had monkeyed around with any of the settings so I recoded the car back to its vehicle order and everything stayed the same.
I have read that BMW calibrates speedometers to read 5% faster, but the question is where is that done? If its done before the Z_KAHL_TACHO calculation is performed then that could explain what's going wrong here: 5% (BMW rules) + 1% (Z_KAHL_TACHO) + 2.7% (tyre circumference) = 8.7%, which is not too far off from the (approximate) 10% we measured using the GPS.
So, to bring me back to the BMW 5% error I would need to set Z_KAHL_TACHO to what I calculated from the new circumference, the closest match being 4961_imp/km. Note, I am aware that there are techniques to set the Z_KAHL_TACHO value to other values not listed, but it's a little more complex and risky.
Has anybody else found similar issues and made such adjustments?