BMW fault code P0300 / 29CC (N54, N55): random misfires — what it means, what actually causes it
P0300 (BMW hex 29CC) means the DME detected combustion misfires on two or more cylinders. Factory conditions, honest cause ranking, and the fix path for N54/N55.
P0300 is the DME saying "cylinders are missing combustion and it isn't isolated to one." BMW logs it as 29CC, and the factory document is specific about the trigger: a combustion miss on at least two cylinders, counted within 200 crankshaft rotations and weighted by engine speed and load — not a single hiccup at idle.
What the factory document says
ISTA · factory document29CC / P0300 — Combustion misfires, several cylinders (factory fault doc)Opens in your account's service knowledge — sign-in required.The monitoring runs the combustion-consistency measurement continuously between roughly 450 and 7,000 rpm (higher than the single-cylinder window), with system voltage above 10 V and ambient pressure above 740 hPa. The listed possible problem sources are short and honest: ignition coils, spark plugs, ignition cables, injectors, DME. MIL comes on (ID 34); on UDS cars EML can join it (ID 29). What the doc doesn't spell out — but every N54/N55 owner should know — is that "several cylinders" misfiring has a strong pattern bias on these engines.
What usually actually causes it
In shop order of likelihood on N54/N55, from the community's accumulated scar tissue (paraphrased, not quoted from any forum):
- **Worn spark plugs or a weak coil** that finally gave up across more than one hole — often right after a pull or a cold morning. The cheapest thing to rule out first.
- **Carbon-fouled intake valves** strangling airflow on multiple cylinders at once. Direct injection means no fuel washing the backs of the intake valves; 60–90k miles of soot looks a lot like "random" misfires.
- **A boost leak or failing charge pipe** leaning the mixture out under load — misfires that only appear on pulls are a breathing problem, not an ignition one.
- **Injector issues** — an N54 PIE-index injector drifting, or a coil pack cracked and arching to the valve cover.
- **Low fuel pressure or a tired HPFP** starving several cylinders simultaneously under load.
The discriminator is when: constant at idle points at plugs/coils/carbon; under load only points at fueling and boost.
The fix path
- Start with [spark plugs and coils](../spark-plug-and-coil-guide) — swap coil to another cylinder and see if the miss follows. The factory test for the single-cylinder version (29CD) is exactly this move-parts test, and it's the right first move here too.
- Idle-only, no-part-moves misfires on a high-mileage car → [walnut blasting](../walnut-blasting-guide) before parts-cannoning ignition.
- Under-load misfires → [log the car](../reading-your-datalog): fuel pressure and AFR alongside the misfire counters tell you which family you're in, and [MHD](../mhd-datalogging) reads the counters per cylinder.
If one cylinder dominates the counters, you have P0301 / 29CD — same family, narrower search.
- ReferenceBMW fault code P0301 / 29CD (N54, N55): cylinder 1 misfire — the factory test path and the honest causes
- TroubleshootingMisfire triage the factory way: coils, plugs, injectors, compression — in order
- GuidesSpark plugs and coils: the N54's maintenance heartbeat, factory torques and gotchas
- GuidesWalnut blasting and intake valve cleaning: the GDI carbon job, factory view
- GuidesDatalogging with MHD: channels, pulls, and sharing