I’m interested in BMW cars for already 25 years, and quite many things are self-evident for me. So I’m very surprised when it turns out – not everything is as I have imagined.

One of the things, regarding which I was very surprised – most BMW users are reading the error messages… Completely incorrect! How so?


A brief historical indention.

A long time ago, as soon as electronic devices appeared in cars, manufacturers started to introduce self-diagnostics and diagnostics possibilities. It was a logical process – equipment can get damaged, they have to be repaired. Initially, the process was chaotic – each car manufacturer introduced his own, completely different standard. Including standard, how does the connection to car’s diagnostic looks alike, and how the data exchange between car and diagnostics tool is organized. I believe, almost all of you have seen large, round 20 pin diagnostic connectors of BMW, which were used in BMW E38, E39, and other cars.

Before this connector, also connector with 15 pins was in use – it was with a smaller diameter, used in E30 generation cars – I believe, not many of you have seen that and still remember.


Around the Year 2000 (with E39 LCI generation) BMW switched to 16 pin connector, mentioned in OBD-standard:

With the introduction of this plug, BMW obeyed requirements of OBD-II standard, which was supposed to be used by all car manufacturers.


So far everything sounds logical – BMW, tried several types of their own diagnostic plugs, conceded with OBD-II standard requirements. What so special could be here?

Note: I deliberately will not a mean many standards, which define plugs, data exchange and other technical things – I will pay my attention to a thing by nature.


The special part is following: while conceding with requirements of OBD-II requirements, BMW continued and continues to maintain TWO INDEPENDENT error and diagnostics systems in parallel!

  • First system: “subsistence minimum”, defined in OBD-II standard;
  • Second system: EDIABAS (Electronic Diagnosis and Information protocol) – unique, developed and intended only for BMW vehicles: diagnostics, test and information system.


It’s clear, why OBD-II system should be available – it’s required by the standard. Why one more, independent system would be necessary?


In their evaluation level, the BMW cars were and also now exceed possibilities, intended by OBD-II. Yes, OBD-II intends implementations: each car manufacturer can improve the standard error message list with their own, unique codes, but in BMW case – it was not a solution. Technological development of BMW was so far ahead of OBD-II standard, its (OBD) usage was many steps back.

Accordingly: diagnostic equipment, which supports OBD-II, will see the error messages of this system (OBD-II); equipment, who “understands” EDIABAS, will work with EDIABAS system data.


How to recognize error message codes of each system, and what are the differences?

OBD-II provides following recording of the error message:

  • the code starts with a letter (symbol of a group of error messages);
  • the error message code, consisting of 4 digits (DEC), follows.

OBD-II uses following symbols of error code groups:

P – engine, and transmission;
C – chassis;
B – body;
U – communication errors and errors, defined by the manufacturer.


OBD-II error messages are, for example, P0254; C0332 and similar.


EDIABAS uses its own system of error message grouping:

  • for older cars (for example, E39, E46), the error message code was 2 symbols in HEX format (the error message code was supplemented with block’s identification);
  • for cars of E6X/E8X/E9X generation, the error message code was 4 symbols HEX code, codes were unique (no connection to blocks required);
  • error message code for F series is 6 symbols HEX code, unique (no connection to block).


For example, error message code of E39 was E6 (+ identifying block ID); the error message code of E60 was 30E9; F10 error message code is 12C405.


Which of both systems is better?

Actually – these systems are not even comparable. EDIABAS is much more “powerful”, reading BMW error messages with diagnostics equipment, which supports OBD-II protocol, is a sign of a very low qualification.


What are the advantages of EDIABAS?

  • all important modules (DME/DDE, DTC etc.) have several error messages lists (typically: also History/Shadow list, but could be also, for example, Info list). OBD-II see’s only Error list, other lists are not visible;
  • BMW cars can have even 30 .. 40 .. 50 electronic modules, an only small part of modules (their error lists) are available via OBD-II. Error messages of more exotic modules are available only in EDIABAS system;
  • via OBD-II most “exotic” error messages are not visible (error messages, related to innovative technologies and solutions of BMW);
  • part of error messages, which in EDIABAS system are separated with separate meaning, the OBD-II system is replaced with one (unite) error message in OBD-II.


Additional functionality of EDIABAS:

  • in addition to each error message, wide information regarding obstacles, when the error message is recorded, is stored;
  • live data. Via EDIABAS system much higher amount of live data can be seen as via OBD-II;
  • activation units. EDIABAS allows to remotely manage (almost) all BMW hubs. Turn on; turn off; change parameters – all these functions are available via EDIABAS, bet – via OBD-II – are not. These units are intended for manual testing of the functionality of modules;
  • test units. Test units are intended for automatical testing of the functionality of modules;
  • servicing. EDIABAS intends reseting of service intervals of all systems (CBS), deleting and changing of different kinds of settings (adaptations, etc.), change of parameters (for example: type of battery, change of capacity, changing the time of welcome light, etc.), change of configuration (set of car, configuration settings of units);
  • possibilities of coding and programming of a car (software updating).


As if so simple topic as the error message code – turns out, it’s not so simple at all! Here, what kind of information is stored by BMW E60 in case of DME error message (INPA freeze frame):

Freeze-frame of the error message (../F4/F1/F3)

(1) Name/Short description

(2) The error code in Dec

(3) The error code in HEX

(4) Detailed description

(5) Current status: active/passive

(6) Status of MIL

(7) Odometer readings

(8) Additional information

(9) The counter of events (>1 for a sporadic problem)


I believe it’s clear for everyone – such error description is much more valuable than simple code.


Which diagnostic tools support work with EDIABAS?

  • Modic 2; Modic 3 – for very old cars;
  • GT1+DIS/CIP/SSS – for older cars;
  • INPA (WinKFP, NCS; tool32);
  • ISTA D/+/P.


If the diagnostics specialist starts to call out the OBD-II error message codes – change the diagnostics specialist!

Even more – diagnostics is NOT simply reading the error message codes! Error message code reading is just several % from diagnostics! Most part of diagnostics contains from performing test and activation blocks, live data analysis. Only all these procedures together allow to identify damaged component and define “curing” scenario!


Note: part of apps, intended for smartphones, use EDIABAS data, for example: Carly, ProTool, Launch. True thou, diagnostics abilities are much weaker than INPA and ISTA D/+. Other apps, for example: Carista, Klavkarr, etc. – don’t have access to EDIABAS information at all.