Hi all,

I have been experiencing a strange issue with my speed and rpm gauges. I tried to find solution in other posts but my issue seems very unique and specific, so i didn't really find anything useful regarding my case.

I bought the car (2001 BMW 316i, 1.9L 105bhp, 190.000 km) a little less than a year ago, and after a few days i noticed the first part of the problem, the RPM gauge was stuck at around 2000 at idle, well it wasn't actually stuck in one spot, it was moving when the rpm rose, but it didn't go below 2000 at idle.

It actually didn't sound like it was revving higher, also I found the digital rpm function in the Board Computer and it was in the normal range ~850, also when i stopped the engine it still showed 1200 rpm, so i was sure it got stuck and showed a constant ~1200 rpm higher than the actual rpm. Performing an instrument cluster test solves the issue and the pin returns to zero. Sometimes it works normally and shows actual rpm even for weeks, sometimes it goes mad in a couple days. The difference between the gauge and actual rpm is not always the same, somewhere between 500-2000 rpm difference, but the instrument test works every time, so I can live with it..

The other part though is something i noticed a couple months after driving the car, my sense of speed was suspiciously low, when the speedometer showed 130 kph i was like woah this only feels like 90-100, and i thought this was great. It took me a while to question my real speed and eventually I tested it with a gps. I had to realize my actual speed was way lower than what the gauge showed! So i was right at first, the 130 wasn't 130... that's the highway speed limit by the way.

Anyway, I did a few comparisons between the gauge and the gps at various speeds.
Here are a few results what the speedometer shows and what the actual (lower) speeds in kph are:
speedometer vs gps
0 - 0
50 - 39
70 - 55
130 - 111
150 - 127
200 - 166

I read that with BMW-s the difference can be big (10-12%), but this is 20-30% at all times, which is crazy and i can never tell for sure how fast im going...
When I stop the engine, the pin sits at zero, so there is no constant deviation.

Another weird thing is that when i set the tempomat to a certain speed, then reset the average speed on the computer, so when it restarts it will show the current (and constant) speed, it actually shows the accurate speed, exactly what i would see on a gps. So the board computer knows my speed, but displays it (very) incorrectly on the gauge.

I might have over explained the situation, but wanted to be thorough, and my question is:

Do I need to replace the whole instrument cluster or can it be calibrated/fixed somehow? keeping in mind that the rpm gauge is not only inaccurate, but also "sticky"

Thanks for reading, appreciate any advice!