Eliminating e-Diff & Other Nannies
I am going to completely ignore the elephant in the room that it's been an embarrassingly long time since I've updated this thread. It's been a busy year and unfortunately not with autocross, or really the car at all. But now that work is calming down a little, I am making some efforts to get back to this and deal with some of the things that have been frustrating me about this otherwise great little car.
As you likely know, the 1 series (along with most every modern BMW) has an electronic differential, which basically means that when it detects a wheel slipping, it simple applies the brakes selectively to that wheel. This works just fine on the street but is not a desirable characteristic on a track or autocross course - it's hard on your rear brakes, makes the car unpredictable, and generally is inferior to a mechanical differential..
Most people who have installed an LSD have reported that they have no issues with interactions between the new mechanical LSD and the stock e-diff. I am not one of those people, my car feels like a civil war is being fought between the incumbent e-diff and new mechanical LSD. Specifically, at autocross with DSC fully disabled by the 3 second push, you can absolutely feel the brakes / ediff fighting aggressively. It has incredibly loud vibration / noise when applying power out of a turn in a traction limited situation.
I have been doing lots of reading, and today I took the plunge and had my car recoded to eliminate the e-diff (along with a few other things while I was in there).
Guide to electronic nannies and how to code them off and a few other threads here and on E90post have been invaluable to learning which modules/codes need to be tweaked.
Here are the 4 I recoded from the DSC module (descriptions blatantly stolen from the excellent "Paradoxical" guide linked above):
DIFF_LOCK
This is the actual electronic differential - ie the automatic application of one wheel braking to whichever rear wheel is detected to be slipping under throttle application.
FLR ("Engine Power Reduction to Prevent Brake Disc Overheating")
This is the worst of them all. Modern BMWs will actively cut the throttle in the middle of your track day if it has reason to believe that your brake pads are overheating. Normally, this wouldn't be such a bad thing - nobody wants to crash into ARMCO going 140mph. The problem is, your BMW doesn't actually have temperature sensors anywhere in the braking system. The computer relies on a "calculated" brake disc temperature based on several inputs including ground speed, brake pedal application force, and the frequency with which the electronic differential applies "torque-vectoring" braking. Your BMW has no way to know that you installed a Stoptech Big Brake Kit with Castrol SRF fluid and Performance Friction PFC01 pads. It just assumes you are running the stock system and cuts your throttle based on values that would overheat the OEM brake pads.
FBS ("Brake Fading Compensation")
Brake fade compensation "calculates" the temperature of your brake fluid. The higher the calculated temperature of your brake fluid (remember, there is no real sensor), the more hydraulic assist will be added to your brake pedal. In theory, this masks brake fade on the street. On the track, it makes a consistent brake pedal literally impossible.
BB_RAB ("Brake Standby")
This is another ridiculous feature that works well on the road, but terribly on track. If your car detects an aggressive throttle lift-off, it will pre-tension the brakes in anticipation of a hard braking maneuver. This would actually be great if it wasn't for what it does next - if you don't brake within 8 seconds of throttle lift-off, it un-tensions the brakes. I have a theory that people who think they are experiencing pad knock-back on the track are actually just being victimized by this "feature." Turn it off for a more consistent brake pedal that responds predictably.
Here are the actual values I have changed these to:
Code:
Codes changed in DSC module: (these are the "after" values)
C0F_DIFF_LOCK
wert_00
wert_01
C0F_FBS
wert_00
C0F_FLR
wert_00
wert_02
C0F_BB_RAB
wert_00
Code:
Stock TRC file for 2011 BMW 128i (Canadian edition, 07/10 build date) DSC module:
SZL
wert_02
C0X_C8
wert_02
C0F_AFH_HSA
wert_01
C0F_AFS
wert_00
C0F_ASC_AMR_STB
wert_03
C0F_ASC_BMR_STB
wert_02
C0F_ASL
wert_00
C0F_BAUART
wert_02
C0F_BB_RAB
wert_01
C0F_BBV
wert_00
C0F_BBV_KORR_HA
wert_00
wert_03
C0F_BBV_KORR_VA
wert_04
C0F_BERGAB_GERASTET
wert_00
wert_01
C0F_BERGAB_KENNEN
wert_00
wert_01
C0F_BERGABANSATZ
wert_00
C0F_BTM
wert_00
C0F_CBC
wert_00
C0F_CF_ESM_HB
wert_00
wert_01
C0F_CF_ESM_LB
wert_00
wert_01
C0F_CR_ESM_HB
wert_00
wert_01
C0F_CR_ESM_LB
wert_00
wert_01
C0F_DBC_MIN_AUSLOESEDRUCK
wert_00
C0F_DCC_C_AAT
wert_00
C0F_DCC_C_ATT_SCHUB_AUS
wert_00
C0F_DCC_C_ATT_SCHUB_EIN
wert_00
C0F_DCC_DTC
wert_00
C0F_DELTA_PSI_BETA_LIMIT
wert_01
C0F_DF_DIR
wert_02
C0F_DIFF_LOCK
wert_02
C0F_DRUCKMODELL_HA
wert_02
C0F_DRUCKMODELL_VA
wert_02
C0F_ECBA_DCC
wert_00
C0F_FBS
wert_01
C0F_FLR
wert_01
C0F_GETRIEBE
wert_00
C0F_GMB
wert_00
C0F_GMK_ECBA_HA
wert_01
C0F_GMK_ECBA_VA
wert_03
C0F_GMR_MAX_LIMIT_SCHRAEG
wert_00
C0F_GMR_MIN_LIMIT_SCHRAEG
wert_00
C0F_HSA
wert_02
C0F_HSA_AFH_AFU
wert_00
C0F_IPM_MAX_P_RES
wert_00
C0F_KUEHLSCHACHT
wert_02
C0F_LCL
wert_00
C0F_LENKWINKELKENNLINIE
wert_03
C0F_LF_ESM
wert_00
wert_01
C0F_LR_ESM
wert_00
wert_01
C0F_LUEFTER
wert_00
C0F_LWK_X2
wert_00
wert_01
C0F_LWK_X3
wert_00
wert_01
C0F_LWK_X4
wert_00
wert_01
C0F_LWK_Y1
wert_00
wert_01
C0F_LWK_Y2
wert_00
wert_01
C0F_LWK_Y3
wert_00
wert_01
C0F_LWK_Y4
wert_00
wert_01
C0F_M_ESM
wert_00
wert_01
C0F_MIN_DRUCKAUFBAU_GRAD
wert_00
C0F_MOTOR
wert_05
C0F_MOTOR_LEISTUNG_MAX
wert_00
wert_18
C0F_MOTOR_SCHLEPP_P
wert_00
wert_01
C0F_PRE_MSR
wert_00
C0F_PRE_USC
wert_00
C0F_RPA
wert_00
C0F_RPA_SCHWELLE
wert_01
C0F_SC_X_ESM
wert_00
wert_01
C0F_SC_Y_ESM
wert_00
wert_01
C0F_SCHUBABSCHALTUNG
wert_00
C0F_SDR_CTC
wert_00
C0F_SETZ_V_MAX
wert_00
C0F_SPURWEITE
wert_00
wert_01
C0F_SST
wert_00
C0F_TB_BDD
wert_01
C0F_THETA_ESM
wert_00
wert_01
C0F_UEBERSTEUERN_MUE_0
wert_03
C0F_UEBERSTEUERN_MUE_1_2
wert_03
C0F_UNTERSTEUERN_MUE_0
wert_00
C0F_UNTERSTEUERN_MUE_1_2
wert_00
C0F_UNTERSTEUERSCHWELLE
wert_00
wert_02
C0F_V_EINHEIT
wert_00
C0F_VERZOEG_NEG_FEIN
wert_00
C0F_VERZOEG_NEG_GROB
wert_00
C0F_VERZOEG_POS_FEIN
wert_00
C0F_VERZOEG_POS_GROB
wert_00