Announcement

Collapse
No announcement yet.

DIY: Z3 Non-M gauge cluster to Z3M S54 Conversion

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    DIY: Z3 Non-M gauge cluster to Z3M S54 Conversion

    ​In order to properly complete an S54 swap in an E36 chassis, and to control the CAN bus functions of the MSS54 DME, a CAN bus enabled gauge cluster is necessary. This allows for DME control of the A/C compressor, a working check engine light, and a working coolant temperature gauge using the original E46 M3/Z3M coolant temperature sensor. There are three options to achieve this. First, one can obtain a genuine 2001-2002 Z3M gauge cluster. This is an ideal solution, however they're very difficult to find, and VERY expensive. Second, a CAN bus gauge cluster from an M54 powered Z3 non-M can be used with little to no coding (easily done using NCS Expert). This is an okay solution, however the scaling for the tachometer doesn't support the S54's 8000 RPM redline, and the speedometer only goes to a non-M speed of 155 MPH. This is the cheapest and easiest solution, but it is flawed. Finally, as it turns out, the non-M M54 cluster has identical internal hardware to the Z3M S54 cluster, and can be reprogrammed to run the same firmware as the Z3M S54 Cluster. This gives it all the same functionality as BMW's factory S54 powered E36, the 2001-2002 Z3M, at a fraction of the cost of a genuine Z3M gauge cluster. After reprogramming, all that's left is a simple gauge face and red needle swap, to complete a Z3M cluster conversion. Against popular belief, this reprogramming is relatively simple, and really only requires some basic small electronic chipset, EEPROM, and computer knowledge and experience. It's possible to "DIY" this, without being a software/computer engineer. No soldering is required.

    In order to convert a Z3 non-M gauge cluster to a Z3M cluster, these are the tools and necessary parts:
    1. A Z3 Non-M gauge cluster sourced from an M54 powered Z3 (this can be identified by the part number, although there are several part numbers used. It can also be identified by last line on the 2nd part sticker on the top of the cluster stating "SW XX CAN 0X".
    2. A 5 volt EEPROM chip burner (preferably with an 8-pin EEPROM chip clip). I personally use an XGECU T48 TL866-3G chip burner, but any similar EEPROM burner should work.
    3. A Windows computer.
    4. An EEPROM dump from the main chip board EEPROM of a genuine Z3M S54 gauge cluster (Contact me, and I can provide this).
    5. An EEPROM dump from a Z3 cluster coding plug, with your correct chassis mileage (Contact me, I can also provide this. I will not be sharing the calculation used to convert the mileage to HEX, for legal and ethical reasons. I will also need proof of chassis mileage in order to create a BIN file for you). Alternatively, you can use the mileage that's already on the Z3 coding plug that's already set in the cluster.
    6. A 2001-2002 replica Z3M gauge face. This can either be purchased from Speedo Conversion Solutions, or VENOXY is able to create a better replica by contacting them to have a custom gauge face made.
    7. A set of red gauge needles from an M3 cluster, if desired.

    Step 1: Disassemble the rear half of the gauge cluster clam shell, to completely remove the circuit board. I won't be showing instructions for this step, as there are already plenty of DIY's showing this already. You need to remove the circuit board to expose the main chip board EEPROM.

    Step 2: The EEPROM chip is covered in a protective coating (as shown). This can be removed using a small amount of heat from a heat gun or hot air soldering station, and something blunt to scrape(I use a small screw driver). Being very careful to not damage the chip or the legs, scrape the protective coating off of the legs of the EEPROM chip.

    Click image for larger version  Name:	IMG_5445.jpg Views:	13 Size:	117.1 KB ID:	221868Click image for larger version  Name:	IMG_5444.jpg Views:	9 Size:	122.7 KB ID:	221869
    Step 3: Connect the EEPROM burner to the computer, load the supplied software, and connect the burner to the EEPROM directly using the 8-pin EEPROM chip clip. Pay attention to the orientation of the red wire (pin 1) as shown in the picture.

    Click image for larger version  Name:	IMG_5676.jpg Views:	9 Size:	197.8 KB ID:	221870

    Step 4: Using the chip select function in the software, select ST93CS56, and read the chip. This may take a few tries, as it is difficult to make a good contact with the chip, using the chip clip. Reposition the chip clip until it makes a good contact with the EEPROM chip, and is able to read. Save a backup of the original Z3 Non-M dump to the computer.

    Click image for larger version  Name:	Capture3.png Views:	9 Size:	91.3 KB ID:	221872Click image for larger version  Name:	Capture2.png Views:	9 Size:	580.1 KB ID:	221873Click image for larger version  Name:	Capture4.png Views:	10 Size:	26.2 KB ID:	221874

    Step 5: Load the low mileage Z3M S54 EEPROM dump into the program. Make sure the file is correctly loaded, and then program the EEPROM chip using the program button. This will probably fail, giving a sector write error when verifying the flash. This is because the ST93CS56 chips are difficult to flash. Read the failed flash on the chip, and confirm that is flashed some of the file correctly. In order to finalize the complete flash, you may have to disconnect and reconnect the chip burner from the computer, close and reopen the program, play with some settings, and reboot the computer. Keep attempting to flash the chip, until it successfully flashes the complete file. This make take some time and patience before it successfully flashes it. When starting up the cluster, if it displays EEP-2 error, that means it didn't successfully flash the chip completely.

    Click image for larger version  Name:	Capture5.png Views:	11 Size:	33.6 KB ID:	221875

    Step 6: In order to set the mileage on the odometer, a flash dump with the correct chassis mileage of the coding plug is required. Remove the chip clip from the EEPROM burner, and insert the cluster coding plug into the EEPROM burner, with pin 1 of the coding plug on pin 1 of the EEPROM burner. Using the software, select the chip type as ST M93S46 @TSOP8. Read and backup the original dump from the coding plug. Load the dump with the correct chassis mileage into the program. Finally program that dump onto the coding plug EEPROM, the same way as the main EEPROM is programmed (in step 5).

    Click image for larger version  Name:	IMG_5677.jpg Views:	10 Size:	135.4 KB ID:	221877Click image for larger version  Name:	Capture6.png Views:	10 Size:	99.4 KB ID:	221878

    Step 7: Reinstall the coding plug into the main circuit board, connect the circuit board to either a bench harness, or a complete E36, and make sure the mileage is correct and no EEP errors are present. There should be a tamper warning dot present in the odometer. This is because the internal EEPROM mileage differs from the coding plug. This will be fixed later. Reassemble the back half of the cluster clamshell. Install the replica gauge face in the front half the the clamshell, and red needles if desired. Gauge face installs and needle swaps are covered in many other DIY's, so I won't be showing that step. Fully assemble the cluster and test it. You can confirm that the programming was completed successfully, by connecting to the cluster using INPA, and accessing the “coding” menu. If the programming was successful, it will show a “speedometer limit stop” of 267 km/h.

    Click image for larger version  Name:	IMG_5476.jpg Views:	10 Size:	225.9 KB ID:	221879Click image for larger version  Name:	image.jpg Views:	639 Size:	30.0 KB ID:	221909

    Step 8: Finally, wire in the CAN bus and A/C into your S54 Swapped E36 (I can provide wiring instructions if necessary). Then install the cluster into the vehicle. In order to clear the mileage tamper dot, with the cluster installed in a drivable car, "sync" the mileage between the coding plug and the EEPROM using the built in cluster test 19 to unlock the cluster and test 16 to "sync" the mileage. Instructions can be found at https://www.zroadster.net/forum/viewtopic.php?t=39603 The car must be driven at least 2 miles without the cluster loosing power, in order to finalize the mileage "sync". Finally, enjoy your 8000 RPM tachometer and working A/C on your S54 swapped E36.

    Click image for larger version  Name:	IMG_5496.jpg Views:	10 Size:	88.5 KB ID:	221880

    If this seems like something you want, but too difficult to attempt yourself, contact me. I also offer this as a complete service, doing either just the software programming, or a complete "build" with a gauge face swap (using a custom gauge face from VENOXY) as well.

    Update: Corrected information about cluster CAN versions. All CAN bus clusters are eligible for this software conversion, not just CAN 03.

    IG: @joelbanzhaf
    Attached Files
    Last edited by JBanzhaf; 12-27-2023, 03:36 PM.

    #2
    Cool stuff. I never messed with E36 stuff - can NCS tackle some of this? Sure seems like the parameters are present.

    Mileage would still have to be addressed.

    Comment


      #3
      As far is I can tell, NCS Expert can’t do any of this. Technically this is programming, rather than coding. Possibly WINKFP could.

      Comment


        #4
        SPI stuff would be within the real of "coding". On these older clusters (everything pre E9x) the actual software is embedded in a ROM (almost always not erasable) within the CPU.

        NCS Dummy shows definitions for these, but that doesn't always mean they're editable.

        Click image for larger version  Name:	Screen Shot 2023-06-14 at 10.02.10 PM.png Views:	0 Size:	25.7 KB ID:	221929 Click image for larger version  Name:	Screen Shot 2023-06-14 at 10.01.40 PM.png Views:	0 Size:	27.4 KB ID:	221930

        Edit: Okay I see why I'm confused. KMB_E36.C25 is apparently not actually used. The real one is KMB_E36.C02, which does show parameters like below, but typically the "manufacture data" is not editable. *Might* be able to edit the parameters with nettodata coding. But otherwise, yeah direct eeprom coding is needed.

        Click image for larger version  Name:	Screen Shot 2023-06-14 at 10.11.16 PM.png Views:	0 Size:	28.6 KB ID:	221931 Click image for larger version  Name:	Screen Shot 2023-06-14 at 10.10.58 PM.png Views:	0 Size:	13.1 KB ID:	221932

        Comment


          #5
          Correct, terra. The parameters can be viewed using NCS Expert, but the “manufacturer data” is not editable. I’ve also tried nettodata coding, with no luck. To my understanding, those sectors of the EEPROM are read only over diagnostic line. Also, I’m pretty sure the Z3M uses KMB_E36.C03, not KMB_E36.C02. Direct EEPROM coding makes the process quite easy and simple.

          Comment


            #6
            Looks like both C02 and C03 are can-enabled so probably a build date difference there. Eeproms should be close enough where it wouldn't really matter

            Comment


              #7
              That’s possible, but I don’t think so. I’ve done 5 of these clusters now. The one in my personal car is a late 2001 production cluster. I just finished programming an early 2000 production cluster, a few minutes ago. They’ve all been C03.

              Comment


                #8
                Great information.

                What are you using to view "OIL TEMP"?

                I'm currently using a EURO cluster with a manual AC compressor Switch.

                Not ideal, but it works.


                terra i tried this year ago. The cluster changes via NCS doesn't stick.

                I wonder if the changes can be applied via tool32.
                Last edited by ZiMMie; 06-15-2023, 03:13 AM.

                Comment


                  #9
                  Originally posted by ZiMMie View Post

                  I wonder if the changes can be applied via tool32.
                  Yeah I wonder. Or maybe PASoft?

                  Comment


                    #10
                    Originally posted by ZiMMie View Post
                    Great information.

                    What are you using to view "OIL TEMP"?

                    I'm currently using a EURO cluster with a manual AC compressor Switch.

                    Not ideal, but it works.


                    terra i tried this year ago. The cluster changes via NCS doesn't stick.

                    I wonder if the changes can be applied via tool32.
                    The Z3M has an external oil temp gauge, unlike the E46’s built in oil temp gauge. I have a similar setup to the Z3M.

                    I’m no expert in Tool32, but from my experience with it, it has almost no functionality with these Z3 clusters. I don’t think Tool32 is capable of this. PAsoft isn’t either. PASoft’s algorithm doesn’t support the CAN bus Z3 clusters.

                    Comment


                      #11
                      JBanzhaf thanks. i just ordered one to play with. could you please upload the EEPROM.
                      Do you know what byte to change to change it from Miles to KM?


                      I'm going to integrate Gague s in mine.

                      Click image for larger version  Name:	Clipboard03.jpg Views:	0 Size:	81.6 KB ID:	223488

                      This will give me Oil temp, Level, Logging, coolant etc.

                      This will be a much cleaner solution. Not to mention the convenience of not turning your head to look at other gauges.


                      terra are these CAN Messages applicable to MSS54HP (CSL 0401/0301) as well?

                      Comment


                        #12
                        ZiMMie, I just sent you a PM with the EEPROM file. Changing the odometer from miles to km is very easily done using NCS Expert. If you aren’t able to do that, I currently have two km clusters in my possession that I can get a dump from and send you the file.

                        I’m interested to see how your gauge.s install turns out. Post some pictures of it when you’ve finished. I’ve had a couple of people ask me about gauge.s installs in Z3M clone clusters.

                        As for compatibility with the 0401 CSL DME, I can confirm that it works. My personal E36 is running Terra’s 0401 bin with the modified boot loader, and everything is working correctly (A/C, Check engine light, CAN Bus coolant temperature gauge, and cruise control).

                        Comment


                          #13
                          This whole thread is mind blowingly amazing. I did not have anything intelligent to add, but will be following the progress of ZiMMie and the gauge.s for my can bus conversion. Thanks all.

                          Comment


                            #14
                            Originally posted by JBanzhaf View Post
                            ZiMMie, I just sent you a PM with the EEPROM file. Changing the odometer from miles to km is very easily done using NCS Expert. If you aren’t able to do that, I currently have two km clusters in my possession that I can get a dump from and send you the file.

                            I’m interested to see how your gauge.s install turns out. Post some pictures of it when you’ve finished. I’ve had a couple of people ask me about gauge.s installs in Z3M clone clusters.

                            As for compatibility with the 0401 CSL DME, I can confirm that it works. My personal E36 is running Terra’s 0401 bin with the modified boot loader, and everything is working correctly (A/C, Check engine light, CAN Bus coolant temperature gauge, and cruise control).

                            ​​​​​​Please dump the eeprom file on those clusters as we can compare where the changes are made. last time I tried to code those clusters with the exact changes, it will always revert back to miles 30secs after ncsexpet writes the changes.

                            I'll definitely post updates in this thread.

                            I'm actually curious if the CAN ID are the same as I'll have to defined them manually with gauge.s.
                            The predefined documented messages here were sniffed off an MS43. Bmw tend to keep the messages the same on the same chassis but you never know with the CSL software.
                            ​​​​
                            Last edited by ZiMMie; 06-28-2023, 12:10 PM.

                            Comment


                              #15
                              ZiMMie, I’ll send you a dump from one of those clusters tomorrow evening. Interesting that you say the changes don’t stick, as that is the method I used to code the two KM clusters I have. Are you using the correct profile in NCS to perform coding changes? I use revtor’s expert mode profile.
                              Click image for larger version

Name:	image.jpg
Views:	796
Size:	116.2 KB
ID:	223593

                              It’s interesting that gauge.s requires you to manually define the CAN id’s. It was my understanding that it used one of the diagnostic lines going to the cluster to get its data. I thought it was also plug and play with native MSS54 support. I don’t know very much about the gauge.s, so I’m probably just misunderstanding something.

                              Comment

                              Working...
                              X