
BMW Key & Module Programming by Chassis: CAS, FEM/BDC, DME, FRM Explained (E, F, G Series)
Why BMW is confusing — and this guide exists
Ask five people how to program a BMW key and you will get five answers, because BMW never standardized on one immobilizer system. Instead, the brand changed the security architecture almost every generation, and it moved the module that actually stores your key data around the car as the electrical platform evolved. What worked on a 2004 E60 does not apply to a 2016 F30, and neither applies to a 2021 G20.
That matters because BMW is not a niche brand where a handful of specialists have seen everything. The BMW Group delivered more than 2.5 million BMW-brand vehicles worldwide in a single recent year, and the U.S. is one of its largest markets, so the installed base of E-, F-, and G-chassis cars needing key and module work is enormous. Independent reliability trackers such as J.D. Power and enthusiast outlets like Car and Driver have covered the brand's electronics complexity for years, and the used-BMW market that Hagerty's media team follows keeps millions of older E- and F-chassis cars on the road well past their factory key sets. When that many cars share a platform but not a security system, "how do I program a BMW key" becomes an impossible question to answer without first identifying the chassis and the module.
This article is the map. Read it and you will be able to name the system in your car — EWS, CAS, FEM/BDC, DME-ISN, or FRM — and know which mail-in bench service matches it. If you already know your chassis, skip to that section. If you don't, the comparison table below sorts it by generation.
The five systems you need to know
BMW key and module security comes down to five building blocks. Every service on this page maps to one of them.
- EWS (Elektronische Wegfahrsperre, "electronic drive-away lock") is the earliest electronic immobilizer, used on older E-chassis cars. The EWS module and the DME engine ECU share a rolling code; the car won't start unless they agree.
- CAS (Car Access System) replaced EWS on the mid-2000s-through-early-2010s cars. It comes in versions — CAS1, CAS2, CAS3, CAS3+, and CAS4/CAS4+ — and it holds the key data, the ISN, and the immobilizer logic in one module.
- FEM/BDC (Front Electronic Module / Body Domain Controller) is where F-series and G-series cars moved the key security. The FEM or BDC is a combined body-control and gateway module, and it must be read on the bench, unlocked, and re-flashed to add or program a key.
- DME-ISN (Digital Motor Electronics — Individual Serial Number) is the engine ECU's side of the immobilizer marriage. Whether the car uses EWS, CAS, or FEM/BDC, the DME carries an ISN that has to match. Read the ISN and you hold the number that makes key programming — and DME replacement — possible.
- FRM (Footwell Module) is the odd one out. It isn't an immobilizer at all; it's the lighting and window control module. But a specific FRM3 fault "bricks" the module and disables exterior lighting, and it's one of the most common BMW module-repair jobs, so it belongs on the same map.
Everything below is one of those five, matched to a chassis and a mail-in service.
Map it to your chassis
Here is the single comparison you came for — the immobilizer/module system by generation, and the matching bench service.
| Chassis / era | Key security lives in | Typical models | Matching bench service | Price |
|---|---|---|---|---|
| Older E-chassis (EWS era) | EWS module + DME ISN | E39, E46, E38, E53 and similar | EWS key programming / DME-EWS sync | EWS key $250 |
| Mid E-chassis (CAS3/CAS3+) | CAS3 / CAS3+ | E60, E90, E70, E71, E82 and similar | CAS key programming | CAS key $150 |
| Late E / early F (CAS4/CAS4+) | CAS4 / CAS4+ | F01, F10, F25, some E-to-F overlap | CAS key programming (verify version) | CAS key $150 |
| F-series (FEM/BDC) | FEM or BDC gateway | F20, F30, F32, F15, F48 and similar | FEM/BDC key programming | FEM/BDC key $150 |
| G-series (BDC) | BDC gateway | G20, G30, G05 and similar | FEM/BDC-family programming (verify) | FEM/BDC key $150 |
| Any chassis, DME swap/repair | DME ISN marriage | Cross-platform | DME-ISN read/match or F-series used DME | ISN $250 / used DME $399 |
| Any chassis, lighting fault | FRM3 footwell module | E-series with FRM3 | FRM footwell module repair | FRM repair $175 |
If you only remember one thing from this guide, let it be this: the chassis tells you the module, and the module tells you the service. Everything else is detail.
CAS: the mid-era workhorse (CAS3, CAS3+, CAS4/CAS4+)
For a huge swath of BMWs — roughly the E60/E90 era through the early F-chassis — the Car Access System is the module that matters. CAS holds the key transponder data, the immobilizer authorization, and a copy of the ISN. When you need to add a key, program an all-keys-lost situation, or replace a failed CAS, this is the module that goes on the bench.
The version matters more than owners expect. CAS3 and the later CAS3+ differ in their encryption, and CAS4/CAS4+ moved to a more secure chip that requires a different bench workflow. Our deep-dive on the split — CAS3+ vs CAS4 key programming — walks through exactly why the same "CAS" label covers very different jobs, and why we verify the exact version from your VIN and a photo of the module label before accepting work.
What the BMW CAS key programming service does on the bench:
- Reads the CAS module and extracts the key data and ISN
- Programs an additional key, or programs a replacement key in an all-keys-lost scenario
- Handles CAS replacement/cloning where a failed module needs its data moved to a good one
- Verifies communication before the module ships back
This is a $150 flat bench job on CAS3/CAS3+ (and CAS4/CAS4+ after version verification). A full CAS clone or repair — moving data to a replacement module — is $250. Because we work on the bench with a regulated supply, there's no voltage-sag brick risk from doing it in the car with a marginal battery.
FEM/BDC: where the F and G cars hide the keys
Starting with the F-series, BMW consolidated body control and gateway functions — and the key security — into the Front Electronic Module (FEM) or its successor, the Body Domain Controller (BDC). If you have an F20, F30, F32, F15, or a newer G-chassis car, this is almost certainly your module.
FEM/BDC programming is more involved than CAS. The module has to be removed, read on the bench, its flash and data extracted, a key added or programmed, and the module written back — a sequence that is genuinely risky to attempt in-vehicle. Our complete walkthrough of the process, the BMW FEM/BDC key programming guide, covers the read-unlock-write steps in detail and explains why bench work is the safe path.
The BMW FEM/BDC key programming service is a $150 flat bench job. As with CAS, we confirm the exact module and chassis from your VIN before you ship, because the F-to-G transition introduced BDC variants that need to be identified up front.
"The number-one mistake I see with F- and G-chassis BMWs is somebody trying to add a key with a generic tool in the driveway and half-writing the FEM. Once that module is partially flashed, you're into a recovery job that costs more than the programming would have. On the bench, read first, write once — that's the whole discipline, and it's why send-in work fails far less often than in-car attempts." — Master BMW diagnostic and coding technician, 16+ years on E/F/G platforms (anonymized)
DME and ISN: the engine ECU's role in the immobilizer
Every one of the systems above talks to the DME — the Digital Motor Electronics engine ECU — through the ISN, the Individual Serial Number that marries the immobilizer to the engine computer. Understanding the ISN is what separates a working key program from a no-start.
Two common jobs live here:
DME-ISN read/match. When a DME is replaced (a used engine ECU from another car, or a repaired unit) the ISN must match what the immobilizer expects, or the car won't start even with a perfect key. Reading the ISN off the original DME or the immobilizer module, and matching a replacement DME to it, is a $250 bench service. This is also the number a locksmith needs for certain all-keys-lost jobs.
F-series used DME programming. Sourcing a used DME to replace a failed one is far cheaper than a dealer part — but it arrives married to someone else's car. The used-ECU-vs-cloning tradeoff is a real one, and for F-series cars we offer used DME programming to marry a donor unit to your immobilizer for $399.
DME-EWS delete. On older EWS-equipped cars, the immobilizer handshake between the EWS module and the DME can become a liability — a failed EWS, a swapped engine, an engine-swap build, or a track car where the immobilizer is no longer wanted. The BMW DME-EWS delete service removes the immobilizer dependency from the DME calibration so the engine runs without the EWS handshake, a $150 bench job. Proof of ownership is required, and this is offered for repair, restoration, off-road, and motorsport applications where legally permitted.
FRM: the footwell module that bricks itself
The FRM3 footwell module is not an immobilizer — it controls exterior and interior lighting, power windows, and related body functions — but it earns its spot in any BMW module guide because of one notorious failure. On many E-chassis cars, a fault (often triggered during a battery event or a coding attempt) corrupts the FRM3's internal EEPROM and "bricks" the module. The symptom is dramatic: headlights, tail lights, turn signals, or windows stop working, and the module won't communicate.
The good news is that this is a repair, not a replacement. The BMW FRM footwell module repair service recovers the corrupted EEPROM data and restores the module's function on the bench for $175 — a fraction of a new FRM plus dealer coding. You ship the module, we repair and verify it, and it ships back ready to reinstall.
This job pairs naturally with other BMW bench work: if the car is already apart for a lighting fault, it's a good time to sort out any pending key or module needs in the same shipment.
Key programming vs all-keys-lost vs used-module: what's the difference?
Three phrases get used loosely, so let's define them precisely — they change the workflow and sometimes the module involved.
Adding a key (spare key). You have at least one working key and want another. This is the simplest case: the module already trusts a key, and we program an additional transponder to it. CAS and FEM/BDC both support this on the bench.
All-keys-lost (AKL). You have zero working keys. This is harder because there's no existing authorized key to lean on — the module (and sometimes the DME's ISN) has to be read to generate a key from scratch. AKL is where bench access really pays off, because the module can be read directly rather than fighting the car's security through the OBD port. Proof of ownership is non-negotiable for AKL work.
Used-module programming. You bought a replacement CAS, FEM/BDC, or DME from a donor car (usually to save money over a dealer part). It arrives married to someone else's VIN and keys. Programming marries it to your car — matching the ISN, syncing the immobilizer, and adding your keys. This is where the used-ECU savings become real, but only if the module is programmed correctly.
Each of those maps to a service above. Tell us which situation you're in when you reach out, and we'll confirm the exact module and price before anything ships.
The mail-in workflow
Every service on this page is a bench job — you ship a module, not a car. The sequence is the same regardless of system:
- Verify first. Text us your VIN, the module part/service number off the case label, and a clear photo of that label. We confirm the exact system — CAS version, FEM vs BDC, DME variant, or FRM3 — and quote the correct service. Nothing ships until fitment is confirmed.
- Provide proof of ownership. For all key and immobilizer work (CAS, FEM/BDC, DME-ISN, EWS delete), we require documentation that the vehicle is yours — a registration or title matching the VIN. This is a firm requirement, not a formality.
- Remove and ship the module. Once verified, remove the CAS/FEM/BDC/DME/FRM and ship it to 1168 W Pioneer Parkway, Arlington TX 76013. Pack it well — anti-static bag, padded box.
- Bench read + archive. On arrival we power the module on a regulated bench supply, read the existing data, and archive it before any change.
- Program or repair. We add or program the key, match the ISN, delete the EWS handshake, or recover the FRM EEPROM — whatever the job requires.
- Verify communication. The module is tested on the bench before it leaves the shop.
- Return with tracking. The module ships back via the flat-rate return tier you chose at checkout (from $14.95, up to overnight). You reinstall it.
Because the bench supply is clean and regulated, this is a materially safer way to program or flash a BMW module than doing it in-vehicle with a battery that might sag mid-write — the classic way an in-car attempt bricks a controller.
Cost, turnaround, and how the prices compare
Here's the BMW bench menu in one place:
- CAS key programming — $150 flat
- FEM/BDC key programming — $150 flat
- DME-EWS delete — $150 flat
- FRM footwell module repair — $175 flat
- EWS key programming — $250
- CAS clone/repair — $250
- DME-ISN read/match — $250
- F-series used DME programming — $399
Each is plus customer-paid return shipping from $14.95. Compare that to the alternatives: a dealer key-programming visit for a modern BMW routinely runs into several hundred dollars with the tow and the key blank, and a locked-out F/G car can't always be done at a general shop at all. Buying the tooling to do one car yourself — and taking on the brick risk — costs more than a single send-in. The bench service is one fixed price, verified for your exact module before you ship.
Compliance and proof of ownership
Two things are firm, and we say them plainly.
Proof of ownership is required for all key and immobilizer work. CAS, FEM/BDC, DME-ISN, and EWS-delete programming can, in the wrong hands, be used to defeat vehicle security — so we require documentation (registration or title matching the VIN) before we perform any of it. This protects you and it protects the platform. Vehicle theft remains a serious problem; the National Insurance Crime Bureau tracks well over a million vehicle thefts reported annually in the U.S., and the Insurance Institute for Highway Safety has documented how much theft rates vary with the quality of a vehicle's immobilizer and anti-theft design. Reputable immobilizer work is done with ownership verified, full stop.
Immobilizer-delete and DME-EWS work is offered for repair, restoration, off-road, and motorsport applications where legally permitted. You are responsible for compliance with the laws that apply to your vehicle and its use. We confirm module support and do the calibration; you confirm legality for your situation.
And the honest scope note: bench programming and module repair fix electronic and data faults. They do not repair unrelated mechanical problems, wiring damage, or issues outside the module itself. We diagnose the module, program or repair it, and verify it — that's the job, done precisely and at a fixed price.
Frequently asked questions
How do I know whether my BMW uses CAS or FEM/BDC? Your chassis generation decides it: mid-2000s through early-2010s E-chassis cars (E60, E90, E70) use CAS, while F-series and G-series cars (F30, F32, G20, G30) use FEM or BDC. The safest confirmation is your VIN plus a photo of the module label, which we verify before you ship anything.
What's the difference between adding a spare key and all-keys-lost? Adding a spare key uses an existing working key that the module already trusts, so it's the simpler job. All-keys-lost means you have zero working keys, so the module — and sometimes the DME's ISN — must be read directly to generate a key from scratch, which is exactly where bench access pays off. Both require proof of ownership.
Do you require proof of ownership? Yes — for every key and immobilizer service (CAS, FEM/BDC, DME-ISN, EWS delete) we require documentation that the vehicle is yours, such as a registration or title matching the VIN. This is a firm requirement on all security-related work and there are no exceptions.
Can you program a used CAS, FEM/BDC, or DME from a donor car? Yes. A used module arrives married to someone else's VIN and keys; we read it, match the ISN, sync the immobilizer, and program your keys so it works in your car. This is how owners capture the savings of a used module over a dealer part, and it's a standard bench job for us.
What is the FRM footwell module and why does it fail? The FRM3 is BMW's lighting and window control module, not an immobilizer. A common EEPROM corruption — often during a battery or coding event — bricks it, killing exterior lights or windows. We recover the corrupted data and restore the module on the bench for $175, far cheaper than a new FRM plus dealer coding.
Is bench programming safer than doing it in the car? Yes. A regulated bench supply removes the voltage-sag risk that can brick a module mid-flash in a vehicle with a marginal battery, and it lets us read a module directly rather than fighting the car's security through the OBD port. Read first, write once is the discipline that makes send-in work fail far less often.
How long does it take and what does return shipping cost? Turnaround is fast once your module arrives and fitment is verified. Return shipping is customer-paid, chosen at checkout, starting from $14.95 for standard service with faster tiers available up to overnight. We ship back with tracking.
The bottom line
BMW never used one immobilizer — it used EWS, then CAS (in several versions), then moved key security into the FEM/BDC gateway, all sitting on top of the DME's ISN marriage, with the FRM footwell module as a common repair alongside. Once you map the system to your chassis, the right service is obvious: CAS key programming for the E60/E90 era, FEM/BDC key programming for F and G cars, DME-EWS delete for immobilizer removal on older cars, and FRM footwell module repair for the bricked-lighting fault.
All of it is bench work — you ship a module, not a car — verified for your exact chassis before you ship, with proof of ownership required on every key and immobilizer job. Return shipping is customer-paid from $14.95. Not sure which module you have? Text us your VIN and a photo of the module label and we'll identify the system and confirm the service before anything leaves your hands.
Ship your module today
Flat-rate pricing, 24-hour bench turnaround, return speed your choice at checkout. Most jobs back on your bench within a week.
More from the Lab

BMW FEM / BDC Key Programming Explained: What the Body Domain Controller Is, Why It Replaced CAS, and How Mail-In Bench Work Beats the Dealer
11 min · July 9, 2026

BMW CAS3+ vs CAS4 vs CAS4+ Key Programming (2026)
12 min · May 30, 2026

BMW CAS Clone & Repair Mail-In 2004-2016: Guide 2026
12 min · June 18, 2026

BMW DME ISN Read & Match for CAS/FEM: Wholesale 2026
12 min · June 18, 2026