OBD-II trouble code
P0654: Engine RPM Output Circuit
The module cannot properly send engine speed out to whatever consumes it — the tachometer, and on work vehicles the equipment mounted on the back. The engine's own speed sensing is fine, which is the single most useful thing to understand about this code.
Quick facts
- System
- Powertrain
- Category
- PCM / Electronics
- Severity
- Low severity
- Drivable
- Usually safe to drive short-term
- Repair cost range
- $90 – $1,100
- DIY difficulty
- Intermediate DIY
What does P0654 mean?
The word that carries all the weight in this code's title is output. The engine control module already knows how fast the engine is turning; it derives that from the crankshaft position sensor and it cannot run the engine without it. P0654 is about the separate job of publishing that figure to other equipment, and a fault on the publishing side says nothing whatsoever about the sensing side.
That distinction produces the most valuable diagnostic fork on the page, and it can be settled without tools. If the engine starts and runs, the crankshaft position sensor is working. A genuinely failed crank sensor does not give you a dead tachometer and an otherwise normal car; it gives you a no-start or a stall, because the module has no idea when to fire anything. So an engine that runs while the tachometer sits dead or wanders has already eliminated the expensive component most people reach for first. The fault is downstream of the module, in the wire, the consumer, or the module's output stage.
The population most affected by this code is not ordinary passenger cars, and it is the reason the code exists at all. Body builders and upfitters need engine speed. A dedicated output — a square wave whose frequency is proportional to engine speed, or on some platforms a broadcast message on the data network — is provided specifically so that equipment fitted after the vehicle left the factory can use it. Fast idle controllers on ambulances and utility trucks, power take-off enable logic, hydraulic pump controllers on tippers and cranes, refrigeration units, mobile generators, snow plough hydraulics and aftermarket speed limiters all hang off it. On those vehicles P0654 arrives as a complaint that the equipment on the back has stopped working while the truck itself drives faultlessly, and the wiring that failed is almost always the upfitter's splice rather than anything the manufacturer installed.
That leads to a habit worth adopting on any vehicle carrying this code: find out what has been added to it. An aftermarket tachometer, a shift light, a remote start, a diesel exhaust brake controller or a trailer accessory tapped into the engine speed output can load the circuit, short it, or damage the module's driver when it fails. A splice made under a dashboard ten years ago by somebody in a hurry is a far more common cause than a module defect, and it will not appear on any factory wiring diagram.
On a conventional car with no added equipment, the consumer is the instrument cluster's tachometer, and the fault sits in the wire between module and cluster, in the cluster itself, or in the module's output driver. Modern vehicles frequently do away with the dedicated wire and send engine speed as a network message instead, in which case P0654 is a communication fault and the diagnosis moves to the bus rather than to a single conductor.
Common causes
- Damaged, chafed or broken wiring in the engine speed output circuit
- Failed aftermarket or upfitter splice into the engine speed output
- Add-on equipment failing in a way that loads or shorts the output — tachometers, shift lights, speed limiters, PTO controllers
- Corroded or backed-out terminals at the module, cluster or body-builder connector
- Failed output driver stage inside the engine control module
- Instrument cluster fault, including a failed tachometer stepper motor or driver
- Poor cluster or module ground affecting the output circuit reference
- Data network fault on vehicles that broadcast engine speed as a message rather than a pulse
- Body-builder connector left unsealed and corroded, common on chassis-cab vehicles
- Water intrusion at an underbody or firewall pass-through on upfitted vehicles
Symptoms
- Tachometer reading zero, sticking, or sweeping erratically while the engine runs normally
- Check engine light on with P0654 stored and no change in how the engine behaves
- Power take-off, fast idle or auxiliary equipment refusing to enable on an upfitted vehicle
- Hydraulic, refrigeration or generator equipment cutting out intermittently
- Aftermarket speed limiter or exhaust brake behaving unpredictably
- Cruise control declining to engage on some vehicles
- Shift quality complaints where another module was relying on the broadcast engine speed
- Symptoms that appear and disappear with vibration, load or road surface
Diagnostic steps
- 1.Confirm the engine starts and runs normally. If it does, the crankshaft position sensor is functioning and the fault is on the output side — that observation alone removes the most commonly and wrongly replaced part on this code.
- 2.Ask what has been fitted to the vehicle since it was built. Upfitter equipment, aftermarket gauges, remote starters and speed limiters routinely tap this circuit and are the leading cause of faults on it.
- 3.Locate the body-builder or upfitter connector if the vehicle has one, and inspect it for corrosion, moisture and pins that have been probed, spread or backed out.
- 4.Disconnect every non-factory device from the engine speed output and see whether the code clears. This is quick, free and frequently conclusive on work vehicles.
- 5.Determine from the wiring diagram whether engine speed leaves the module as a pulsed output on a dedicated wire or as a message on the data network, because the two demand different tools.
- 6.On a pulsed output, back-probe the module pin with an oscilloscope or a meter capable of reading frequency, and confirm a clean signal that rises and falls with engine speed.
- 7.Compare the module pin signal against what arrives at the consumer. A good signal leaving the module and a poor one arriving identifies the wiring between them without disassembly.
- 8.Wiggle-test the harness at firewall pass-throughs, along frame rails and at any point where an upfitter routed a new loom, running the engine and watching for the signal to drop out.
- 9.Check module and cluster grounds with a voltage drop test under load rather than a continuity check.
- 10.If engine speed is broadcast on the network, scan every module for communication codes and confirm the intended recipient is present and responding before suspecting any wire.
Repair cost
$90 – $1,100
Diagnosis is typically 1-2 hours because the circuit often runs to equipment that is not on the factory wiring diagram. Repairing a broken or chafed wire is $120-$400 depending on where it runs and how much has to come apart to reach it. Cleaning or repairing a corroded body-builder connector is $90-$300 and is one of the more common outcomes on upfitted trucks. Replacing or repairing a failed aftermarket device that was loading the circuit varies enormously and is properly the installer's problem rather than the vehicle manufacturer's. An instrument cluster with a failed tachometer driver is usually rebuilt for $150-$400 including removal and refitting. A failed output driver inside the engine control module means module replacement and programming at $400-$1,100, and should only be accepted after the external wiring and every added device have been eliminated.
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 intermediate DIY job. It usually involves diagnostic steps, specialty parts, and some careful work in tight spaces. If you have the tools and a service manual or trustworthy video for your specific vehicle, it is achievable in a weekend. Otherwise, a competent independent shop will be faster.