Customizable traction control settings

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
For comparison here is my 135i m-sport (MK60_87.C0C):

PRESSURE MODEL REAR AXLE = 0x04
PRESSURE MODEL FRONT AXLE = 0x05
OVERSTEER FRICTION COEFFICIENT 0 = 0xC0 =
OVERSTEER FRICTION COEFFICIENT 1 2 = 0x80 = 0.5 m/s²
UNDERSTEER FRICTION COEFFICIENT 0 = 0xA6
UNDERSTEER FRICTION COEFFICIENT 1 2 = 0x80 = 0.5 m/s²
UNDERSTEER THRESHOLD = 0x0D
C0C_GMR_MAX_LIMIT_SCHRAEG = 0x01
C0C_GMR_MIN_LIMIT_SCHRAEG = 0x0B
DELTA-PSI-BETA LIMIT CORRECTION = 0x03
STEERING ANGLE CHARACTERISTIC CURVE = 0x04 (weird - why different than 335is)
YAW MOMENT COMPENSATION EFFECTIVE FRICTION RADIUS FRONT AXLE = 0x0 = 0mm
YAW MOMENT COMPENSATION EFFECTIVE FRICTION RADIUS REAR AXLE = 0x0F = 45 mm (maybe because 135i has smaller rotors than 335i)

Oh, this could interesting to flip: C0C_PRE_USC - PRE UNDERSTEER CONTROL = 0x0.
 

aus335iguy

Colonel
Nov 18, 2017
2,251
805
0
Down under
Ride
335i DCT 2009
Steering angle characteristic curve would be different because of wheelbase would it not ?

I find this fascinating
In Peters thread he mentions using M3 coefficients in a 1M DSC
But no one’s been able to change them on M3 only non M
 

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
Hmm, I sure in the actual software they have explicit parameters for wheelbase and steering angle. I doubt it is adjusted as some correction factor at the end.
Internally they would determine the chassis based on "C0C_BAUART - MODEL VARIANT".

But roughly though, the effective steering angle coming from the wheelbase difference is about 2.66 / 2.76 * 16.0 = 15.42
Code:
335i wheel base = 2.76m
135i wheel base  = 2.66m
non-m steering ratio = 16.0
m steering ratio = 12.5
So it wouldn't be very useful anyway for rack retrofits if that's what the factor does.


I have a feeling this is does something more subtle that is related to vehicle options. Maybe suspension variants or tire width (which I think may affect slip angle or something).
 
Last edited:

KClemente

Sergeant
Nov 26, 2019
284
147
0
Ride
E90 335i
I don't have screenshots but so far I've changed all of these to closely match either an M3 or M3 GTS on my MK60_87.C0A.

Your dsc may have different wert values, so pay attention to the data values instead.

Druckmodell_HA and VA to: data 01 (M3 GTS)

Pre_MSR to: data 01 (M3)

Uebersteuern_mue_0 to: data E6

Uebersteuern_mue_1_2 to: data CD (M3 GTS)

Untersteuerschwelle to: data 40

Gmr_max_limit_schraeg to: data 03

Gmk_ecba_va and ha untouched as they have something to do with ECBA and I don't have an LSD yet.
 

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
I don't have screenshots but so far I've changed all of these to closely match either an M3 or M3 GTS on my MK60_87.C0A.

In M-DSC, the DRUCKMODELL = 0x01 means MAN_UMF_GTS, but in non-M DSC _DRUCKMODELL_ = 0x01 seems like a option for non-sport brakes. !NR_SPORTBREMSEN That what I see in NCSdummy:
Code:
E81+(N43B20O0,N47D20O0,N47D20T0,N52B30O1)+!NR_SPORTBREMSEN,E82+(N46B20O2,N43B20O0,N47D20O0,N47D20T0,N52B30U1,N52B30M1,N51B30M0)+!NR_SPORTBREMSEN,E87+(N43B20O0,N47D20O0,N47D20T0,N52B30O1)+!NR_SPORTBREMSEN,E88+(N43B20O0,N47D20O0,N47D20T0,N52B30U1,N52B30M1,N51B30M0)+!NR_SPORTBREMSEN,E90+(N43B16O0,N43B20U0,N47D20U0,N47D20U1)+!NR_SPORTBREMSEN,E90+N43B20O0+!NUTZLAST_HOCH+!NR_SPORTBREMSEN,E91+N43B16O0+!NUTZLAST_HOCH+!NR_SPORTBREMSEN,E91+N43B20U0+MAERZ08+!NUTZLAST_HOCH+!NR_SPORTBREMSEN,E92+(N43B16O0,N43B20O0)+!NR_SPORTBREMSEN,E93+N43B20O0+MAERZ08+!NR_SPORTBREMSEN
I wouldn't touch it.


M3_PRE_MSR seems like it's meant for manual cars.
Code:
!((DOPPEL_KUPPEL,M_DOPPEL_KUPPEL)+!M3DSC_CI_03,M3DSC_CI_03)
Makes sense, because I think DCT transmission already does that compensation (you don't feel as bad lurching forward in 1st / 2nd gear when releasing the accelerator pedal). If you have manual, you could try it out. If not, I wouldn't change it.

Gmr_max_limit_schraeg = 0x03 - I think this is promising.
Untersteuerschwelle = 0x40 - has a chance to be some progressive threshold - promising.

_GMK_ECBA_ - YAW MOMENT COMPENSATION - I feel this is related to braking force distribution when braking and steering or eLSD. I think it has something to do with rotors size. The biggest, 46mm value, corresponds to sport brakes. I would say bigger value = less assist. 0x0 could mean off. I am not going to change it.

The Mu calibrations are weird. The mue_1_2 range between 0.5-4.5m/s2. My mue_1_2 understeer and mue_1_2 oversteer were set to minimum 0.5m/s2. Mue_0 oversteer to 0xC0 and Mue_0 understeer 0xA6.

I made a plot of all M variants and half of non-M variants.
1636503993222.png

I think mue_0 is offset to some internal friction coefficient. I think the acceleration is used for interpolation of the mue, but who knows how exactly... I am just going to go with non-US 1M values.
BTW 335is seems to be very close to GTS on this graph. Is this about factory tire brands?! Staggered / non-staggered? I was street-driving for a while with values (accidentally) between US and non-US 1M, and couldn't tell the difference.
The difference would be probably only visible on the track. :)
 

Attachments

  • mue_oversteer_codings.xlsx
    38.6 KB · Views: 36
Last edited:

KClemente

Sergeant
Nov 26, 2019
284
147
0
Ride
E90 335i
@dzid_ thank you for your input, I haven't gone through any testing with it yet as its surprisingly hard to find a large pad with no potential witnesses!

I don't know if Pre_msr is specific to manual cars because mine is a factory manual but pre_msr is set to 00 by default.

I can easily to basic street testing by physically feeling how hard the car cuts torque when wheelspin occurs.

I don't have much faith in mue calibrations as I never really felt a difference when attempting easy drifts with DTC on.
 

JohnDaviz

Lieutenant
Jan 6, 2019
866
583
0
Ride
335i E92 DCT
Gmr_max_limit_schraeg to: data 03

I want to set it also do data 03 but i only have one option = wert_0

1636530929194.png


How did you change it to data 03? Did you just add a parameter? Is it working like that?

So far my only experience is to change wert values in NCS Dummy :D I have never done real coding.
 

aus335iguy

Colonel
Nov 18, 2017
2,251
805
0
Down under
Ride
335i DCT 2009
As I said in a previous post you can create new options in NCS dummy.
The process is the same as changing the video in motion speed limit.
Standard it’s something like 0 of 5 kmh wert 0 and wert 1
You alter your daten file for your CIC and make a new option, wert 3 and assign a hex value of 255kmh
Program the CIC with that value per standard coding procedure

Now replace everything above
CIC with DSC …speed limit with friction coefficients and it should in theory be that simple …

I may not have explained it but if you look up CIC video in motion coding other peoples write ups are easier to follow than mine
 

JohnDaviz

Lieutenant
Jan 6, 2019
866
583
0
Ride
335i E92 DCT
As I said in a previous post you can create new options in NCS dummy.
The process is the same as changing the video in motion speed limit.
Standard it’s something like 0 of 5 kmh wert 0 and wert 1
You alter your daten file for your CIC and make a new option, wert 3 and assign a hex value of 255kmh
Program the CIC with that value per standard coding procedure

Now replace everything above
CIC with DSC …speed limit with friction coefficients and it should in theory be that simple …

I may not have explained it but if you look up CIC video in motion coding other peoples write ups are easier to follow than mine

Sorry. I may have overlooked that but within these 3 pages i am not sure which post you mean.

But what i understood from your post is essentially this. I right clicked and clicked add parameter:

It uses the correct address, i add a name for parameter and set data to the M3 DSC value found in the M3 DSC or like @KClemente stated.

1636533236168.png
 

aus335iguy

Colonel
Nov 18, 2017
2,251
805
0
Down under
Ride
335i DCT 2009
Sorry. I may have overlooked that but within these 3 pages i am not sure which post you mean.

But what i understood from your post is essentially this. I right clicked and clicked add parameter:

It uses the correct address, i add a name for parameter and set data to the M3 DSC value found in the M3 DSC or like @KClemente stated.

View attachment 62001
You got it
 
  • Like
Reactions: JohnDaviz

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
@dzid_
I don't know if Pre_msr is specific to manual cars because mine is a factory manual but pre_msr is set to 00 by default.
You were comparing to manual M3? Maybe you're right. I am looking at that variant logic and there is double negation. Not for DCT without M-DSC and not M-DSC. The only thing left is manual non-M DSC. So maybe this is a comfort feature, not so much traction feature.

I want to set it also do data 03 but i only have one option = wert_0

View attachment 61997

How did you change it to data 03? Did you just add a parameter? Is it working like that?

So far my only experience is to change wert values in NCS Dummy :D I have never done real coding.
I would refer to this comprehensive guide in 1st post:

In the past, I was confused by a different type of codings, but recently I took time to understand the differences. And there are stupid limitations and file formats. And it is annoying that it is hard to do complete revision control with these trace files because data is in two places and also redundant. But I have a process now.
I settled on manipulating FSW/PSW trace file (yes, adding a parameter with right-click), saving with module name in it, and backing up the module definition data itself (from NCSExpert/Daten folder).
Also, after I code, I always compare my FSW/PSW in NCSdummy against freshly read Nettodata (Read ECU button) to see if I coded what I wanted. And several times somehow I didn't (e.g. it's easy to forget to change job type in NCS Expert), so this final check proved itself very good for me to catch. I resave NETTODAT with module name using NCSdummy, and since I intend to modify only FSW/PSW files I know what is the latest coding in the car by comparing it against NETTODAT .
 
Last edited:
  • Like
Reactions: JohnDaviz

JohnDaviz

Lieutenant
Jan 6, 2019
866
583
0
Ride
335i E92 DCT
In M-DSC, the DRUCKMODELL = 0x01 means MAN_UMF_GTS, but in non-M DSC _DRUCKMODELL_ = 0x01 seems like a option for non-sport brakes. !NR_SPORTBREMSEN That what I see in NCSdummy:
Code:
E81+(N43B20O0,N47D20O0,N47D20T0,N52B30O1)+!NR_SPORTBREMSEN,E82+(N46B20O2,N43B20O0,N47D20O0,N47D20T0,N52B30U1,N52B30M1,N51B30M0)+!NR_SPORTBREMSEN,E87+(N43B20O0,N47D20O0,N47D20T0,N52B30O1)+!NR_SPORTBREMSEN,E88+(N43B20O0,N47D20O0,N47D20T0,N52B30U1,N52B30M1,N51B30M0)+!NR_SPORTBREMSEN,E90+(N43B16O0,N43B20U0,N47D20U0,N47D20U1)+!NR_SPORTBREMSEN,E90+N43B20O0+!NUTZLAST_HOCH+!NR_SPORTBREMSEN,E91+N43B16O0+!NUTZLAST_HOCH+!NR_SPORTBREMSEN,E91+N43B20U0+MAERZ08+!NUTZLAST_HOCH+!NR_SPORTBREMSEN,E92+(N43B16O0,N43B20O0)+!NR_SPORTBREMSEN,E93+N43B20O0+MAERZ08+!NR_SPORTBREMSEN
I wouldn't touch it.

You can use Wert_00 on both.

The S65 engine is mentioned there.

1636547736750.png
 

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
You can use Wert_00 on both.

The S65 engine is mentioned there.

View attachment 62004
I interpret druckmodell (pressure model) as probably some internal model that estimates how pressure rises in the caliper based on commanded pressure from DSC. So even if it matches the V8 I wouldn't change it unless you replaced brake system with parts from M3's (I think M3 DSC has bigger pump and bigger brakes).
 
Last edited:

JohnDaviz

Lieutenant
Jan 6, 2019
866
583
0
Ride
335i E92 DCT
I interpret druckmodell (pressure model) as probably some internal model to estimate how pressure rises in the caliper based on commanded pressure from DSC. So even if it matches the V8 I wouldn't change it unless you replaced brake system with parts from M3's (I think M3 DSC has bigger pump and bigger brakes).

Yes. I think the same.

Once i will fit my BBK i will check for any different behavior with the stock pump and decide if i will need the M3 master cylinder.
 

aus335iguy

Colonel
Nov 18, 2017
2,251
805
0
Down under
Ride
335i DCT 2009
M3
front 60mm
Rear 46mm
Front 360.68mm
Rear 350.52mm
Master cylinder
Front 26mm
Rear 22mm

335i
Front 348mm x 30mm,
Rear 336mm x 22mm
Front piston 57mm
Rear piston 44mm
Master cylinder
Front 25mm
Rear 22mm
 
Last edited:

JohnDaviz

Lieutenant
Jan 6, 2019
866
583
0
Ride
335i E92 DCT
You were comparing to manual M3? Maybe you're right. I am looking at that variant logic and there is double negation. Not for DCT without M-DSC and not M-DSC. The only thing left is manual non-M DSC. So maybe this is a comfort feature, not so much traction feature.


I would refer to this comprehensive guide in 1st post:

In the past, I was confused by a different type of codings, but recently I took time to understand the differences. And there are stupid limitations and file formats. And it is annoying that it is hard to do complete revision control with these trace files because data is in two places and also redundant. But I have a process now.
I settled on manipulating FSW/PSW trace file (yes, adding a parameter with right-click), saving with module name in it, and backing up the module definition data itself (from NCSExpert/Daten folder).
Also, after I code, I always compare my FSW/PSW in NCSdummy against freshly read Nettodata (Read ECU button) to see if I coded what I wanted. And several times somehow I didn't (e.g. it's easy to forget to change job type in NCS Expert), so this final check proved itself very good for me to catch. I resave NETTODAT with module name using NCSdummy, and since I intend to modify only FSW/PSW files I know what is the latest coding in the car by comparing it against NETTODAT .

I read through the guide and i am wondering.

So to add a custom parameter the guide says that i have to do nettodat coding

Bildschirmfoto 2021-11-10 um 20.28.55.png
 

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
I read through the guide and i am wondering.

So to add a custom parameter the guide says that i have to do nettodat coding
That is if you add custom Nettodata. Then you would generate binary trace file and you perform netodata coding.

I prefer adding custom FSW/PSW parameters. As then you generate text file (nicer for revision control) and it apparently has less limitations than NETTODATA and you code it using the normal method (SG_CODIEREN).

Keep reading the guide ;) It compares the two methods. Both are easy.
 

KClemente

Sergeant
Nov 26, 2019
284
147
0
Ride
E90 335i
Done my first test now which pretty much involved flooring it in 1st or 2nd gear after it just rained.

Traction control fully on: it would let me spin some tire but progressively cuts power. Blow off valve cutting in and out indicating throttle closure. Does not let me get any angle whatsoever during any type of drift.

DTC: allows me a decent amount of wheelspin, but barely lets the rear end kick out during acceleration. Lets you do some drifts

Maybe just maybe I wasn't aggressive enough but with traction on, the hard torque safety path (ignition and fuel cut) didn't seem to engage. The soft torque safety path (throttle) was indeed working because I was getting throttle closure. Tested with aggressive throttle in 1st and 2nd gear.