The P0387 OBD-II trouble code means the powertrain control module has detected voltage below the expected range in the Crankshaft Position Sensor “B” circuit.
On a Hall-effect sensor, the signal may remain stuck near ground instead of switching between its normal high and low states. On a magnetic or variable-reluctance sensor, the generated waveform may be too weak for the PCM to recognize reliably.
A failed crankshaft sensor can cause P0387, but it is not the only possibility. A signal wire shorted to ground, missing sensor power, poor ground, excessive sensor air gap, slow cranking speed or a damaged reluctor wheel can all produce a low-input condition.
Also, Sensor B does not automatically mean Bank 2. It refers to the manufacturer-designated secondary crankshaft-position input. The wiring diagram gets the final vote, regardless of what a parts-catalog thumbnail appears to suggest.
P0387 Quick Reference
| Item | Details |
|---|---|
| Trouble code | P0387 |
| Code definition | Crankshaft Position Sensor “B” Circuit Low Input |
| System affected | Engine-position, ignition and fuel-injection control |
| Fault type | Sensor B signal voltage below the expected range |
| Common causes | Signal shorted to ground, missing power, weak sensor, excessive air gap or slow cranking |
| Common symptoms | Check Engine Light, hard starting, stalling, rough running, no-start condition or reduced power |
| Typical severity | Moderate to severe |
| Safe to drive? | Not recommended if the engine stalls or becomes difficult to start |
| Repair difficulty | Intermediate to advanced electrical diagnosis |
What Does the P0387 Code Mean?
P0387 indicates that the PCM has detected an abnormally low electrical signal from Crankshaft Position Sensor B.
The PCM relies on crankshaft-position information to calculate:
- Engine RPM
- Crankshaft angle
- Piston position
- Ignition timing
- Fuel-injection timing
- Camshaft synchronization
- Misfire activity
- Engine starting sequence
The specific meaning of “low” depends on the sensor design.
A Hall-effect sensor normally switches its signal between defined high and low voltage levels. If the signal remains near zero volts or never reaches its expected high state, the PCM may store P0387.
A magnetic sensor generates an alternating-current waveform. If its output amplitude remains too low during cranking or engine operation, the PCM may be unable to distinguish the reluctor pulses and set the same code.
P0387 therefore describes the electrical condition detected by the PCM. It does not prove which component caused it.
What Is Crankshaft Position Sensor B?
Crankshaft Position Sensor B is the secondary crankshaft-position input identified by the vehicle manufacturer.
Vehicles may use a second crankshaft sensor for:
- Signal redundancy
- Improved crankshaft-position resolution
- Faster starting synchronization
- Misfire detection
- Separate low-speed and high-speed monitoring
- Comparison with another engine-position signal
- Fail-safe operation
Sensor B may be installed near the:
- Crankshaft pulley
- Timing cover
- Engine block
- Flywheel
- Flexplate
- Transmission bellhousing
- Rear main-seal area
- Internal crankshaft reluctor wheel
Sensor B does not universally indicate Bank 2, the rear sensor or the passenger-side sensor. Confirm the component location and circuit designation using manufacturer service information.
How the Crankshaft-Position Circuit Works
The crankshaft-position sensor reads a toothed, slotted or magnetized trigger wheel attached to the crankshaft, flywheel or flexplate.
As the engine rotates, the sensor generates an electrical pulse each time a reluctor tooth or magnetic segment passes its sensing element. A missing tooth or special reference gap helps the PCM determine exact crankshaft position.
Two common sensor types are used.
Hall-Effect Sensor
A Hall-effect crankshaft-position sensor normally uses three circuits:
- Power or reference voltage
- Sensor ground
- Signal output
The signal switches between a specified high and low state as the crankshaft rotates.
A P0387 condition may occur if:
- Reference voltage is missing
- The signal wire is shorted to ground
- The sensor ground is incorrect
- The sensor cannot switch the signal high
- The PCM input pulls the signal low
- The reluctor does not trigger the sensing element
Magnetic or Variable-Reluctance Sensor
A magnetic sensor commonly uses two wires and generates its own alternating-current voltage.
Its output depends on:
- Engine speed
- Sensor air gap
- Reluctor condition
- Sensor magnet strength
- Circuit resistance
- Temperature
A magnetic sensor may generate a usable waveform at higher RPM but fall below the PCM’s threshold during cranking.
Symptoms of a P0387 Code
Possible symptoms include:
- Illuminated Check Engine Light
- Extended cranking
- Hard starting
- Engine cranks but does not start
- Intermittent stalling
- Engine stalls when warm
- Rough idle
- Engine hesitation
- Reduced power
- Poor throttle response
- Misfire-like operation
- Tachometer dropping toward zero
- Unstable engine-speed data
- Limp-home mode
- Engine that restarts after cooling
- No obvious driveability symptoms
The symptoms depend on whether the PCM can continue operating from Crankshaft Position Sensor A or another substitute signal.
If the engine turns over normally but will not run, use the broader engine cranks but won’t start diagnostic guide to check spark, fuel delivery, injector operation and engine-position data.
If the failure appears primarily after the engine reaches operating temperature, review why an engine stalls when warm.
Common Causes of P0387
Potential causes include:
- Signal Wire Shorted to GroundDamaged insulation can allow the Sensor B signal circuit to contact the engine, chassis or another ground circuit.
- Failed Crankshaft Position Sensor BInternal electronics or windings may fail and produce little or no signal voltage.
- Missing Sensor Reference VoltageA Hall-effect sensor cannot switch properly without its required power supply.
- Poor Sensor GroundCorrosion, loose terminals or excessive resistance may prevent proper sensor operation.
- Open Sensor Power CircuitA broken wire between the PCM and Hall-effect sensor can cause the signal to remain low.
- Open Magnetic-Sensor CircuitA broken winding or open wire may prevent a magnetic pickup from generating a usable waveform.
- High Resistance in the Signal CircuitCorroded terminals, poor splices or damaged wiring can weaken the signal before it reaches the PCM.
- Excessive Sensor Air GapToo much space between a magnetic sensor and reluctor wheel can reduce output amplitude.
- Metal Debris on the Sensor TipMetallic contamination can interfere with a magnetic sensor’s ability to detect individual reluctor teeth.
- Damaged Reluctor WheelMissing, bent, cracked or corroded teeth can reduce or eliminate the expected pulses.
- Bent Flywheel or FlexplateRunout may increase the sensor air gap during part of each crankshaft revolution.
- Low Battery VoltageLow voltage may reduce PCM operation and slow the starter.
- Slow Cranking SpeedA magnetic sensor may not generate enough voltage if the starter turns the engine too slowly.
- Incorrect Replacement SensorA sensor with the wrong depth or electrical characteristics may produce insufficient output.
- Poor PCM Power or GroundAn unstable PCM ground can change the module’s interpretation of sensor voltage.
- Failed PCM Input CircuitAn internal PCM fault may pull the signal low, although this is less common.
How Serious Is the P0387 Code?
P0387 is a moderate-to-severe fault because inaccurate crankshaft-position data can interrupt ignition and fuel-injection control.
A vehicle may continue operating if another crankshaft-position input remains available. However, the engine may also:
- Stall unexpectedly
- Become difficult to start
- Enter reduced-power mode
- Lose accurate RPM information
- Misfire
- Refuse to restart
Diagnose P0387 promptly when stalling or starting problems occur. An engine-position signal that works most of the time is still an engine-position signal preparing to ruin a more inconvenient part of your day.
P0385 vs. P0386 vs. P0387
These codes affect the same Sensor B system but describe different diagnostic conditions.
| Code | Definition | Primary diagnostic focus |
| P0385 | Sensor B Circuit Malfunction | General electrical failure or missing signal |
| P0386 | Sensor B Circuit Range/Performance | Signal exists but its amplitude, timing or pulse pattern is implausible |
| P0387 | Sensor B Circuit Low Input | Signal voltage remains below the expected threshold |
P0387 narrows the diagnosis toward a low-voltage condition. That makes shorts to ground, missing sensor power, weak magnetic output and low signal amplitude particularly important.
P0387 vs. P0337
P0337 is the corresponding low-input code for Crankshaft Position Sensor A.
| Code | Sensor | Fault |
| P0337 | Crankshaft Position Sensor A | Circuit low input |
| P0387 | Crankshaft Position Sensor B | Circuit low input |
Do not confuse the two sensors. Their locations, connector pinouts and signal patterns may differ even when both use the same basic sensing technology.
P0387 vs. P0388
P0387 and P0388 identify opposite voltage conditions.
| Code | Electrical condition | Common diagnostic direction |
| P0387 | Signal voltage too low | Short to ground, missing power, weak output or excessive air gap |
| P0388 | Signal voltage too high | Short to voltage, open ground or signal stuck high |
This page should remain focused on the low-input side of that pair.
How to Diagnose the P0387 Code
Diagnosing P0387 requires identifying the sensor type before interpreting voltage readings. A Hall-effect signal stuck at zero and a magnetic waveform with insufficient amplitude are both low-input conditions, but they require different tests.
1. Confirm P0387
Connect a capable OBD-II scan tool and record:
- P0387
- Current, pending and history codes
- Freeze-frame information
- Engine RPM
- Battery voltage
- Coolant temperature
- Vehicle speed
- Crankshaft synchronization
- Camshaft synchronization
- Sensor A and Sensor B data, when supported
Do not erase the code until the freeze-frame data has been recorded.
Note whether the failure occurred:
- During cranking
- Immediately after startup
- At idle
- Under acceleration
- At highway speed
- After the engine became hot
2. Check for Related Codes
Look for codes involving:
- Crankshaft Position Sensor A
- Crankshaft Position Sensor B
- Camshaft-position sensors
- Crankshaft-to-camshaft correlation
- Five-volt reference circuits
- System voltage
- PCM power or ground
- Engine-speed input
- Misfires
Multiple sensors with low-input codes may share a reference-voltage or ground problem.
3. Verify the Symptoms
Crank or run the engine while monitoring:
- Scan-tool RPM
- Sensor B status
- Synchronization
- Misfire data
- Battery voltage
A zero-RPM reading during cranking may indicate that the PCM cannot see a usable crankshaft signal. However, some vehicles may still display RPM from Sensor A while Sensor B remains low.
Watch for Sensor B returning briefly when:
- The harness is moved
- The engine cools
- Battery voltage increases
- Engine speed rises
- Electrical loads are removed
4. Identify Sensor B and Its Circuit Type
Use the factory wiring diagram to determine:
- Sensor B location
- Hall-effect or magnetic design
- Connector pinout
- Sensor power specification
- Sensor ground
- Signal-circuit bias voltage
- Expected waveform
- Specified air gap
- PCM terminal locations
Do not begin electrical testing using a generic crank-sensor pinout. Connecting battery voltage to a five-volt signal circuit is an extremely efficient way to transform one fault code into several.
5. Inspect the Sensor and Wiring
Switch the ignition off and inspect:
- Sensor connector
- Harness routing
- Signal-wire insulation
- Sensor power and ground circuits
- Engine and PCM grounds
- Terminals for corrosion or looseness
- Wiring near the starter and exhaust
- Harness contact with brackets or pulleys
- Oil or water intrusion
- Prior wiring repairs
- Aftermarket remote-start or engine-management wiring
Pay particular attention to areas where the harness can rub against the engine or transmission.
6. Check Battery and Cranking Voltage
Measure:
- Battery voltage with the engine off
- Minimum voltage during cranking
- Starter current draw
- Cranking speed
- Charging voltage with the engine running
A low battery or failing starter can reduce the output of a magnetic sensor by slowing the crankshaft.
Correct battery, cable, ground or starter problems before condemning Sensor B.
7. Test Hall-Effect Sensor Power
If Sensor B is a Hall-effect design, switch the ignition on and verify its supply voltage.
Depending on the design, the sensor may use:
- Five-volt reference
- Eight-volt supply
- Twelve-volt supply
- Another manufacturer-specified voltage
If supply voltage is missing:
- Disconnect the sensor.
- Recheck the supply circuit.
- Inspect for a short to ground.
- Check whether other sensors share the same supply.
- Test continuity between the PCM and sensor.
- Verify the PCM output only after checking its powers and grounds.
If supply voltage returns when Sensor B is disconnected, the sensor may be internally shorted. A different sensor on the shared circuit could also be pulling the reference voltage down.
8. Test Sensor Ground
Back-probe the ground circuit and perform a voltage-drop test while the sensor is operating.
A continuity test may show a connection even when corrosion creates too much resistance under load.
Compare the ground voltage with manufacturer specifications. Repair loose grounds, corroded splices or damaged terminals before replacing the sensor.
9. Measure the Hall-Effect Signal
Back-probe the signal circuit using a high-impedance digital multimeter or oscilloscope.
During cranking, the signal should switch between its specified high and low states.
A P0387 waveform may show:
- Signal continuously near zero volts
- High state that never reaches specification
- Low-amplitude switching
- Brief pulses that collapse under load
- Voltage recovering when the sensor is disconnected
If the signal is stuck low, isolate the circuit by disconnecting the sensor and PCM according to the service procedure.
Possible findings include:
- Signal remains grounded with both modules disconnected: wiring short to ground
- Signal rises when the sensor is disconnected: internally shorted sensor
- Signal reaches the PCM correctly but scan data remains low: PCM input or interpretation problem
Circuit behavior varies when internal pull-up resistors are used, so compare every result with the wiring diagram.
10. Test a Magnetic Sensor
For a two-wire magnetic Sensor B:
- Check resistance only when a specification is provided
- Check for an open winding
- Check both circuits for shorts to ground
- Measure AC voltage during cranking
- Compare output with Sensor A
- Repeat testing when the sensor is hot
A low-amplitude waveform may result from:
- Weak sensor magnet
- Excessive air gap
- Low cranking speed
- Reluctor damage
- Metal contamination
- High circuit resistance
Do not use the Hall-effect sensor’s voltage expectations on a magnetic pickup.
11. Inspect the Signal With an Oscilloscope
An oscilloscope provides the clearest evidence.
For a Hall-effect sensor, inspect:
- High-state voltage
- Low-state voltage
- Switching speed
- Pulse width
- Signal stability
For a magnetic sensor, inspect:
- Peak-to-peak amplitude
- Waveform symmetry
- Pulse spacing
- Reference gap
- Signal strength during cranking
- Amplitude changes with RPM
Compare Sensor B with Sensor A when possible.
A Sensor B waveform that has the correct shape but much lower amplitude than Sensor A points toward air-gap, sensor or circuit-resistance problems.
12. Check for a Short to Ground
Disconnect the PCM and sensor using the manufacturer-approved procedure.
Test the Signal B circuit for:
- Continuity to ground
- Continuity to other low-reference circuits
- Pinched wiring
- Insulation damage
- Moisture inside connectors
- Intermittent shorts during a harness wiggle test
Do not perform resistance testing on a powered circuit.
13. Compare the Signal at the Sensor and PCM
Capture the waveform directly at Sensor B, then repeat the measurement at the PCM connector.
If the signal is normal at the sensor but weak at the PCM, inspect for:
- High circuit resistance
- Corroded splices
- Loose terminals
- Damaged shielding
- Partial short to ground
- Incorrect previous repairs
A voltage-drop or loaded-circuit test may reveal resistance that a basic continuity check misses.
14. Check Sensor Air Gap
Inspect and measure the distance between the sensor and reluctor wheel where possible.
Excessive clearance can result from:
- Debris beneath the mounting flange
- Improper sensor installation
- Incorrect spacer
- Wrong replacement sensor
- Bent mounting bracket
- Crankshaft end play
- Flexplate runout
- Shifted reluctor ring
Follow the manufacturer’s specification. Moving the sensor closer than specified is not a clever fix if the reluctor can strike it.
15. Inspect the Reluctor Wheel
Check for:
- Missing teeth
- Bent teeth
- Cracks
- Rust
- Metal debris
- A shifted trigger ring
- Bent flywheel or flexplate
- Excessive runout
Internal reluctors may require waveform analysis or a borescope before major disassembly.
16. Test for Heat-Related Failure
If P0387 occurs when the engine is hot:
- Monitor the Sensor B waveform during warm-up
- Move the harness carefully
- Apply controlled heat according to service procedures
- Allow the sensor to cool and retest
- Compare hot and cold resistance only when applicable
An internal sensor winding or electronic component may fail as temperature rises and recover after cooling.
17. Check the PCM Last
Consider PCM failure only after confirming:
- Correct Sensor B identification
- Proper sensor power and ground
- No signal short to ground
- Correct sensor installation
- Proper air gap
- Good reluctor condition
- Adequate battery and cranking speed
- A low signal present at the PCM connector
- No applicable software update or technical service bulletin
PCM replacement may require programming, security initialization and crankshaft-position variation relearn.
Common P0387 Diagnostic Mistakes
Avoid these common mistakes:
- Assuming Sensor B means Bank 2
- Replacing Sensor A instead of Sensor B
- Replacing the sensor without checking for a short to ground
- Ignoring missing reference voltage
- Using Hall-effect tests on a magnetic sensor
- Using resistance alone to approve a magnetic sensor
- Ignoring low cranking speed
- Overlooking excessive air gap
- Failing to compare the waveform at the sensor and PCM
- Using a conventional test light on a PCM signal circuit
- Probing connectors with oversized test leads
- Moving the sensor dangerously close to the reluctor
- Replacing the PCM before isolating the harness
A conventional incandescent test light can draw enough current to damage a low-current reference or PCM input circuit. Use a high-impedance meter, oscilloscope or manufacturer-approved test tool.
Repairs That May Fix P0387
Possible repairs include:
- Replacing Crankshaft Position Sensor B
- Repairing a signal wire shorted to ground
- Restoring missing sensor reference voltage
- Repairing an open sensor-power circuit
- Repairing a poor sensor ground
- Cleaning or replacing corroded terminals
- Replacing a damaged sensor connector
- Repairing high resistance in the signal circuit
- Correcting sensor air gap
- Cleaning metal debris from the sensor tip
- Installing the correct replacement sensor
- Repairing battery cables or engine grounds
- Replacing a weak battery
- Replacing a failing starter
- Repairing or replacing a damaged reluctor wheel
- Replacing a bent flexplate
- Correcting excessive crankshaft end play
- Updating PCM software
- Replacing and programming the PCM after confirmed failure
Estimated P0387 Repair Costs
Actual pricing depends on the vehicle and sensor location.
| Repair | Estimated cost |
| Diagnostic inspection | $100–$250 |
| Connector or minor wiring repair | $100–$350 |
| Crankshaft Position Sensor B replacement | $180–$650 |
| Battery or cable repair | $150–$600 |
| Starter replacement | $350–$900 |
| Major harness repair | $300–$1,000 |
| Reluctor-wheel or flexplate repair | $700–$2,500 |
| PCM software update | $100–$300 |
| PCM replacement and programming | $800–$2,500 |
An accessible sensor can be inexpensive to replace. A Sensor B hidden between the engine and transmission can require considerably more labor, because convenient service access apparently remains an optional feature.
Can You Drive With P0387?
Driving with P0387 is not recommended if the engine stalls, loses power or becomes difficult to start.
The vehicle may continue running if the PCM can rely on Sensor A, but the remaining symptoms can worsen without warning.
Stop driving if:
- The engine stalls
- The tachometer suddenly falls
- Starting becomes unreliable
- The Check Engine Light flashes
- The engine enters reduced-power mode
- Multiple timing or misfire codes appear
- Wiring becomes hot or damaged
Review what the Check Engine Light means for additional warning-light guidance.
How to Verify the Repair
After completing the repair:
- Reconnect all sensors and modules.
- Secure the harness away from heat and moving parts.
- Confirm proper terminal engagement.
- Clear current and pending trouble codes.
- Monitor engine RPM during cranking.
- Verify Sensor B power and ground.
- Confirm that the Sensor B signal reaches its proper high and low states.
- Compare Sensor A and Sensor B waveforms.
- Warm the engine fully.
- Recreate the original freeze-frame conditions.
- Complete the required drive cycle.
- Perform a crankshaft-position relearn if specified.
- Recheck for pending codes.
The repair is confirmed when the Sensor B waveform remains above the required threshold and P0387 does not return.
Frequently Asked Questions
What does the P0387 code mean?
P0387 means the PCM detected voltage below the expected range in the Crankshaft Position Sensor B circuit.
Does P0387 mean Crankshaft Position Sensor B is bad?
Not necessarily. A failed sensor can cause P0387, but wiring shorts, missing power, poor ground, excessive air gap and slow cranking can produce the same code.
Is Crankshaft Position Sensor B located on Bank 2?
Not necessarily. Sensor B identifies a manufacturer-designated secondary crankshaft-position input and does not universally correspond to Bank 2.
What is the difference between P0385 and P0387?
P0385 identifies a general Sensor B circuit malfunction. P0387 specifically identifies a Sensor B signal below the expected voltage range.
What is the difference between P0386 and P0387?
P0386 indicates implausible signal performance. P0387 means the signal voltage remains below the PCM’s expected threshold.
Can P0387 cause a no-start condition?
Yes. The engine may not start if the PCM cannot determine crankshaft position accurately enough to control spark and fuel injection.
Can a weak battery cause P0387?
Yes, particularly with a magnetic sensor. Low battery voltage can reduce cranking speed and sensor output amplitude.
Can excessive sensor air gap cause P0387?
Yes. Excessive clearance can weaken a magnetic sensor’s signal below the PCM’s recognition threshold.
How do you test for P0387?
Identify the sensor design, verify its power and ground, check for a signal short to ground and inspect the waveform with an oscilloscope.
Can I test Sensor B with a test light?
Not unless the manufacturer specifically approves it. A conventional test light may overload a PCM signal or reference circuit.
Final Thoughts
P0387 means the Crankshaft Position Sensor B signal is electrically lower than the PCM expects. The fault may involve the sensor, but the diagnosis should concentrate on the entire low-voltage path.
Verify battery condition and cranking speed first. Then identify the sensor type, check its power and ground, test the signal circuit for a short to ground and inspect the waveform at both the sensor and PCM.
That process will distinguish a failed sensor from missing reference voltage, excessive air gap, damaged wiring and reluctor problems without turning a low-input code into a high-cost guessing exercise.
Visit the OBD-II Doctor for more diagnostic guides or browse the complete P-series OBD-II code reference to identify related powertrain faults.










