P0387 — Crankshaft Position Sensor B Circuit Low Input

P0387 flags a low-voltage condition in the crankshaft position sensor B circuit, meaning the signal stays near ground instead of toggling properly. When the PCM detects this out-of-range reading across multiple drive cycles, it stores the code and lights the check engine lamp. A failed crank sensor can cause sudden stalling with no warning, so do not continue driving with P0387 active.

powertrain (engine/transmission)

Is it safe to drive?

Repair Promptly If the engine starts and runs normally, drive only briefly while arranging repair because P0387 can cause an abrupt stall or prevent the next start. If it stalls, loses power, or will not restart, stop safely and arrange towing rather than continued driving.

Typical symptoms

  • The check-engine light may illuminate with P0387 stored in the powertrain controller.
  • The engine may crank without starting because the ECM cannot confirm crankshaft position.
  • A running engine may stall suddenly if the low Sensor B input becomes intermittent.
  • Rough idle, hesitation, or misfire can occur when crank-position information is intermittently unavailable.
  • P0387 may return after the code is cleared, particularly during cranking or at low engine speed.
  • Starting may become inconsistent, with some starts succeeding and others producing only a crank.

Common causes

  • A failed crankshaft position sensor B can pull its signal output abnormally low and set P0387.
  • An open circuit or damaged terminal in the Sensor B signal wire can leave the ECM seeing a near-zero input.
  • A short from the crankshaft position sensor B signal circuit to ground can continuously trigger P0387.
  • A poor sensor ground, damaged connector, or low supply voltage can distort the Sensor B signal.
  • Incorrectly routed or repaired wiring near the engine may chafe against brackets, hot components, or moving parts.
  • A damaged or missing reluctor/trigger-wheel feature can produce no usable sensor pulses and cause a low-input condition.

How to diagnose with an OBD scanner

  1. Confirm P0387 and capture data Connect an OBD2 scanner using an ELM327 adapter and AIScanAuto or equivalent software. Read stored and pending codes, save freeze-frame information, and note any related crankshaft or camshaft position codes. If supported, capture Sensor B data while cranking; clear the code only after recording the conditions.
  2. Inspect the sensor and wiring Using the vehicle wiring diagram to locate crankshaft position sensor B, inspect its connector, terminals, and harness. Look for backed-out pins, corrosion, oil or coolant contamination, pin drag, chafing, or damage near brackets and moving components.
  3. Test the electrical circuits With power disconnected, check the Sensor B signal circuit for continuity to ground and to other unintended circuits. Then follow the manufacturer procedure for connector engagement and circuit activation to measure the specified ground, supply, and signal values. A collapsed supply or excessive signal ground can produce a low reading.
  4. Check for signal pulses Back-probe the Sensor B signal while the engine is cranked and observe it with an oscilloscope or capable scan tool. A steady near-zero signal suggests an open, ground short, or defective sensor. Missing or irregular pulses also require inspection of the reluctor or trigger wheel and sensor alignment.
  5. Repair and verification Repair damaged wiring, restore terminal tension, clean and reseat the connector, or correct faulty grounds. If the circuit tests good but the signal remains low, replace crankshaft position sensor B and verify alignment. Clear P0387, confirm a normal start and stable idle, and verify the code does not return.

Approximate repair cost

Independent-shop estimates are about $90-$180 for diagnosis, $120-$350 for wiring or connector repair, and $180-$550 for a complete crankshaft position sensor B replacement when access and related parts are needed. These USD figures are estimates and vary by region.

Common questions

Does P0387 prove that the crankshaft position sensor is defective?

No. P0387 identifies an abnormally low Sensor B input, and an open wire, short to ground, poor ground, damaged connector, or failed sensor can all create that condition.

Can I drive with P0387 stored?

A vehicle that starts and runs may be driven cautiously, but an intermittent low input can cause stalling or a no-start condition, so repair should be scheduled promptly.

What should be checked before replacing the sensor?

Inspect and electrically test the Sensor B connector, signal circuit, ground, and supply first. These checks can identify wiring faults that would otherwise lead to an unnecessary replacement.

Will clearing P0387 repair the problem?

Clearing the code only erases the stored fault. P0387 will generally return after another start if the low-input condition remains.

P0387: Crankshaft Position Sensor B Circuit Low Input

What Does P0387 Mean?

P0387 is a powertrain diagnostic trouble code that specifically flags the crankshaft position sensor B circuit for low input. When the engine control module sees the sensor signal sitting at or near ground voltage instead of pulsing between the expected range, it logs this code after confirming the fault across multiple drive cycles.

The phrase "circuit low" tells you the problem is electrical rather than mechanical. In this context, it means the voltage on the sensor's signal line has collapsed toward zero—typically because something is shorting the circuit to ground, the sensor itself has failed internally, or power supply to the sensor has been interrupted. The PCM continuously monitors the crankshaft position sensor while the engine runs. If readings fall outside the acceptable window for a set number of cycles, P0387 gets stored and the check engine light comes on.

When the code sets, the PCM also captures freeze frame data: a snapshot of engine speed, load, temperature, and vehicle speed at the exact moment the fault occurred. That snapshot is your best starting point for diagnosis because it shows the conditions under which the problem appears—whether the engine was idling, accelerating, or just cranking over.

How the Crankshaft Position Sensor System Works

Most engines use a crankshaft position sensor to track engine rpm and piston position. The sensor reads a toothed reluctor wheel (or tone ring) bolted to the crankshaft or flywheel. As the reluctor wheel teeth pass the sensor tip, they generate a pulsing AC or digital signal that the PCM translates into rpm data.

The PCM needs this signal to calculate ignition timing, fuel injector pulse width, and in some cases, variable valve timing. Without a reliable crankshaft position signal, the engine cannot start or will stall without warning. Some vehicles use two sensors—sensor A and sensor B—to provide redundancy or to cover different ranges of the reluctor wheel. P0387 specifically targets the B sensor circuit.

Common Symptoms of P0387

  • Intermittent no-start condition, especially when the engine is hot
  • Engine cranks normally but fails to fire
  • Sudden stalling while driving with no prior warning
  • Check Engine Light illuminated on the dashboard
  • Tachometer shows zero rpm or drops to zero during cranking attempts
  • Rough running or hesitation if the sensor only partially fails
  • In some cases, a whining or grinding noise from the sensor area

What Causes P0387?

The root cause usually falls into one of four categories: wiring damage, sensor failure, reluctor wheel issues, or a power supply problem. Here are the most common culprits:

  • Failed crankshaft position sensor B dragging the signal circuit down to ground
  • Signal wire shorted to ground due to chafed insulation or pinched wiring
  • Missing supply voltage reaching the sensor from the PCM or relay
  • Damaged wiring harness or connector with corrosion, broken strands, or loose terminals
  • Damaged or worn reluctor wheel teeth causing weak or erratic signal output
  • Incorrect sensor air gap preventing proper signal induction
  • PCM internal failure affecting signal processing for the crankshaft position circuit

How to Diagnose P0387

A systematic approach keeps you from replacing good parts. Follow these steps in order:

  1. Connect an OBD2 scanner and confirm P0387 is stored. Save the freeze frame data to a file—you'll need those conditions later when you road-test after repairs.

  2. Check for related codes. P0380, P0381, P0335, and P0336 often appear alongside P0387 and can point toward the failing circuit. Also search for any manufacturer TSBs (technical service bulletins) that apply to your vehicle year, make, and model; some crank sensor issues have known factory fixes or software patches.

  3. Visually inspect the wiring harness and connectors at the crankshaft position sensor B location. Look for damaged insulation, rubbing against brackets or engine parts, melted wire sheathing, green corrosion on terminals, or any sign of a previous repair that was done poorly.

  4. Measure supply voltage at the sensor connector with the key on and engine off. Most sensors need a 5-volt reference from the PCM. If you see 0 volts, trace back to find the break. Then measure resistance from the signal wire to ground—continuity or near-zero ohms confirms a short to ground somewhere in the harness.

  5. Watch the rpm PID on the scanner while an assistant cranks the engine. No rpm reading while the starter spins means the PCM is not receiving any crankshaft position signal. This narrows the problem to the sensor, wiring, or connector.

  6. Inspect the sensor and reluctor wheel. Remove the sensor and check for metallic debris, cracks in the tip, or heat damage. Examine the reluctor wheel teeth for chips, missing teeth, or uneven spacing.

  7. Clear the code and complete a full drive cycle that reproduces the freeze frame conditions. If P0387 returns, the repair was not complete or the root cause was misidentified.

Repair Options and Costs

Tackle the cheapest possible fix first. Swapping a sensor is straightforward on many vehicles, but wiring repairs can save you hundreds if the harness is the culprit.

  • Sensor wiring repair: $80–$250. This covers diagnosing and fixing shorted or open wires, replacing connectors, or rerouting a chafed harness.

  • Reluctor wheel replacement: $400–$900. This is a more involved job because the tone ring is pressed onto the crankshaft or flywheel. Labor dominates the cost here.

  • Crankshaft position sensor replacement: $150–$400. Most sensors run $40–$120 for the part; the rest is labor for accessing and installing the sensor.

Overall, fixing P0387 typically costs between $80 and $900 depending on what actually failed. Spending time on a careful diagnosis before buying parts is almost always cheaper than guessing wrong.

Driving Safety Verdict

Stop. Do not rely on this vehicle. A failing crankshaft position sensor can cut engine power without warning while you're moving at speed. Sudden stalling in traffic, at an intersection, or on the highway is a serious safety hazard. Until P0387 is diagnosed and repaired, arrange alternative transportation or have the vehicle towed to a shop.

Related OBD2 Codes