How to do BMW coding for fun

How to actually make your BMW fun? Here is a write-up about something  useful to every single BMW track enthusiast – electronic nannies.

What are electronic nannies?
Electronic nannies are a veritable alphabet soup of joy-sucking, fun-killing, brake-destroying awfulness.  DSC, DTC, HBA, EVB, HPS, and Maximum Brake Support are all BMW acronyms that stand for the same thing – SLOW.  Each and every one of these electronic safety devices are designed for the average consumer; not your hardcore automotive enthusiast.  It is surprising to me that information on how to disable these “features” is not more widely available.
?
What is BMW coding?
Coding is essentially the act of using BMW diagnostic tool (e.g. BMW ICOM A2, ICOM A3, ICOM Next, etc.) and working software (the newest version: ISTA-D 4.04.12 ISTA-P 3.60.2.001) to access computer “modules” that control various parts of your car.  This software allows you to read out the various options available and change them to suit your preferences.
Generally there are two types of options for each coding parameter:  “aktiv” or “nicht_aktiv,” and level based entries where you will choose “levels” such as “wert_01,” “wert_02,” etc.

Coding can be confusing to set up, but a little perseverance can go a long way towards customizing your car.  Luckily for us, all of these electronic nannies can be found and modified in your DSC (dynamic stability control) module.  The name of this module varies depending on what car you have, but as an xDrive N55 car these nannies were located in the DSC_84.C04 file of my XDSC module.    Explaining how to set up your computer for coding is beyond the scope of this blog, but I will provide which options you need to disable, and what the proper setting is.

How to properly choose a BMW coding tool?
Basic diagnosis can be realized by a cheap cable
Bmw E series: K+DCAN USB cable
Bmw F series: ENET cable
If you wanna do coding / ecu programming / key making, or do not care the budget, BMW ICOM should be the best solution, most using this for bmw repair work.
The Definitive Guide to BMW’s Joy-Killing Nannies
Engine Power Reduction to Prevent Brake Disc Overheating (FLR)
N55 X1 Parameter:  e84_FLR
N54 335i xDrive Parameter: FLR_C0F

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.  Unacceptable to say the least, and occasionally dangerous.  It was not a good experience braking from 145mph down to 45mph with a GT3 three feet off my rear bumper, only to have zero power coming out of the turn.  This could very plausibly cause an accident on track.
To disable, set to  “nicht_aktiv.”

Brake Fading Compensation (HPS)
N55 X1 Parameter:  e84_HPS
N54 335i xDrive Parameter:  HPS

It is insane that a “performance” car has this feature.  Brake fade compensation “calculates” the temperature of your fluid in a similar manner to the above “Engine Power Reduction to Prevent Brake Disc Overheating” parameter does.  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.  If you are tracking the car, you should have upgraded pads and fluid; you should never experience brake fade.  Disabling this feature maintains the pedal’s linearity and enjoyable feel throughout an entire 45 minute track session.

To disable, set to “nicht_aktiv”.
Hydraulic Brake Assist (HBA)
N55 X1 Parameter:  e84_HBA
N54 335i xDrive Parameter: HBA_DXC_8

In the event of an emergency braking maneuver, the average driver does not brake hard enough to sufficiently stop the car.  Thus, BMW implemented hydraulic braking assist.  This BMW ICOM monitors ground speed, brake pedal pressure, and rate of deceleration to understand when the car is in an emergency braking situation.  It then increases pressure up to the threshold of ABS to assist the driver in stopping safely.  Once again, on the street this is a good idea.  In Cincinnati, there is utter carnage on the highway whenever the slightest rain falls.  The Ohio River runs red with blood from traffic accidents, and the roads look like a battle scene from Game of Thrones.  Implementing an additional safety feature such as this probably helps most people, but on the track it is a disaster.  It ruins your ability to brake hard and quickly, assuming the end of each high speed straight is an impending accident.  Disable this feature for a super-linear pedal that will require noticeably more effort towards the end of the pedal travel.  Be careful with this on the street the first few times you use it – you will find that it activates more often than one would expect.  You will have to use a bit more braking pressure towards the end of the pedal than you are used to, but you will be rewarded with a wonderful, linear feel.
To disable, set to “nicht_aktiv”.  You can also set three levels of assist; “wert_01”, “wert_02”, and “wert_03”.  Default value is “wert_03”.

Brake Standby (EVB)
N55 X1 Parameter:  e84_EVB
N54 335i xDrive Parameter:  EVB

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.
To disable, set to “nicht_aktiv”.

Maximum Brake Support (HVV)
N55 X1 Parameter:  e84_HVV
N54 335i xDrive Parameter:  HVV

This feature alters the front/rear split of the ABS braking system under emergency braking.  At threshold braking when the front tires get into ABS before the rears lock, maximum brake support will increase the brake pressure on the rear pistons to equalize with the front.  In theory, this reduces stopping distance.   On the street, it probably does – particularly when the car has a heavy cargo load.  On the track, it can upset the balance of the car and reduce reaction time.  During threshold braking, sometimes one activates ABS accidentally and quickly backs off; maximum brake support will interfere here and get you “stuck” in ABS for a second or two.  I recommend turning this off on the track, but it does not have as big of an impact as the other settings do.
To disable, set to “nicht_aktiv”.
?
Dynamic Performance Control (FDB)
N55 X1 Parameter:  e84_FDB
N54 335i xDrive Parameter:  FDB

This feature encompasses two things – corner braking designed to “torque vector” and redirecting the power through the xDrive system for a 20/80 FWD/RWD torque split.  I am conflicted on this option, and need to do more testing on the implications.  Without a doubt, this feature accelerates brake pad wear – if you are driving with a decent amount of slip angle, it will be almost constantly corner braking.  Traditional logic holds that corner braking is a worse way to torque vector than mechanical LSDs are and that’s probably still true, but recently supercars such as the McLaren 650S started coming with corner braking torque vectoring.  Granted, the software in a McLaren is hopefully more advanced than that in an entry level sedan (BMW 335i) but the point holds – there must be something to it if supercar manufacturers are going in that direction.  What is frustrating about the X1/335i is that you can’t separate the 80% RWD bias (an unquestionably good thing) from the brake-based torque vectoring (possibly a bad thing)?  So, what’s the upshot?  I think it probably goes something like this:

1.  Base car without this option – code it on for a nice performance boost!
2.  M-sport pack that comes with it enabled, but no mechanical LSD – leave it on
3.  Car with an upgraded mechanical rear LSD – ?????

I will experiment more with this feature, but my gut says that with a mechanical LSD installed in the rear, having the 80% RWD split will outweigh the drawbacks of the corner braking in terms of lap time.
To disable, set to “nicht_aktiv”.

Electronic Differential (AX_Ref_Diff_Lock)
N55 X1 Parameter:  e84_AX_Ref_Diff_Lock
N54 335i xDrive Parameter:  AX_Ref

Let’s be honest, this is really why you’re reading the blog.  Everyone who has installed a mechanical limited slip differential wants to disable the rear electronic differential.  This option is similar to the X1s “Dynamic Performance Control,” but on a more basic level.  The premise is that with an electronic differential, your BMW will brake the spinning wheel to send torque to the wheel with traction.  The problem is, this isn’t a very good torque transfer in terms of mechanical efficiency.  Installing a mechanical limited slip differential such as a Wavetrac (my choice) in the rear will allow you drastically better traction and mid-corner adjustability.  The problem is, unless you disable this e-diff it will be fighting the mechanical LSD and never really allow your actual differential the freedom to do it’s thing.  If you have a mechanical LSD installed, do yourself a favor and disable this.  If you don’t have a mechanical LSD, leave it on.  At least, until you immediately run out and buy a real LSD (you should).
To disable, set to “nicht_aktiv”.

Here is an example of what the stability control module coding looks like in the program NCS Dummy. There are many more options than I have identified here, but I believe I have highlighted everything that has an impact on performance driving.
30-1

Turning all of these options off gained me about two seconds on a 1:45 second track.  More importantly, it made my car extremely fun to drive.  There are not many crossovers that you can kick the back end out at 100mph, drift into a decreasing radius corner, and then dance with it via throttle inputs as you adjust mid corner and power through.  Thanks to the magic of “coding,” my X1 is now one of them.  Hopefully, this helps you enjoy your car just as much as I enjoy mine.

Thanks for reading, and check back in a few days for the promised post about DIY aero on the car.

Source: Please note – if the option in your DSC module appears different (for example, it you have various “werts” as an option instead of “nicht_aktiv” or “aktiv”), you can examine the hex data in the entry to see what the various “wert” levels are.  For example, the N54 335i electronic differential setting is not a simple on/off setting, but the hex data for “wert_01”  is equivalent to “nicht_aktiv.”

Be the first to comment

Leave a Reply

Your email address will not be published.


*