Applications BMW M54
Draft. Trigger offset has not been confirmed on a running Race Core install. Pins marked TBD are unknown — do not guess them. A wrong decoder or firing order can destroy the engine.
BMW M54
Dual VANOS, DBW (MDK / EDK), COP, 60-2. The M50 note plus a second VANOS solenoid and an electronic throttle.
Recommended: Race Core F7. Dual VANOS on Highside 1 and 2, DBW on ETB 1, six COP. Siemens MS43/MS45 body CAN is a separate problem.
- Cylinders: 6
- Displacement: 2171 / 2494 / 2979 cc
- Firing order: 1-5-3-6-2-4
- Orientation: Cylinder 1 front. E46, E39, E53, Z3/Z4.
Variants
| Variant | Years | Trigger | Notes |
|---|---|---|---|
| M54B22 / B25 / B30 | 2000–2006 | 60-2 + dual cam Hall, DBW | DISA on the intake. Dual VANOS. Drive-by-wire. |
Recommended pin assignment (Race Core F7)
| Pin | TunerStudio | Function |
|---|---|---|
| B5 / B13 | VR 1+ / VR 1− | Crank VR |
| B1 | Digital 2 | Cam Hall |
| B11 | Digital 6 | Cam 2 / exhaust Hall |
| A3 | Lowside 1 | Injector cylinder 1 |
| A15 | Lowside 2 | Injector cylinder 2 |
| A4 | Lowside 3 | Injector cylinder 3 |
| A16 | Lowside 4 | Injector cylinder 4 |
| A5 | Lowside 5 | Injector cylinder 5 |
| A6 | Lowside 6 | Injector cylinder 6 |
| A35 | Ign 1 | Cyl 1 logic coil |
| A34 | Ign 2 | Cyl 2 logic coil |
| A22 | Ign 3 | Cyl 3 logic coil |
| A33 | Ign 4 | Cyl 4 logic coil |
| A32 | Ign 5 | Cyl 5 logic coil |
| A31 | Ign 6 | Cyl 6 logic coil |
| C20 | Analog Temp 3 | CLT |
| C30 | Analog Temp 2 | IAT |
| C13 | Analog Volt 1 | MAP 0–5 V |
| C24 | Analog Volt 2 | TPS 1 |
| C25 | Analog Volt 4 | TPS 2 (ETB redundant) |
| C17 | Analog Volt 9 | APP 1 |
| C16 | Analog Volt 7 | APP 2 |
| C34 | Knock 1 | Knock bank 1 |
| C35 | Knock 2 | Knock bank 2 |
| A20 | Lowside 10 | Fuel-pump relay coil |
| A21 | Lowside 12 | Main-relay coil |
| A12 | Lowside 15 | Radiator-fan relay coil |
| B7 / B6 | ETB 1+ / ETB 1− | Electronic throttle motor |
| A2 | Highside 1 | VVT bank 1 / intake |
| A1 | Highside 2 | VVT bank 2 / exhaust |
| A13 | Highside 3 | DISA solenoid |
| B17 / B16 | CAN 1 H / L | Dash / wideband |
| B22 / B21 | CAN 2 H / L | Chassis / TCM |
| B18 | Battery Sense | Ignition-switched 12 V (5 A fuse) |
| B23 | +12 V MR | Main-relay 12 V into ECU |
| A17 A18 A24 B14 B19 B20 | Power GND | Engine block → battery − |
| C9 / C21 / C32 | 5 V Sens 1 | MAP, TPS 1, pedal 1 |
| C10 / C22 / C33 | 5 V Sens 2 | TPS 2, pedal 2 |
Trigger
Same 60-2 crank as M50. Two cam Hall sensors for dual VANOS. Digital 2 intake, Digital 6 exhaust as a starting assignment.
Crank
| 60-2 | VR B5/B13. |
Cam
| Dual Hall | Digital 2 and Digital 6. Pull-up on. |
TunerStudio
| Setting | Value |
|---|---|
| Wheel type | 60-2 |
| Firing order | 1-5-3-6-2-4 |
Offset: Light on cylinder 1. Cam offsets from the composite log after crank offset is locked.
Injection
High-Z sequential six. Return on most M54.
| Fuel | 3 bar OEM. |
Ignition
Factory COP are logic. Ign 1–6, dwell ~2.3 ms.
Idle
DBW. No IAC. ETB 1, redundant TPS, redundant APP, two 5 V rails.
First start
- Load the matching variant configuration in TunerStudio before the harness is live — injectors and coils stay disconnected until the decoder is confirmed.
- Fuel pump fuse out. Coils unplugged or spark outputs disabled. Crank. Open Diagnostics → composite / high-speed logger.
- Confirm crank teeth are even, the missing-tooth (or named pattern) is a single clean gap, and cam is one pulse per two crank revolutions for sequential four-stroke.
- RPM during cranking should sit in the 150–350 rpm band. 0 rpm or 12,000 rpm means the decoder is lost — polarity or wheel type, not offset.
- Lock timing to a fixed 10° (idle control off). Timing light on cylinder 1. Change trigger offset until the damper agrees with 10°.
- Recheck at ~3,000 rpm. If timing walks with RPM, it is VR polarity, a delayed Hall, or the wrong decoder — not offset.
- Enable spark. Confirm a healthy burn (timing light or plug colour) with fuel still disabled.
- Enable fuel. Prime, then crank. Catch the first idle on a rich-safe VE, then lean toward stoich at idle.
- Only then enable closed-loop idle, VVT, boost and traction. A base map is a starting point, not a dyno tune.
A base map is a starting point, not a dyno tune.