Login






BMW Garage  BMW Meets  Register  Search  Today's Posts  Mark Forums Read 

BMW 3Series (E90 E92) Forum
>
Is there a way to code speedometer correction??


05082012, 12:11 AM  #1 
Registered
3
Rep 4
Posts 
Is there a way to code speedometer correction??
Hi all,
Ok, I know about the coding to deactivate the 510 mph over actual reading on the speedometer, what I'm asking about is the possibility of a way to compensate for changing the sidewall height of the tires. I have the stock sizes on my '08 E60 M5 now (285/3519), but will be changing to 305/3019s on the rear and 275/3519s on the front. I know this will cause the speedometer to read low, but not sure exactly how low. I'm hoping that perhaps just reenabling the BC_DIGITAL_V_KORRECTUR would match the error in the reading, but won't be holding my breath. So if there's a way to code in an exact correction for the speedo, I'd love to know how to do it. Anyone? Thanks, Peter
__________________
Unfortunately, common sense isn't really that common after all!!

05082012, 11:24 AM  #2 
Banned
7
Rep 263
Posts 
Nettodat coding maybe... I know DVD in motion was solved this way and that also referred to specific speed. I'm too busy right now but someone could try looking at what bits the Korrectur line changes and see if it refers to an actual speed.

Appreciate
0

05082012, 02:00 PM  #3 
Lieutenant
27
Rep 540
Posts 
BC_V_KORRECTOR only has two values: aktiv and nicht_activ with a binary mask so nothing to be gained there. I've played around with K_ZAHL_TACHO and K_ZAHL_TACHO_KOMPL with the normal values (wert_0x, etc) but there may be some room to play with these using NETTODAT coding. They both have WORD values (2 bytes) with FF mask so there's a lot of possibility there (0 to 65535 or 32768 to 32767 if it's considered a signed WORD). K_ZAHL_TACHO* values are supposedly for calibrating the speedometer for different tire sizes.
If I get a chance tonight, I'll play around and see what happens. 
Appreciate
0

05082012, 11:16 PM  #4 
Lieutenant
27
Rep 540
Posts 
It does work. I've got some calculating to do, but I changed it by a huge amount just to test and I was showing 52 mph on my GPS and 84 on the speedometer.
K_ZAHL_TACHO_KOMPL seems to be the 1's compliment of the K_ZAHL_TACHO value. I'm not sure what the relationship is of the two, but I deliberately made the K_ZAHL_TACHO_KOMPL a 1's compliment of my modified K_ZAHL_TACHO value before flashing it to the KOMBI. The original value at address 00300201 was B2, 5E, 4D, A1. Converted to little endian, it gives 5EB2 (24242) and A14D (24243). I changed them to 4E20 (20000) and B1DF (20001) or in the NETTODAT.TRC file, 20, 4E, DF, B1. It looks like I need to use a higher value for a lower speedometer reading. I'll try this again with like 26000/26001 and see what it gives. From these, I should be able to calculate a proper ratio and a correction. 
Appreciate
0

05102012, 08:34 AM  #6 
Lieutenant
27
Rep 540
Posts 

Appreciate
0

05102012, 08:39 AM  #7 
Lieutenant
27
Rep 540
Posts 
My first attempt at a solution. My speedo reads about 63 mph when my gps says 60 mph. I changed the K_ZAHL_TACHO word (from default of 24232) to 24800 (0x60E0  and the KOMPL to 24801/0x9F1F ) then drove to work this morning with my Android GPS in the dock. It made about a 1 mph difference at 60 mph (still 2 mph high) so I'll need to bump that a little higher. I'll try 26000 when I get a chance and see where that puts me.

Appreciate
0

05112012, 08:31 AM  #9 
Lieutenant
27
Rep 540
Posts 
I noticed an unwanted side effect: the digital speed display always reads zero. I'm going to give up on this approach. Although it seems to work in that it definitely changes the way the speedometer registers actual speed, I still think there must be a simple toggle that accomplishes the same thing. The digital speed reading is always spot on (when BC_DIGITAL_V_KORRECTUR is set to nicht_aktiv) so there must be some simple way of getting this information. I'd rather have a good bc_digital speed and the speedo off than the other way around. The digital readout is always where my eyes go when I see a speed trap anyway.

Appreciate
0

03192014, 01:44 AM  #10 
Private
1
Rep 68
Posts 
Got my speedometer within reason! Used the advice here and set my parameters to 25000,25001. About 1 mph under, I'll try 25500,25501 next, but good enough for tonight. Here's my nettodat line: B 00300200,0009,00,A8,61,57,9E,AA,5F,55,A0.
BC_DIGITAL_KORREKTUR is aktiv and BC_V_KORREKTUR is nicht_aktiv and the analog agrees with the digital and both agree with the GPS, and the cruise control agrees. Numbers are working, but did anyone ever think that these may be floating point numbers? Is it documented that they are endian? Oh, and no problems on mine with the digital speedometer. All works fine. Last edited by tboudre; 03192014 at 01:49 AM. Reason: afterthought 
Appreciate
0

03192014, 02:11 PM  #11 
Private
1
Rep 68
Posts 
I know this topic looks like it has been beaten to death, but I still haven't found a solution that makes sense. If anyone has figured this out, please let me know before I pull my hair out! If I go with the little endian theory, I've got numbers that don't make much sense, but appear to be a random fudge factor. But, if I take the numbers in the order they are in, I get these numbers (As set from the factory):
K_ZAHL_TACHO = 45662 K_ZAHL_TACHO_KOMPL = 19873 Curiously, if you go to a tire calculator web site, http://www.csgnetwork.com/tireinfo4calc.html and enter in 225/40/18 tire size, the revolutions per km = 499.25 and the circumference is 78.81 inches = 2001.8 mm, which is curiously close to those values above (minus the decimal point, of course). 
Appreciate
0

03192014, 03:04 PM  #12 
Private
1
Rep 68
Posts 
If I go by my previous logic, I now have these values in the parameters:
43015/45662 = 0.94 * 67 mph = 63 mph. OK, this is the part that makes my head hurt. Less rotations/mile = bigger tire = less rotations of wheel = less mph displayed. So, while I'm indicating slower now where I was where 67 mph was actually about 65 mph, now 50 mph = 49 mph. If I used 25500/25501, by the little endian method I would have 639C and 9C63, oddly enough. Which would read as: 00300200,0009,00,9C,63,63,9C,AA,5F,55,A0 Which would translate to: K_ZAHL_TACHO = 40035 K_ZAHL_TACHO_KOMPL = 22500 It so happens that this would be lower speed while increasing the little endian value, which would be very confusing. 
Appreciate
0

03192014, 05:38 PM  #13 
Private
1
Rep 68
Posts 
Coding try for tonight:
K_ZAHL_TACHO = 42000 = A4,10 K_ZAHL_TACHO_KOMPL = 21605 = 54,65 Assuming the second is the revolution distance and the first is the rev/km, I divided the original KOMPL number by the ration of the original rev number to the new number, since if my assumptions are correct, they are inversely proportional. 
Appreciate
0

03202014, 01:24 AM  #14 
Private
1
Rep 68
Posts 
I still don't have a clue what these numbers can be. I used all sorts. Sometimes they would work perfectly, sometimes the digital speedometer wouldn't work, sometimes the cruise control wouldn't work, sometimes I would get an error saying the speedometer was broken. I just jacked around with it until I got within about 0.5 km/h of the steady state GPS at 60 kph & I consider myself done. I switched over to metric: 1) smaller units = less change in speed between whole number clicks, since the display can't show tenths of a unit. Better for dialing in. 2) I can get to 100+ units without attracting too much attention from the law. 3) since it's a percentage, this also helps with identifying error.
Here are the number that are working now: B 00300200,0009,00,A4,61,5B,9E,AA,5F,55,A0 This equates to 42081 taken word by word. For some reason, more often than not, I had success taking this number swapping the MSW & LSW (endian) (61A4 hex = 24996 dec), adding one, & negating (24997 dec = 9E5B) then taking this value for the second words (5B,9E). 
Appreciate
1
d1saster25 
03242014, 02:07 PM  #15 
ಠ_ಠ
46
Rep 1,526
Posts 
Here's everything I've seen in KOMBI so far that appears to be referring to "corrections":
The one that catches my eye is UNTER_KORREKT_WERT_1 (German for under correct). There's a few different values available to play with. Might be worth fiddling with.
__________________
 335i coupe  Monaco Blue  JB4 G5 ISO  Style 313M  Huper 40% tint  Aero lip  CSL trunk spoiler  M3 sideskirts  Paintmatched grilles  Painted reflectors  GP Thunder II angel eyes  Smoked LED sidemarkers  Selfcoded  
Appreciate
0

05012014, 10:59 PM  #16 
Private
1
Rep 68
Posts 

Appreciate
0

05022014, 12:26 PM  #17 
ಠ_ಠ
46
Rep 1,526
Posts 
I had a few trace files lying around I was searching through, I think it was KOMBI but it might not have been. I'll see if I can find the file. Just search on "KORREKT" and see what turns up, it's possible the function name is different.
__________________
 335i coupe  Monaco Blue  JB4 G5 ISO  Style 313M  Huper 40% tint  Aero lip  CSL trunk spoiler  M3 sideskirts  Paintmatched grilles  Painted reflectors  GP Thunder II angel eyes  Smoked LED sidemarkers  Selfcoded  
Appreciate
0

11152016, 01:34 AM  #18  
Lieutenant
25
Rep 546
Posts 
Code speedometer correction SUCCESS!
Quote:
The procedure I used is with NCS Dummy. Added custom values to the following functions in my KOMBI module: IMPULSES PER KILOMETER FOR SPEEDOMETER C08_K_ZAHL_TACHO Data= A4,61 IMPULSES PER KILOMETER FOR SPEEDOMETER (COMPLEMENTARY) C08_K_ZAHL_TACHO_KOMPL Data=5B,9E And returned the following functions to aktiv: ONBOARD COMPUTER (OBC) SPEED CORRECTION BC_V_KORREKTUR aktiv ONBOARD COMPUTER (OBC) DIGITAL SPEED DISPLAY CORRECTION BC_DIGITAL_V_KORREKTUR aktiv For smaller tire circumference here is a link to an Excel convertor to find the numbers that work. Remember K_ZAHL_TACHO has to be less than or equal to A4,61: http://www.m5board.com/vbulletin/att...correction.xls 

Appreciate
0

11162016, 12:00 PM  #19  
Major
84
Rep 1,193
Posts 
Quote:
What size tyres do you currently have? 

Appreciate
0

Bookmarks 
Thread Tools  Search this Thread 

