BMW Codes
If you are reading codes from specific BMW modules, you may find you get a code
you don't recognise, or one that doesn't appear in a search. This is because many fault code tables, like our OBD code list
are showing the OBD2 generic codes. The code reader or diagnostic tool will ask the module for any stored codes, and it will receive a number in hex format.
Hex format is a hexadecimal number, used by computers to count in base 16, so there are 16 numbers before "10", instead of our ten. The
extra "numbers" in hex are A,B,C,D,E and F. 0-15 of our familiar decimal system is 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E and F in hexadecimal. This means if you see an "11", it could be
11 in hex (11h) which is our decimal 17!
Make sure you are looking at the correct system, sometimes a code reader will convert to decimal (our normal 0-10 system) and it may be confusing.
To search for your code, follow the list below, or press ctrl+f to search within this page. Clicking the titles of the descriptions
will jump you to the correct section.
All codes from DDE4 onwards are listed as the HEX value. All codes before that here are in decimal. If you have a Hex code from your scan tool, but need to find it in a Decimal list, use the Converter below.
Convert Hex To Decimal |
BMW DME M1.1, M1.2, and M1.3
The BMW DME M1.1 (and similar, 1.2 and 1.3) is an early Bosch Motronic ECU, used on all of the 6 Cylinder BMWs up until 1990, and a few more after that. M1.1 and M1.3 was used on the M20, M30 and M40 engines, whilst M1.2 was used on the S38 and M70, which are the early E34 M5 engines and the early V12s.
BMW DME M1.7, M1.7.1, M1.7.2, M3.1 and M3.3
The Motronic 1.7 and subfamilies, and the M3 and it's variants are the next generation of BMW ECUs. The M1.7 was used on the M40, M42 and M70, the M1.7.1 was used solely for the S70, used in the BMW 850CSi. M1.7.2 was used for the M42 and M43 4 Cylinders.
The M3.1 is a 6cyl ECU, used on the early M50 24v engines without VANOS. The M3.3 family were used to run the later 3.8 litre S38b38, the S50 3.0 M3, and the M60 V8s. M3.3.1 included VANOS control, and is used on M50 engines with VANOS, introduced to the E34 and E36 in 1992.
BMW MS40
MS40 was a new ECU for BMW, manufactured by Siemens instead of the previous Bosch Motronics. BMW split the M50 24v engines and used Siemens for some of the 2.0 litres, and Bosch continued on with the 2.5l. MS40.0 is a rare ECU used on non VANOS 2.0l, and MS40.1 introduced VANOS control.
MS41, MS42 and MS43
The next generation Siemens MS ECUs introduced many of the OBD2 features. This includes Catalytic Converter monitoring and Long / Short term Fueling and Ignition Adaptation. The MS41 was used on the M52 series of engines, MS42 on the M52TU series, and MS43 on the M54'S. The OBD2 P codes fault protocol was not activated in European markets on this group, as currently it was not required by law.
MSS50
The MSS50 is a special ECU designed solely for the European E36 M3 3.2. Designed by Siemens, it integrates full Vanos control for both Intake and Exhaust Cams inside a single ECU, unlike the previous M3.3 which required a separate VNC Vanos Controller
MSS52 and MSS54
The MSS52 is an M Power ECU designed to run the E39 M5, the Z8 Roadster, and also the Wiesmann Roadsters. The MSS54 is used on the E46 M3 and on some Z3Ms. The system uses an Electronic Throttle to accurately control Air intake instead of the more common Cable throttles used on earlier vehicles
DME M5.2 and M5.2.1
DME M5.2 and M5.2.1 are Bosch ECUs, used on the M44 4cyl engine, and the M62 V8, and the M72 V12
BMS43 and BMS46
The Bosch BMS46 is a Hybrid ECU, created from a joint effort with Siemens, and is used in later M43 engines used in the Z3 and E46 series.
DME 7.2
The Bosch DME 7.2, also known as ME7.2, can be found on a number of V8 Petrol engines, used in the 5 and 7 Series amongst others. It uses Torque modeling to control the engine torque output depending on Throttle Pedal Position.
DME 9
DME 9 or ME9 is used on Valvetronic BMW engines. Valvetronic removes the need for a throttle butterfly, passing air control directly onto fully controlable valves.
DDE 1
The first series of Diesel engines used the DDE1 control unit, and was found in the M21 powered E30 324d and td, and the E28 524d and 524td. It also found its way into a few rare Lincoln Continentals.
DDE 2 and DDE 2.1
DDE stands for Digital Diesel Electronics, and these were used on BMW's Diesel engines. DDE2 is used on M41 and M51 engines. DDE 2.1 uses an updated Air Mass Meter with an Internal Air Temperature Sensor, whilst DDE2 has a separate sensor in the manifold.
DDE 2.2
This is an Updated version of the previous DDE 2.1, and was introduced in 1995. This system was used on the M51TU engines.
DDE 3
DDE 3 is the BMW name for the ECUs used on the M47 range on Diesel engines, also known as he Bosch EDC15. These are 4 Cylinder diesels, used in the E46 320d, and uses Common Rail Injection. Common Rail systems use a high pressure fuel rail with diesel injectors, as opposed to the mechanical injection systems, or the PD (Pumpe Düse) system where each injector also acts as a high pressure pump.
DDE 4 and DDE 4.1
DDE4 is another Common Rail system, using the EDC15 range of Bosch ECUs. DDE4 is seen in the M57 range of 6 Cylinder engines, from 2.5 to 3.0l displacement, and the DDE4.1 was used in a twin Master / Slave arrangement in the M67 V8 diesels, with each ECU controlling one bank of the engine.
DDE 5, DDE 6, DDE 6.2 and DDE 6.3
DDE5 is another update to the M57 and M67 diesel engine control range. DDE5 is a second generation Common rail system with Rail pressures increasing from 1350bar in DDE4 to an amazing 1600bar, and is also known as Bosch EDC16, and complies with the European EU3 emissions standard. DDE 6 is used on M57 and M67 engines from 2005, using the same 1600 bar Common Rail System, and now meeting the European EU4 emissions standard.
Body Modules
ABS 1 Teves
The first BMW ABS system, This was a 3 channel system, controlling braking to the front wheels, and a single line for both rear wheels. The wheel speed info could be passed via data lines to traction control systems, which could determine if the vehicle speed signal given from the rear driven axle did not match with the front wheel speed signals and request torque reduction intervention from the ASC (Anti Skid Control) throttle body.
ABS 2 Teves
The updated version of BMW's ABS system, this was more advanced. Improvements include a 4 channel system for independent rear wheel braking, which allowed a more active ASC system. With individual braking, not only could a torque reduction be requested via the ASC secondary throttle body, but independent wheel braking could be used to control individual wheel slip as part of a stability program.
ABS 3 / DSC
The ABS 3 system added yet more features to the previous systems, such as individual wheel speed comparison over long terms. Gathering the wheel rotation data, and comparing it is accurate enough to identify differences in tyre tread wear, but its main use was as part of a tyre pressure monitoring system. Decreases in the rolling circumference of the tyre from tyre deflation could be monitored as a passive system to identify low pressure in Run Flat Tyres which would often be hard to notice otherwise.
BMW Code Database
DME M1.1, M1.2 and M1.3
DecimalReturn to ECU list
DME M1.7, M1.7.1, M1.7.2, M3.1 and M3.3
DecimalReturn to ECU list
MS40
DecimalReturn to ECU list
MS41, MS42 and MS43
DecimalReturn to ECU list
DME MSS50
DecimalReturn to ECU list
DME MSS52 and MSS54
DecimalReturn to ECU list
DME M5.2 and M5.2.1
DecimalReturn to ECU list
BMS43 and BMS46
DecimalReturn to ECU list
DME 7.2
DecimalReturn to ECU list
ME 9
HexadecimalReturn to ECU list
DDE 1
DecimalReturn to ECU list
DDE 2 and DDE 2.1
DecimalReturn to ECU list
DDE 2.2
DecimalReturn to ECU list
DDE 3
HexadecimalReturn to ECU list
DDE 4 and DDE 4.1
HexadecimalReturn to ECU list
DDE 5, DDE 6, DDE 6.2 and DDE 6.3
HexadecimalReturn to ECU list
Body Modules
ABS 1
DecimalReturn to Body Module list
ABS 2
DecimalReturn to Body Module list
ABS 3
HexadecimalReturn to Body Module list