E46 Fanatics Forum banner
Status
Not open for further replies.

DIY: M3 Cluster into Non-M Retrofit

81K views 42 replies 25 participants last post by  KamilFKH  
#1 · (Edited)
Image

I made this thread because information regarding M3 Clusters swap into Non-M is rather scattered and kind of all over the place. It was quite a bit of PITA finding information to retrofit my M3 Cluster into my Non-M. Hopefully this helps answer all your questions!

What's the difference between Non-M Cluster and M3 Cluster?

Non-M Cluster
  • Tachometer goes up to 7,000RPM
  • Fuel economy gauge
  • Gauge Face is Black / White Needles (ZHP Cluster has Red Needles)
  • Speedometer only goes to 155MPH

M3 Cluster
  • Engine oil temperature gauge (Replaces Fuel Economy Gauge)
  • Gauge Face is Grey / Red Needle
  • Silver Gauge Rings (This is seen on 330i/ZHP Clusters)
  • Variable pre-warning zone / Shift lights (Shift Lights only applied to SMG M3's from Factory)
  • Backlight is a bit more yellow (compared to the Non-M which is the orange)
  • Speedometer goes up to 185MPH
  • Tachometer goes up to 9,000RPM
-------------

Rear Door Ajar LED's Missing
  • The E46 M3 was only sold as a Coupe/Vert. BMW decided to not include the LED's for the rear doors, even though you can see the rear doors on the cluster (probably to save money during production). Sedan/Touring Owners will need to solder the rear door LED's. @nextelbuddy did a thread on how he added the rear LEDs to his M3 Cluster for his M3 Sedan which can be found here, or send your cluster to @redneckvtek at E46 M3 Cluster Mod for Non-M – Huggins Racing.​
Roll-Over Protection LED Missing
  • In BMW fashion to save money, they decided to not solder LED's for the roll over protection on Coupe Clusters (This applies to Sedan/Touring Non-M Clusters too). For Non-M Convertible owners, make sure you source a cluster from a E46 M3 Convertible, or else you won't have an LED there unless you solder an amber led there.
-------------

Tamper Dot
Well to begin with, let's ask the question. What is a tamper dot, and what triggers it?

  • The IKE/LCM stores VIN, Total Mileage and Service Interval. This data is compared each time KL15 is switched on. If the data check reveals a mismatch the manipulation DOT is illuminated. This is why when you see a E46 for sale and see a tamper dot.. its probably not an original cluster, or not an original lcm.

Option 1 and 2 only pertain to Option 2 below in Adjusting Mileage!

Option 1
: When grabbing a M3 Cluster, get the LCM that was paired with the cluster. Good thing about newer LCM (4.0 or higher) is ability to code triple blink/brake force display and LED Tail Lights.

Option 2: Recoding your original LCM: Using PASoft; Click (Reprogramming) -> Write Odometer -> Put mileage of M3 Cluster -> Press Okay. Next; Click (Write FGSTNR) Put last 7 Numbers of VIN (You want the VIN of the M3 Cluster) -> Press Okay. Done! Tamper Dot should be gone now.

Option 3: Virginizing Cluster (This you can set VIN, Mileage, Build Specification). -> Follow Option 1 below.

-------------

Adjusting Mileage

Option 1:
This involves unsoldering the chip (EEPROM) and reprogramming it.

(93C66 for Motormeter clusters, and M35080 for Bosch clusters).

@mcalihe did a great tutorial!
So today i coded my M3 cluster for my 330Ci.

Start situation:
Car: E46 330 Ci with 199500 kilometers
Cluster: Standard
PASoft BMW Scanner 1.4 with cable
INPA/NCS expert with INPA cable.
R270 CAS4 EERPOM Writer.

Costs:
M3 Cluster from Ebay 150 Euros
PASoft and adapter 30 Euros
INPA/NCS Cable 25 Euros

=> Total: 205 Euros

New cluster: E46 M3 Cluster 2004 (EEPROM M35080 3)

When i installed the cluster, the tamper dot was on. (Mismatching VIN)
Also the DSC and Parking-Brake light was always lit up in yellow. (Also mismatch VIN)
Take a not of the VIN's first. (yours and the M3 cluster VIN)

1)Take a picture of the clusters needles when it is off. Also use INPA to set the needles to a certain degree. E.g. Set rpm to 50 dgree => The needle is on the 40 MPH dash.
Write the degrees down and also where the needle is at that value. (Important to make sure your needles are at the correct position after all of this)

View attachment 906015

Dissasembly the cluster.

Be careful when removing the needles. I used an old piece of cloth to put under the needle first and used this tool for removing.

View attachment 906016 View attachment 906017 View attachment 906018

2) I can see the EEPROM on the clusters electronic circuit.

View attachment 906019

I went to a friend who has enough knowledge on soldering to take it out without breaking it.

3) I used this R270 CAS4 EEPROM coder which i bought on ebay for 30 euros. (From China, took a while)



I inserted my EEPROM. Make sure the pins are in the correct positions and also make sure it has good contact.

Then i simply opened the software provided with the tool on a Windows XP 64 bit virtual machine.
I selected EEPROM M35080 3 (Thats the one i had in my cluster. Make sure you select the correct one).
Then i pressed read binary. After that was finished i checked if the VIN was read correct (Matched with the M3 VIN read from NCSExpert / PASoft.)
Then i pressed "erase odometer".

=> the first too lines are all 0 and if u read the odometer it should say 0 kilometers.

4) I resoldered the chip to the circuit.

5) Reassemblied the cluster. The needles should be put in 2 milimetes and the turned in anti-clock direction. (So the electric motor is at its zero point.) Then you turn the needles (still always anti-clock direction) into the state they were in the picture you took in step 1. Once you are in the correct position, press them down completley. (Speed and RPM had a 1 mm space when i dissasseblied it. I also made sure it still has this space when i put them back in. The other needles were pushed completley)



6) Put the cluster back into the car. Use PASoft to write the VIN to the cluster.

7) VIN was correct and when i started the car the mileage was set correctly.

8) Check if the needles are at the correct position.


So that is how i done it. If you have questions, you can send them to me. (Also if you need more footage)
Additional Information: Difference with earlier and later EPPROM Chips
Additional Info for this thread, based on what I have learned from doing @tbouchard991's cluster.

Later clusters are likely to have a different EEProm chip - the m35080v6. The earlier clusters have a N35080 3 (no v).

These are functionally compatible, however the V6 chip cannot be written by a box-stock R270 programmer. I believe it CAN write those chips, but I am waiting on components from mouser to replace on its circuit board to confirm. When I know, I will share if anyone is interested.

Luckily! The V6 chip CAN be read - so if you come across a V6 cluster, you can read the contents of its chip and then reflash onto a "3" chip and put that back onto the board. The cluster then behaves as normal.

Lastly, here is some specific info on VIN and Mileage for everyone's reference:

Example bin dump from the EEPROM containing Mileage and VIN

00000000 2155 2155 2155 2155 2155 2155 2155 2155 !U!U!U!U!U!U!U!U
00000010 2155 2155 2155 2155 2155 2154 2154 2154 !U!U!U!U!U!T!T!T
00000020 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030 08FB 08FB 08FB 0C5F 0C5F 0C5F 0500 FFFF ........._....
00000040 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ................
00000050 0101 C6EA 08E3 1004 02FF FFFF FFFF FFFF ................
00000060 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ................
00000070 20EF 0203 0284 8649 1900 504E 6054 2009 ......I..PN`T .


VIN is stored in 5 bytes starting at 0x7A

In the example above, what you have there is:
50 4E 60 54 20

The VIN of the car in this case is PN60542.

50 = P
4E = N

41 A 42 B 43 C 44 D 45 E 46 F 47 G
48 H 49 I 4A J 4B K 4C L 4D M 4E N 4F O
50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W
58 X 59 Y 5A Z

Mileage is stored in 0x0 and 0x1
There are 16 16-bit values in the beginning of the file. Take the value of the first group (0x2155 in the first example) and multiply it by 0x10. Then decrement that number by 1 for every "value - 1" groups you have. So in this case, we have 3 sets of "2154". So the mileage is 0x21550 - 0x3 = 0x2154D. 2154D in decimal is 136525.
This is all in KM to be clear - so for those of us in backwards countries we will need to convert to miles.
If you don't want to tackle this DIY or risk damaging your cluster.. I highly recommend sending your cluster to @redneckvtek, check his website out (Products – Huggins Racing). He can add (Rear Door LED's, Redline LED’s adjusted to show the correct redline, correct speedometer, and temperature buffer and lastly mileage vin correction). I sent my cluster his way, and his turnaround is rather impressive, and great communication.

Here's my cluster after sending it to @redneckvtek;
  • Rear Door Ajar LED's added
  • Replaced 7,000 - 7,500, 7,500 - 8,000 Shift Light LED from Amber to Red (my rev limit is set to 7,000)
  • Flashed EPPROM (Correct VIN and Mileage)
  • SMG Display Removed and replaced with manual panel.
Image




Option 2: This is a bit of a crude way.. but anyway... First you need to find a cluster with lower miles then your chassis, the cluster I snagged was 103,559. Using PASoft read EPPROM and look for offset 0x317 and change 24 to 08, this will give you access to coding data. After getting access to coding data. Now you will change the tire scaling value (imp/km) from 4797 to 1. Every 1 miles = 8,000 miles. (YOU CAN'T GO BACKWARDS SO BE CAREFUL)

My car currently has 123,909.

103,559 + 8000 = 111559 = 1
111,559 + 8000 = 119559 = 1
119559 + 4350 = 119559 = 1.84
So will be about 3.84miles, it wont be 100% exact but 1-10 +- is completely fine.

It is crazy how fast the mileage goes up, so make sure you have your laptop, and you find an area safe to bring your mileage up, so you can pull on the side of the road and change the tire scaling value back from 1 to 4797


Image

Image

-------------

Engine Oil Temperature Gauge
  • MS42/MS43/MS45.1(323/328/325/330/ZHP) is a direct retrofit you can plug in the M3 Cluster, and the Oil Temp will work.
-------------

Shift Lights - Warm Up Lights
  • This does not work for MS45 (2/2003-2006 325i/330i). Only MS42 (1999-2000 323i/328i), MS43 (2001-2/2003* 325i/330i) and 325/330xi is MS43 from beginning to end of production. You can do this via TunerPro which is explained below.
  • If you are not interested in modifying your DME, you can get a module from @drukhadze and save the headache. Advantage of the module that splices into the harness is it works for MS45!

To make the warmup lights and shiftlights work, you will have to flash your MS43 with an unlocked software so you can change the code in that.

The MS43 Wiki is the best site to get more information about this. There are also some good youtube videos about how to flash the MS43.
BE CAREFUL and ALWAYS make backups while doing this. Also charge the car battery and the laptop battery. If the process fails you can buy a new MS43.


After the MS43 is unlocked, you can access the MS43 with the MS4X-Flasher and copy the binary data (Full binary 512kb required for LED Mod).

Download the M Cluster LED Mod from the MS43 Wiki.

Open the binary file in TunerPro and also open the LED Mod definition file (Included in the M Cluster LED Mod downloaded).
There will be an entry in the list on the left side of TunerPro which is called "Patch". Apply this to your 512 kb binary by double clicking.
After that you can save the binary and flash it onto your car using the MS4X-Flasher.

Turn the ignition off, wait 10 seconds and put the ignition on.
Red and yellow leds will allways light up for the 6500 rev limit.
The warmup lights will work with the oil temperature sensor and shiftlights will appear at 6000+ rpm.

I can add pictures and go more into detail. I flashed my MS43 a year ago for the exhaust pop mod.
Last week i added the LED patch and it all worked fine.

For help just contact me :D
Note: From @YucA305

Quick tip for the M cluster led mod. If you're on MS430069 firmware on your MS43, use the community patchlist and make sure to load "[DATA] M3 Cluster Default Values" first, and then the patch "[PATCH] M Cluster LED Support".

I didn't realize you had to apply the data portion first and only applied the the patch which made the led tach stay lit at 5.5k rpm all the time as well as the bright red led behind the red section of the water temp gauge... Don't be like me, apply the data and patch! Re-flash fixed it without issues though.
Here is @drukhadze module in action.
Want more info to acquire this module? Link

@KamilFKH did a great guide on how to install this Module! ->

To add some info to this thread, I will offer an option, how to integrate the @drukhadze CAN module into the car.

The module comes with wire harness that is enough to connect into the car, but it still needs modifying of the car harness (some cutting or soldering) . I wanted to have a fully revertable installation with no cutting or modifying the car harness. So I counted the number of used cables and searched for some connector, that can be used for the mod. There are 6 cables, that needs to be rewired (ground, ACC, IGN, oil level signal, CAN high and CAN low). I identified the audio part of doors connector have enough number of pins and the pins themself fit the cluster connector as well, so I chose it to be my adapter source. I have collected the doors and the car internal wire harness previously, so I just got it and cut the required connectors out of it.

The idea was to create an adapter to connect the module to the car harness, but to allow original functionality, when module harness removed.

The module wire harness on the left with added connectors to the other end of the harness on the right. They are MALE-FEMALE intentionally diversified a) for the error free connection...
View attachment 999011

... and for b) when module wire harness removed from car, the TO DME and TO IKE connectors connected together connects car wire harnes to instrument cluster again directly
View attachment 999012

And it looks like this, when module wire harness connected to the car. From instrument cluster black connector on the right, the new wires go to the module through the lower small black connector and returns to the higher small black connector, that runs to the car wire harness.
View attachment 999013

Then it is recomended to have the module placed not directly behind the instrument cluster and it is better to run the cable sideways inside the dashboard and keep the module behind the left storage pocket and below the light module.
View attachment 999014

All pictures are without the module itself, just with the loopback connector instead of the module, as I installed the module at its big white connector as the last step and I did not take any more pictures then, but it is just the black box smaller than a cigarette pack size.

Now, You can remove just the module and using the loop back connector from the module original wire harness, You can make the car (instrument cluster) fully functional again.

You can remove the module with the whole module wire harness and by connecting the remaining TO DME and TO IKE connectors together, You can make the car (instrument cluster) fully functional again.

To completely remove the module and the adapters from the car, it is enough to remove added wires from instrument cluster connector and replace them with original wires now connected to TO DME connector.

The @drukhadze module can be used not only for cars with MS45 to M3 cluster function properly, but for the diesel cars as well, if You decide to install M3 cluster into it. To do this, the cluster needs some more modifications. When I have it done, I will present it here as well. It will add another view to the M3 cluster into Non-M cars retrofit as I went a bit different way, than presented here. Maybe someone could be interested in it as well then. I expect to have it finished and documented within 2 or 3 weeks, so I plan to come back and tell.

Cheers, KamilFKH
I would like to append two more entries to my previous post. I just finished an installation of my M3 SMG rebuilt cluster into my diesel Touring, so I took a picture of module installed behind left storage pocket under light module.
Here the left storage pocket removed (on LHD car).

View attachment 999436

As there is no harm in asking, If I was more pro-active and asked @drukhadze for complete solution, I would be propositioned the full plug&play instead of basic wire harness and I did not have to create my own. This seamless plug&play wire harness is much better than mine as You do not have to bother about any connector pins repining or whatever I did. :cool:

The full plug&play wire harness with the module connected looks like this. Note the good detail of the loopback connector attached to the harness next to module. I like this example of clever engineering a lot, as it allows You to run the car fine even when the module is removed (for service, upgrade or whatever else) (y)
View attachment 999437

I was not able to source that cluster side mating part connector to create this Y wire harness, so that was why I chose to go the way I went with creating smaller Y wire harness. :geek:


-------------

BMW Scanner 1.4 (PA Soft) - Coding Options

Speedometer Correction:

The displayed speed (real speed) is 8.9% off. I highly recommend you fix this!

LinkLink -> DIY: Make your speedometer accurate

Temperature Gauge Buffer Range Fix:
M3 Temperature Buffer is set to 85-95*C, compared to Non-M which is 75-115*C. I highly recommend you fix this.. or else you will panic and think your expansion tank exploded or headgasket went poof.

Link -> DIY: Changing Temperature Gauge Buffer Range with PA...

--

Known Issues
  • Low Oil Pressure Warning Light (Yellow/Red) does not work @redneckvtek
    • Note: If you have a M54B25/B30, I'd recommend to check your dip stick regularly to make sure you have the proper oil level, since the Warning Light does not work!
  • Possible DSC Issue? (Saw a few posts scattered on multiple threads saying DSC didn't work) - Possible solution - Steering Angle Reset?
  • SMG Display for Auto Trans does not work (Unless you get a module from @drukhadze)
  • Its not possible to add shifts lights/warm up lights on MS45 (2/2003-2006 325i/330i). (Unless you get a module from @drukhadze)
  • MS45 Quirk: The wire from the LCM to the cluster was removed and the backlight went to CAN. There is no backlight on the cluster since backlight is signaled through CAN-BUS.
    • If you want your older cluster to have backlight in an MS45 car you need to run a wire from Pin 47 (Grey with Red Stripe) of the LCM to Pin 7 of the x11175 (big black connector). After running the wire you will have backlight. -> @Drummy

--
Credits: @nextelbuddy, @TerraPhantm, @drukhadze
 
#4 ·
To make the warmup lights and shiftlights work, you will have to flash your MS43 with an unlocked software so you can change the code in that.

The MS43 Wiki is the best site to get more information about this. There are also some good youtube videos about how to flash the MS43.
BE CAREFUL and ALWAYS make backups while doing this. Also charge the car battery and the laptop battery. If the process fails you can buy a new MS43.


After the MS43 is unlocked, you can access the MS43 with the MS4X-Flasher and copy the binary data (Full binary 512kb required for LED Mod).

Download the M Cluster LED Mod from the MS43 Wiki.

Open the binary file in TunerPro and also open the LED Mod definition file (Included in the M Cluster LED Mod downloaded).
There will be an entry in the list on the left side of TunerPro which is called "Patch". Apply this to your 512 kb binary by double clicking.
After that you can save the binary and flash it onto your car using the MS4X-Flasher.

Turn the ignition off, wait 10 seconds and put the ignition on.
Red and yellow leds will allways light up for the 6500 rev limit.
The warmup lights will work with the oil temperature sensor and shiftlights will appear at 6000+ rpm.

I can add pictures and go more into detail. I flashed my MS43 a year ago for the exhaust pop mod.
Last week i added the LED patch and it all worked fine.

For help just contact me :D
 
#6 · (Edited)
So today i coded my M3 cluster for my 330Ci.

Start situation:
Car: E46 330 Ci with 199500 kilometers
Cluster: Standard
PASoft BMW Scanner 1.4 with cable
INPA/NCS expert with INPA cable.
R270 CAS4 EERPOM Writer.

Costs:
M3 Cluster from Ebay 150 Euros
PASoft and adapter 30 Euros
INPA/NCS Cable 25 Euros

=> Total: 205 Euros

New cluster: E46 M3 Cluster 2004 (EEPROM M35080 3)

When i installed the cluster, the tamper dot was on. (Mismatching VIN)
Also the DSC and Parking-Brake light was always lit up in yellow. (Also mismatch VIN)
Take a not of the VIN's first. (yours and the M3 cluster VIN)

1)Take a picture of the clusters needles when it is off. Also use INPA to set the needles to a certain degree. E.g. Set rpm to 50 dgree => The needle is on the 40 MPH dash.
Write the degrees down and also where the needle is at that value. (Important to make sure your needles are at the correct position after all of this)

906015


Dissasembly the cluster.

Be careful when removing the needles. I used an old piece of cloth to put under the needle first and used this tool for removing.

906016
906017
906018


2) I can see the EEPROM on the clusters electronic circuit.

906019


I went to a friend who has enough knowledge on soldering to take it out without breaking it.

3) I used this R270 CAS4 EEPROM coder which i bought on ebay for 30 euros. (From China, took a while)



I inserted my EEPROM. Make sure the pins are in the correct positions and also make sure it has good contact.

Then i simply opened the software provided with the tool on a Windows XP 64 bit virtual machine.
I selected EEPROM M35080 3 (Thats the one i had in my cluster. Make sure you select the correct one).
Then i pressed read binary. After that was finished i checked if the VIN was read correct (Matched with the M3 VIN read from NCSExpert / PASoft.)
Then i pressed "erase odometer".

=> the first too lines are all 0 and if u read the odometer it should say 0 kilometers.

4) I resoldered the chip to the circuit.

5) Reassemblied the cluster. The needles should be put in 2 milimetes and the turned in anti-clock direction. (So the electric motor is at its zero point.) Then you turn the needles (still always anti-clock direction) into the state they were in the picture you took in step 1. Once you are in the correct position, press them down completley. (Speed and RPM had a 1 mm space when i dissasseblied it. I also made sure it still has this space when i put them back in. The other needles were pushed completley)



6) Put the cluster back into the car. Use PASoft to write the VIN to the cluster.

7) VIN was correct and when i started the car the mileage was set correctly.

8) Check if the needles are at the correct position.

906063



So that is how i done it. If you have questions, you can send them to me. (Also if you need more footage)
 
#7 · (Edited)
So today i coded my M3 cluster for my 330Ci.

Start situation:
Car: E46 330 Ci with 199500 kilometers
Cluster: Standard
PASoft BMW Scanner 1.4 with cable
INPA/NCS expert with INPA cable.
R270 CAS4 EERPOM Writer.

Costs:
M3 Cluster from Ebay 150 Euros
PASoft and adapter 30 Euros
INPA/NCS Cable 25 Euros

=> Total: 205 Euros

New cluster: E46 M3 Cluster 2004 (EEPROM M35080 3)

When i installed the cluster, the tamper dot was on. (Mismatching VIN)
Also the DSC and Parking-Brake light was always lit up in yellow. (Also mismatch VIN)
Take a not of the VIN's first. (yours and the M3 cluster VIN)

1)Take a picture of the clusters needles when it is off. Also use INPA to set the needles to a certain degree. E.g. Set rpm to 50 dgree => The needle is on the 40 MPH dash.
Write the degrees down and also where the needle is at that value. (Important to make sure your needles are at the correct position after all of this)

View attachment 906015

Dissasembly the cluster.

Be careful when removing the needles. I used an old piece of cloth to put under the needle first and used this tool for removing.

View attachment 906016 View attachment 906017 View attachment 906018

2) I can see the EEPROM on the clusters electronic circuit.

View attachment 906019

I went to a friend who has enough knowledge on soldering to take it out without breaking it.

3) I used this R270 CAS4 EEPROM coder which i bought on ebay for 30 euros. (From China, took a while)



I inserted my EEPROM. Make sure the pins are in the correct positions and also make sure it has good contact.

Then i simply opened the software provided with the tool on a Windows XP 64 bit virtual machine.
I selected EEPROM M35080 3 (Thats the one i had in my cluster. Make sure you select the correct one).
Then i pressed read binary. After that was finished i checked if the VIN was read correct (Matched with the M3 VIN read from NCSExpert / PASoft.)
Then i pressed "erase odometer".

=> the first too lines are all 0 and if u read the odometer it should say 0 kilometers.

4) I resoldered the chip to the circuit.

5) Reassemblied the cluster. The needles should be put in 2 milimetes and the turned in anti-clock direction. (So the electric motor is at its zero point.) Then you turn the needles (still always anti-clock direction) into the state they were in the picture you took in step 1. Once you are in the correct position, press them down completley. (Speed and RPM had a 1 mm space when i dissasseblied it. I also made sure it still has this space when i put them back in. The other needles were pushed completley)



6) Put the cluster back into the car. Use PASoft to write the VIN to the cluster.

7) VIN was correct and when i started the car the mileage was set correctly.

8) Check if the needles are at the correct position.


So that is how i done it. If you have questions, you can send them to me. (Also if you need more footage)
Awesome! Thank you; great stuff!

As for the DCS issue; I never had that issue before I started the retrofit process! (Seems like some people have that issue, and some other don't, glad you figured it out!

So glad we finally have a full fledged guide on how to get a M3 Cluster to work in Non-M's! (y)

Also I HIGHLY Recommend to do @TerraPhantm DIY on the Speedometer Accuracy; before I adjusted it; it was reading quite high; and i had my UNIDEN R7 for confirmation; its more or less basically spot on now on the accuracy of speedometer.
 
#9 ·
Hi everyone, thanks for the great work and information 🙏🏻
I recently had installed m3 cluster into my 03 325i , and thanks to Dimitri I reprogram it as it had wrong eeprom. Anyway after programming the coolant temp gauge risef ip to max then it went to 12 o'clock position, then it got higher to 3/4, I checked the live data and the coolant temp was 97 C ( gauge was on 3/4 )and the outlet of the radiator is 87 C. The old cluster gauge has never rise above 12 o'clock this happened only with the M cluster. Do I need to reprogram the coolant temp gauge?
919464
 
#10 ·
I also have this thing with the temperature gauge. But if i rev up my car or im rising speed it goes down every time if its not too hot so i keep ot like that. Unless someone has an easy fix for this. I heard that it comes from the fact that the M3 actually has more sensors for this or its just more precise. The temperature is never as steady as shown. But dor comfort reasons the keep the needle at 12 o clock unless there is a big difference in the temperatue. This is made like this so normal people dont panick cause it would be changing alot.
 
#16 ·
I completed this work today as well, thanks to threads here and on zhpmafia. All work done myself.

here is what I ended up with:
Warm
Image


Cold
Image


Night
Image


4-door LED's populated
Image


Testing LED's on used donor cluster
Image


Process:
Purchase used M3 cluster
Purchase used donor cluster (from any e46)

Purchase about $200 in tools, because why not.


Execute as follows
Disassemble clusters
Harvest LED's and Resistors from donor cluster and install on M cluster. Ensure you harvest the RED led's and not the yellow ones (doh!). LED's added for rear doors and LED colors changed for redline @ 6500.
Remove EEPROM chip from M cluster and flash VIN/MI to "virginize"
Reinstall EEPROM and Reassemble
Install in car and confirm functionality.
Code VIN to cluster using PA soft
Mileage is flashed over from LCM if you have the LCM correctly configured, most of the time. (On pre 01 cars with the ZCS instead of FA this was not the case, but my LCM was borked also, so I just flashed the miles directly onto the eeprom)


Optional Steps
Code coolant temp gauge for accuracy (PA soft)
Code speedometer for accuracy
Replace DME with one configured to control the shift lights and redline LED's. Before this step the cluster will work fine, just show the stock S54 redline and the warmup lights/shift lights will not work.







Some places have mentioned needing a 24H M cluster (from a later car, not sure of the dates). I don't understand the 24h requirement. This is a 23h cluster and it appears to be working fine, however this is in a early 01 touring. That might be a MS45 issue, i'd love to figure that out.



I'm a nobody, but I could do all of this for someone else if there was interest. Took me about a day to figure it out, but would go much quicker now that I've got it down.
 
#17 ·
Noticed another issue I had not anticipated.

The oil level sensor (Yellow genie lamp) is not working.

Prior to the cluster swap, it was working (my car has 280k miles and burns oil at an alarming rate).

At startup, the indicator lights up both red and yellow demonstrating it is working.

However, today I checked my oil after a long trip and noticed it was not even showing on the dipstick... Close call.

According to the diagrams, X11175 Pin 17 is the signal for this on both MSS54 and MS43. I believe this is a frequency signal - but not sure if its the same for both?

Has anyone else had this issue, or can confirm your oil level sensor continued to work after the cluster swap?
 
#20 · (Edited)
Additional Info for this thread, based on what I have learned from doing Tim's cluster.

Later clusters are likely to have a different EEProm chip - the m35080v6. The earlier clusters have a m35080 3 (no v).

These are functionally compatible, however the v6 chip cannot be written by a box-stock r270 programmer. I believe it CAN write those chips, but I am waiting on components from mouser to replace on its circuit board to confirm. When I know, I will share if anyone is interested.

Luckily, the V6 chip CAN be read - so if you come across a v6 cluster, you can read the contents of its chip and then reflash onto a "3" chip and put that back onto the board. The cluster then behaves as normal.


Lastly, here is some specific info on VIN and Mileage for everone's reference:

Example bin dump from the EEPROM containing Mileage and VIN

00000000 2155 2155 2155 2155 2155 2155 2155 2155 !U!U!U!U!U!U!U!U
00000010 2155 2155 2155 2155 2155 2154 2154 2154 !U!U!U!U!U!T!T!T
00000020 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030 08FB 08FB 08FB 0C5F 0C5F 0C5F 0500 FFFF ........._....
00000040 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ................
00000050 0101 C6EA 08E3 1004 02FF FFFF FFFF FFFF ................
00000060 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ................
00000070 20EF 0203 0284 8649 1900 504E 6054 2009 ......I..PN`T .


VIN is stored in 5 bytes starting at 0x7A

In the example above, what you have there is:
50 4E 60 54 20

The VIN of the car in this case is PN60542.

50 = P
4E = N

41 A 42 B 43 C 44 D 45 E 46 F 47 G
48 H 49 I 4A J 4B K 4C L 4D M 4E N 4F O
50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W
58 X 59 Y 5A Z

Mileage is stored in 0x0 and 0x1
There are 16 16-bit values in the beginning of the file. Take the value of the first group (0x2155 in the first example) and multiply it by 0x10. Then decrement that number by 1 for every "value - 1" groups you have. So in this case, we have 3 sets of "2154". So the mileage is 0x21550 - 0x3 = 0x2154D. 2154D in decimal is 136525.
This is all in KM to be clear - so for those of us in backwards countries we will need to convert to miles.
 
#27 ·
VIN is stored in 5 bytes starting at 0x7A

In the example above, what you have there is:
50 4E 60 54 20

The VIN of the car in this case is PN60542.
Dumb question -- I'm trying to blank the VIN on the cluster I'm converting by flipping the bytes to FF -- Should I do:
FF FF FF FF FF or FF FF FF FF F0?

The Backlight is not just a MS45 quirk, it happened to all cars at some point. The wire from the LCM to the cluster was removed and the backlight went to CAN.

If you have the inverse issue (newer cluster in older car) it can be sorted with an LCM update.
If I have a 12/2004 build M3 cluster and a 10/2003 build Touring, 58G should just work off the LSZ broadcast dimmer status, right? WDS seems to indicate the transition happened around the 2002 LCI.
 
#21 ·
Does anyone have any info on Depinning the x11175 connector? (Big black connector on rear of cluster)

I've ordered a module from Dimitri, and need to depin and repin a couple of connectors and have no idea how to or what tool to use. Guidance required.
 
#22 ·
The e46 connectors are really easy to depin. All you will need is a pick or a (very small) screwdriver.

The black cluster connector you need to repin will have an outer black (sheath) that contains the lever mechanism used to hold it into the cluster. Inside the sheath is an inner connector thats flat which will slide out the side of the sheath after releasing a clip.

Once its slid out, it will look like this
Image


While gently pulling the wire, gently push down on the silver tab right above the "X11175". The wire will move up some to the next opening and you will have to push the silver tab again, then the wire will release.
 
#31 · (Edited)
I need a hand with my m3 cluster. The awesome dudes over on the bmw tuning Discord (armenh7 and redneckvtek) helped me change the coding index, mileage and vin on my cluster. A few months later I decided to code it with an empty .man file to enable the second dsc light coming on when disabling traction control. As soon as coding was finished, the cluster reset as usual, but the RPM needle went up to 9k rpm and stayed there. I reset the cluster multiple times after that and each time the needle went back to 0 and then back up to 9. I tried exporting a .man file in ncs expert using a nettodat file that I had saved as soon as I got the cluster prior to any modifications and everything went back to as it was before (cluster was in miles etc) but the rpm needle kept behaving the same way. I really don't know where to go from here.

Update: Flashing it with a working bin I had saved with pasoft prior to making any modifications apart from the coding index fixes the issue with the tach. The issue appears to be in an area where ncs only makes changes relative to the coding index and not the coding data written in the .man file? I'm not sure though.
 
#32 · (Edited)
I just did a 24H M3 cluster swap (I previously had an early M3 22H) into my s54 wagon about an hour ago and learned that there are no special programming tools beyond PASoft required to correct the VIN and mileage. I had the 35080 6 EEPROM in my cluster originally, so I bought this exact 080D0WQ EEPROM (functionally identical to the 35080) to replace it with. Quick summary of how I coded the cluster below:
Image


1) Plugged the 24H cluster into the car, plugged in OBD connector, pulled up PASoft, Read and downloaded the EEPROM
Image


2) Wiped the mileage and changed the VIN number from the donor's to my car's in the EEPROM .bin file

3) Removed/disassembled the cluster, desoldered the 35080 EEPROM, soldered in the 080D0WQ EEPROM in its place (without programming)
Image


4) Plugged the cluster into the car (it showed "code" on display), pulled up PASoft, Wrote my modified .bin file to the EEPROM
Image


5) Cluster rebooted, no tamper dot, mileage showed within seconds (cluster pulled it from LCM)
Image


6) Swapped OBD2 connectors, pulled up NCS Expert, tweaked a few settings to read oil level and show the m-track button
Image


7) Reinstalled the needles, reassembled and I am back in business. Didn't even need to mess with steering angle calibration
Image



Hope this helps someone in the future avoid the hassle of buying a programming interface.
 
#35 ·
is there a solid known rhyme or reason for the cluster temp gauge buffer?
Because its programmed differently. The S54 runs like 10* cooler than the M52TU/M54.
Honestly, it is a neat discovery how you can change the coding aspect of the buffer and make it a bit more informative.
 
#36 ·
Just scored an m3 cluster that has ~800miles less than what my car really has. I have read that the system will correct this up to a certain point as long as the vins match. Is this close enough so it corrects itself? Anyone know for sure?
 
#38 ·
Quick tip for the M cluster led mod. If you're on MS430069 firmware on your MS43, use the community patchlist and make sure to load "[DATA] M3 Cluster Default Values" first, and then the patch "[PATCH] M Cluster LED Support".

I didn't realize you had to apply the data portion first and only applied the the patch which made the led tach stay lit at 5.5k rpm all the time as well as the bright red led behind the red section of the water temp gauge... Don't be like me, apply the data and patch! Re-flash fixed it without issues though.
 
#40 ·
To add some info to this thread, I will offer an option, how to integrate the @drukhadze CAN module into the car.

The module comes with wire harness that is enough to connect into the car, but it still needs modifying of the car harness (some cutting or soldering) . I wanted to have a fully revertable installation with no cutting or modifying the car harness. So I counted the number of used cables and searched for some connector, that can be used for the mod. There are 6 cables, that needs to be rewired (ground, ACC, IGN, oil level signal, CAN high and CAN low). I identified the audio part of doors connector have enough number of pins and the pins themself fit the cluster connector as well, so I chose it to be my adapter source. I have collected the doors and the car internal wire harness previously, so I just got it and cut the required connectors out of it.

The idea was to create an adapter to connect the module to the car harness, but to allow original functionality, when module harness removed.

The module wire harness on the left with added connectors to the other end of the harness on the right. They are MALE-FEMALE intentionally diversified a) for the error free connection...
Image


... and for b) when module wire harness removed from car, the TO DME and TO IKE connectors connected together connects car wire harnes to instrument cluster again directly
Image


And it looks like this, when module wire harness connected to the car. From instrument cluster black connector on the right, the new wires go to the module through the lower small black connector and returns to the higher small black connector, that runs to the car wire harness.
Image


Then it is recomended to have the module placed not directly behind the instrument cluster and it is better to run the cable sideways inside the dashboard and keep the module behind the left storage pocket and below the light module.
Image


All pictures are without the module itself, just with the loopback connector instead of the module, as I installed the module at its big white connector as the last step and I did not take any more pictures then, but it is just the black box smaller than a cigarette pack size.

Now, You can remove just the module and using the loop back connector from the module original wire harness, You can make the car (instrument cluster) fully functional again.

You can remove the module with the whole module wire harness and by connecting the remaining TO DME and TO IKE connectors together, You can make the car (instrument cluster) fully functional again.

To completely remove the module and the adapters from the car, it is enough to remove added wires from instrument cluster connector and replace them with original wires now connected to TO DME connector.

The @drukhadze module can be used not only for cars with MS45 to M3 cluster function properly, but for the diesel cars as well, if You decide to install M3 cluster into it. To do this, the cluster needs some more modifications. When I have it done, I will present it here as well. It will add another view to the M3 cluster into Non-M cars retrofit as I went a bit different way, than presented here. Maybe someone could be interested in it as well then. I expect to have it finished and documented within 2 or 3 weeks, so I plan to come back and tell.

Cheers, KamilFKH
 
#41 · (Edited)
I would like to append two more entries to my previous post. I just finished an installation of my M3 SMG rebuilt cluster into my diesel Touring, so I took a picture of module installed behind left storage pocket under light module.
Here the left storage pocket removed (on LHD car).

Image


As there is no harm in asking, If I was more pro-active and asked @drukhadze for complete solution, I would be propositioned the full plug&play instead of basic wire harness and I did not have to create my own. This seamless plug&play wire harness is much better than mine as You do not have to bother about any connector pins repining or whatever I did. :cool:

The full plug&play wire harness with the module connected looks like this. Note the good detail of the loopback connector attached to the harness next to module. I like this example of clever engineering a lot, as it allows You to run the car fine even when the module is removed (for service, upgrade or whatever else) (y)
Image


I was not able to source that cluster side mating part connector to create this Y wire harness, so that was why I chose to go the way I went with creating smaller Y wire harness. :geek:
 
#42 ·
According to backlight illuminating, please note the first post Known issues - MS45 Quirk:

Known Issues
  • MS45 Quirk: The wire from the LCM to the cluster was removed and the backlight went to CAN. There is no backlight on the cluster since backlight is signaled through CAN-BUS.
    • If you want your older cluster to have backlight in an MS45 car you need to run a wire from Pin 47 (Grey with Red Stripe) of the LCM to Pin 7 of the x11175 (big black connector). After running the wire you will have backlight. -> @Drummy
This is it. No LSZ(2) firmware update needed. The following explanation is not so simplified, but should cover the most info about the issue.

To me, the MS45 quirk info seems almost correct except two things,
  • the first, the info that the signal went to CAN / CAN-BUS. Please note, that the connection of the LSZ(2) [Lichtschaltzentrum - light module in E46 (E85, pre-LCI E83), no matter if called LCM here] to the car is done through K-Bus
  • and the second, it is not just the MS45 but all E46 after 09/2002 quirk.

And, to make this info more correct,
  • the LSZ(2) always supplies the backlight signal (signal 58G from connector X12 pin 47) to the car.
  • the LSZ(2) supplies the backlight signal to the connection "hub" number X908.
  • the backlight signal wire from the X908 hub to the instrument cluster was removed on Time criterium 09/2002 (MY2003 cars)
  • to get Your older cluster to have backlight in all E46 cars after 09/2002, not only MS45, You need to connect the 58G signal to the cluster. To do this, You have several options:
    • You have to make an Y-joint right at the LSZ(2) connector X12 pin 47 to split the signal to X908 hub and to the instrument cluster X11175 pin 7. If You just replace the original wire with the wire to cluster (disconnecting of the X908 hub and connecting cluster), You will lose the backlight everywhere in the rest of the car obviously.
    • Unfortunately, the hub X908 is inside the thick main wire harness under the dashboard next to steering column, so it is almost inaccessible and I guess the wires are welded together by ultrasonic welding. So no wire adding possible. The solution is to get the signal down the wire path from the hub, first e.g. at the connector X322 pin 5 behind the radio/monitor/air conditioning panel or any following. You still will need to connect to the signal somewhere with Y-joint then, to get rid of any soldering, so the Y-joint at the LSZ(2) is the easiest way to do it.
The info about the car connections is inside the WDS - BMW Wiring Diagrams System.
 
#43 · (Edited)
Even having diesel E46 Touring, I came across last version of M3 SMG instrument cluster (CI:24) which was available to me for my favourite price - for free. The catch was just the front see-through plastic cover was broken, but everything else was OK including the gauges rings. Despite petrol head purist could dishonour putting a M3 cluster into a diesel car, I still was curious to know If it is possible and it raised a challenge to integrate it into my car. This challenge initiated several parallel actions that finally led to the successful finish (at least as I consider it).

The E46 clusters, both Non-M and M3, can be divided into 3 groups based on time when they were produced.
  • pre-facelift (CI:02 to CI:05 or M3 CI:20 to CI:21)
  • facelift (CI:06 or M3 CI:22)
  • facelift redesign (CI:07 and CI:08 or M3 CI:23 and CI:24).
The redesign clusters are the only clusters with proper support for the Brake Force Display, M-Track control light, and share almost all coding and gauges ranges+scales definition data in relation to non-M to M3. This is why I would recommend to always go with the redesign M3 clusters.

First and main issue was the tachometer range. The famous E46 M3 has max RPM at 9000 and my diesel has just about half of it. To use the petrol cars approach and replace last few yellow LEDs with red ones up to the maximum RPM would lead to replace all of the LEDs with red and the tachometer needle would reach maximum of half of the whole range. So there was a question, if I could rescale the tachometer range to fit it the best to diesel one. I used the temperature gauge mod for E46 cluster from Mr.Philadelphia 2013 thread (TerraPhantm's & Silbervogel's contribution) since end of 2015 and I modified a friends drift car cluster fuel gauge to fit smaller, a fuel pump side pocket only petrol tank in 2017, so I knew the basic principles how the gauges are defined. I investigated speedometer and tachometer definitions and found the definitions here.

I tested my first setup (750 RPM assigned to the number 1, 850 RPM to the number 2 and from number 3 to number 9 it showed half of RPM 1500 to 4500) for a while in my car to confirm I broke it properly and when the cluster behaved as expected, I moved further. I wanted to use original shift lights LED setup, so I considered a while, how to allocate the diesel range to them. The maximum power for my diesel is past 4000 and the rev limit is somewhere around 4750, where it is not recomended to go past 4500. While looking at the shiftlights LEDs, I though that the two red LEDs from the end of the range could be for RPM 4500 to 5000, where originally is RPM 8000 to 9000. This scale is 500 RPM where it was 1000 RPM originally. As the tachometer scale is linear between definition points, I wanted to have it with minimum different scale resolutions. Going back through the tachometer range with the same scale as the red LEDs 4500-5000 RPM, I reached the 1000 RPM point where it is 1000 RPM at original gauge as well.

Second issue was to decide whether to use original M3 315 kmh/185+mph scale or put there Non-M 250 kmh/155mph scale. As my diesel hardly reach 220+ kmh/140 mph and speed limits here max at 130 kmh/80 mph, I voted for original Non-M scale to better tell the speed reading apart.

So I took famous Paint program on my PC and designed first draft of my new gauges face plate.
I started with Non-M gauges face plate design and made some modifications to fit to the M3 hardware.
Image

This way I managed the shiftlight LEDs to get to diesel range 2500 to 5000 RPM

When I had the tachometer and speedometer gauges determined and gauges plate drafted, the question was If there can be a manufacturer, that can produce a custom gauges face based on my specification. I found some, inquired for price, chose one and in few iterations confirmed my design requests.

I wanted to have the black background and the gauges tick marks shape as on the standard Non-M cluster. I chose to have RPM thick mark at the whole thousand, full length thin mark for each half thousand and shorter length thin mark for each quarter and three quarters of thousand on the tachometer - see the draft. After a while of driving with this tachometer graphics, I can tell this idea was great and it reads very well. :D I wished then to have the DIESEL description on fuel gauge with the arrow indicating vehicle side where the filler cap is located and to get rid of the ///M sign on the bottom of the speedometer as having Non-M car. When I inquired the main gauges, I added the warning lights and check control panel into the requisition as well to have the cluster even more custom. To the standard diesel warning lights panel configuration I requested to add the M-Track light and to replace the Check Filler Cap/Check Gas Cap text with the DRL control light according to shape defined in ISO 7000 - 2611. Then I used the mighty MS Paint again to create new check control car icon and I changed it from limousine to touring. I made two drafts of the touring car icon, one similar to original design and second with added B and C window pillars. I decided to go with the design without B and C pillars as it looked more "original".
Image


When I recieved my custom gauges plate, I installed it into the cluster along with all necesary modification to fit my car (add rear doors adjar LEDs, replace CFC yellow LED with green LED, EEPROM edit to match VIN and mileage, code cluster to match my car settings) I will prepare the M3 gauges rings into some not scratched front see-through cover later. First cluster test here.
Image


The green color of the ex-CFC now DRL control light intentionally of different shade to differentiate between front fog vs DRL control light easily just by peripheral vision. I chose the CFC light for the DRL as it is never used in ECE cars and thanks to Dimitri's research it can be controlled by his module. (y) I have some ideas how to try to control other non standard/not populated warning lights in cluster, so there may be a hope for a custom warning light in the future for US guys as well. ;)

I changed the coding index of the last versions of M3 cluster CI:24 to last version of the Non-M cluster CI:08 to allow seamless integration into Non-M car and to allow NCS expert to code it with the Non-M coding definitions (see my DIY thread for more details Link -> DIY: E46 cluster gauges definitions). The Non-M coding data extended functions enables the yellow low oil level/oil level sensor failure warning light to work. :D
Guess how I realised that...:rolleyes:
Image


After oil temp/level sensor replacement now the oil temp is functional. Integration of this custom M3 SMG cluster gauge into automatic diesel Touring is possible thanks to @drukhadze CAN module, which the oil temp/level sensor signal for the cluster is feeded to in parallel as well. This way You can have the oil temp gauge functional and after Non-M coding data recoding the cluster low oil level/oil level failure yellow light works.
Image


Cheers, KamilFKH
 
Status
Not open for further replies.
You have insufficient privileges to reply here.