Terminology

BMW diagnostic glossary.

A working glossary of the protocols, modules and acronyms that come up when reading BMW fault codes, scanning modules, or running service functions. Definitions are project-local — linked to the relevant Beemuu guide pages where they exist.

~30 termsUpdated August 2026Open and editable

Protocols

KWP2000Keyword Protocol 2000 — the older BMW diagnostic protocol used on E-series. Single-frame requests, no segmentation. Beemuu uses KWP2000 over K+DCAN to talk to E-series modules.
UDSUnified Diagnostic Services (ISO 14229) — the modern diagnostic protocol used on F/G-series and most newer vehicles. Multi-frame via ISO-TP. Beemuu uses UDS over DoIP (Ethernet) for F/G-series modules.
DoIPDiagnostics over Internet Protocol (ISO 13400) — the transport that puts UDS over automotive Ethernet. Used on F/G-series BMWs through the ENET cable.
D-CANDiagnostics CAN — 500 kbit/s CAN bus used for diagnostics. Part of K+DCAN (the ‘CAN’ half of K-line + D-CAN).
K-lineThe older single-wire diagnostic bus used on pre-D-CAN E-series and earlier BMWs. Operates at 10.4 kbit/s.
ISO-TPISO Transport Layer (ISO 15765-2) — the segmentation layer that lets UDS messages longer than 8 bytes be split across multiple CAN frames. Beemuu’s transport/isotp.rs handles this for UDS-over-CAN; the DoIP path uses a different segmentation scheme.
RoutineControl (0x31)A UDS service used to invoke service functions on a target ECU. CBS reset, battery registration, DPF regeneration all use routineControl under the hood.
ReadDataByIdentifier (0x22)A UDS service used to read a single Data Identifier (DID) from a target ECU. The ‘live data’ PIDs Beemuu reads use this service under the hood.
SecurityAccess (0x27)A UDS service that gates access to write operations behind a seed/key challenge. Coding operations and some service functions require SecurityAccess first.

Buses & discovery

OBD-IIOn-Board Diagnostics II — the emissions-mandated diagnostic standard. Defines a 16-pin connector and a minimal subset of P0xxx codes, PIDs and readiness monitors. A standard $10–$50 OBD-II reader covers the emissions subset; K+DCAN and ENET go further.
CANController Area Network — the in-vehicle bus. Operates at 500 kbit/s on the powertrain bus and 100 kbit/s on the body/comfort bus. Beemuu talks CAN over USB via a K+DCAN cable’s FTDI chip.
UDS broadcast discoveryFor ENET/DoIP, Beemuu sends a UDP broadcast on port 13400 to find the car’s gateway. The gateway replies with its IP and the car’s VIN. This is still honestly not implemented in the project per the v0.14.4 CLAUDE.md refresh.
ZGWZentrales Gateway (Central Gateway) — the module that routes messages between CAN buses and the diagnostic bus. A failing ZGW can make modules appear unreachable even when they’re fine.

Modules

DMEDigital Motor Electronics — the engine control module. Beemuu target address 0x12 on KWP2000. Most engine-related fault codes and service functions target the DME.
DSCDynamic Stability Control — the ABS / stability module. Beemuu target address 0x29. Steering-angle sensor calibration targets the DSC module.
EGSElektronische Getriebe Steuerung (Electronic Transmission Control) — the transmission control module. Beemuu target address 0x18. EGS adaptation reset targets this module.
KOMBIInstrument cluster (from German ‘Kombiinstrument’). Beemuu target address 0x60 on E-series. Holds brake-pad and brake-fluid CBS counters.
IBOIntegrated Base Operations — F-series body controller that holds cabin-filter and spark-plug CBS counters. Replaced by the BDC on later F/G-series.
BDCBody Domain Controller — G-series body controller, the spiritual successor to the IBO. Holds many of the same CBS counters plus battery-registration state on later chassis.
IBSIntelligent Battery Sensor — the current shunt and temperature sensor on the negative battery terminal. Required for battery registration. Reports state-of-charge, voltage, current and temperature to the power-management module.
CASCar Access System — E-series immobilizer + keyless-go module. The CAS holds the matching key codes and is part of the防盗 chain.
FRM / NFRMFootwell Module (Fussraummodul) — E-series module that controls lighting, windows and mirrors. Common failure item on higher-mileage E60/E90.

Engine & drivetrain systems

ValvetronicBMW’s variable valve-lift system. Uses an eccentric shaft to vary intake-valve lift continuously from ~0.4mm to ~9.9mm. Found on N52, N54, N55 (E- and F-series). Requires adaptation reset after mechanical work or low-voltage events.
VANOSBMW’s variable valve-timing system. Solenoid-controlled oil flow adjusts the camshaft position. Intake and exhaust camshafts each have a separate VANOS solenoid. Clogged solenoids are a common code source.
HPFPHigh-Pressure Fuel Pump. The N54/N55/B58 engines use direct injection with a high-pressure (200+ bar) fuel pump. N54 HPFP failures are the headline maintenance item; B58 HPFP is more reliable.
DPFDiesel Particulate Filter. Traps soot from the exhaust; burns it off periodically via regeneration. Diesel-specific. Forced regeneration is a high-risk write path.
EGRExhaust Gas Recirculation. Routes some exhaust back into the intake to reduce NOx. Diesel-specific. EGR cooler clogging is a known N57/M57 issue.
Turbo / N75 / wastegateTurbocharger with electronic wastegate. The N75 valve (or its modern equivalent) controls boost by regulating vacuum to the wastegate. A failed N75 produces overboost or underboost.

Tools & software

ISTABMW’s Integrated Service Technical Application. The dealer-level diagnostic tool. Closed-source, requires online activation, expensive subscription. Beemuu is the open-source alternative; not affiliated with BMW AG.
INPA / EdiabasOlder BMW diagnostic stack. KWP2000-only. Beemuu’s KWP2000 path is broadly compatible with the K+DCAN cable ecosystem that INPA uses.
E-SysBMW’s coding tool for F/G-series. Works over ENET. The $5 AliExpress ENET cable is the same cable E-Sys uses.
VCDSRoss-Tech’s VAG-COM Diagnostic System. Originally for VAG cars but has limited BMW support. Beemuu is BMW-specific and open-source.
OBDbOpen database of BMW UDS DIDs. The source of Beemuu’s verified DIDs (CC-BY-SA 4.0).

Service & maintenance

CBSCondition Based Service. BMW’s onboard service-interval system. Each module holds its own counter (engine oil, brake pads, brake fluid, cabin filter, spark plugs, vehicle check). Reset after the service is actually performed.
Service functionA routine invoked on a target ECU to perform a write operation (counter reset, battery registration, regen). All Beemuu service functions are Tier B code and the routine IDs are currently unverified per the project audit.
Battery registrationResetting the battery-age counter in the power management module after fitting a new battery. Required even if the new battery is the same spec as the old one. The car charges an unregistered new battery as if it were the old (worn-out) one.
Adaptation resetResetting the learned values in a module (DME Valvetronic adaptation, EGS shift adaptation) so the module relearns from base values. After mechanical work or a reflash.
Steering-angle sensor calibrationResetting the SAS zero point in the DSC module after alignment, suspension work or a battery disconnect. Without calibration, DSC intervention will be wrong.

Glossary questions

Why isn’t KWP2000 used on F/G-series?

F-series BMWs moved to UDS over DoIP for several reasons: UDS supports larger data blocks, ISO-TP segmentation, security access and routine control in a single standard. KWP2000 topped out at single-frame requests. Beemuu supports both because the project covers E/F/G.

Why is the project’s UDS broadcast discovery still not implemented?

It’s a project-local discipline. The v0.14.4 CLAUDE.md refresh specifically preserves this as an open item rather than overstating. The work is well-scoped and ready to claim — see the roadmap.

How do I add a new term to this glossary?

Open a PR against /tmp/beemuu-landing/glossary.html (the staging source) with the new term and a one-paragraph definition. The mirror in /var/www/beemuu/frontend/glossary.html is updated after the PR merges.

Read the protocol stack end-to-end.

Beemuu talks KWP2000 over K+DCAN on E-series and UDS over DoIP on F/G-series. One tool, two protocols.

KWP2000 vs UDS deep-diveSource on GitHub

Last updated: 2026-08-02 · Beemuu contributors