Get The Analogue
Diagnostics · BMW E46

BMW E46 M54: Why does P0335 keep coming back after I replaced the crankshaft position sensor?

A repeatable test plan for an E46 M54 P0335 that returns after crankshaft sensor replacement, without guessing at another part.

By Chase Waters · · 7 min read

A P0335 that returns after a crankshaft position sensor replacement means I have not yet proved the whole crankshaft position circuit works. I would stop buying sensors and preserve the fault details, check whether the DME sees engine speed and synchronization while cranking, then test the connector, wiring, supply, ground, and signal before considering a mechanical target problem.

Why does P0335 keep coming back after I replaced the crankshaft position sensor?

The code names the circuit the DME is unhappy with. It does not prove that the sensor itself is the failed part. A new sensor can leave the same fault in place if the connector has weak terminal contact, the harness is damaged, the supply or ground fails under operating conditions, the signal does not reach the DME, or the sensor is not producing a usable signal.

That distinction matters on a recurring fault. In the owner thread that prompted this article, the owner reported replacing the sensor twice, including an OEM sensor, yet P0335 returned immediately while the engine was running. The same owner reported slightly longer cranking. Another participant described intermittent stalling with a sensor fault, but that report is one person's experience, not proof of what caused the original car's P0335.[1]

BMW's MS42/MS43 training material explains why the signal matters. The M54's MS43 uses the crankshaft position and engine speed signal for fuel pump and injector operation. The document describes a Hall-effect sensor and a toothed impulse wheel with a missing-tooth gap that lets the control module establish crankshaft position. It lists hard starting or long cranking, misfire, stalling, driveability trouble, and a warning light among possible complaints when this input is faulty.[2]

The practical lesson is narrow: diagnose an input system, not just the component named in a generic code description.

Save the evidence before clearing anything

I start by reading the car with a tool that can show BMW-specific fault information when available. Before clearing P0335, I save the full fault record and any conditions attached to it. That includes whether the fault is currently present, how the tool describes it, and what the available data showed during the event.

Next, I record the symptom in plain language. Does the engine crank but not start? Does it start after a longer crank? Does it stall hot, restart after cooling, or run normally except for the stored fault? A forum thread can show that these patterns occur, but it cannot identify the cause on another car.[1]

During a controlled crank, I check whether the scan tool reports engine RPM. If the tool provides a synchronization status, I save that too. RPM or synchronization data can guide the next test, but a generic data item is not a substitute for looking at the electrical signal when the evidence points there.

I also note battery condition and cranking quality. The BMW training document lists inadequate power and ground supply among the conditions that can produce no-start, long-crank, inaccurate diagnostic status, warning lights, and intermittent driveability complaints.[2] I do not use that list to declare a weak battery as the cause. I use it as a reason to keep the basic power state visible while testing.

Test the complete circuit in a useful order

I use the wiring information for the exact model, engine-management version, and production date. I do not copy pin numbers or voltage values from a forum post or a different BMW. The checks below are a sequence, not a list of likely parts.

  1. Inspect the installation. I confirm the sensor is seated correctly and its connector is fully latched. I look for backed-out terminals, spread terminal contact, corrosion, oil contamination, damaged insulation, tight bends, chafing, and routing that places the harness against heat or moving parts.
  2. Verify the replacement part. I confirm the installed sensor is a known-quality OE or OEM unit for the car. This does not prove the sensor is good, but it removes an avoidable source of uncertainty.
  3. Check supply and ground correctly. With the correct wiring data, I verify the sensor's supply and ground under the relevant operating condition. A voltage seen with the connector unplugged may not show how the circuit behaves when connected and cranking.
  4. Inspect the signal with suitable equipment. I use a scope and a test method appropriate for a Hall-effect circuit. I compare what is present at the sensor with what reaches the control module, following the correct wiring diagram and safe back-probing practice. This can separate a sensor or target issue from a harness or connector issue without inventing a universal voltage threshold.
  5. Test continuity only with the circuit safely powered down. If signal evidence points to the harness, I check the relevant wire end to end and check for unwanted connections, following service information. A continuity beep alone does not reproduce vibration, heat, terminal tension, or an operating load.

BMW training describes the crankshaft input as a digital square-wave signal created as the impulse-wheel teeth pass the Hall sensor.[2] That is why a scope is useful here: the question is not only whether a wire exists, but whether the DME receives a stable, correctly formed signal during the failure.

Move to the target only after circuit evidence

I do not jump from a second sensor to a damaged impulse wheel. A mechanical target or sensor-to-target relationship belongs later in the test plan because inspection may require more work and because connector, harness, supply, ground, and signal-path faults are still untested on many cars.

If the supply and ground remain correct, the sensor is known-quality and installed correctly, and the signal is still missing or malformed at the source, I inspect the mechanical side using the correct service information. BMW's MS43 training material places the Hall sensor at the rear of the engine block and describes an impulse wheel on the crankshaft inside the crankcase.[2] That source does not give me permission to infer a damaged target from P0335 alone.

If the signal is good at the sensor but not at the DME, I focus on the connector and harness path. If it reaches the DME correctly, I recheck that I am reading the right fault, the fault status, and the exact conditions under which it returns. Control-module failure is not a reasonable shortcut diagnosis. It requires evidence after the external circuit has been verified.

The forum owner also mentioned other repairs, including a fuel-pump replacement. That history can matter to the symptom timeline, but it does not prove that fuel delivery caused P0335 or that P0335 caused every no-start episode.[1] I keep separate faults separate until test results connect them.

Prove the repair cold and hot

After correcting a confirmed fault, I clear the code and repeat the same capture rather than treating one successful start as proof. I compare engine RPM and synchronization during cranking if those items are available, then check for a returning current or pending fault.

I run a cold-start check after the car has cooled. I also repeat a hot restart after a normal heat soak because heat can expose an intermittent electrical problem that a cold workshop check misses. During both tests, I watch for long cranking, a no-start, stalling, and the return of P0335.

I document what changed, what stayed the same, and which measurements were taken before and after the repair. The endpoint is repeatability: the car starts cold and hot, the signal remains present, and P0335 does not return through the repeated test.

Frequently asked questions

Can the engine still run if the crankshaft signal is faulty?

BMW says MS43 can operate from the camshaft-sensor input with limited driveability if the crankshaft input is faulty.[2] That fallback explains how a car may run, but it does not make a recurring P0335 harmless.

Should I trust an RPM value from a generic scan tool?

I treat it as one observation. It can tell me whether the tool is receiving an engine-speed value during crank, but it does not show signal shape or prove connector and harness integrity. I use it to choose the next test, not to close the diagnosis.

Should I replace the sensor a third time?

Not as the default next step. I verify that the installed part is a known-quality OE or OEM sensor, then test the full circuit. I replace a part when the evidence points to it.

Sources

[1] E46Fanatics, “P0335 Crankshaft Position sensor”

[2] BMW technical training, “MS42/MS43 Engine Electronics”

Questions owners ask

Why does P0335 keep coming back after I replaced the crankshaft position sensor?

A replacement sensor does not rule out a poor connector, damaged wiring, missing supply or ground under load, a bad signal path, an unsuitable replacement sensor, or a mechanical target problem. Test the full circuit before replacing another part.

Can an E46 M54 run with a crankshaft position fault?

BMW training material says the MS43 can use the camshaft sensor input if the crankshaft position input is faulty, with limited driveability. Hard starting, long cranking, stalling, misfire, and a warning light are listed complaints.

Should I replace the crankshaft sensor again?

Confirm the installed sensor is a known-quality OE or OEM unit, then inspect and test the connector, harness, supply, ground, and signal with the correct wiring data. Another sensor should not be the first move without evidence.

Sources

  1. E46Fanatics owner thread: P0335 Crankshaft Position sensor
  2. BMW technical training: MS42/MS43 Engine Electronics