OBD-II trouble code
P0687: ECM/PCM Power Relay Control Circuit High
The relay control circuit stayed at high voltage when the engine computer tried to pull it down. The relay never energised — and on this particular code, the relay itself is the single likeliest part at fault.
Quick facts
- System
- Powertrain
- Category
- PCM / Electronics
- Severity
- High severity
- Drivable
- No — stop driving until repaired
- Repair cost range
- $20 – $900
- DIY difficulty
- Beginner DIY
What does P0687 mean?
The engine computer switches its main relay on the ground side. Battery voltage sits permanently on one end of the relay coil, and the module completes the circuit by connecting the other end to ground. When it does that, the voltage on the control wire collapses toward zero and the relay pulls in.
P0687 sets when the module makes that command and the voltage does not collapse. It stays high. Nothing about that is subtle: current is not flowing through the coil, so the relay did not close.
What makes this code worth calling out separately is where the fault usually lives. Voltage that refuses to fall when a low-side driver commands it points at a circuit that cannot carry current at all, and by far the most common reason is an open relay coil. The coil is a fine winding that spends its life heat-cycling in an underhood box, and when it eventually opens, the control wire reads full battery voltage forever because there is no longer a complete path through the relay.
That gives P0687 a distinction almost no other code on this site earns: replacing the part before finishing the diagnosis is defensible. The relay costs about as much as lunch, lives in a fuse box you can open without tools, and swaps in seconds. On most codes, replacing parts to test a theory is how people waste money. Here it is the fastest legitimate test available, and if the code clears you are done.
There is one caveat that decides whether you should do that swap immediately or measure first. The other way this circuit reads high is a short to battery voltage on the control wire — insulation worn through against an adjacent power feed, or a fuse box terminal bridged by corrosion. That condition feeds voltage backward into the module's driver, and a driver held against battery voltage is a driver being damaged. If a new relay does not clear the code, stop swapping parts and check for a short to power before commanding the circuit repeatedly, because each attempt is another chance to turn a cheap fault into a module.
Driveability is not the concern here — a relay that will not close means the module cannot hold its own power supply, so the practical outcome is a no-start, or an engine that quits and does not restart.
Common causes
- Open relay coil, the most common single cause on this code
- Control wire shorted to battery voltage through damaged insulation or a corroded fuse box terminal
- Open or corroded relay socket terminal preventing the coil circuit from completing
- Missing battery feed to the relay coil, often a blown ignition-circuit fuse
- Broken wire between the relay socket and the PCM pin
- Failed low-side driver inside the PCM, which should be proven rather than assumed
Symptoms
- No-start with no fuel pump prime and no relay click when the key is turned
- Engine stalls and will not restart
- Multiple systems dead at once because they share the relay's output
- Scan tool unable to communicate with the engine module
- Check engine light with P0687 stored once power is restored
- Intermittent starting that improves after the relay is removed and reseated
Diagnostic steps
- 1.Swap the main relay for an identical unit from a non-critical circuit. It is the fastest legitimate test on this code and it resolves a large share of them.
- 2.If a known-good relay does not fix it, stop swapping parts. Measure before energising the circuit again.
- 3.With the relay removed and the key off, check the control terminal for the presence of battery voltage. Voltage there with the relay out is a short to power, and it is damaging the module's driver every time the circuit is commanded.
- 4.Confirm the relay coil has its battery feed on the other terminal, and check the fuse that supplies it.
- 5.Test coil resistance across a suspect relay's coil terminals. An open reading confirms the coil failed internally.
- 6.Check continuity from the relay socket control terminal to the PCM pin, and inspect the socket for spread or corroded contacts.
- 7.Only after the relay, the socket, the feed and the wire have all been proven good should the module's driver be suspected.
Repair cost
$20 – $900
A relay is $15-$60 and resolves this code more often than any other repair, which makes P0687 one of the cheaper codes to fix when you are lucky. A short to power in the harness typically runs $150-$450 depending on how long it takes to locate. A corroded fuse box is $250-$700. PCM replacement with programming is $600-$1,500 and is the last resort, not the first guess.
Estimate your repair
Run the numbers for your vehicle
Open the Repair Cost Estimator with engine main / powertrain relay replacement preselected. Adjust labor rate and vehicle category to fit your situation.
DIY vs shop
This is a beginner-friendly repair. Common hand tools, a free afternoon, and a willingness to follow a procedure are usually enough. The risk of causing a bigger problem is low if you read up on your specific vehicle first.