OBD-II trouble code
P0889: TCM Power Relay Sense Circuit Range/Performance
The module is timing the relay, not just watching it. This code usually means the relay responded late or chattered as it closed — which is why a part that tests perfectly on a bench can still fail in the car, and why a bargain replacement is a false economy here.
Quick facts
- System
- Powertrain
- Category
- Transmission / Electrical Supply
- Severity
- High severity
- Drivable
- Usually safe to drive short-term
- Repair cost range
- $90 – $950
- DIY difficulty
- Advanced DIY
What does P0889 mean?
The distinction between this code and a plain sense circuit fault is a distinction between absence and quality, and on a relay that turns out to be a question about milliseconds.
A plain sense fault says the feedback did not arrive: the module asked, watched, and saw nothing happen. A range or performance fault says the feedback did arrive but was not right — it turned up too late, or it arrived and then went away again, or it did not settle cleanly. The control module does not simply check whether the relay closed. It expects the sense line to follow the command within a defined window, and it is perfectly capable of measuring intervals far shorter than any human could perceive. When the response falls outside that window, this is the code that records it.
That has a consequence that catches people out repeatedly. A relay that is slow, or that bounces as its contacts settle, is not a dead relay. Put it on a bench with a battery and a test lamp and it will operate exactly as expected — it clicks, the lamp lights, the resistance measures correctly, and every test a workshop would normally apply says the part is good. It then goes back in the car and the code returns within a drive cycle. Nothing was wrong with the testing; the tests were simply asking a coarser question than the module asks. Judging this fault by whether the relay "works" is not sufficient, because working slowly is precisely the failure being reported. The only comparison that means anything is against a known-good relay of the correct part number, or an oscilloscope trace of the sense line against the command.
The most useful thing to know about the causes is that the relay is not always the culprit, and the first thing to rule out costs nothing. A relay coil pulls its contacts in against a return spring, and how quickly and decisively it does that depends on the voltage across the coil. Feed it a healthy supply and the armature snaps across cleanly. Feed it a marginal one — because the battery is tired, because a ground has picked up resistance, because a connector or socket terminal is adding a drop — and the magnetic force barely exceeds the spring. The armature moves sluggishly, and it may hover near the point of contact and chatter rather than closing decisively. That is a perfect recipe for a timing fault, produced by a mechanically flawless relay. Which means the correct first measurement on this code is coil supply voltage at the instant of pull-in, not at rest. A static measurement with the relay idle tells you nothing; the voltage has to be captured while the coil is drawing current and closing. If that figure is low, the relay is innocent and the fault is in the supply, the ground or a connection feeding it — and a new relay will change nothing at all.
The third cause is one that is uncomfortable to raise because it sounds like a sales pitch, so it is worth being precise about why it applies specifically here rather than generally. Relays are commonly cross-referenced by their footprint, pin layout and current rating, and by those criteria a great many parts are interchangeable. What that cross-reference does not capture is coil inductance, armature mass, spring rate and contact material — all of which determine how fast the relay actually operates. A part that is genuinely equivalent by every published specification can pull in ten or fifteen milliseconds later than the original, which is completely irrelevant on a horn or a fog lamp and is exactly the quantity this module is measuring. So on most circuits a pattern relay is a sensible economy, and on this specific code it is the thing to check first if one has been fitted. A vehicle that developed this code shortly after a relay was changed has almost certainly answered its own question.
Common causes
- Relay contacts closing late or bouncing as they settle, rather than failing outright
- Low coil supply voltage causing slow or hesitant armature pull-in
- High-resistance ground or connection feeding the relay coil, weakening the magnetic force
- Aftermarket or pattern relay whose operating speed differs from the specified part
- Weak or tired battery reducing available voltage at the moment of switching
- Worn relay socket terminals adding resistance in both the coil and output circuits
- Corrosion in the relay socket producing an unstable connection as the contacts close
- Degraded relay return spring or contaminated contact faces producing erratic timing
- Poor connection in the sense wire causing the feedback signal to arrive unstable
- Control module sense input drifting out of tolerance, which is uncommon and diagnosed last
Symptoms
- Check engine light with P0889 stored, often recurring shortly after being cleared
- Transmission occasionally entering fail-safe for one journey and behaving normally the next
- Brief hesitation or delay before the transmission responds after switching on the ignition
- Harsh or crude shifting immediately after starting, improving as the drive continues
- Intermittent momentary loss of communication with the transmission control module
- Symptoms noticeably worse in cold weather, when battery output and coil pull-in are weakest
- Fault appearing shortly after a relay was replaced, particularly with a non-original part
- Relay audibly buzzing or chattering rather than producing one clean click
- Code returning within a drive cycle after a replacement relay tested perfectly on the bench
- Occasional delayed engagement when selecting drive or reverse from cold
Diagnostic steps
- 1.Understand what is being measured. The module times the sense response against the command, so a relay that operates slowly fails this test while still working.
- 2.Measure coil supply voltage at the moment of pull-in rather than at rest, capturing it while the coil is drawing current and the contacts are closing.
- 3.Load test the battery and check its state of health, since reduced available voltage weakens coil pull-in directly.
- 4.Voltage drop test the coil supply and ground paths under load, because resistance anywhere in them slows the armature.
- 5.Check whether the fitted relay is the specified part. A pattern relay of the correct footprint and rating can still operate outside the module's timing window.
- 6.Ask whether a relay has recently been replaced. This code appearing soon after a relay change usually explains itself.
- 7.Compare against a known-good relay of the correct part number, since bench testing a slow relay will pass it.
- 8.Scope the sense line against the relay command if the equipment is available, which shows late pull-in and contact bounce directly.
- 9.Inspect the relay socket for corrosion, heat damage and loss of terminal grip, which adds resistance to both circuits at once.
- 10.Consider ambient temperature. A fault that appears only on cold mornings points at marginal coil voltage rather than a failed component.
Repair cost
$90 – $950
This code is inexpensive to fix and easy to fix twice, which is where the money actually goes. Diagnosis is $110 to $280, and it is worth paying for properly because the useful measurement — coil voltage captured at the instant of pull-in — is not one that gets taken by accident. A correct-specification transmission control relay is $20 to $180 fitted; buying the original rather than the cheapest equivalent matters more on this code than almost anywhere else, and the price difference is usually small. Battery replacement is $150 to $400 where marginal voltage is the underlying cause. Repairing grounds, coil supply connections or a worn socket runs $120 to $500. Replacing the transmission control module with programming is $600 to $1,000 and is genuinely rare here, since a timing fault is far more likely to come from the relay or its supply than from the module's measurement of them.
Estimate your repair
Run the numbers for your vehicle
Open the Repair Cost Estimator with transmission control relay replacement 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.