M7 SmazTunerECU reference
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:

code
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐  
│                   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
Table IdentifierDescriptionDimensionsX-AxisY-AxisPhysical Conversion Formula
ip_ti_b1__n__mafBase Injection Duration Bank 116 × 12RPM (600… 6500)Load (0.05… 0.95)Time (ms) = Raw × 0.005333
ip_ti_b2__n__mafBase Injection Duration Bank 216 × 12RPM (600… 6500)Load (0.05… 0.95)Time (ms) = Raw × 0.005333
ip_iga_ron_98_b1Ignition Timing 98 RON (Premium)16 × 12RPM (600… 6500)Load (0.05… 0.95)Angle (∘BTDC) = Raw × 0.375 - 24.0
ip_iga_ron_91_b1Ignition Timing 91 RON (Regular)16 × 12RPM (600… 6500)Load (0.05… 0.95)Angle (∘BTDC) = Raw × 0.375 - 24.0
ip_cam_sp_in_plIntake Camshaft Setpoint (VANOS)16 × 12RPM (700… 6500)Load (0.08… 0.90)Cam Angle (∘KW) = Raw × 0.375 + 80.0
ip_cam_sp_ex_plExhaust Camshaft Setpoint (VANOS)16 × 12RPM (700… 6500)Load (0.08… 0.90)Cam Angle (∘KW) = Raw × 0.375 - 105.0
id_maf_tabBosch HFM5 MAF Linearization Curve256 × 1ADC Voltage (0… 5V)Single AxisAirflow (kg/h) = Raw × 0.25
c_n_maxMaximum Engine Speed Limiter1 × 1ConstantN/ARPM = 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:

  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 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.
Esc
↑↓ move↵ openEsc close