Quick answer: The P0387 code indicates that your engine control unit has detected a lower-than-expected voltage signal from the secondary crankshaft position sensor (“B”) circuit. This critical engine management code affects ignition and fuel timing, presenting high urgency as it can cause sudden engine stalling or prevent your vehicle from starting.
If your Check Engine Light has triggered the P0387 code, your engine management system is struggling to track crankshaft rotation correctly. This guide explains what causes this signal drop, symptoms to look out for, and actionable steps to resolve the issue safely.
What Does P0387 Mean?
The crankshaft position sensor measures the rotational speed and position of the engine’s crankshaft, sending continuous electrical pulses to the Powertrain Control Module (PCM). The PCM uses this data to control ignition spark and fuel injection timing precisely. Code P0387 triggers specifically when the PCM detects that the signal from the secondary sensor circuit (“B”) falls below the expected voltage threshold, indicating a circuit fault, sensor failure, or signal interruption.
Symptoms
- Engine cranks for a long time or fails to start at all
- Sudden engine stalling while idling or driving
- Severe misfiring, hesitation, or rough acceleration
- Illuminated Check Engine Light on the dashboard
- Vehicle entering “limp mode” with noticeably reduced engine power
Possible Causes
The most common mistake when dealing with this code is replacing the sensor immediately without checking the wiring first.
- Loose, corroded, or oil-soaked wiring harness near the sensor
- Faulty or failing secondary crankshaft position sensor (Sensor B)
- Bent or damaged pins inside the sensor electrical connector
- Damaged or contaminated reluctor wheel (tone ring)
- Weak or discharged vehicle battery causing low system voltage
- Rare failure of the Powertrain Control Module (PCM)
Check These Yourself Before Visiting a Mechanic
- Inspect the battery: Test your battery with a multimeter to ensure it provides at least 12.6 volts when turned off, as low system voltage can trigger false circuit low codes.
- Visually inspect wiring: Trace the harness going to sensor B to look for burnt, frayed, or cut wires caused by heat from the exhaust manifold.
- Check connector tightness: Ensure the plastic locking clip on the sensor connector is secure and that no oil or dirt has accumulated inside the connection.
How to Fix It
- Connect an OBD-II scanner to read all active and pending codes to rule out underlying power supply issues.
- Inspect the wiring harness and electrical plug connected to crankshaft position sensor B for corrosion or physical damage.
- Measure voltage and ground at the sensor connector using a digital multimeter against factory specifications.
- Test the resistance of sensor B; if it falls outside the manufacturer’s range, replace the sensor.
- Check the reluctor wheel through the sensor mounting hole for missing teeth, metal debris, or excessive play.
- Clear the error code from the PCM memory and perform a test drive to verify the repair.
Estimated Repair Costs (2026)
| Job | Parts ($) | Labor ($) |
|---|---|---|
| Wiring Harness Repair | $15 – $40 | $80 – $150 |
| Crankshaft Position Sensor B Replacement | $45 – $120 | $90 – $180 |
| Reluctor Wheel Replacement | $50 – $150 | $200 – $450 |
| PCM Diagnostics & Replacement | $350 – $800 | $150 – $300 |
Note: these are 2026 estimates in US dollars; costs vary by make and model.
Frequently Asked Questions
Can I drive with the P0387 code?
Driving with code P0387 is risky and not recommended. Because the engine control module relies on this sensor to time ignition and fuel delivery, your car may stall unpredictably while driving or fail to restart when turned off.
How do I clear the P0387 code?
You can clear P0387 using an OBD-II diagnostic tool after repairing the physical issue. However, if the underlying wiring or sensor problem remains uncorrected, the engine control module will re-illuminate the Check Engine Light almost immediately.
Where is Crankshaft Position Sensor B located?
Sensor B is typically located near the bottom of the engine block, close to the harmonic balancer, timing cover, or transmission bellhousing. Consult a vehicle-specific service manual to pinpoint its exact location, as it differs between engine designs.