Servotronic on a 335i

hollracing

Private
Oct 26, 2022
40
39
0
either disable pre_usc coding in dsc or switch to 1m/m3 dsc firmware
Neg89 was asking for e89 z4 which I believe has bosch? DSC and uses DSC_89.Cxx.? Hence why I asked for coding index. But it obviously won't work with 1M/M3 firmware.

With e8/9x mk60e5 you can correct this without converting to 1M/M3 firmware…
By coding it to use, and with a custom Lenkwinkel Kenlinnie (LWK)...

You need to set C0x_LENKWINKELKENNLINIE - STEERING ANGLE CHARACTERISTIC CURVE (address 0x30000D mask 0x07) to 0x01 which tells it to use a custom LWK.

The custom LWK is coded with C0x_LWK_X2, X3, X4, Y1, Y2, Y3, Y4 (address's 0x300029 to 0x30002F).
The x-axis is steering wheel angle [DEG=DATA] with X1=0degrees
The y-axis is steering ratio [RATIO:1=DATA/10]

To interpolate the values the correct method is described in patent DE10336046A1.
But you can get good results just using more normal forms of interpolation.

You will want to map this to your specific setup as it will vary with differing alignments and suspension components etc. because of the double jointed swivel bearing setup, using turn tables or similar device for measuring the steered angle of each front wheel at the reported steering wheel angle then calculate the mean steered angle (the vehicle model in use is a single track/bicycle model (einspumodell (ESM))) and then calculate the ratio for it at the steering wheel angles you have mapped.

This works for both e8/9x non-m & 1M/M3

This can then be used (as BMW does) to tune the system between oversteer & understeer...
Your welcome
 
Last edited:
  • Like
Reactions: dzid_

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
either disable pre_usc coding in dsc
I have that enabled and I don't have any problem that I can notice with DSC.

@hollracing very interesting
But you can get good results just using more normal forms of interpolation.
After analyzing the patent, I think their function has very little to do with normal interpolation.

Only two middle points P2, P3 intersect the curve! The two endpoints P1, P4 only control the curvature.
1694916777010.png

Using linear interpolation instead will be correct only for the two middle points. Which in fact may be enough, as we will see below.

I took values from NCSDummy MK60_87.C0F (LWK X and Y - wert_02 for each point).
I assumed X1 as 0, since it was not present in ncsdummy. The resulting interpolated curve only makes sense between P2 and P3. 160 seems good; it could represent 16 ratio from E90.

It's also ok if I extrapolate using their modified extrapolation method for data below P2 (G1 = 0).
1694946186244.png

Above P3, on the other hand, values quickly go to negative thousands, so no point showing.
1694946198600.png


Oh, and wert_03 (E87) values from LWK also didn't look sensible.
1694915256690.png



A lot of guessing on my side on how this is supposed to work overall...
But since values from wert_02 look plausible after plugging them into the algorithm, my best bet is to scale them by 12.5/16 to get M3 ratio curve.

So from E90?? rack C0x_LWK:
X hex0x00x50x140x86
Y hex0xB90xB00xA10x92
M3 rack C0x_LWK could be:
X hex0x00x50x140x86
Y hex0x910x890x7D0x72
 

Attachments

  • DE10336046A1 translated.pdf
    964.5 KB · Views: 3
Last edited:

hollracing

Private
Oct 26, 2022
40
39
0
Just use excel or similar and more normal interpolation.

Remember the steering ratio's bmw quotes are quoted as average overall ratios... non-m and M3 rack's have variable gear ratios and both use the double pivot front suspension system. Hence the need for a characteristic curve rather than just inputting a fixed ratio.
Capture3.PNG

Capture 2.PNG


I need to map my own 135i, I originally measured a e92 m3 before my car was back together but lost this data with everything else that was on that laptop.
So I just started with the guestimate below ("E82 M3-rack test") and used logging and just tweaked it until the intervention was close enough to when and where I wanted it. But I really need to measure it so I can get it more accurate, the key is where the steering wheel angle points are...

This is the data that's there for specific models in the varying mk60e5 coding index's and my original starting point/guesstimate:
(I thought at the time for some reason M3 steering's average overall ratio was 12.6 and based it of the E81 !AFS data hence it averages to 12.6:1).
Alpina degAlpina ratio decAlpina ratio:1E87 degE87 ratio decE87 ratio:1E81 AFS degE81 AFS ratio decE81 AFS ratio:1E81!AFS degE81!AFS ratio decE81 !AFS ratio:1E82 M3-rack test degE82 M3-rack test ratio decE82 M3-rack test1 ratio:1
0​
185​
18.5​
0​
183​
18.3​
0​
162​
16.2​
0​
183​
18.3​
0​
149​
14.9​
5​
176​
17.6​
6​
162​
16.2​
21​
152​
15.2​
6​
162​
16.2​
6​
128​
12.8​
20​
161​
16.1​
62​
156​
15.6​
55​
140​
14​
62​
157​
15.7​
62​
123​
12.3​
134​
146​
14.6​
136​
139​
13.9​
115​
121​
12.1​
116​
139​
13.9​
116​
105​
10.5​

Capture.PNG

Ratio is the vertical axis here.

PRE_USC is the main difference between non-m and 1M/M3 DSC, and the biggest difference between DTC and MDM.
MDM.PNG


With PRE_USC aktiv - USC intervention is when the vehicle is going to become unstable. E.g. before the rear wheels start to slip.
With PRE_USC nicht_aktiv intervention is only when the vehicle has become unstable. E.g. Only once the rear wheels have started to slip.
Anything labeled in coding as PRE is pre/preventative/proactive/prior to etc. E.g. PRE_MSR
USC is Under/Oversteer Control (Unter/Ueber Steuern Control).
PRE_USC effects the USC Coefficient's, hence non-m DSC typically have lower USC coefficient's than M...
 
Last edited:
  • Like
Reactions: Xantor and dzid_

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
It's all very informative.

The curves look reasonable using the normal plotting that you did.
I think we should get rid of the notion that the controller uses the algorithm from the patent DE10336046A, because with it curves would look much different:
1694947598399.png


Either way, taking E81 and scaling it using ratios, seems like a good starting point. Excited to try it out :)



EDIT: I tried the coding.
You need to set C0x_LENKWINKELKENNLINIE - STEERING ANGLE CHARACTERISTIC CURVE (address 0x30000D mask 0x07) to 0x01 which tells it to use a custom LWK.

The custom LWK is coded with C0x_LWK_X2, X3, X4, Y1, Y2, Y3, Y4 (address's 0x300029 to 0x30002F).

The x-axis is steering wheel angle [DEG=DATA] with X1=0degrees

The y-axis is steering ratio [RATIO:1=DATA/10]

I used E81 !AFS values multiplied by 12.5/16:
X dec0662136
Y dec143127123109

I drove it on the road and it felt normal.


Edit 2: I drove more with DTC not pressed. The car feels that it rotate itself more into the turn. It almost wants to oversteer. It's probably pre_usc doing it.
 
Last edited:

Bnks334

Lieutenant
Dec 1, 2016
524
340
0
New York
I've had an M3 rack in my car for ~4 years now. For about the past two years I have had the "M" module and coding for servo. The assist is fine for me as is. i am not really interested in "tuning" it. However, I have been noticing a problem. My assist seems to be "cutting out" at times. Anyone ever experience this? I want to say it might be the servo valve on the rack failing? I've double checked my wiring and that seems fine. Even remade the connections just in case. I'd have some sort of error if it was the JBBF, right?
 

dzid_

Specialist
Feb 22, 2018
54
35
0
US
Ride
135i 2011 DCT
Do you have any errors on OBD? It can cut out if one of wheel speed sensor is faulty. But you would see traction control ⚠️ in the dash in

Btw, above post are not about tuning of the rack assist, but the correct steering ratio curve for the traction control.
 

Bnks334

Lieutenant
Dec 1, 2016
524
340
0
New York
Do you have any errors on OBD? It can cut out if one of wheel speed sensor is faulty. But you would see traction control ⚠️ in the dash in

Btw, above post are not about tuning of the rack assist, but the correct steering ratio curve for the traction control.

true. I think people have discussed both in the thread. I don't ever use traction control with this car and I've never noticed it doing anything odd on the street just driving like a normal human being.

I don't have any trouble codes. I am thinking maybe the little motor is dying or the JBBF module is dying. It's definitely providing varying levels of assist which is a bit unnerving.