Page 1 of 2 12 LastLast
Results 1 to 25 of 34

Thread: Coding different speedometer scale on E38/39 cluster

  1. #1
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38

    Coding different speedometer scale on E38/39 cluster

    Hello
    Is it possible to code my e38 instrument cluster to use a different speedometer (km/h) scale?
    i'm thinking of switching faceplates on my existing cluster to make it look like the Alpina B12 cluster with 320km/t scale.
    Like this:


    My current cluster goes up to 240km/h

  2. #2
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    Can I use PA soft 1.4 to do this?
    What happens if I change the value in the "speed. imp/km" in the IKE coding?

  3. #3
    IcemanBHE's Avatar
    IcemanBHE is offline ¿pǝpɹɐʇǝɹ noʎ ǝɹɐ
    Join Date
    Jun 2009
    Location
    Wichita,KS/FortCollins,CO
    Posts
    21,276
    My Cars
    (4x7)+8=36
    Looks maybe so...

    I know its a flag change in the IKE with NCS.

    (And I assume that you are not meaning the highlighted yellow above)
    95 840Ci, Calypso Red/Silver, 83k - 99 740i, Black/Black, 185k, Alpina Mods - 01 740i, Titanium/Silver, 40k, Sport Pkg
    Complete Turnkey Diagnostic/Programming systems available...PM for details.

    http://www.8Coupe.com - Please register, spot, and help the project.

  4. #4
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    No not the areas that are highlighted yellow. Its the one with the red frame
    So you are saying its possible to change the speed value in NCS? Maybe you could help me telling me the procedure and maybe some screenshots? That would be nice

  5. #5
    Join Date
    Feb 2011
    Location
    IL
    Posts
    13,581
    My Cars
    2000 740i sport
    May want to change everything over to KM under "standards" no? PA Soft without someone else having successful results makes me nervous...

  6. #6
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    The printscreen is not from my computer, it was just ment as an example. I have a cluster with all metric values.

    I used NCS dummy today to explore some of the functions of the KMBI_E38.C12 (I assume thats the name of my instrument cluster) and I found this:

  7. #7
    IcemanBHE's Avatar
    IcemanBHE is offline ¿pǝpɹɐʇǝɹ noʎ ǝɹɐ
    Join Date
    Jun 2009
    Location
    Wichita,KS/FortCollins,CO
    Posts
    21,276
    My Cars
    (4x7)+8=36
    The one above that would be the one I used.
    95 840Ci, Calypso Red/Silver, 83k - 99 740i, Black/Black, 185k, Alpina Mods - 01 740i, Titanium/Silver, 40k, Sport Pkg
    Complete Turnkey Diagnostic/Programming systems available...PM for details.

    http://www.8Coupe.com - Please register, spot, and help the project.

  8. #8
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    Ok
    Do i have to change some other values beside the boxes I ticked in the screenshot below?

    Or is this sufficient?
    What does (!RL,JAPAN) in the red frame mean?

  9. #9
    IcemanBHE's Avatar
    IcemanBHE is offline ¿pǝpɹɐʇǝɹ noʎ ǝɹɐ
    Join Date
    Jun 2009
    Location
    Wichita,KS/FortCollins,CO
    Posts
    21,276
    My Cars
    (4x7)+8=36
    No idea. Thats a Revtor question. Yes..the one check is all you should need.
    95 840Ci, Calypso Red/Silver, 83k - 99 740i, Black/Black, 185k, Alpina Mods - 01 740i, Titanium/Silver, 40k, Sport Pkg
    Complete Turnkey Diagnostic/Programming systems available...PM for details.

    http://www.8Coupe.com - Please register, spot, and help the project.

  10. #10
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    Quote Originally Posted by 740AV View Post
    What does (!RL,JAPAN) in the red frame mean?
    Those are the order options for which that parameter is selected by default. See chapter 3.1.3 in the NCS Dummy user manual. Even though the order options often tend to be cryptic they can be an invaluable help to determine which parameters you need when the keywords or translations do not provide any clue.

    ALPINA+(!RL,JAPAN)

    or

    ALPINA and (not RL or JAPAN)

    or in plain English:

    Parameter "300_km/h_alpina" is selected by default for all ALPINA cars that are not right-hand drive (RL) unless for the JAPANese market.

    In this case the order options are quite self-explanatory, but when in doubt you can look them up in the <chassis>ZST.000 or <chassis>AT.000 files of the NCS Expert DATEN. Note that these files are in German.

  11. #11
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    Ok, thanks for the answer

    Today I did an actual reeding of KMBI_E38.C12 module from my car.

    There where no boxes ticked in the: Manufacturer data 10 - "SPEEDOMETER OFFSET" or the "SPEEDOMETER MAXIMUM VALUE"


    Not in the Manufacturer data 12 - "SPEEDOMETER OFFSET (COMPLEMENTARY)" or the "SPEEDOMETER MAXIMUM VALUE (COMPLEMENTARY)" either.


    Do I have to make changes in both Manufacturer data 10 and 12?
    Like this?:


    and


  12. #12
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    Usually when you don't see anything selected for a function it's a good idea to load the "NETTODAT.TRC" - there's a chance that particular function contains a custom value that cannot be represented by the "FSW_PSW.TRC". However, in this case none of the sample trace files I have from E38 and E39 "KMBI_E38.C??" modules has data in these functions - I don't expect yours to have data either. It's not uncommon for modules to have "gaps" in their trace readouts. These gaps are usually nothing but addresses that are not in use or used for non-coding data. Sometimes certain address spaces are excluded even though they contain coding data. I don't have an explanation for this. In some cases one could argue the addresses contain data BMW does not want you to mess with, but that argument does not make sense in other cases (besides NCS Expert is not supposed to be available outside BMW, so why would they protect NCS Expert against themselves). I can't think of a good reason why the speedometer functions are omitted from the module upon reading with NCS Expert - similar functions are included and can be modified for other chassis.

    You can try to select them in NCS Dummy as you did in the screenshot, export the manipulation file and write it to the module with NCS Expert, but I don't think it'll work... If NCS Expert would not read the addresses I don't see why it should write them...

    A second issue is that "TACHO_OFFSET" and "TACHO_SKALA_ENDWERT" (and complementary functions) are only part of the story. The Alpina does have a different final drive ratio and the speed sensor on the differential outputs a different number of impulses per kilometer (4366 impulses/km vs 4571 impulses/km). So even if you manage to code parameter "300_km/h_alpina" for functions "TACHO_OFFSET" and "TACHO_SKALA_ENDWERT", your speedometer will be way off. You could recode "K_ZAHL_TACHO" to compensate for this, but while the speedometer needle may then be showing the correct value, the internal speed calculation is now plain wrong. This may have no further effect (I don't know, but at least the odometer uses its own K_ZAHL and should be unaffected), but it does not sound right to me... The correct way would be coding custom values for "TACHO_OFFSET" and "TACHO_SKALA_ENDWERT" (and complementary functions), but that assumes you can a) actually code these functions and b) know what the hexadecimal data for these functions represent...

  13. #13
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    Thank you for taking the time to give such a thorough answer

    One more question though..
    Why whould i have to recode the K_ZAHL_TACHO? If my actual differential gives 4571 pulses pr. km, would'nt it be wrong to change this value? If i recode to 4366 impulses, then my cluster will interpret it as if I'm driving 1000m when I actually only drive 919m.
    Last edited by 740AV; 02-04-2014 at 05:38 PM.

  14. #14
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    The problem is that parameter "300_km/h_alpina" for "TACHO_OFFSET" and "TACHO_SKALA_ENDWERT" is only correct for the Alpina differential with different amount of impulses per kilometer from yours. One way to solve this would be adjusting "K_ZAHL_TACHO". Not to the Alpina value, though, but to a value (probably custom) that compensates for the difference between your differential and that of the Alpina.

    Also in the case you are unable to code "TACHO_OFFSET" and "TACHO_SKALA_ENDWERT", adjusting "K_ZAHL_TACHO" can make what you want to achieve possible (because "K_ZAHL_TACHO" is included in your trace files and you should be able to code it). For example, if the new speedometer face has a 20% higher top speed (300 km/h instead of 250 km/h), you could code a custom value to "K_ZAHL_TACHO" that makes the reading 20% lower (5485 impulses/km, data value 15,6D and complementary EA,92).

    This might get the speedometer needle showing the correct speed but, yes, internally the instrument cluster is definitely using wrong values! The odometer uses a different K-value ("K_ZAHL_WEG" instead of "K_ZAHL_TACHO"), so it should not be affected but perhaps other stuff is... This might be the quickest and easiest way to adjust the speedometer needle, but it is also the most wrong one. The correct way would be coding custom values for "TACHO_OFFSET" and "TACHO_SKALA_ENDWERT", but that requires a) being able to code these functions and b) knowing what they represent so you can create a custom entry that matches with the new speedometer face and the number of impulses from your differential.

  15. #15
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    There are also different types of differentials between the Alpina E38 and E39 models.

    Information I got from original parts catalogues:
    Alpina B10 3.2 and 3.3: 3.07:1, 2.93:1 (Same ratio as in my 740il) and 2.79:1

    Alpina B10 V8: 3.15:1 (Same ratio as e38 740iS and e39 m5) and 3.08:1

    Alpina B12 5.7 and 6.0: 3.15:1 (Same ratio as e38 740iS and e39 m5)

    The differential for the e38 B12 6.0 and e38 740iS has the same part number: 33107500913

    The clusters are basicly the same on theese models, and some of them have the same part numbers also

    I'll guess that the setting in TACHO_SKALA_ENDWERT - "300_km/h_alpina" is for the B10 3.2 and 3.3 (and probably fits my car) and the "300_km/h_alpina_e39" is for the B10 V8 models and the e38 B12 models.

    This is just me thinking
    Last edited by 740AV; 02-05-2014 at 09:18 AM.

  16. #16
    Join Date
    Mar 2012
    Location
    Norway
    Posts
    41
    My Cars
    -97 520 3.0 + -87 M3
    Diffs and all don't matter. Speed signal comes via abs, from one of the rear wheels, no sensor on the diff on e38/39. You could take out your drivetrain completely and tow your car down the road, and i would give speed signal.

  17. #17
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    Rogeren: You are right - I was thinking too much E31/E32/E34 era. Anyway, if the speed signal comes from the ABS, I wonder why the Alpina and non-Alpina E38 have different K-values in the instrument cluster (K-value = impulses per kilometer). Does the Alpina E38 have different wheel hubs than the rest of the E38 series?

    It does not really matter, though. 740AV shouldn't touch the K-values but code custom values to "TACHO_OFFSET" and "TACHO_SKALA_ENDWERT". The problem is that this may not be possible with the KMBI_E38.C?? module...

  18. #18
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    Today I got an actual KMBI_E38.C12 reading from an original e39 Alpina B10 V8 1999 cluster.
    There where no data in the "TACHO_OFFSET" and "TACHO_SKALA_ENDWERT" + comlementary either.


    The "K_ZAHL_TACHO" was coded:


    The "K_ZAHL_WEG" was coded:


    But when I used PA soft, I got theese values:


    Mileage offset: 61
    Speed imp/km: 4702
    Distance imp/km: 4753

  19. #19
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    Quote Originally Posted by 740AV View Post
    Speed imp/km: 4702
    Distance imp/km: 4753
    This may sound strange but both NCS Dummy and P.A. Soft BMW Scanner are correct. The confusion comes from the difference between the parameter keyword name and its actual data value. If you select parameter "K_ZAHL_TACHO" "4846_imp/km" NCS Dummy will tell you the data value is 12,5E. That's hexadecimal for 4702 - the same as P.A. Soft BMW Scanner. How is this possible? Simple: The parameter keyword is just a string. While parameter keywords often bear relation to their actual data value, nothing dictates it should be like that. For the same money BMW could have named the parameter keyword something meaningless like "wert_01". In this particular case the confusion comes from the fact that the keyword suggests a relation with the data value, but apparently there is none. It's probably a mistake by the BMW engineer who added these values because the other parameter keywords for this function do have a 1:1 relation with their data values.

    Parameter "K_ZAHL_WEG" "4844_imp/km" has data value 0A,C1 or 2753. That's not only different from what the keyword suggests, but also different from what P.A. Soft BMW Scanner says. What's going on here? The answer is the mask - it's 1F,FF instead of FF,FF. The mask is too short to store the value, therefor BMW decided to offset the value. You'll notice that all parameters for "K_ZAHL_WEG" have an offset of (decimal) 2000. So the real data value of "4844_imp/km" is decimal 4753 - the same as P.A. Soft BMW Scanner. Don't ask me why BMW decided to do it this way, but usually the offset method is used to save some bits (which can then be used for other functions).

    NCS Dummy just parses the NCS Expert module description files, extracts as much information as possible and tries to display this in a readable format. It's taking over the decisions, quirks and even bugs made by the BMW engineers who wrote the original NCS Expert module description files. NCS Dummy makes reading and manipulating modules very easy, but it's still up to you to interpret the data shown by NCS Dummy.

    P.A. Soft BMW Scanner on the other hand does not use NCS Expert so it's also not bound to its quirks and such.

  20. #20
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    So.. I tried coding TACHO_OFFSET and TACHO_SCALA_ENDWERT with NCS. And as revtor expected, it did not work.
    I think that the only way I can change the reading of the speedometer is to code a custom value to K_ZAHL_TACHO.
    My current scale is max 250km/h - Alpina 330km/h. The difference is 32%. 4571 imp/km + 32% = 6034 imp/km.

    So if I code the K_ZAHL_TACHO to 6034 imp/km then the 330km/h scale will read correctly on my cluster..?
    Would this affect other things in the cluster or other components in the vehicle?
    - The odometer would still be correct.
    - The L/100km (mpg) uses the odometer values to calculate (?)
    - The cluster test-nr. 08 "current speed" uses the odometer values to calculate(?)
    - My navigation (mk4) gets the speed signal directly from the ASC/ABS module.

  21. #21
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    Even though I firmly believe this is not a "proper" way to achieve what you want, I guess it should work.

    In NCS Dummy, add a new parameter "6034_imp/km" to function "K_ZAHL_TACHO" and enter 17,92 for the data value (= hexadecimal for 6034). Then add the same parameter to function "K_ZAHL_TACHO_KOMPL" but enter E8,6D for the data value (= complement of 17,92). Save the changes to the module. See chapter 3.1.4 in the NCS Dummy user manual for more details on adding parameters to modules. Next load your "FSW_PSW.TRC" trace file in NCS Dummy, tick the checkboxes of both new "6034_imp/km" parameters and export the "FSW_PSW.MAN" trace manipulation file. Finally recode the module with NCS Expert...

    The odometer should not be affected - it uses its own K-value ("K_ZAHL_WEG" and "K_ZAHL_WEG_KOMPL"). I assume the fuel consumption calculation will also use this K-value. I'm not sure about the current speed in the instrument cluster service menu, though... I wouldn't be surprised if it reads wrong. It's probably not a bad idea to use a standalone GPS device before and after the modification to make sure all readings remain correct.

  22. #22
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    Today I tried to add custom values with NCS expert/dummy. But it did not work either. The speedometer acts as it has the normal settings.
    What am I doing wrong ?

  23. #23
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    740AV: After coding, reread the "FSW_PSW.TRC" trace file from the module and verify the changes ("6034_imp/km") are present. If not, the address space may be protected against writing or you made a mistake while adding the parameters. Make sure you add the parameters to the module in NCS Dummy while no trace file is loaded! With a trace file loaded you can also add custom data in NCS Dummy, but this is for nettodata coding only. See chapters 3.1.4 and 3.2.3 in the NCS Dummy user manual for more information.

    If the address space is protected against writing I'm afraid you are pretty much stuck with NCS Expert. Perhaps P.A. Soft BMW Scanner can code the value, but be very cautious with this software. BMW Scanner can do stuff that is simply impossible with NCS Expert (the ability to read and write the EEPROM content directly is very nice), but it is also a very quick ticket to a bricked module... Use at your own risk...

  24. #24
    Join Date
    Dec 2011
    Location
    Norway
    Posts
    50
    My Cars
    1997 BMW 740IL E38
    I did a reading from the IKE and it seems like the changes has been done:




    So why isn't it working?

    I read in the NCS dummy manual that some modules need the ignition to be turned off and on for the changes to take effect. But for how long must the ignition be turned off?
    I turned the ignition off for about 1 -2 minutes before I did a test run.

    What if I made some changes for the K_ZAHL_WEG + complementary? Maybe the difference between K_ZAHL_TACHO and K_ZAHL_WEG cant be that big (6034 - 4526) ?

  25. #25
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    To be honest, I don't know why it does not have any effect... Clearly the coding was successful. Maybe there's some other layer of protection we don't know about. What happens if you read the module with P.A. Soft BMW Scanner? Does it report 6034 as well?

    Can you change one of the more trivial functions like "TEMPERATUR_EINHEIT", recode the instrument cluster and see whether the temperature unit changed?

    If changing "K_ZAHL_TACHO" does not have any effect, I don't see why changing "K_ZAHL_WEG" should. Anyway, changing "K_ZAHL_WEG" is simply fraud. Don't do it.

Page 1 of 2 12 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •