AutoLogicTools

OBD-II trouble code

P0977: Shift Solenoid "B" Control Circuit High

This code has a third cause that gets missed. A module whose output stage was killed by an earlier short reports its own dead driver as a high circuit, so ask what was stored and cleared before, not only what is broken now.

High severityPowertrainTransmission / Shift ControlDrivable short-term

Quick facts

System
Powertrain
Category
Transmission / Shift Control
Severity
High severity
Drivable
Usually safe to drive short-term
Repair cost range
$0 – $1,600
DIY difficulty
Advanced DIY

One of 42 shift solenoid codes

P0977 sits in a grid: one axis is which solenoid the letter refers to, the other is what went wrong with it. Each cell is a genuinely different fault with its own diagnosis — but codes from the same row or column often appear together, and what a pairing means is usually the fastest way in. The hub page lays out all 42 and explains how to read them against each other.

See all shift solenoid codes →

Browse every code in P0900–P0999, or start from the full code library.

What does P0977 mean?

P0977 says the shift solenoid 'B' control circuit was sitting high when the module expected to pull it low. The textbook causes are an open circuit or a connection to battery voltage, and both are real. But there is a third possibility that gets missed constantly, and on this particular circuit it deserves to be checked first.

A module does not command a solenoid by supplying voltage to it; it completes the circuit to ground through an output driver, a transistor inside the module. That driver has current protection, and it can be destroyed or permanently disabled — by a hard short to ground on its own circuit, by a short to battery voltage, or simply by running at its limit for long enough. Once that driver is gone, the circuit sits at supply voltage no matter what the module commands, because nothing is pulling it down. From the module's point of view that is indistinguishable from a broken wire, so it stores exactly this code. The wiring can be perfect. The solenoid can be perfect. What failed is the thing doing the measuring.

That makes history the highest-value piece of information on this code, and it is free. If the shorted-circuit code for the same solenoid was stored earlier and cleared — or if the vehicle has a documented history of a shift solenoid problem that was 'fixed' by clearing codes — there is a decent chance the short lived long enough to take the driver with it, and that this high code is the aftermath rather than a new fault. Freeze frame data and ignition cycle counters help here too: a code with an old cycle count sitting alongside a recently cleared short is a very different job from a fresh open circuit that appeared this week.

There is a clean measurement that separates the two, but it has a prerequisite that is easy to skip. Supply reaches the module pin through the solenoid coil, so the coil has to be proven first: ohm it at the case connector and confirm it is within specification. Then, with the coil still connected and the ignition on, the module-side pin should sit at supply voltage while the output is off. Command that output on and watch it. A working driver pulls the pin down close to ground, because pulling it down is all it does. A dead or latched-off driver leaves it sitting at supply. Unplugging the solenoid first defeats this test rather than refining it: with the coil out of circuit there is no path to supply, the pin reads near nothing whatever the driver is doing, and a failed module passes. Done with the coil connected, that single measurement tells you whether you are buying a wire or a module, and those two answers are separated by well over a thousand dollars and a programming appointment.

What the car does in the meantime follows the same logic as any lost shift solenoid: the valve body reverts to its default state for that circuit and the transmission operates on whatever gear combinations remain available, usually holding a designed fallback. The vehicle drives. It is the invoice, not the drivability, that this code's diagnosis decides — and getting the module question answered before parts are ordered is the whole value of doing it carefully.

Common causes

  • Connector left unseated after earlier work on the transmission
  • Broken or backed-out terminal in the transmission case connector
  • Open circuit in the control wire between the module and the transmission
  • Corroded bulkhead connector in the solenoid circuit
  • Shift solenoid 'B' with an open winding
  • Internal transmission harness broken with age and heat cycling
  • Control wire shorted to a battery-voltage circuit in the same loom
  • Module output latched off by its own protection and not yet reset
  • Transmission control module output driver damaged by an earlier short on the same circuit, which is the expensive answer and the last one to reach

Symptoms

  • Transmission holding a fixed fallback ratio instead of shifting normally
  • Specific gears unavailable while others still work
  • Code appearing shortly after an earlier shift solenoid fault was cleared
  • Sluggish acceleration from rest or high engine speed at road speed depending on the fallback gear
  • Gear ratio code from the P0730 family stored alongside this one
  • No change in behaviour after clearing the code
  • Check engine light with no noise, slip or harshness
  • Other shift solenoid codes stored at the same time on the same circuit

Diagnostic steps

  1. 1.Read the code history and freeze frame data before testing anything, and specifically look for a shorted-circuit code on this same solenoid that was stored earlier or recently cleared.
  2. 2.Compare ignition cycle counters between codes: an old high code alongside a recently cleared short suggests the driver was damaged by the short rather than a new open appearing.
  3. 3.Check that the case connector is fully seated and latched and that no terminal has backed out, particularly after recent transmission work. It costs nothing, it produces exactly this code, and it has to be right before any measurement means anything.
  4. 4.Measure the solenoid coil resistance at the case connector next, both to confirm or clear an open winding and because the driver test below depends on the coil being intact.
  5. 5.With the coil connected and within specification and the ignition on, measure the module-side pin: with the output off it should sit at supply voltage, and commanding it on should pull it down close to ground.
  6. 6.Interpret that directly. A dead or latched-off driver leaves the pin at supply whatever is commanded. Do not unplug the solenoid for this test: the coil is what carries supply to that pin, so without it the pin reads near nothing regardless of the driver and a failed module passes.
  7. 7.If the driver proves healthy, test continuity of the control wire from the module connector to the case connector with both ends disconnected.
  8. 8.Where the fault is voltage on the circuit rather than an open, check fuses and pull codes from other modules, since that voltage arrived from another circuit.
  9. 9.Resolve any short-to-ground fault on this circuit completely before replacing a module, or the replacement will suffer the same fate.

Repair cost

$0 – $1,600

The low end is zero because an unlatched case connector reseated during diagnosis is a real outcome. Diagnosis is $110 to $250 and is worth paying for on this code specifically, because the module question is what determines the bill. A wiring or terminal repair is $150 to $450. Shift solenoid replacement is $250 to $700 fitted. A transmission control module with a failed output driver is $600 to $1,600 including programming, and on vehicles where the module is integrated with the engine controller it can be more. That fork — a wire or a module — is the entire reason to do the unloaded driver test before ordering anything.

Estimate your repair

Run the numbers for your vehicle

Open the Repair Cost Estimator with wiring harness / circuit repair preselected. Adjust labor rate and vehicle category to fit your situation.

DIY vs shop

This is an advanced DIY job. It typically requires specialty tools, scan-tool access, lifting equipment, or careful sequencing to avoid causing new failures. Plan for extended downtime and have a backup vehicle. Most owners are better served by a shop that has done this repair before.

Related codes

Frequently asked questions

How can the circuit read high when the wiring and solenoid are both fine?

Because the module does not send voltage to a solenoid — it completes the circuit to ground through an output driver inside itself. If that driver has been destroyed or permanently disabled, nothing is pulling the circuit down, so it sits at supply voltage regardless of what the module commands. The module cannot tell the difference between its own dead driver and a broken wire, so it stores a high circuit code. The wiring and the solenoid can both be in perfect condition.

Why does the code history matter so much on this one?

Because output drivers are usually killed by shorts, and the short that killed one leaves its own code behind. If the low-circuit code for this same solenoid was stored earlier and cleared, or the car has a history of a shift solenoid fault that was made to go away by clearing codes, there is a real chance the short lasted long enough to take the driver with it. In that case this high code is the aftermath of the earlier fault rather than something new, and diagnosing it as a fresh open circuit sends you looking for a broken wire that does not exist.

What single test decides whether it is the module?

Measure the module-side pin with the ignition on, the solenoid still connected, and its coil already confirmed within specification. With the output off the pin should sit at supply voltage; command it on and a working driver pulls it down close to ground, because pulling it down is its only job. A dead or latched-off driver leaves it at supply. Leave the solenoid plugged in for this — the coil is what brings supply to that pin, so unplugging it makes the reading meaningless and lets a failed module pass. Done properly, that one measurement separates a wiring repair from a module replacement and programming, a difference of well over a thousand dollars.

Can I keep driving with P0977?

Yes, in the short term. The valve body reverts to its default state for that circuit and the transmission holds a designed fallback ratio, so the car moves and can be driven to a workshop. What you should not do is clear the code and carry on. If the underlying cause is a short that is still present, every restart re-exposes the output driver to it, and that is precisely how a wiring repair turns into a module replacement. Have it diagnosed rather than reset.

Editorial context

About This Diagnostic Information

AutoLogicTools diagnostic guides explain OBD-II trouble codes using recognized code definitions, standard automotive diagnostic principles, and practical automotive context. A trouble code records a condition detected by a control module. It does not automatically identify a failed part, and the right diagnostic procedure can vary by vehicle.

Manufacturer service information, technical service bulletins, wiring diagrams, and vehicle-specific procedures should take precedence when available.

AutoLogicTools was founded by Vincent Fisk, an automotive locksmith and shop owner in San Diego with hands-on experience in vehicle keys, immobilizer systems, electrical issues, modules, programming, and diagnostics.