Skip to content
BMW DME / Part III / 06 Generation 2: Siemens MS42 Architecture, 32…
Source
DOC 37 § 6
Contents
The MS42 Hybrid Throttle System (MDK - Motor-Drosselklappe) and 2 more
Systems covered
`MS42`
Size
10 tables · 1 code/diagrams · ~799 words

The MS42 Hybrid Throttle System (MDK - Motor-Drosselklappe)

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 V_{\text{Pot1}} + V_{\text{Pot2}} \neq 5.0\text{V} \pm 0.25\text{V}, 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\text{ 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 IdentifierDescriptionDimensionsX-AxisY-AxisPhysical Conversion Formula
ip_ti_b1__n__mafBase Injection Duration Bank 116 \times 12RPM (600\dots 6500)Load (0.05\dots 0.95)\text{Time (ms)} = \text{Raw} \times 0.005333
ip_ti_b2__n__mafBase Injection Duration Bank 216 \times 12RPM (600\dots 6500)Load (0.05\dots 0.95)\text{Time (ms)} = \text{Raw} \times 0.005333
ip_iga_ron_98_b1Ignition Timing 98 RON (Premium)16 \times 12RPM (600\dots 6500)Load (0.05\dots 0.95)\text{Angle (}^\circ\text{BTDC)} = \text{Raw} \times 0.375 - 24.0
ip_iga_ron_91_b1Ignition Timing 91 RON (Regular)16 \times 12RPM (600\dots 6500)Load (0.05\dots 0.95)\text{Angle (}^\circ\text{BTDC)} = \text{Raw} \times 0.375 - 24.0
ip_cam_sp_in_plIntake Camshaft Setpoint (VANOS)16 \times 12RPM (700\dots 6500)Load (0.08\dots 0.90)\text{Cam Angle (}^\circ\text{KW)} = \text{Raw} \times 0.375 + 80.0
ip_cam_sp_ex_plExhaust Camshaft Setpoint (VANOS)16 \times 12RPM (700\dots 6500)Load (0.08\dots 0.90)\text{Cam Angle (}^\circ\text{KW)} = \text{Raw} \times 0.375 - 105.0
id_maf_tabBosch HFM5 MAF Linearization Curve256 \times 1ADC Voltage (0\dots 5\text{V})Single Axis\text{Airflow (kg/h)} = \text{Raw} \times 0.25
c_n_maxMaximum Engine Speed Limiter1 \times 1ConstantN/A\text{RPM} = \text{Raw} \times 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:

  1. EWS Immobilizer Delete: Sets configuration constant c_conf_ews = 0 and rewrites the seed-key response routine at 0x047A2 to unconditionally branch to the authorized-start interrupt.
  2. Checksum Verification Bypass: Modifies program instructions at 0x081A4 with 0x0D00 (NOPs) to prevent flash verification fault lockouts.
  3. 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.
  4. Launch Control & Rolling Antilag: Evaluates clutch switch status (X60004 pin 23) and vehicle speed (CAN frame 0x153). When vehicle speed < 5\text{ km/h} and clutch is depressed, a secondary rev limiter (c_n_max_lc) activates, retarding ignition timing to -10^\circ\text{ ATDC} to build manifold boost pressure at a standstill.