BMW fault code 2A82 / P0012 (N54, N55): intake VANOS position — the solenoid code that hides a cheap fix
2A82 (SAE P0012) means the intake VANOS unit failed to reach its commanded position in time. Factory conditions, the solenoid-screen story, and when it's worse.
2A82 is the intake-side VANOS position code (SAE P0012 — camshaft timing over-retarded, bank 1): the DME commanded an intake-cam position, the VANOS unit didn't trail the specified value within the allowed period, and the fault memory got an entry. On N54/N55 it travels with rough idle, lazy response, and occasionally misfire codes that make you chase the wrong system.
What the factory document says
ISTA · factory document2A82 / P0012 — VANOS intake (factory fault doc)Opens in your account's service knowledge — sign-in required.Enablement conditions are broad — system voltage above 10 V, engine temperature between 0 °C and 110 °C, start completed, engine running — so the code can set almost any time the engine is warm and running. The factory's listed potential problem sources are exactly two: extreme contamination on, or seizure of, the VANOS solenoid valve and stiction or defect in the VANOS assembly. The test plan is equally terse: check the solenoid for contamination; on severe contamination, remove the filter screen with tab; install a new solenoid valve if needed.
What usually actually causes it
Community ranking on N54/N55, paraphrased:
- **A gummed-up VANOS solenoid.** Oil sludge in the screen or spool slows the unit until it misses the position window. This is the overwhelmingly common case — the fix is a [solenoid service or swap](../vanos-solenoid-service-guide), not a timing job.
- **Oil quality and level.** These units are hydraulically actuated; old, thin, or low oil produces the same slow response. An oil change fixes a surprising share of "VANOS codes."
- **Worn VANOS unit** — internal seals and vanes tired out. That's the "stiction or defect" the factory doc names, and it's the expensive answer you only reach after solenoids and oil are ruled out.
- **Timing components** — a stretched chain or failing tensioner makes correct position unreachable. Usually arrives with [2A87](../fault-code-2a87) and cold-start rattle, not alone.
The fix path
- Cheapest first: oil and filter, correct spec and level, then clear and drive.
- Persists → [service or replace the solenoids](../vanos-solenoid-service-guide); swapping intake/exhaust solenoids between positions is the diagnostic move — if the code changes to 2A87, you found it.
- Codes for *both* banks or both cams together, plus cold rattle → chain/tensioner inspection, not solenoids.
- Watch actual vs target cam position while logging — see [reading your datalog](../reading-your-datalog) — the lag is visible before the code sets.
- ReferenceBMW fault code 2A87 / P0015 (N54, N55): exhaust VANOS mechanism — the cam-position code with narrower conditions
- GuidesVANOS solenoid service: replacement, cleaning, and the misfire codes
- GuidesReading your datalog: RPM, boost, AFR
- GuidesSpark plugs and coils: the N54's maintenance heartbeat, factory torques and gotchas