2A98moderate severityPowertrain
Camshaft Position Sensor, Intake, Correlation/Adjustment
on 2020 BMW i3 Range Extender · RWD
What this code means
The intake camshaft position doesn't match the crankshaft position within the VANOS adjustment range, similar to OBD code P0011. Usually caused by a stuck or worn VANOS unit or oil control valve rather than the sensor itself.
Symptoms
- Rough idle or stalling
- Reduced power and poor acceleration
- Check engine light on
Common causes
- Faulty intake VANOS solenoid/oil control valve
- Low or dirty engine oil
- Stretched or jumped timing chain
- Faulty intake camshaft position sensor
Diagnostic steps
- Read freeze frame and check oil level/condition
- Test intake VANOS solenoid resistance and operation
- Inspect timing chain for stretch or wear
- Verify camshaft sensor signal against crankshaft
🔌 Don't have a code reader?
Any of these will read and clear this code — pick by how deep you want to go.
Budget handheld~$40
ANCEL AD410 →
No-phone-needed handheld — reads, clears, live data, freeze frame.
✓ ANCEL official store
Serious DIY~$100
BlueDriver Pro →
Enhanced codes (ABS, airbag, TPMS) plus repair reports.
SHOP FAVORITEShop-grade tablet~$300
Autel MaxiCOM MK808S →
Bidirectional tests, service resets, all systems.
✓ Autel official store
Pro diagnostics$1,500+
Autel MaxiSys MS906 Pro →
Full-system pro platform — topology mapping, ECU coding, the works.
✓ Autel official store
As an Amazon Associate and Autel/ANCEL partner, OLP earns from qualifying purchases — how we link. This never changes the specs we publish.
Other Powertrain codes on this vehicle
29CC
Misfire Cylinder 1
29CD
Misfire Cylinder 2
29CE
Misfire Cylinder 3
29CF
Misfire Cylinder 4
29D0
Misfire Cylinder 5
29D1
Misfire Cylinder 6
29D2
Misfire Cylinder 7
29E0
Lambda Additive/Idle Adaptation Limit, Bank 1
29E1
Lambda Additive/Idle Adaptation Limit, Bank 2
29E2
Lambda Multiplicative Part-Load Adaptation Limit, Bank 1