The BMW inline-six of the late 1990s and early 2000s shipped with three different Bosch and Siemens engine control modules — MS41 on the M52, MS42 on the M52TU, and MS43 on the M54 — and they are not interchangeable, not equally serviceable, and not distinguishable from the car's badge. Getting the identification right before you order anything is the difference between a file back in seconds and a week wasted on the wrong service.
This guide covers how to tell them apart, what each one can and cannot have done to it, and — stated plainly, because it is the part most articles skip — which of them we actually cover as of July 2026.
The three modules, in order
| DME | Engine | Rough years | Typical chassis | Our IMMO-OFF status |
|---|---|---|---|---|
| Siemens MS41 | M52 | 1995–1999 | E36, early E39 | Soon (checksum: Beta) |
| Siemens MS42 | M52TU | 1998–2000 | E46, E39, Z3 | Not in our catalog |
| Siemens MS43 | M54 | 2000–2006 | E46, E39, E60, E53 X5, E83 X3 | Live — 4 software revisions |
Two things in that table matter more than the rest. First, MS42 is not something we service, and we would rather say so here than after you have shipped a module. Second, MS43 coverage is expressed per software revision, not per make or engine — which is the whole point of this guide.
Why the software revision is the unit of work
Our catalog lists MS43 as four separate entries: ca430037, ca430056 (Bosch hardware 5WK90015 and 5WK90017), ca430066 and ca430069. That looks like pedantry until you understand what an IMMO-OFF patch actually is.
The patch disables the DME's side of the EWS handshake — the cryptographic challenge-response between the engine module and the chassis immobilizer. Doing that means locating the exact routine in that exact firmware build and modifying it without disturbing anything adjacent. Firmware revisions move code. A patch derived from ca430037 applied to a ca430066 image can land at offsets that look plausible, recalculate to a clean checksum, and boot the module into behaviour nobody intended.
This is why our fingerprinter looks for the revision string at a fixed offset (0x70040) in the image rather than trusting anything the customer types. If a provider advertises “BMW IMMO-OFF” without ever naming a software revision, they have either simplified for marketing or they have not looked.
Identifying your module without guessing
1. The label
The DME carries a sticker with a BMW part number and a Siemens or Bosch hardware number. The hardware number is the strongest single clue: 5WK90015 and 5WK90017 are MS43-family parts in our covered set. Photograph the label straight-on and in focus before you put the module anywhere — you will need it again.
2. The engine, not the year
BMW ran overlapping production. An E46 built in 2000 could carry either an M52TU with MS42 or an M54 with MS43 depending on build month and market. The engine designation on the block is more reliable than the model year, and the module itself is more reliable than either.
3. The dump — the only definitive answer
If you already have a read, upload it to the free variant identifier. It reads the firmware fingerprint and reports the exact revision, plus whether that revision sits in our covered set or is flagged Manual. This takes seconds, costs nothing, and removes the entire class of “I thought it was a 430056” problems.
Getting a dump in the first place on this generation usually means a boot-mode read with the case open — these modules predate convenient bench paths on most tooling. Our read-methods guide covers the technique and the failure modes; the short version is read twice and diff before you trust the file.
What each module can actually have done
MS43 (M54) — the well-covered one
All four listed revisions are Live for IMMO-OFF, which in our terms means validated and automated: upload a read, the operation runs, and you download a patched file in seconds. Checksum status on these entries is Beta— the recovery works and has fewer confirmed jobs behind it than the IMMO-OFF side, which is exactly the kind of distinction our coverage-status guide exists to make legible.
The methodology behind the MS43 patch is public — a three-part EWS-delete covering the jump, the code path and the diagnostic trouble code suppression, originally documented in the enthusiast-research community. We implemented it, validated it per revision, and wrapped checksum recovery around it. The full service walkthrough is in our MS43 EWS-delete guide.
MS41 (M52) — checksum yes, IMMO-OFF not yet
MS41 sits at Soon for IMMO-OFF and Beta for checksum recovery. That combination is common and worth understanding: checksum recovery means knowing an algorithm and sector layout for a family, which generalises across revisions once solved. IMMO-OFF means knowing where one specific firmware build performs its check, which does not generalise at all.
So if you have an MS41 and you need a modified file to boot, we can help with the checksum side today. If you need the immobilizer check removed, do not ship the module expecting it — either wait, or post the job on the specialist network where operators with different tooling can bid on it.
MS42 (M52TU) — not ours
MS42 is not in our catalog. It is a well-understood module in the wider community and there are competent operators who work on it; we simply are not one of them, and a coverage claim we cannot stand behind is worth less than an honest no. The network is the right route.
The three jobs people confuse on this generation
Nearly every enquiry we get on M52/M54 cars is one of three situations, and picking the wrong service wastes a week:
- Swapped DME, engine cranks but will not fire. The replacement module carries the donor car's immobilizer pairing. On a covered MS43 revision this is a $100 instant IMMO-OFF against your own read. The full diagnosis tree is in our swapped-ECU guide, because immobilizer mismatch is only one of six things that produce that exact symptom.
- Engine swap into a chassis with no EWS at all. Common on track and project builds. Same operation, same price, but confirm the chassis wiring expectations before you patch — the DME is only one link in that chain.
- Module is failing, not mis-paired. No file fixes a cracked solder joint or a failed voltage regulator. If you are seeing an internal-performance fault code, work the P0606 decision tree before spending money on either a file or a donor.
A specialist who works this generation regularly framed the identification discipline this way:
“People bring me an E46 and tell me what it is. I don't care what the car is — I care what is written in the flash at the offset. Two cars off the same line, same month, different software. Read it, then decide.” — Independent BMW electronics specialist
What the patch does not touch
Worth stating explicitly, because it is the most common customer anxiety. An EWS-delete modifies the immobilizer-verification path only. It does not alter fuelling, ignition timing, boost, or any emissions monitor, and it does not affect OBD-II readiness. The vehicle behaves identically to a correctly paired module from the driver's seat, and there is no emissions-related change of any kind.
We do not provide emissions defeat, delete files, or services intended to bypass emissions laws. Our services exist for tuning preparation, diagnostics, repair, motorsport, and off-road use where legally permitted. Customer is responsible for confirming legal use in their location and application.
That distinction is legally meaningful, not cosmetic. Section 203(a)(3) of the federal Clean Air Act targets tampering with emissions controls and the sale of defeat devices. Restoring an immobilizer chain after a module swap is ordinary repair work and is not in that category; a delete file is, which is why we decline them outright.
On the independent-repair side, the National Automotive Service Task Force maintains the industry channel through which independents obtain service information and vehicle-security credentials — the formal recognition that this work belongs outside the dealer network too.
Before you order: the checklist
- Photograph the DME label — part number and hardware number.
- Confirm the engine designation, not just the model year.
- Take a complete read, twice, and diff the two. Keep the original read-only with its hash stored beside it — the backup guide explains why this is the one step you cannot recover from skipping.
- Upload to the identifier and read the reported revision.
- Check that revision on the coverage matrix. Live means order now; Soon or Manual means do not ship.
- Use battery support on the write-back. Twenty-five-year-old charging systems are not confidence-inspiring.
The short version
MS41, MS42 and MS43 look similar, sit in overlapping model years, and behave completely differently under a patch. MS43 is our strongest BMW coverage — four revisions, all Live for IMMO-OFF, $100 per file, returned in seconds. MS41 is checksum-only today. MS42 we do not cover, and we will say so before you ship rather than after.
The whole identification problem collapses into one free step: upload the dump. If it comes back Live, the price is posted and the file is back in seconds. If it does not, the specialist network is the honest next stop.