SPN 239 FMI 31: Meaning and Fix
SPN 239 FMI 31 indicates the Engine Position Sensor (camshaft or crankshaft) circuit reports a continuous active condition, often due to a short to power or sensor internal failure. Technicians frequently encounter this code after a wiring repair near the exhaust manifold or following an engine overhaul where sensor air gap was misadjusted. The ECM detects the signal stuck high outside normal operating range, triggering a derate.
Common Symptoms
- Hard Start: Engine cranks excessively without firing due to missing synchronization signal from the position sensor.
- Erratic Idle: Rough or unstable idle as ECM defaults to a backup timing map without valid sensor input.
- Limited RPM: Engine speed capped at 1200–1500 rpm to protect components from unsynchronized injection timing.
- No Crank Event: Starter engages but engine fails to fire; no tachometer movement indicates sensor signal loss.
Probable Causes
- Sensor Short to Power: Internal sensor short or harness chafing against chassis causing +5V or +24V on signal line.
- ECM Internal Fault: ECM pull-up resistor failure or input driver damage from previous overvoltage or reverse polarity.
- Damaged Tone Wheel: Missing or bent teeth on the crankshaft or camshaft tone wheel generating invalid signal patterns.
- Contaminated Connector: Oil, coolant, or moisture ingress in the sensor connector causing intermittent or continuous short circuit.
Advanced Technical Analysis
The ECM continuously monitors the position sensor signal for a valid square wave pattern. FMI 31 is set when the ECM detects the signal remains at a logic high (above 4.5V) for more than 2.5 seconds without a low transition. This is often triggered by a sensor internal short to the 5V supply rail, or by a wiring harness abrasion that makes contact with a permanent +24V source. The ECM debounce timer prevents false triggering from noise.
Electrical analysis shows that the sensor output stage is an open-collector type. A continuous high condition means the transistor is not pulling the signal low. This can be caused by a failed transistor inside the sensor, a short to VCC in the harness, or a broken ground wire that prevents the sensor from completing the low side circuit. Using an oscilloscope, a flat line at 5V confirms a stuck-high fault, while a flat line at 0V suggests an open circuit.
When this code is active, the ECM enters a limp-home mode that disables cylinder synchronization. Injection timing is set to a fixed default, which reduces power and increases exhaust temperature. The ECM also disables cylinder cutout tests and may inhibit DPF regeneration to avoid thermal damage. This safety fallback is designed to protect the engine from catastrophic misfire or backfiring due to incorrect injection timing.
Long-term prevention requires verifying the sensor air gap per manufacturer specs (typically 0.5–1.5 mm). In workshop practice, this code often appears after a starter motor replacement where the harness was pinched, or after engine washing that forced moisture into the connector. Always inspect the tone wheel through the sensor hole for damage. Use dielectric grease on connectors and ensure the harness is routed away from hot surfaces.
Step-by-Step Troubleshooting Guide
- Visual Inspection: Check sensor connector and harness for chafing, corrosion, or bent pins near hot engine surfaces.
- Voltage Check: Measure signal pin at sensor; should toggle 0-5V during cranking. Stuck high indicates short to power.
- Resistance Test: Disconnect ECM and sensor; measure signal-to-ground resistance. Under 10 kΩ suggests internal short.
- Oscilloscope Pattern: Scope signal during cranking. Missing or distorted teeth pattern indicates tone wheel or sensor air gap issue.