My car is just shy of 300k miles and the analog gauges stopped working...
After taking it apart and tracing the signals I determined the ELMOS 1048B5 pointer driver is dead. I could not find replacements anywhere so I ordered a used instrument cluster off of ebay.
Turns out that one also had dead gauges... Fortunately the problem with that was a capacitor leaked out and damaged a few traces (470uF large blue one in picture). After replacing the capacitor and fixing the traces the gauges worked however the cluster was showing the incorrect mileage.
I could not find an easy way to do it from a quick search on various E46 forums, just random useless stuff like use WinKFP or use Tool32 with zero details... or way overly complicated stuff like desoldering the eeprom to rewrite it.
It seems most car forums now are purposefully difficult to navigate and find any useful information because they just want you to view ads.
So after much searching... here is how to easily reprogram the E46 cluster when you replace it with a used cluster.
Warning: This apparently only works with OLD clusters that have the old EEPROM chip. I don't know what year it switched but mine is a 2000.
C:/BMWScan140/ and find the
Drivers folder. Right click on
FTD2XX.INF and click "Install" to install the driver.
Plugin in the cable into the diagnostic connector on the car, plug in the usb cable to your computer and forward the USB device with virtual box (Devices -> USB -> Click "PA Soft BMW Scanner"), and open "BMW Scanner".
It will prompt to turn the key on and click continue.
And now it should have the correct reading and no tamper dot. So hopefully this helped!