Jump to content
  • Welcome to AutoLanka

    :action-smiley-028: We found you speeding on AutoLanka Forums without any registration! If you want the best experience, please sign in. Safe driving! 

c1nder

Diy-Bmw E46 Cluster Replacement & Coding

Recommended Posts

Ok so this is my first ever DIY post so bear with me. Recently I happened to buy a e46 it was in good nic till…. well the cluster died on me :angry2:. I was looking at dishing out some 140K for a virgin cluster with programming or having to buy a used one and live with wrong mileage and the DREADED tamper dot. Being a software guy by trade, I started looking into buying a used one and to somehow reprograming it to get the correct mileage and VIN. It went well, thus this DIY.

My existing cluster was Motormeter and my replacement was Bosch. Doesn’t really matter the manufacturer any e46 cluster should work but I got a pre-facelift cluster cause I’m paranoid. This DIY assumes you have NCSExpert installed and updated with the latest DATEN files.

You are going to need a bucket load of stuff.

 

Cluster Removal

Pretty straight forward. Use the T20 torx bit and unfasten the 2 screws at the top. Unlock and pull steering wheel towards you and down to make room to take the cluster out. Pull the cluster out straight and try to partially take it out to the right hand side. There are two connectors at the back. One for power and the other is the CANBUS connector. You want to rotate the white tabs up so the connector backs out of the socket and pull them off.

New Cluster Install

Install the new cluster temporarily. Reverse of the way it was removed. Check if everything works properly. It doesn’t matter if you get a cog like sign on the panel where the gear selection is display. It will go away once you code it later. Plug in your OBD cable and fire up NCS Expert. Turn key to the 2nd position. No need to start the vehicle. Mine is a 2001 Preface-Lift so it might be different in newer cars.

  1. Load the Expert Mode profile.
  2. Press “Vin/ZCS/FA”
  3. ZCS/FA f. ECU
  4. E46
  5. KMB (KMB means instrument cluster)
You want to make note / take a screenshot of the FG code. This is the VIN that’s stored in the replacement cluster.
 
12963577_10153724463779775_2013872810412613964_n.jpg.04ea679458d684e9a843bfc1eb97621c.jpg
 
 
Turn off the ignition. And remove the cluster and take it to your work area.
 
12901340_10153724454819775_8325847741734232843_o.thumb.jpg.ae072a841a3f10e1c5407b93a850afd6.jpg
 
 

Cluster Dis-assembly

You might want to practice with the dead cluster first. I did and it was worth the experience. Mark where the 4 T10 screws are located. There are many more holes than screws for some reason. Better to put them back where they were removed from.

12968136_10153724455099775_7370448676052144414_o.thumb.jpg.2aade34ed238b5bdad534ce4ee22707e.jpg

Unscrew the all of them and pull off the back cover.

12968108_10153724456329775_4679610762097726784_o.thumb.jpg.ab888f4f592bdeeb41f63a43b7e48e3b.jpg

Holding the circuit board from the square socket connectors pull it straight out. You would want to take care not to touch the black printed board with all the speed / rpm values and stuff. It’s a matte black paint and gets scratched easily (ask me how I know), which will ruin the cluster. Tap the 5 needles so they are settled at the lowest position. Take some pics of exactly where they stop/rest because you are gonna remove them and you want to put them back at the correct positions.

12901095_10153724456654775_3183850000473056662_o.thumb.jpg.2cae3e97dee32b4195c8551eea571a34.jpg

Now take a clean piece of paper, rip it in the middle like the pic and place it between the needle and printed board. This is for protection because you are bound to scratch the board if you do not. Now twist the needles counter clockwise while pulling up very gently. It’ll take about two full turns before the needles come out.

12957494_10153724457014775_124931801802546307_o.thumb.jpg.e79b7680ba8e39373c9593e08247b7a4.jpg

If you pull too much the black pieces at the middle tend to brake off (This is why you should practice on the dead cluster). You want to remove the RPM needle last because it gets blocked by the fuel consumption needle when you try to turn it. At assembly the fuel consumption needle should be installed last.

Once all the needles are removed, gently pull out the printed card and then the clear plastic bit under it.

12891518_10153724457339775_8606277036224913706_o.thumb.jpg.a2ed93eda26c648b83bbac4d146dc9b7.jpg

Next remove the two LCD panels (if automatic) one if manual, by releasing the clips at the back and pushing the metal frames out.

12898275_10153724458419775_1442303303816565939_o.thumb.jpg.5ec4f498c3c12164f2ad29fbd2da7e59.jpg

 

12898307_10153724457674775_3519186799652093433_o.thumb.jpg.ad40ee9262af7af1282270bf4d683f31.jpg

Take note of the orientation they come out at. You would want to put them back the same way.

Now the white plastic back panel should come off easily.

12916957_10153724459739775_5547575232377434338_o.thumb.jpg.68c1d4e3e73b58576c4be4e39e62e2d0.jpg

Edited by c1nder
Missing images
  • Like 3

Share this post


Link to post
Share on other sites

This chip in the middle is the one you want to remove. It’s a M35080 EEPROM depending on the YOM of your car this would be a M35080 3/6, 35080-VP/V6, D80D0WQ. I don’t know if they are interchangeable but I ordered the exact same chip that was soldered to the used replacement cluster.

12901548_10153724461329775_5663580748643752384_o.thumb.jpg.920c1bbfc7d791620261fb8671af6f00.jpg

Whip out your soldering station. Kinda disorganized I know :P. Go for a hot air nozzle size that is kind of the same width as your eeprom chip since it will heat the lead solder on all of the legs at the same time and it will be easy to remove. Set it to something around 350 deg and set hot air speed to something on the low side. You don’t want other parts flying off while trying to remove the EEPROM.

12967352_10153724461984775_243446991632420040_o.thumb.jpg.088b12522b8f1f357767a155b8c24b5d.jpg

Tweezers, soldering wick and paste at the ready!

12916091_10153724462454775_8221352557516280862_o.thumb.jpg.bda5bc756b569cfe660e4ad51f116bf6.jpg

EEPROM removed and old solder needs to be removed using your wick and soldering iron.

12916261_10153724462879775_8551438567394274907_o.thumb.jpg.3f1f92bfa20f1552536eff73cc6f6beb.jpg

Don’t throw away the chip just yet! We need to read it. So here’s where it got interesting. On the 1st try I soldered a blank chip on to the board, re assembled the cluster and tried to code it using NCSExpert and I kept getting an error saying the coding index was wrong. Then I tried coding using the official BMW software called Progman SSS v32, that didn’t work either. All the forum posts I read say it should work but no luck for me. So I had this idea to read the EEPROM data from the cluster I bought and to somehow erase the VIN and mileage and write it back to a blank EEPROM and solder that back on to the cluster. You can’t seem to do this directly on the chip that already exists on the cluster cause the area that stores mileage info is an incremental register and can’t be rolled back to 0. You can however erase the VIN, BUT be WARNED!! When the VIN matches the ones on your other modules like for example your DME and LSZ, it tries the sync the mileage across all modules. So if the mileage on the replacement cluster is larger than the actual mileage of your car it’ll increase the mileage info on all the other modules as well, and I guess there is no recovering from that one! If it’s lower, it should get updated with a higher value. But not too sure since I read somewhere that the mileage should be 0 or within 120km to sync properly. Anyway, this is where the R270+ programmer comes in.

12923095_10153724464499775_481509919802794006_n.jpg.ba03c0eea21902db29f5f0b1e14cacaf.jpg

It’s comes with some really old software that seems to only work on XP or lower, so I installed that on to a Virtual Machine to do the read/write operations. What you do is you take the chip that you removed from the cluster and insert it into this guy

12932999_10153724464584775_4685526239908285042_n.jpg.e038f787728032f5aab44f7a23e56c1e.jpg

Press the black square mount down and insert the chip. Make sure all the legs have good contact. The number 1 pin on this is the lower left most one. The EEPROM chip had no markings to indicate what pin 1 was and it worked if I put the chip so the text on it was upside down :P. Fix this on to your programmer box and fire up the software.

944849_10153724454114775_6568140450322826189_n.jpg.a93177265229643043a9e041cf36568f.jpg

  • Press "MCU"

12524233_10153724454219775_6829037763615640855_n.jpg.8c07aa6a5fd8f7f2881b8e8d351de152.jpg

  • Select your EEPROM type, mine was a M35080 3
  • Press read and the main screen, click yes when it asks if it should check pins.
  • If it fails at this stage, try mounting the EEPROM the other way around or try cleaning the legs with alcohol.

12924560_10153724454289775_1162515866838471322_n.jpg.80e8c52d52b0a107f7f385e140b7c151.jpg

 
 
The top two lines store your mileage. You want to edit it here and make them all 0’s
 
11059608_10153724454414775_4809434755945122014_n.jpg.8cf387dfbfb68af1cf0bf0ced7de86ba.jpg
 
Edited by c1nder
Missing pics
  • Like 2

Share this post


Link to post
Share on other sites

Far out!!! Superb job machan! Looks like you've got a mini laboratory at home now. :D

Any idea if this would work simply by swapping the ROM chip to the new cluster without resetting the mileage and VIN? Since the values match up with the values on other modules on the car (which I'm guessing is external to the cluster), could there be any issues? Just curious.

  • Like 1

Share this post


Link to post
Share on other sites
Far out!!! Superb job machan! Looks like you've got a mini laboratory at home now. :D

Any idea if this would work simply by swapping the ROM chip to the new cluster without resetting the mileage and VIN? Since the values match up with the values on other modules on the car (which I'm guessing is external to the cluster), could there be any issues? Just curious.

Thanks! That's the 1st thing I did, but did not work. The stepper motors started buzzing like crazy. At first I thought maybe the bosch and motometer ROM programming might have been different, but later when I tried to read the old chip in R270+ programmer it did not detect it. So what ever killed the cluster had killed the EEPROM too. A direct swap should be possible if you can get a cluster of the same make from a car that has a relatively close YOM but you do need to code it via NCSExpert. This is because after the coding finishes it stores some defaults like the min/max values of the stepper motors for each of the needles in the EEPROM. This is different for every cluster. But it saves you the trouble of buying a R270+ programmer.

Edited by c1nder
  • Like 1

Share this post


Link to post
Share on other sites

Superb, something worthwhile in a long time.

Just curious, instead of reprograming a blank ic to the new cluster shouldn't it be possible to swap the old clusters ic with the new if all the values are in the M35080.

Edit - Davy beat me to the question

Edited by The Stig

Share this post


Link to post
Share on other sites

Nice write up !

but something completely unrelated. Should something like this be posted on an open forum ? especially knowing how our guys are...

Share this post


Link to post
Share on other sites
Nice write up !

but something completely unrelated. Should something like this be posted on an open forum ? especially knowing how our guys are...

Not a problem, on bimmers the milage data is stored in the Guage cluster and Klm (light control module). They both check the data with the vehicle Vin no and if there is mismatch it will indicate a dot in the odometer. It's not as simple to do as in a jap

  • Like 1

Share this post


Link to post
Share on other sites

Nice bit of DIY! OT, but did you buy that soldering station here? And if so, where and how much? I need one pronto but I don't want to import one.

Share this post


Link to post
Share on other sites
Superb, something worthwhile in a long time.

Just curious, instead of reprograming a blank ic to the new cluster shouldn't it be possible to swap the old clusters ic with the new if all the values are in the M35080.

Edit - Davy beat me to the question

Thanks! Well my old chip was dead and unreadable. Check my reply to Davy's post to see my take on this.

Nice write up !

but something completely unrelated. Should something like this be posted on an open forum ? especially knowing how our guys are...

Well you get the tamper DOT like the stig mentioned the E46 keeps a copy in the LSZ and from what I read, the key as well. So you get a tamper DOT if they don't match up. It would always sync to the greatest value if the VIN matches in the modules but never a lower value.

Nice bit of DIY! OT, but did you buy that soldering station here? And if so, where and how much? I need one pronto but I don't want to import one.

It's a pretty decent soldering station and yes, I got it locally @ lankatronics, dehiwala http://www.lankatronics.com/gordak-952-hot-air-2-in-1-rework-soldering-iron-station.html was some 9K.

  • Like 2

Share this post


Link to post
Share on other sites

Thats neat :speechless-smiley-003: ....but can the millage figures be manipulated of a E46?? most forums says its near impossible but after reading this not so much it seems..

Share this post


Link to post
Share on other sites
Thats neat :speechless-smiley-003: ....but can the millage figures be manipulated of a E46?? most forums says its near impossible but after reading this not so much it seems..

I guess so but you end up with a tamper dot. So anyone will see that the mileage has been messed with

Share this post


Link to post
Share on other sites
Thats neat :speechless-smiley-003: ....but can the millage figures be manipulated of a E46?? most forums says its near impossible but after reading this not so much it seems..

Can it be manipulated, yes of course but you will have the dot on the odo as mentioned due to the mismatch. Anyone who is familiar with a Beemer will know that the mileage has been tampered with.

What cinder did was copy the original values to his cluster. I doubt reducing the mileage is going to be easy, even if it is possible the cost of changing components and reprograming all the units which stores the data would probably offset any gain one would have of selling a low mileage car.

Share this post


Link to post
Share on other sites

hi there,

Im a newbie here, recently my e46 m3 cluster got issue with all the gauge needles dead, so I bought a used one and swap the old eeprom to the new used cluster, install it back and error code appear on the mileage display with "CodE", what does it means?

Share this post


Link to post
Share on other sites

hello, thanks for this DIY post. I could be really helpful. In fact I need to replace my e46 cluster, but unfortunately the images are not available anymore. Is it possible to update them? or to share the images separately? It will really helps.

 

Thanks

Share this post


Link to post
Share on other sites
sorry for getting this post back

my car is an e46 3 series bmw 2002 325i and i had a cluster from a 2 doors bmw, so i get the 330i one and want to code....cause all things working good but the triangle and brake light in orange are always on....and a dampet in the millage...please help....
 
the firts one is the 2 doors cluster and i havet had the damper dot and the triangle and brake were good...dont know if this one is programed with the car.....dont know if i can just swap the M35080 EEPROM chip from the 2 door to the new one 330i cluster...p.lease help me
 
 
 

1.jpeg

2.jpeg

3.jpeg

4.jpeg

5.jpeg

1_1.jpeg

1_2.jpeg

1_3.jpeg

1_4.jpeg

Share this post


Link to post
Share on other sites
On 4/4/2016 at 12:43 AM, c1nder said:

Next you want to find your VIN. The problem with that is there is no definite location its stored. So if you remember from earlier the VIN of the replacement cluster was “AW72288” what you want to look for is “AW” on the right side pane of the hex editor. Once you find a possible match look for the rest of the VIN. In mine 41 is ASCII for “A” and 57 is ASCII for “W” the rest is “72 28”. The next two numbers are some check digit. You want to leave that as it is. The last is “8” shown in the pic below.

12592573_10153724454339775_4616178851016796003_n.jpg.6e8406f99ded12313cdee7c15f42577a.jpg

Turn all of that to “F” while keeping the check digit as is.

12963880_10153724454454775_3127373870522040336_n.jpg.31d8e982c3d77ddd2e8460ed0283694c.jpg

“Click Save Binary File”. Now put the blank EEPROM in and try reading that to verify that it reads properly by following the steps mentioned previously. Next click “Load Binary File” and load the file you just edited. Now click write. After a few beeps you are done!

Now apply fresh soldering paste to the terminals in the cluster.

12916847_10153724463284775_853504574160297955_o.thumb.jpg.0a14ea9b5ee0276a4e13638ec3eed28c.jpg

Remember to fix it the same orientation that you removed it at. Mine was upside down comparing with the rest of the board.

12901115_10153724463734775_5100236076211567723_o.thumb.jpg.447d944d9f343cb976ef5933a56f3858.jpg

Do some hot air soldering and we’re done! Remember to clean up that area with alcohol after it has cooled down.

Now assemble in the reverse order that you took it apart. Word of caution, take care not to chip any of the edges of the LCD panels when you fix the metal enclosures around them. Fixing the dials is the same as disassembly. Turn counter clockwise and press down gently. Align then as best you can to the reference pics you took before removing them. Fix the cluster on to your car and turn your key to position 2. If all went well you’ll have a 0 or near 0 ODO meter reading.

0 mileage E46 :D. Note the tamper dot is still there.

12968163_10153724464149775_6222674890343212531_o.thumb.jpg.26e6552a5135b7290697af82e68a21e8.jpg

Now plug in the OBDII cable, put car in 2nd ignition position and fire up NCS Expert.

  1. Load the Expert Mode profile.
  2. Press “Vin/ZCS/FA”
  3. ZCS/FA f. ECU
  4. Select E46 and then EWS - This reads all the FA coding and VIN numbers and stuff from the EWS module
  5. Press “back”
  6. Press Process ECU
  7. Select “KMB”
  8. Select “Change Job”
  9. Select “CODIERINDEX_LESEN”
  10. Select “Execute Job” - This will read the coding index from the cluster
  11. Select “Change Job”
  12. Select “FA_ Schreiben”
  13. Select “Execute Job” - This write the FA coding (all the options) that you read from the EWS module to the cluster
  14. Select “Change Job”
  15. Select “SG_CODIEREN”
  16. Select “Execute Job” - This will code your cluster

If all goes well the cluster should restart and you should end up with your actual mileage and the dreaded tamper DOT gone! (that and I fixed a burnt tail light :P and probably drove 38km too)

12968072_10153724464399775_3625356797051322342_o.thumb.jpg.b6479e4b152dff561d8a9736a32f2d98.jpg

Happy Coding!!

great piece of work sir. very impressive indeed. just one observation, the last pic in the quoted; i see that the RPM needle is not alighted even with power coming to the cluster. 

this could be due to misalignment during installation. i faced the same situation while doing some work on a Nissan sunny cluster. nothing i did worked as after installation and powering up there were tiny miss alignments. so the best method which i found was before fitting the PCB into the cluster cover, and before installing the needles powerup the board (ACC). the needle servo shafts of RPM, Odeo, and temp (if the engine is cold) are now aliened to the lowest marks on the display. now you can insert the needles as accurately as possible and this will give much more accurate initialization of the gauge needles. 

Just my experience... Cheers...

Edited by charithtg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Register for a new account in our community. It's easy and FREE!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×