BCM (Body Control Module): diagnosing "window won't work" and "key not detected" via OBD
What BCM does, how OBD-II reads B-codes and U-codes, why "the window is stuck from pause" is often the BCM, and how to tell the module from a wiring fault.
BCM (Body Control Module) — the “cabin brain”, a dedicated ECU controlling: windows, door locks, cabin lights, wipers, rear-window heater, base HVAC, central lock, immobilizer, sensors (rain, light). On a modern car BCM handles up to 60% of all cabin electrics. Below: how to diagnose via OBD.
What BCM does
- Power management: relay block for headlights, tail lights, high/low beam
- Door locks: central locking, deadlock, comfort functions
- Windows: reverse control (pinched hand — retract), auto-up/auto-down
- Rain + light: rain/light sensors → wiper + headlights
- Immobilizer: key receiver, key authorization
- Body lighting: DRL, cornering light, welcome light
- Heaters: rear window, mirrors, washer nozzles
Typical OBD-II codes
B-codes (Body)
| Code | Meaning |
|---|---|
| B0001 | Driver airbag deployment (see severity levels) |
| B1064 | Brake wear sensor (see brake wear post) |
| B1234 | AC high pressure switch (see AC post) |
| B10CC / B10D0 | Immobilizer transponder (see immobilizer post) |
| B1080-B1099 | Windows (per window motor) |
| B1225 | Central locking motor |
U-codes (BCM communication)
| Code | Meaning |
|---|---|
| U0140 | Lost communication with BCM |
| U0142 | Lost communication with BCM ‘B’ (cars with two BCM) |
| U0155 | Lost communication with IPC (cluster) |
See overall CAN Bus post.
Classic patterns
Window stuck from a pause
- OBD: B1084 (front left window motor)
- Cause: window motor died or “polarity” didn’t re-learn after battery disconnect (classic Ford Focus, VW Passat)
- Fix: motor $50-150 + adaptation reset via OBD (for VAG — Module 09, adaptation channel).
Central locking works from key fob but not from button
- OBD: no code, but Mode 22 (BCM live) shows the button signal does NOT arrive
- Cause: damaged wire harness in the door (bent diagonally — often breaks)
- Fix: re-solder harness wires ($50-100)
“Key not detected” — car won’t start
- OBD: B10CC, U0140 together (BCM offline)
- Cause: BCM battery (CR2032 lithium inside the module) died — rare, but happens on old Renault, PSA
- Fix: BCM battery replacement ($5-20) or new BCM programming ($200-500)
Rear window doesn’t defrost
- OBD: B1220 (rear defrost relay circuit)
- Cause: defrost relay or broken wire
- Fix: relay $10-30
What OBD-II can show
Via Mode 22 UDS (manufacturer PIDs) on BCM:
- Each button state — active/inactive (window switches, central lock button)
- Each relay state — on/off
- Light sensor (luminance) — lux
- Rain sensor — intensity
- Voltage per output — check integrity to each consumer
- Immobilizer state — authorized/blocked
That’s what a $200-500 professional diagnostic station does — on our platform available on paid tier.
Diagnostics in 15 min
- Read all DTCs (not just engine) — B-codes and U-codes
- Via Mode 22 — read state of the button that “doesn’t work” → if ECU sees the signal, problem is relay/load; if not — wiring or button
- Check BCM voltage via
Control Module VoltagePID (see battery post) - CAN Bus scan — is BCM online (U0140 → offline)
Limits
Standard ELM327 reads B-codes and U-codes on every car. But Mode 22 BCM PIDs are manufacturer-specific, differ for VW/BMW/Ford/GM/Mazda. Support depends on brand — see compatibility.
Try on free tier — pair an ELM327 adapter. B-codes and U-codes on every car. Live BCM state via Mode 22 — on paid tier.