top of page
  • Justin Schaub

HOW TO CHECK ENGINE CODES ON AN E30, E31, E32, E34 & E36 (STOMP TEST)

Updated: Feb 21, 2023



In 1996 BMW emissions standards changed and manufacturers adopted OBD2. OBD stands for on board diagnostics. With the change to OBD2 we can now plug in a scanner tool and read check engine light codes. This is a great way to diagnose any problems you are having. But what if you do not have an OBD2 BMW? Can you still check your engine codes?


The answer is yes and no, so let’s dive into what you need to know.


To check the engine codes on your BMW, you will have to perform what they call a stomp test. Before we get into how to perform that, you have to understand that BMW used two types of Bosch engine management systems. This is Bosch Motronic M1.1 and M1.3. Early versions (M1.1) used a ECU with a 153 on it. Unfortunately you can not perform a stomp test with this ECU. Later BMW ECUs used a 173, 351, 380, 382, 524, 525, and 526 labels. These are the ECUs you will need. The 3 digit number we are referring to is the last 3 numbers on the ECU label.



If you own a BMW with a 153 ECU, you can swap in a 173 ECU and it will still work. We actually recommend doing this as you can not only perform a stomp test, but they are more reliable and have less failure points due to a single circuit board vs a dual. Swapping a 153 label for a 173 label is completely plug and play.


This stomp test will also work on E30, E31, E32, E34 & E36 BMWs.


After you determined you have a 173 or later ECU, let’s learn how to perform a stomp test.

  1. Turn the ignition to ON but do not start the car

  2. Fully depress the accelerator pedal, then completely release for between 0.5 and 1.0 seconds. Repeat this a total of 5 times within 10 seconds.

  3. The check engine light will flash once to you know you entered the diagnostic mode

  4. The check engine light will now flash and pause in a sequence of 4 numbers



To understand the flashes it is actually more simple than you think. A flash and a pause means 1. A flash flash pause is 2. A flash flash flash pause is 3, and so on.


Let me show you an example:

  1. Flash pause

  2. Flash flash pause

  3. Flash flash pause

  4. Flash flash flash flash flash pause

This sequence would give you engine code 1225


If you car has more than one engine code, it will start to display the second code right after the first. When it is over, it will go ahead and repeat the first code.


If there are no faults, it will flash the code “1444” (for 4, 6, and 8 cylinder engines) or “2444” (for 12 cylinder engines).


We recommend keeping a pen and paper handy as the flashes can go quite quickly.

If you have a V12 car like the 750i, 750iL, 850i. They have two banks of cylinders, and each one has its own ECU. To access the second ECU complete the same steps as above, but press gas pedal 6 times (not 5). Each code for the second bank will begin with the number 2.


I will note that unlike OBD2 scanner tools, you are not able to clear stomp test codes unless you unplug the ECU for 15 minutes or fix the code's issue.


The engine codes are also not as descriptive as OBD2, so it will take a bit more work to diagnose your car, but at least it will get you in the right direction.


Now that you have the engine codes, how do you determine what they correspond to? For this you will need a cheat sheet. We recommend you bookmarking this blog so you always have these codes handy.


Here are a list of codes for you:


1211 DME control unit did not pass self-test. Disconnect from power and reconnect after 10 minutes. 1212 Oxygen (O2 or Lambda) Sensor 2 (cylinders 4–6) 1213 Lambda Control System Bank 2: The ECM has been unable to maintain Lambda (fuel mixture or fuel trim) on Bank 2 (cylinders 4–6) of the engine. 1215 Air mass/volume sensor 1216 Throttle potentiometer 1218 “Output Stage, Group 1” 1219 “Output Stage, Group 2” 1221 Oxygen (O2 or Lambda) sensor 1222 Lambda Control System Bank 1: The ECM has been unable to maintain Lambda (fuel mixture or fuel trim) on Bank 1 (cylinders 1–3) of engine. 1223 Coolant temperature sensor 1224 Intake air temperature sensor 1225 Knock sensor 1 1226 Knock sensor 2 1227 Knock sensor 3 1228 Knock sensor 4 1231 Battery voltage/DME main relay 1232 Throttle switch—idle 1233 Throttle switch—WOT 1234 Speedometer A Signal 1237 A/C compressor cut off 1241 False air mass sensor code—update the EPROM and replace the idle valve 1242 A/C compressor 1243 Crankshaft pulse sensor 1244 Camshaft sensor 1245 Intervention EGS 1247 Ignition secondary monitor 1251 Fuel injector 1 (or group 1) 1252 Fuel injector 2 (or group 2) 1253 Fuel injector 3 1254 Fuel injector 4 1255 Fuel injector 5 1256 Fuel injector 6 1257 Fuel injector 7 1258 Fuel injector 8 1261 Fuel pump relay control 1263 Purge valve 1264 Oxygen (O2 or Lambda) heater 1265 Fault lamp (check engine) 1266 VANOS 1267 Air pump relay control 1271 Ignition coil 1 1272 Ignition coil 2 1273 Ignition coil 3 1274 Ignition coil 4 1275 Ignition coil 5 1276 Ignition coil 6 1277 Ignition coil 7 1278 Ignition coil 8 1281 Control unit memory supply 1282 Fault code memory did not pass self-test. Disconnect from power and reconnect after 10 minutes. Check charging system for over-voltage. 1283 Fuel injector output stage (can be set by a faulty ignition coil) 1286 Knock control test pulse 1444 No failures


Diagnosing your BMW is a great skill to know and will keep your car running healthy.


If you do not have a Bentley service manual, we suggest you pick one up for your model. It's a great book with step by step instructions on how to remove and replace just about anything on your BMW, as well as troubleshooting suggestions.


Purchase Bentley manuals on Race German: CLICK HERE



4,653 views0 comments

Recent Posts

See All
bottom of page