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.

F, G and I series (extended addressing through 0x6F1)
Control unitRequestResponse
Engine and powertrain0x6F1 · extended address 0x120x612
ABS brakes and stability control0x6F1 · extended address 0x290x629
Power steering0x6F1 · extended address 0x300x630
Instrument cluster0x6F1 · extended address 0x600x660
Body and comfort0x6F1 · extended address 0x400x640
Climate control0x6F1 · extended address 0x780x678

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

Search the fault-code glossary

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.

Can we help you get started?

Leave us your details and we will tell you how Diaglana fits your workshop, your fleet or your car.