AutoLogicTools

OBD-II trouble code

P0977: Shift Solenoid "B" Control Circuit High

This is the code most likely to be an aftermath rather than an event. A module whose output stage was killed by an earlier short reports its own dead driver as a high circuit, so the first question is not what is broken now but what was stored and cleared before.

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 43 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 43 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 without guessing. Disconnect the solenoid at the transmission case connector so the circuit has no load at all, then use the scan tool to command that output on while measuring the voltage at the module-side pin. A healthy driver will pull that pin down close to ground even with nothing attached, because pulling it down is all it does. A dead or latched-off driver leaves it sitting at supply voltage. That single test 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

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

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.Disconnect the solenoid at the transmission case connector so the circuit carries no load, then command the output on and measure voltage at the module-side pin.
  4. 4.Interpret that measurement directly: a healthy driver pulls the unloaded pin close to ground, a dead or latched-off driver leaves it at supply voltage.
  5. 5.If the driver proves healthy, test continuity of the control wire from the module connector to the case connector.
  6. 6.Measure the solenoid coil resistance at the case connector to confirm or clear an open winding.
  7. 7.Check the case connector is fully seated and latched, particularly after recent transmission work.
  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?

Unplug the solenoid at the transmission case connector so the circuit has no load at all, then command that output on with a scan tool while measuring voltage at the module-side pin. A working driver pulls that pin down close to ground even with nothing attached — pulling it down is its only job. A dead or latched-off driver leaves it sitting at supply. That one measurement separates a wiring repair from a module replacement and programming, which is 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.