Announcement

Collapse
No announcement yet.

e46 M3 Speedometer Error Fix

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

    e46 M3 Speedometer Error Fix

    Hey guys?
    I always come across the post below (posted by Terraphantm) regarding the speedometer error, but I don't have this string anywhere in my file...
    03 00 2D C8 00 31 D6

    Does anyone know of another string to look for?
    I'm getting desperate because this error is driving me crazy.
    Not only do I have the error, but I'm running 17s where my overall diameter is a little less than OE. My error is about 12% high.

    I'm all ready to replace the string with the correct one but I have no idea where to start.
    I've tried using PA soft but I don't have the special cable...or maybe it's because I'm not running windows XP...haha.
    I know that there is somebody out there that can lead me in the right direction.
    Below is the post that I am referring to.
    Thanks.





    Requirements
    BMW Scanner
    Cluster made in 09/2001 or newer (edit: not 100% sure about this date cutoff after looking at some NCS Expert files. Might even be as late as 03.5)
    I'm sure it is possible to do this on early clusters too, but the software is quite different. I can research if a few of you send me a dump of your cluster EEPROM
    Some common sense

    As most of you know, E46 clusters tend to be optimistic. What you may not have known is that the DME and Cluster know the exact speed; the error is deliberate on BMW's part. There have been a few ways to correct this in the past; one way is to just trick the cluster into thinking you have smaller tires, but this can screw up things like MPG and average MPH calculations. Another way was to rescale the cluster curve itself, but this required a decent bit of trial and error and it was just fooling the cluster into thinking the scale was larger.

    After studying M and non-M EEPROM files, here's what I found -- there is a function deliberately designed to increase the speed by a certain ratio. In the non-M, the displayed speed is the real speed + 5.7%. In the M3, the error is a massive 8.9% -- completely unacceptable IMO.

    So here's what you do.

    Start up the PASoft software and load your IKE. Read off the EEPROM.
    Now, in the built in hex editor, look for the following hex string (pick the appropriate one for your model). In my cluster, it was located at offset 0x339

    Code:
    E46 M3: 03 00 2D C8 00 31 D6
    Non-M: 03 00 23 C8 00 25 CC
    Change it to the following

    Code:
    All models: 03 00 01 C8 00 01 CA
    Save the file, and flash the EEPROM back to your cluster.
    Done. If you have stock diameter tires, your speedometer should be almost 100% accurate

    If you're curious as to how the change works, the bytes I change are used as a ratio. 0x25 = 37; 0x23 = 35. 37/35 = 1.057, or a 5.7% error. I am not sure what the 0xC8 (200) value represents; I think it might be an upper limit to the allowed error (5.7% until the error reaches 20 km/h). That last byte is simply a checksum (XOR all the values together, and then XOR with 1)

    If you have a 99-01 cluster, please send me your EEPROM. I can't promise I'll figure out how to do the change there, but I'll try. Also, if there are any Japanese fanatics here, please send me a dump of your cluster. In the E39, the Japanese values for the cluster are 100% accurate; I suspect the same holds true for the E46. It would be interesting to see how BMW configured the cluster.

    Also give me feedback; so far in my testing it agrees with GPS, but it's always nice to have others confirm too

    #2

    Anyone? This is the only place where I have code with 2d and 31 in the "appropriate" space...the numbers that need to be changed.
    The only strange thing is that FF is in the place where C8 should be.
    Does ANYONE have anything for me? Please?
    I know I'm new to this forum, but I would appreciate any help that anyone can supply.
    I don't mean to be a pest but if anyone can guide me in the right direction I would greatly appreciate it.
    Thanks in advance.

    Comment


      #3
      Does anyone still have this PA Soft? If so I can email my file and you can make some money.

      Comment


        #4
        Figured it out thanks to MpowerE36 . I thought the IKE code was in the DME code, but it's not.
        I didn't realize that it was an entirely different module.
        I needed another program to get the code from the IKE.
        Problem solved and fixed.

        Thanks MpowerE36 for reaching out and helping!

        Comment


          #5
          Thats funny I drove past a radar speed sign the other day and my speedo was 5mph high. Running 265/35/18 tires, so not that far off from stock. Good info here. Thanks.

          Comment


            #6
            Originally posted by Mr. 5 View Post
            Figured it out thanks to MpowerE36 . I thought the IKE code was in the DME code, but it's not.
            I didn't realize that it was an entirely different module.
            I needed another program to get the code from the IKE.
            Problem solved and fixed.

            Thanks MpowerE36 for reaching out and helping!
            What build month/year is your car? I can't find this string in my IKE, old or even an already updated code for the speedometer. My build is 08/01 though so I think I'm in the "99-01" cluster problem Terra mentions at the end of his post. Just curious.

            Comment


              #7
              I wonder if the error is only present in US DMEs. I've always been aware of this being built in- but whenever i drive past a radar speed sign or check my dashcam (gps enabled)- the reading seems to be accurate. Not sure if it has anything to do with the Euro flash I did when i installed my euro headers and cats.
              2002 TiAg M3 Coupe (SMG to 6spd), 2003 Jet Black M5

              https://www.instagram.com/individual_throttle_buddies/

              Comment

              Working...
              X