Chapter 6 of 25·Part III of XII
Generation 2: Siemens MS42 Architecture, 32 KB Cal Block & M52TU Double-VANOS Control
In this page
Debuting in 1998 on the E46 (323i, 328i) and E39 (523i, 528i) powered by the M52TUB25 and M52TUB28, the Siemens DME MS42 was BMW’s first mass-production controller to support continuous Double-VANOS camshaft phasing:
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│ SIEMENS DME MS42 HARDWARE & MEMORY TOPOGRAPHY (512 KB) │
├──────────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ • Microcontroller: Siemens/Infineon C167CR-SR (16-bit RISC @ 20 MHz, 5V CMOS) │
│ • Flash Memory: AMD AM29F400BB (512 KB / 4 Megabit Parallel Flash, 44-pin PSOP) │
│ • BASEOFFSET: 0x48000 (32 KB Calibration Block spans 0x48000 to 0x4FFFF) │
│ • Throttle Mechanism: HYBRID Hybrid-Cable / MDK (Cable linkage with internal electric servo) │
│ • Primary Reference A2L: 0110C6.a2l / Siemens_MS42_0110C6_ENG_512K_v1.1.xdf │
│ │
│ Linear Flash Memory Layout: │
│ 0x00000 - 0x03FFF (16 KB) ──► Boot Sector & C167 Reset Vectors (OTP Protected) │
│ 0x04000 - 0x47FFF (272 KB) ─► Operating System ASW Code (Main execution loops) │
│ 0x48000 - 0x4FFFF (32 KB) ──► CALIBRATION DATA (100% of MS42 Maps & Curves) ★ BASEOFFSET │
│ 0x50000 - 0x7FFFF (192 KB) ─► Extended Diagnostic Code, KWP Routines & Program Space │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘ 6.1 The MS42 Hybrid Throttle System (MDK - Motor-Drosselklappe)
The MS42 occupies a unique evolutionary bridge between mechanical Bowden cables and drive-by-wire:
- Mechanical Operation: A traditional steel Bowden cable runs from the accelerator pedal to an external throttle cam on the MDK throttle body. Under normal cruising, the driver directly rotates the throttle plate.
- Electric Servo Intervention: An internal DC electric servo motor is splined to the same throttle shaft through a lost-motion spring clutch. The DME can:
- Dual Potentiometer Feedback: Two independent potentiometer tracks monitor throttle position:
- Limp-Home Failsafe: If the sum VPot1 + VPot2 ≠ 5.0V ± 0.25V, the DME cuts servo power, illuminates the EML lamp, drops into mechanical failsafe (limited to 20% throttle opening via mechanical spring stops), and limits engine speed to 3500 rpm via fuel cut.
6.2 Primary Calibration Tables (MS42 0110C6 Standard)
Within the 32 KB calibration sector (0x48000 - 0x4FFFF), all table addresses are indexed relative to BASEOFFSET = 0x48000:
| Table Identifier | Description | Dimensions | X-Axis | Y-Axis | Physical Conversion Formula |
|---|---|---|---|---|---|
ip_ti_b1__n__maf | Base Injection Duration Bank 1 | 16 × 12 | RPM (600… 6500) | Load (0.05… 0.95) | Time (ms) = Raw × 0.005333 |
ip_ti_b2__n__maf | Base Injection Duration Bank 2 | 16 × 12 | RPM (600… 6500) | Load (0.05… 0.95) | Time (ms) = Raw × 0.005333 |
ip_iga_ron_98_b1 | Ignition Timing 98 RON (Premium) | 16 × 12 | RPM (600… 6500) | Load (0.05… 0.95) | Angle (∘BTDC) = Raw × 0.375 - 24.0 |
ip_iga_ron_91_b1 | Ignition Timing 91 RON (Regular) | 16 × 12 | RPM (600… 6500) | Load (0.05… 0.95) | Angle (∘BTDC) = Raw × 0.375 - 24.0 |
ip_cam_sp_in_pl | Intake Camshaft Setpoint (VANOS) | 16 × 12 | RPM (700… 6500) | Load (0.08… 0.90) | Cam Angle (∘KW) = Raw × 0.375 + 80.0 |
ip_cam_sp_ex_pl | Exhaust Camshaft Setpoint (VANOS) | 16 × 12 | RPM (700… 6500) | Load (0.08… 0.90) | Cam Angle (∘KW) = Raw × 0.375 - 105.0 |
id_maf_tab | Bosch HFM5 MAF Linearization Curve | 256 × 1 | ADC Voltage (0… 5V) | Single Axis | Airflow (kg/h) = Raw × 0.25 |
c_n_max | Maximum Engine Speed Limiter | 1 × 1 | Constant | N/A | RPM = Raw × 32.0 |
6.3 MS42 Community Patchlist v1.7.1 Specifications
The community patchlist applies 17 targeted binary modifications to the MS42 0110C6 ASW code:
- EWS Immobilizer Delete: Sets configuration constant
c_conf_ews = 0and rewrites the seed-key response routine at0x047A2to unconditionally branch to the authorized-start interrupt. - Checksum Verification Bypass: Modifies program instructions at
0x081A4with0x0D00(NOPs) to prevent flash verification fault lockouts. - 2048 kg/h MAF Rescaling Patch: Doubles the internal 16-bit accumulation buffer for air mass calculations, preventing fuel load clipping on supercharged or turbocharged M52TU builds.
- Launch Control & Rolling Antilag: Evaluates clutch switch status (X60004 pin 23) and vehicle speed (CAN frame
0x153). When vehicle speed < 5 km/h and clutch is depressed, a secondary rev limiter (c_n_max_lc) activates, retarding ignition timing to -10∘ ATDC to build manifold boost pressure at a standstill.