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.
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.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.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.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.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.If the driver proves healthy, test continuity of the control wire from the module connector to the case connector.
- 6.Measure the solenoid coil resistance at the case connector to confirm or clear an open winding.
- 7.Check the case connector is fully seated and latched, particularly after recent transmission work.
- 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.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.