Guide by make
Reading the fault codes of a BMW
Every BMW sold in the EU has the EOBD diagnostic socket: gasoline cars since 2001 and diesels since 2004. With an OBD reader you read its generic codes, the same as on any other make; for the other control units you need to know how each platform is diagnosed.
Reviewed by Daniel Morales, founder of Reprorace SL, on
What a generic reader shows on a BMW
With the ignition on, any OBD reader asks the engine control unit for its emissions diagnostics: fault codes, the data from the moment of the fault, live data and the inspection's readiness monitors.
The engine answers at the addresses ISO 15765-4 sets for every car with CAN: the reader asks 0x7DF (all of them) or 0x7E0, and the engine answers on 0x7E8. For the gearbox, ABS, airbag or body, the reader has to talk to each control unit at its own address.
Where the OBD socket is
The standard requires the socket to be within reach of the driver's seat. On almost every car it is under the dashboard on that side, sometimes behind a cover or next to the center console.
On your BMW, the owner's manual shows its exact position. You do not need to remove anything to plug in a reader.
Known BMW platforms and control units
CAN diagnostic addresses published by open sources, seen on the OBD socket. They may change with the model, the year and the equipment: take them as a starting point for the workshop, not as manufacturer data.
F, G and I series (extended addressing through 0x6F1)
Platform shared with MINI.
| Control unit | Request | Response |
|---|---|---|
| Engine and powertrain | 0x6F1 · extended address 0x12 | 0x612 |
| ABS brakes and stability control | 0x6F1 · extended address 0x29 | 0x629 |
| Power steering | 0x6F1 · extended address 0x30 | 0x630 |
| Instrument cluster | 0x6F1 · extended address 0x60 | 0x660 |
| Body and comfort | 0x6F1 · extended address 0x40 | 0x640 |
| Climate control | 0x6F1 · extended address 0x78 | 0x678 |
Sources: opendbc (© 2020 comma.ai, MIT license), OBDb (CC BY-SA 4.0) and OVMS 3 (MIT license), reviewed on 07-10-2026.
BMW's official service information
Regulation (EU) 2018/858 requires manufacturers to give independent workshops access to repair and maintenance information (RMI). According to ACEA's list, BMW publishes it at aos.bmwgroup.com. That is where the make's own codes, procedures and service functions are.
Fault codes on a BMW
A generic code, such as P0420 or P0300, means the same on a BMW as on any other make: look it up in the glossary. A make-specific code (P1, for example) needs its service information.
Some of the most looked-up:
- P0300Random or multiple cylinder misfire detected
- P0301Cylinder 1: misfire detected
- P0171Mixture too lean (bank 1)
- P0172Mixture too rich (bank 1)
- P0420Catalyst system (bank 1): efficiency below threshold
- P0401EGR A flow: insufficient flow detected
- P0442EVAP system: small leak detected
- P0455EVAP system: large leak detected
Frequently asked questions
Does a generic OBD reader work on a BMW?
For the engine's generic codes, yes: it is emissions diagnostics, the same on every make. For the other control units and service functions of a BMW, the reader has to know its protocols and addresses.
What do P1 codes mean on a BMW?
They are the manufacturer's own codes: the same number may mean different things on another make or model. Their meaning is in the official service information.
Is every BMW diagnosed the same way?
No. According to our sources, BMW uses these diagnostic platforms: F, G and I series (extended addressing through 0x6F1). Each model may have its own control units and functions.
Read your car's fault codes on your phone
See the ECO-LITE page or buy it in the shop at the final price.