What does the P105B code mean?
The P105B is a P1xxx powertrain diagnostic trouble code. Its official definition is “Variable Valve Timing (VVT) Control Module — Internal Fault, Current / Voltage Too Low” (also documented as Internal Control Module VVT Error, Voltage Too Low).
The P105B belongs to the P1xxx group, which means it is Manufacturer-Specific (OEM-Defined) — not an SAE/ISO standardized generic code — and its documented home is almost exclusively BMW & MINI vehicles equipped with the Valvetronic/VVT system (N52, N53, N54, N55, B58 and related variants). The VVT/Valvetronic system uses an electric servomotor driven by the DME/ECM to rotate an eccentric shaft, which adjusts intake-valve lift continuously for efficiency and throttle response. The DME monitors voltage and current on the high-side/low-side driver transistors that power this motor. When the system sees voltage or current drop below the calibrated minimum — meaning the motor isn’t getting enough drive power — it sets P105B, illuminates the Check Engine Light (MIL), and typically shuts down Valvetronic operation as a protective measure. This “too low” condition most often points to low system voltage reaching the motor, an open/high-resistance circuit, or a driver-stage problem inside the module. Because this is a manufacturer-specific code, the first thing you need is a capable vehicle code reader that can talk to the BMW DME and display the OEM-specific description plus freeze-frame data, since a generic P-code reader may only show “P105B — Manufacturer Contr.” with zero usable context.
Symptoms of Error Code P105B
- Check Engine Light (MIL) / Service Engine Soon light is ON (solid).
- Noticeable loss of power — the car may feel “flat,” accelerate slowly, or run in a reduced-performance mode where the DME locks the eccentric shaft at a default lift and opens the throttle plate wide to keep the engine running.
- Rough or unstable idle, stalling right after cold start, or hard starting (especially if a weak battery is the root cause).
- Hesitation or jerkiness during light-throttle transitions because Valvetronic lift is no longer being modulated.
- Decreased fuel economy once the system defaults out.
- You may also see companion Valvetronic/VVT codes (P1055, P1057, P105A, P1059, P105C etc.) depending on the sequence of faults.
- If you scan with a basic code reader that only reads generic P-codes, it may show the number but not the real meaning — you need an obd2 scanner with BMW/MINI OEM-profile support to see DME text and Valvetronic angle data.
- On a battery/charging-related trigger, you may also see P0562 (System Voltage Low) or battery/alternator warnings alongside P105B.
Main Causes of Error Code P105B
- Low battery or charging-system problem (the #1 trigger in real-world shops): weak battery, bad cell, loose/corroded battery terminals, or an alternator not holding voltage — when system voltage sags below roughly 12 V while the DME tries to drive the Valvetronic motor, P105B sets.
- Open circuit or high-resistance connection in the VVT/Valvetronic motor feed: corroded fuse box terminals, tired relay contacts, or poor pin fit at the motor connector so the motor literally can’t get enough current.
- Damaged wiring between the DME and the servomotor — chafed wires, pinch points near the valve cover, or oil-soaked/burnt insulation increasing resistance.
- Oil-contaminated or corroded servomotor connector — sludge inside the plug disrupts the control signals and reference voltages the DME expects to see.
- Worn or high-resistance Valvetronic servomotor windings (internal degradation making the motor draw incorrectly / not respond to drive commands).
- Binding eccentric shaft / excessive mechanical drag in the Valvetronic mechanism — if the shaft is stiff from sludge or wear, the motor struggles to move it and the circuit behavior drops out of expected range.
- Rare: DME/ECM internal driver fault (low-side driver not switching correctly).
How to Diagnose Error Code P105B?
- Pull the right data first. Hook up a car scanner or BMW-capable scan tool and save ALL stored codes plus freeze-frame. If P0562/P0563 or battery/alternator codes are present alongside P105B, solve the charging issue first — a surprising number of P105B cases turn out to be nothing more than a weak battery or crusty terminal clamp.
- Battery & charging system check (do this before touching the motor). Measure battery voltage at the posts: ~12.6 V engine off is healthy resting voltage. Start the engine and measure running voltage at the battery — should be ~13.8–14.8 V. Wiggle the battery terminals while watching voltage; if it jumps or drops, clean and retorque. Load-test the battery if it’s older than 4–5 years.
- Fuse & power-feed check. Locate the VVT/Valvetronic fuse and relay (BMW E-box or under-hood carrier). Visually inspect the fuse element, then measure voltage at both sides of the fuse with the key ON — you should see system voltage on the supply side and the same on the load side. If the load side is significantly lower or drops out, you have a high-resistance feed problem (corroded fuse holder, bad relay, loose terminal).
- Visual inspection of the motor connector & harness. Locate the Valvetronic servomotor on the cylinder head. With the battery negative disconnected:
- Unplug the servomotor connector — is there oil inside? Green/white corrosion? Backed-out pins? Cracked latch?
- Trace the harness a few inches each direction for rub-through, melted spots, or pinch damage near valve cover edges.
- Check the valve-cover gasket — if oil is flooding the plug, that leak must be fixed regardless.
- Resistance/continuity checks (DMM). Key OFF, connector unplugged. Measure resistance across the motor terminals per factory spec. An OL (open = infinite resistance) tells you there’s a break in the winding or feed. Compare to Bank 1 if applicable or a known-good range.
- Clear & verify. After any repair, clear the code with your scan tool, perform the BMW Valvetronic relearn if the motor or cover was disturbed, and confirm the light stays out across a full drive cycle.
Possible Causes and Diagnostic Methods
| Possible Cause | How to Check? |
| Low battery / charging system / poor terminal contact (most common root) | Measure resting voltage (~12.6 V) and running voltage (13.8–14.8 V) at the battery posts. Load-test battery. Clean/retorque terminals. Fix alternator/regulator if output is low. |
| Open/high-resistance feed (corroded fuse/relay, poor pin fit at motor plug) | Measure voltage drop across VVT fuse and relay with key ON. Inspect fuse box terminals for corrosion. Reseat/replace fuse & relay as needed. |
| Oil-contaminated or corroded servomotor connector | Unplug, inspect pins for sludge/oxidation. Clean with contact cleaner, reseat with dielectric grease. Fix valve-cover gasket leak if present. |
| Wiring damage (chafe/pinch near valve cover edge) | Trace loom from DME area to head. Continuity-check each conductor end-to-end; wiggle test while watching for jumps. |
| Shorted/worn motor windings or binding eccentric shaft (excess drag) | Measure winding resistance per BMW spec; compare to known-good. If motor checks OK, feel shaft rotation by hand (motor removed) for binding/hard spots. |
| DME/ECM internal driver fault | Only after battery, feeds, grounds, connector, and motor all check good. Needs dealer-level checks with a professional vehicle diagnostics tool running BMW test plans. |
Tools needed: A vehicle code reader / obd2 scanner with BMW/MINI DME access (ISTA or equivalent aftermarket), digital multimeter (DMM), battery load tester or charger, socket/wrench set for valve cover & motor, torque wrench, contact cleaner, dielectric grease, and the factory repair manual values.
How do I fix error code P105B? (Solutions to the Problem)
Simple Fixes
- Charge and test the battery + clean terminals first. This alone clears a surprising number of P105B cases. Clean both battery posts and clamps to bright metal, retorque to spec, charge the battery if it sat low, and re-scan with your car scanner. If P105B was voltage-induced, it won’t return once the battery holds a healthy charge.
- Inspect and reseat the motor fuse/relay. Pull the VVT fuse and relay, clean green oxidation off the terminals, reseat firmly. Verify stable voltage on both sides of the fuse with the key ON.
- Clean and reseat the servomotor connector + fix the oil leak. If the plug is full of sludge but the motor itself still tests OK, depower, unplug, clean terminals, reseat with dielectric grease, and fix the valve-cover gasket if it is weeping onto the connector. Clear with a vehicle code reader and re-evaluate.
In-depth Diagnosis and Repair Solutions
- Valvetronic servomotor replacement + valve-cover gasket. If the windings read open (OL) or out of spec and the feeds all check good, replace the motor with an OEM or OEM-equivalent unit. Torque the cover and motor bolts to factory values. After install, use a vehicle diagnostics tool to run the Valvetronic limit-stop / angle relearn procedure — without this step the system will flag again.
- Harness repair / pigtail replacement. If wires are chafed, pinched, or oil-soaked and resistive, cut out the bad section, solder + adhesive-lined heat-shrink (no Scotch-Loks, no bare tape in an engine-bay harness), reroute away from sharp edges and heat, and reverify continuity.
- Alternator/regulator repair. If battery is good but running voltage stays under ~13.5 V, the alternator voltage regulator or the unit itself is the real culprit. Fix charging first; P105B will follow the voltage back to normal.
- DME/ECM driver evaluation. If battery, feeds, connector, wiring, and motor all check out and P105B returns the instant the DME tries to drive the motor, the internal driver may be faulty. Dealer/shop territory: requires OEM-level scan software to confirm.
Fix faults based on symptoms
| Symptom / Diagnostic Finding | Recommended Solution |
| Battery resting voltage 12.0 V or less; slow cranking; terminals green/crusty | Clean/replace battery terminals, charge or replace battery, verify charging voltage 13.8–14.8 V. Clear P105B with an obd2 scanner and confirm it stays gone. |
| Fuse visually OK but load side reads low / voltage drops across relay contacts | Clean/replace corroded fuse/relay terminals. Verify stable feed before condemning the motor. |
| Motor connector full of oil; pins etched; valve cover seeping | Replace valve-cover gasket, clean & reseat servomotor connector with dielectric grease. Clear codes and test-drive. |
| Motor windings read OL (open) or out of spec | Replace Valvetronic servomotor with OEM-spec part. New valve-cover gasket while in there. Run DME relearn with a car scanner afterward. |
| Motor, harness, voltage all verified good, yet P105B returns instantly every cycle | Suspect DME internal driver fault. Needs professional diagnosis with a vehicle diagnostics tool that can run BMW VVT output tests. |
Common Error Code P105B in Vehicles
BMW & MINI (only real home of this code): P105B is overwhelmingly a BMW/MINI Valvetronic fault. Engines affected include the N52 (E90 325i/328i, E60 525i/528i, E83 X3), N53, N54 (135i, 335i, 535i, Z4 35i), N55 (E70 X5 35i, F30 335i/435i, F10 535i), and B58 (B58TU variants). The DME monitors voltage/current on the Valvetronic servomotor driver; when it drops below calibrated limits — most often because battery voltage sagged too low, a feed fuse/relay has gone high-resistance, or the motor circuit is open — P105B is set and the system defaults to throttle-plate-only operation. A car scanner that can read BMW DME freeze-frame and run the Valvetronic limit-stop learn is the right tool for this job. The single most overlooked fix: a weak battery or filthy battery terminal that drops system voltage just enough under crank/load to trip the VVT driver monitor.
Other brands (Ford, Toyota, Honda, GM, Stellantis, etc.): P105B has no standardized meaning outside BMW/MINI. If a generic database tries to assign it a universal definition, that is a cataloging cross-wire. Always confirm the definition through your specific car’s OEM scan data — not a one-size-fits-all internet chart — before buying anything.
P105B Frequently Asked Questions
Is P105B a generic OBD-II code?
No. P105B is a P1xxx Manufacturer-Specific code — the “1” in the second digit marks it OEM-defined, not SAE-standardized. A basic P-code reader may only show “Manuf Specific.” You need an obd2 scanner with the correct BMW/MINI DME profile to see what the ECU actually means.
Can I keep driving with P105B?
In most cases the car will still run because the DME falls back to throttle-plate control — so it won’t strand you roadside instantly — but you are driving with Valvetronic disabled: noticeably worse throttle response, reduced power, rough cold idle, and poor MPG. More importantly, if the root cause is a dying battery or failing alternator, you risk being left with a no-start. Get it diagnosed soon.
Will disconnecting the battery clear P105B?
It may kill the MIL for a cycle, but if the root cause (weak battery, open feed, damaged motor, poor terminal) is still there, the DME will set it again the moment it tries to drive the motor. Use a proper vehicle code reader to clear it only after the root cause is actually fixed — and if a Valvetronic relearn is required, the tool has to do it.
How much does fixing P105B cost?
- Diagnosis / BMW DME scan: $80–$180 (often rolled into the repair).
- Battery + terminal cleaning / replacement (the cheapest win): $0–$350 depending on whether you just need a clean-up or a new battery.
- Fuse/relay/connection cleanup: $80–$250.
- Valvetronic servomotor replacement + valve-cover gasket: $650–$1,400 depending on engine access and labor rates.
- DME repair/replacement (rare): $1,200–$2,500+ and only after everything else is ruled out.
What should I not do?
Don’t just clear the code and hope — and especially don’t assume you need a $900 servomotor before you’ve put a multimeter on the battery posts. “Voltage Too Low” is very often a power-supply problem, not a bad motor. Ten minutes checking battery voltage and fuse-drop with a DMM and a decent car scanner saves hundreds in wrong guesses.
P105B Related OBD2 Errors
- P105A — VVT / Valvetronic Control Module — Internal Fault, Current Too High
- P1055 — VVT Control Module Performance / related driver fault
- P1057 — VVT Control Module — Circuit Malfunction / Internal Fault
- P1058 — VVT Control Module — Supply Voltage High Input (Bank 2)
- P1059 — VVT Control Module — Supply Voltage Low Input (Bank 2)
- P105C — VVT / Valvetronic Position Learning Not Complete
- P0562 — System Voltage Low
- P0563 — System Voltage High
- P0014 / P0024 — “B” Camshaft Timing Over-Advanced (often secondary to VVT shutdown)
Important! P105B means the DME detected voltage/current too low on the Valvetronic servomotor driver — and in the majority of real-world cases, the actual villain is upstream: a weak battery, dirty/corroded battery terminals, a tired alternator, or a corroded fuse/relay contact starving the motor of clean power. Start with the cheapest checks first. If you are not comfortable measuring live voltage around a running engine or working inside the valve-cover area, let a BMW/MINI shop handle it. Capture the freeze-frame with a quality vehicle diagnostics tool before unplugging anything, verify the definition through BMW OEM data for your exact engine, and never skip the DME relearn when the motor or cover has been disturbed.


