TL;DR

  • What: The complete list of OBD1 fault codes for the E36’s Bosch DME, from the Bentley manual, with what to check first for each.
  • Which cars: 1992–1995 E36s use OBD1. From 1996 the cars use OBD2, which needs an OBD2 scan tool and uses completely different codes.
  • Reading them: on US-spec cars, pressing the accelerator pedal fully five times within five seconds (ignition on) makes the Check Engine light blink the codes out. This feature was a US emissions requirement: many European-spec E36s have no Check Engine light, so the blink method may show nothing. There, read the codes with a BMW-capable diagnostic tool on the 20-pin connector.

Reading the codes with the accelerator pedal (US-spec cars)

This procedure is from the US-market Bentley manual. It needs a working Check Engine light in the instrument cluster, which many European-spec cars don’t have. Without one, use a diagnostic tool instead (see the OBD1 diagnostic setup guide). The code meanings below apply either way.

  1. Turn the ignition on (engine off).
  2. Press the accelerator pedal fully to the floor five times within five seconds.
  3. The Check Engine light stays on for 5 seconds, goes off, then comes on for 2.5 seconds and off again for 2.5 seconds. Then the codes start.
  4. Each code is four digits, flashed as groups of blinks. Code 1221 is one blink, a pause, two blinks, a pause, two blinks, a pause, one blink. Codes are separated by a 2.5-second pause.
  5. After the last code there is a 0.5-second flash and the light stays off.

To read them again, switch the ignition off and on, and repeat the five pedal presses.

Erasing the memory

  1. Read the codes until you get 1000 (a short blink, then the light stays off for a long time), meaning the end of the output.
  2. Then hold the accelerator pedal fully down for at least 10 seconds.
  3. Read the codes again and check for 1444: no faults stored.

Fix the cause before erasing: a code that comes back proves the fault is still there.


OBD1 fault codes (Bentley Table d)

“M3.3.1 only” codes exist only on the VANOS M50 (1993–1995). The 1992 non-VANOS M50 uses DME M3.1. See the DME pinout reference to tell them apart and to trace the wiring.

CodeMeaningWhat to check first
1211DME control moduleThe module failed its self-test. Check the module’s inputs (power, grounds) before suspecting the module itself.
1215Mass air flow sensorThe air flow sensor and its wiring to the DME
1216Throttle potentiometerThrottle position sensor resistance and wiring
1218Output stage, group 1 (M3.3.1 only)DME inputs and outputs
1219Output stage, group 2 (M3.3.1 only)DME inputs and outputs
1221Oxygen sensor 1The sensor’s output signal to the DME
1222Oxygen sensor lean/rich control limitIntake air leaks, or causes of a rich mixture
1223Coolant temperature sensorTest the coolant temperature sensor
1224Intake air temperature sensorTest the intake air temperature sensor
1225Knock sensor 1 (M3.3.1 only)Knock sensor and its wiring
1226Knock sensor 2 (M3.3.1 only)Knock sensor and its wiring
1231Battery voltage monitorBattery voltage, charging system and starter
1234Speed signal (M3.3.1 only)Wiring between the instrument cluster and the DME
1237A/C compressor cut-off (M3.3.1 only)DME inputs and outputs to the A/C system
1242A/C compressor signal (M3.3.1 only)DME inputs and outputs to the A/C system
1243Crankshaft position sensor (M3.3.1 only)Crankshaft position / rpm sensor and its wiring to the DME
1244Camshaft position sensor (M3.3.1 only)Camshaft position sensor and its wiring to the DME
1245Transmission control intervention (M3.3.1 only)Wiring between the DME and the automatic transmission module
1247Ignition secondary monitor (M3.3.1 only)Secondary voltage to the ignition coils and the coil wiring
1251Injector 1 (M3.1 and M3.3.1)Injector operation and the signal reaching it
1252Injector 2As above
1253Injector 3As above
1254Injector 4As above
1255Injector 5As above
1256Injector 6As above
1261Fuel pump controlFuel pump relay and the pump circuit
1262Idle speed controlIdle control valve and its signal
1263Evaporative (EVAP) systemThe EVAP purge valve
1264Oxygen sensor heaterOxygen sensor heater and its relay
1265Check Engine lamp (M3.3.1 only)The bulb and its wiring
1266VANOS (M3.3.1 only)The VANOS solenoid and the signal to it. See the M50TU VANOS guide
1267Air pump relay control (M3.3.1 only)Air pump relay and wiring, where fitted
1271Ignition coil 1 (M3.3.1 only)The coil and its wiring
1272Ignition coil 2 (M3.3.1 only)As above
1273Ignition coil 3 (M3.3.1 only)As above
1274Ignition coil 4 (M3.3.1 only)As above
1275Ignition coil 5 (M3.3.1 only)As above
1276Ignition coil 6 (M3.3.1 only)As above
1281DME memory supply (M3.3.1 only)The constant battery supply to the DME
1282Fault code memory (M3.3.1 only)DME inputs and outputs; the module may be faulty
1283Injector output stage (M3.3.1 only)DME inputs and outputs; the module may be faulty
1286Knock control test pulse (M3.3.1 only)DME inputs and outputs; the module may be faulty
1000End of code outputNothing to fix: all stored codes have been shown
1444No faults storedNothing to fix; this code must be present before the memory can be erased

Before chasing a code

Bentley’s basic checks for any driveability fault, worth doing before replacing parts:

  1. Intake leaks: cracked, loose or disconnected hoses and ducts, and loose clamps. Unmetered air causes lean running and sets the Check Engine light. A classic one is a split in the intake boot between the air flow sensor and the throttle body; a smoke test finds it quickly.
  2. Battery and grounds: battery in good condition, cables tight and clean at both ends, ground points tight and corrosion-free, harness connectors undamaged. See the ground distribution guide.
  3. Power and ground at the DME, including its main grounds.
  4. Fuses, and enough fuel in the tank. After running out of fuel, pressure takes a moment to build again.
  5. Spark: if the tachometer needle bounces while cranking, the ignition is probably working.

Idle speed, idle mixture and ignition timing are not adjustable on these engines. The DME adapts automatically within limits; when those limits are exceeded, it turns on the Check Engine light.


Tools

On US-spec cars the pedal method shows the stored codes. On cars without a Check Engine light, and for live data (sensor values while the engine runs), you need a BMW-capable diagnostic tool connected to the round 20-pin diagnostic connector under the bonnet. See the OBD1 diagnostic setup guide.

Standard OBD2 code readers don’t work on OBD1 cars.