When a position sensor signal stays too low, the engine computer cannot see the pulses it needs. A P0387 code means the crankshaft position sensor B signal voltage is lower than its allowed range.
This guide explains what pulls the signal low, how to test the reference voltage and wiring, and which repairs fix it.
P0387 Code Breakdown
Every OBD-II code follows the same five-character pattern set by the SAE J2012 standard. Each character narrows down which system has the fault. This table shows what each part of the code tells you.
| Character | Meaning | What It Tells You |
|---|---|---|
| P | Powertrain | The fault is in the engine or transmission systems. |
| 0 | Generic (SAE) code | The definition is the same on every OBD-II vehicle. |
| 3 | Ignition system or misfire | The fault involves the ignition system, misfire detection or engine position sensors. |
| 87 | Specific fault | Crankshaft Position Sensor B Circuit Low Input |
What the P0387 Code Means
The SAE J2012 standard defines the P0387 code as Crankshaft Position Sensor B Circuit Low Input. Crankshaft position sensor B is a second crank sensor. Some engines use two, for example one at the front and one at the rear of the crankshaft, while others use sensor B for a second signal from the same reluctor ring. Check your service manual to see what sensor B is on your engine.
Most modern sensors are Hall effect types with three wires: a reference voltage, a ground and a signal that switches between about 0 and 5 volts as each tooth passes. Older or some current designs use a two-wire magnetic sensor that makes its own AC voltage, which rises with engine speed.
The powertrain control module (PCM) uses the crank signal for engine speed, ignition timing, injector timing and misfire detection. Most engines will not start without it, and losing it while driving usually stalls the engine.
Low input means the signal voltage dropped below the lowest value a working crankshaft position sensor B should ever send. That usually points to a lost reference voltage, a signal wire shorted to ground or a sensor that has failed inside.
Symptoms of a Bad Crank Sensor B
Position sensor faults often affect starting and running. Common signs of a P0387 code include:
- Engine cranks but will not start
- Stalling, especially when hot
- Tachometer not moving while cranking
- Misfires or rough running
- Check engine light on
A tachometer that sits at zero while you crank is a quick clue. On many vehicles, the tach reads the crank signal, so no needle movement during cranking points to the crank sensor circuit.
Most Common Causes of the P0387 Code
Low input faults almost always come from an electrical problem:
- Open sensor reference voltage. Without its supply, the sensor cannot produce a signal.
- Signal wire shorted to ground. Chafed insulation touching metal pulls the voltage down.
- Failed crankshaft position sensor B. An internal short drags the signal low.
- Corroded or loose connector. High resistance on the reference pin lowers the signal.
- Shorted sensor reference voltage. Another sensor on the same reference can pull it down.
- PCM fault. Rare.
Tools You Will Need
You can do most of this testing at home with basic tools:
- OBD-II scan tool with live data
- Digital multimeter
- Lab scope or graphing scan tool
- Wiring diagram for your engine
- Clean shop towel for wiping the sensor tip
How to Track Down the P0387 Code
Check for other codes first. Crank and cam codes together can point to a shared reference voltage, a timing problem or a wiring fault.
Check Live Data
Watch engine speed in live data while cranking. A reading of 0 rpm while the engine is clearly turning points to the crank sensor circuit.
Check the Reference Voltage
Unplug the crankshaft position sensor B and turn the key on. The reference pin should read close to 5 volts on most Hall effect sensors, though some use 12 volts. If it reads 0 volts, unplug other sensors on the same reference one at a time. If the voltage comes back, the last sensor you unplugged is shorted.
Check the Signal Wire for a Short
With the battery disconnected and the sensor and PCM unplugged, check the signal wire for continuity to ground. Any continuity means a short. Inspect the wiring where it passes near metal edges and hot parts.
Inspect the Sensor Tip
Remove the sensor and look at the tip for metal debris, oil and cracks. Check the O-ring. Wipe the tip clean and make sure the sensor seats fully, since a sensor that sits too far out can give a weak signal.
Repairs That Fix the P0387 Code
Match the repair to what your tests found. Then clear the code and drive under the same conditions that set it.
- Repair the connector or wiring and route it away from hot exhaust parts.
- Replace the crankshaft position sensor B if it fails tests or glitches when hot. Use a quality part, since cheap sensors often fail early.
- Clean metal debris from the sensor tip and check where it comes from.
- Repair a damaged reluctor ring, which may mean replacing the balancer, flywheel or crankshaft part that carries it.
- Repair timing chain or belt problems if crank and cam timing do not line up.
Some vehicles need a crankshaft position variation relearn after a crank sensor or related part is replaced, so misfire detection works correctly. GM and some other makers list this procedure in the service manual.
Common Mistakes to Avoid
These mistakes waste money or leave the real fault in place:
- Replacing the sensor without checking the reference voltage
- Missing a shorted sensor elsewhere that drags the shared reference down
- Buying the cheapest sensor, which often fails quickly
- Ignoring a stretched timing chain when crank and cam codes appear together
Repair Cost Breakdown
The cost to fix a P0387 code depends on the cause. This table shows typical ranges for parts and labor.
| Repair | DIY Cost | Typical Shop Cost |
|---|---|---|
| Connector or wiring repair | $10 to $40 | $100 to $300 |
| Crankshaft position sensor B | $20 to $120 | $120 to $400 |
| Timing chain or belt repair | $200 to $800 | $800 to $2,500 |
| Reluctor ring or balancer repair | $50 to $300 | $300 to $1,000 |
Most CKP sensor repairs are affordable, since the sensor costs little and is often easy to reach. Some engines hide it behind the starter, under the intake or near the transmission bell housing, which raises the labor.
Is It Safe to Keep Driving with a P0387 Code?
It is risky. A failing crank sensor can stall the engine without warning, which can leave you stuck in traffic or on a highway shoulder.
If the engine starts and runs, drive only as far as needed to reach a repair. If it stalls when hot, avoid driving until it is fixed.
Related Codes
These codes often show up with this one or point to the same system:
| Code | Meaning |
|---|---|
| P0385 | Crankshaft Position Sensor B Circuit Malfunction |
| P0386 | Crankshaft Position Sensor B Circuit Range/Performance |
| P0388 | Crankshaft Position Sensor B Circuit High Input |
| P0389 | Crankshaft Position Sensor B Circuit Intermittent |
| P0340 | Camshaft Position Sensor Circuit Malfunction |
| P0016 | Crankshaft/Camshaft Position Correlation, Bank 1 Sensor A |
Getting a Clean Signal from Crank Sensor B
A P0387 code means the crankshaft position sensor B signal is too low. Lost reference voltage, shorts to ground and failed sensors cause most cases.
- Check engine speed while cranking.
- Inspect the connector and wiring.
- Test reference, ground and signal.
- Inspect the sensor tip for debris.
- Check timing if crank and cam codes appear together.
Frequently Asked Questions
Is the P0387 Code Always a Bad Sensor?
No. A lost reference voltage or a signal wire shorted to ground can pull the signal low. Check the reference and ground at the connector before replacing the sensor, since a wiring fix often costs less.
Where Is the Crankshaft Position Sensor B?
It is usually on the front of the engine near the harmonic balancer, on the side of the block or near the transmission bell housing, reading the flywheel. Your service manual shows the exact location for your engine.
Can I Test the Sensor with a Multimeter?
A three-wire Hall effect sensor can be checked for reference voltage, ground and a switching signal with a multimeter, though a scope shows the pattern better. A two-wire magnetic sensor can be checked for resistance and AC voltage while cranking.
Can a Bad Crank Sensor Cause Misfire Codes?
Yes. The PCM detects misfires by watching crankshaft speed through this sensor. A weak signal, a damaged reluctor or electrical noise can look like a misfire, so misfire codes sometimes appear alongside crank sensor codes. Fix the sensor fault first.
Should I Buy an OEM Sensor?
For position sensors, many technicians prefer factory or top-quality parts. Cheap sensors can have the wrong air gap or weak output and may fail within weeks. Since the engine depends on this signal, it is worth paying a little more.