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
Factory service document2A82 / P0012 — VANOS intake (factory fault doc)Se abre en el conocimiento de servicio de tu cuenta — requiere iniciar sesión.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, 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 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; 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 — the lag is visible before the code sets.
Can I drive with code 2A82?
The fault documents describe reduced cam-control operation, not a stop-the-car failure — but a control deviation over 20 degrees under load is nobody's idea of safe. Fix it before hard pulls.
2A82 or 2A87 — which side is which?
2A82 is the intake-side code (SAE P0012); 2A87 is the exhaust-side mechanism code (P0015) with stricter enablement gates. Swapping the intake and exhaust solenoids and seeing the code move to the other side is the cheapest test there is.
Will an oil change really fix a VANOS code?
Often, yes — the units are hydraulically actuated, and old, thin, or low oil produces the same slow response as a gummed valve. Oil and filter at the correct spec and level is the first rung of the fix path, then clear and drive.
- 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
- ReferenceThe code reader's companion: tools, codes, and what the data means