Modern vehicles are data hungry. Dozens of control modules are being fed input data from a multitude of sensors throughout the vehicle, powertrain, and other systems. This data is then used to determine how much throttle is needed, when the ABS system needs to intervene, when a wheel is losing traction, and more.
It’s been said that vehicles have an immune system, and I would say that this is partially true. The control units have a way of learning, or adapting to, the driver and his or her tendencies. They can also adapt to certain components as they wear over time, such as the clutch packs inside of an automatic transmission. They do this by analyzing every single data input, then comparing that data against minimum and maximum values which are pre-programmed by the OEM.
This gradual learning is commonly known as adaptation, and it happens seamlessly in the background. But, if a component is rebuilt or replaced, you may need to restart those adaptations for the system to perform at its best. Let’s look at five common adaptations for late-model BMWs, and what you should know before you start a repair.
#1: Crankshaft Position Sensor
BMW refers to its engine control unit as the Digital Motor Electrics (DME). The DME is in charge of monitoring and controlling all of the electrical components that allow the engine to operate. The DME monitors data from a multitude of sensors including the Mass Air Flow (MAF) Sensor, Crankshaft Position (CKP) sensor, Camshaft Position (CMP) sensor(s), and more.
Let’s focus our attention on the CKP. The CKP is used to determine the exact position of the crankshaft as it is rotating. Just a few decades ago, the ECU would look to the CKP only to tell when cylinder #1 was at TDC. Nowadays, the CKP can tell the ECU where the crankshaft is with much greater precision. This data is used to affect the variable valve timing (commonly known as VANOS).
Thanks to the precision of the CKP, VANOS can be used to maximize horsepower, torque, throttle response, and eliminate the need for an Exhaust Gas Recirculation (EGR) system. The CKP can also be used to detect misfires immediately upon startup, causing a P0316 code to be stored in the DME memory.
Now that we know a bit more about the CKP and what it does, let’s talk about adaptations. The adaptations for the CKP must be cleared from the DME whenever the following repairs are made:
- Replacement of the CKP;
- Replacement of the incremental sensor wheel on the crankshaft;
- Replacement of the crankshaft;
- Replacement of the crankcase (block) with pistons; and
- Replacement of the engine assembly.
If any of these repairs are performed, but the CKP adaptations are not cleared, it could cause the DME to calculate a cylinder imbalance. This would lead to idle fluctuations, engine stalling, lagging throttle response, and so on. In many applications, the incremental wheel adaptation cannot simply be cleared, the module must be programmed. Be sure to check the OEM service information before beginning such a repair. Reference TSB SI B11 02 15 for more information.
#2: MAF Sensor
The Mass Air Flow (MAF) sensor is used to determine how much air is entering the combustion chamber. The DME then compares the reading from the oxygen sensors to determine how well the air/fuel mixture is burning. A faulty MAF sensor can cause the DME to falsely lean-out the fuel mixture, but MAFs don’t usually fail overnight. They wear down slowly over time.
The DME is able to handle this gradual degradation, and adapt to it. There are other adaptations that are affected by the MAF: the short-term and long-term fuel trims. When these values are excessively positive, they indicate a lean condition. When they’re excessively negative, they indicate a rich condition. In most cases, you’ll need to clear the DME adaptations any time you replace the MAF sensor, or after repairing an issue which contributed to an excessively rich or lean condition.
#3: DME/Fuel Injectors
If you are replacing the DME, there are other programming steps that you may need to complete. Depending on the application, you may be required to carry out an injection quantity compensation procedure. This procedure helps the DME to determine exactly how much fuel each injector will be able to inject into each cylinder. Skipping this procedure could cause the engine to run rough, stall, or fail to start after the repair.
The adjustment value is printed with three digits on the body of each fuel injector. These values must be stored in the new DME. Using a scan tool that is capable of bi-directional control, perform the following:
- Select “Function selection”
- Select “Service functions”
- Select “Engine electronics”
- Select “Adjustment function”
- Select “Adjust injectors”
- Select “Test plan”
- Enter the adjustment valve for each injector
#4: Transmission, Throttle Body, Accelerator Pedal Position Sensor Adaptations
Whether you’re working on an SMG or automatic transmission, the Transmission Control Unit (TCU) will use data inputs to control shift timing, feel, and so on. By monitoring engine speed, along with the transmission input and output speed signals, the TCU can accurately determine the slip ratio and slip time during each shift. Slip ratio and slip time are both influenced by manufacturing tolerances, and by aging of components over time.
The TCU will also look at sensor data from the throttle body position sensor and the accelerator pedal position sensor to determine how much power the driver is requesting versus how much power the engine is delivering. This will have an impact on which gear is required, shift timing and feel, etc.
So, any time one of these sensors is replaced, or if the transmission has been serviced, rebuilt, or replaced, the adaptations may need to be cleared from the TCU memory. This may include initializing the “0” position of the accelerator pedal, initializing the idle speed position, the clutch engagement point, just to name a few. These procedures can vary greatly from one model to the next, so be sure to check the OEM service information.
#5: Steering Angle Sensor & End Stop Position
BMW steering and suspension systems are complex and are made up of a variety of components which are interdependent. Improper alignment geometry, or faulty sensor reading can have negatively affect the operation of Adaptive Cruise Control, Electronic Stability Control, Electronic Traction Control, Variable Ratio Steering, not to mention tire wear.
The steering angle sensor and end stop positions are two critical adaptations which must be considered whenever servicing the steering or suspension system on a late-model BMW. The steering angle sensor is used to determine how much the driver is turning the steering wheel. The end stop positions are programmed stopping points which reduce the steering assist force once the steering gear nears its mechanical stopping points. This reduces the risk of wearing out or breaking steering components if the wheel is held against the end stop.
In most cases, the steering angle sensor should be calibrated any time an alignment is performed, or the sensor is removed, disconnected, or replaced. The end stop positions should be programmed after the steering gear is replaced, or the control unit has been replaced or programmed.
Any time we’re talking about flashing or programming a control module, there’s room for error. There are a few things you should be wary of before starting this type of procedure.
If the battery voltage drops below a certain level during programming, the session will terminate prior to completion. Battery voltage is absolutely critical to the process, and it must not be allowed to drop below 13.0 V during the programming process. Connect a battery charger prior to starting the programming procedure, and it’s a best practice to only use BMW-recommended battery chargers.
Flash-programmable control modules may be able to be programmed up to only 13 times. The remaining programming sessions will typically be displayed somewhere on screen during the programming procedure. Depending on the level of programming data, the procedure may take 2-15 minutes.
After programming, clear the control module’s adaptation values. The programming software should automatically provide instructions on how to do this. Clearing the adaptation values can also be found in the Service Functions menu. The control module will quickly re-adapt to the system storing new values during your post-repair test drive.
The programming procedure can cause other interfacing control modules (AGS, ASC, etc.) to store erroneous faults. Once programming has been
completed, perform a system scan to determine if any new fault codes have been stored. Clear all vehicle control module fault memories to prevent any unnecessary future diagnosis.
Finally: You should not program a module to correct a concern unless specifically instructed in an applicable TSB, or the service information for the repair you’re performing. Programming or adapting a control module is not a “universal fix-all.”