The E36 codes you'll actually meet:
- P0170 / P0171 (system too lean) — on the single-bank M52, almost always unmetered air after the MAF: a cracked CCV hose, split intake boot, brittle vacuum lines, a leaking intake O-ring, or a bad oil-filler cap or dipstick seal (a weak MAF or fuel pump can mimic it). Smoke-test the intake.
- P0300 with P0301-P0306 (misfire) — the last digit is the cylinder (P0301 = cyl 1 up to P0306 = cyl 6). Swap the coil, plug or injector to a known-good cylinder and re-drive: if the misfire follows the coil it's the coil; if it stays, suspect the injector or compression. P0300 on its own points to a vacuum/lean or fuel-delivery issue.
- P0128 (coolant below thermostat temperature) — almost always a thermostat stuck open, a known E36 weak point.