Reprogramming a used E46 Instrument cluster

August 28, 2023

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.

BMW E46 ELMOS pointer driver

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.

  1. First, buy a "BMW Diagnostic Scanner 1.4.0" cable. It does not work with a K+DCAN cable. I paid $12 on ebay. If the car has a diagnostic plug under the hood you also need the 20 to 16 pin OBD to adapter.

Scanner cable

OBD Adapter cable

  1. Install Windows XP on a virtualbox virtual machine and install the PA soft software (included with cable).
  2. Go to C:/BMWScan140/ and find the Drivers folder. Right click on FTD2XX.INF and click "Install" to install the driver.

  3. 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".

  4. It will prompt to turn the key on and click continue.

BMW Scanner

  1. It should detect right away that the VIN and mileage is off between the IKE and EWS. Take a screenshot / picture of the values.

BMW Scanner coding

  1. From the menu choose Units -> IKE and click on "Reprogramming".

BMW Scanner IKE Reprogramming

  1. In order to program the VIN, the odometer must first be cleared. Choose "Write odometer" set it to 0. Then click OK. It will show an error that is fine.
  2. Next click "Write FGSTNR" and use the last 7 digits from the first ZCS/FA coding page.

BMW Scanner IKE Reprogramming

  1. Finally go back and write the correct odometer value from the EWS.

BMW Scanner IKE Reprogramming

And now it should have the correct reading and no tamper dot. So hopefully this helped!