P0338 — Crankshaft Position (CKP) Sensor — Circuit High Input
SevereQuick answer
P0338 means the crank sensor’s the signal is stuck high — typically a short to voltage, a broken ground or reference wire, or a failed sensor. When this signal drops, the engine simply stops: stalling (often when hot), long cranks, or a no-start with no spark and no injector pulse. Intermittent failures famously strand people and then start fine for the tow truck. Check the connector and wiring before buying a sensor — for this variant of the code, wiring is the most common answer.
What it means
The crankshaft position (ckp) sensor tells the engine computer the exact rotational position and speed of the crankshaft — the master timing signal every spark and injection event is scheduled from. P0338 sets when the signal is stuck high — typically a short to voltage, a broken ground or reference wire, or a failed sensor for long enough that the computer stops trusting it.
Circuit codes describe electrical behavior, which puts the wiring, the connector, and the sensor on equal footing as suspects. The cheapest of the three fails most often.
While the signal is untrusted, the computer substitutes a safe default value. The engine runs, but on assumptions instead of measurements — that’s the drivability change you feel.
Common causes
Ordered from most to least likely.
- 1.
Wiring damage (chafe, break, melted insulation)
A short to voltage or broken ground pins the signal high.
- 2.
Corroded, loose, or backed-out connector pins
Unplug and inspect both halves under good light.
- 3.
Failed crank sensor
Confirm with measurements before replacing.
- 4.
Heat-related sensor failure
The classic pattern: stalls when fully warm, restarts after cooling down.
- 5.
Lost 5V reference or sensor ground (where applicable)
If several sensors fault together, suspect a shared reference circuit rather than coincidence.
How to diagnose it, step by step
Cheapest and most likely checks first.
-
1 Read the freeze frame
Note when P0338 sets — cold start, warm idle, under load, over bumps. The conditions narrow the cause dramatically, especially for intermittent faults.
-
2 Inspect connector and harness
Unplug the sensor; check for corrosion, bent or spread pins, and chafed insulation along the harness run. Re-seat firmly. This free step resolves a remarkable share of circuit codes.
-
3 Watch it in live data
During cranking, RPM should register on the scanner (~150–250 RPM). Cranking with zero RPM displayed is the textbook dead-CKP signature.
-
4 Inspect the sensor tip and reluctor
Pull the sensor and look: metal shavings stuck to the magnetic tip, oil intrusion in the connector, or a damaged tone-ring tooth all produce these codes. Check the air gap where adjustable.
-
5 Wiggle-test if intermittent
Engine running, data live: gently flex the harness and tap the sensor while watching the reading. A glitch you can provoke is a fault you can find.
-
6 Replace with a quality part
If measurements condemn the sensor, buy OEM or a reputable brand — bargain sensors re-set these codes often enough to cost more in time than they save in money.
Parts & tools you may need
- OBD-II scanner (code reader with freeze frame / live data)
- Digital multimeter
- Electrical contact cleaner
- Replacement crank sensor (exact part for your engine)
Disclosure: some links are affiliate links. If you buy through them, we may earn a commission at no extra cost to you.
Related codes
Frequently asked questions
- Can I drive with P0338?
- Risky. An engine that can cut out without warning is a safety problem in traffic — diagnose promptly, and avoid critical trips until fixed.
- Is it the sensor or the wiring?
- For this variant, lean wiring: stuck-low, stuck-high, and intermittent signatures are circuit behaviors. Inspect and measure before buying the sensor.
- Why did the code return after a new sensor?
- Because the circuit, not the sensor, was the fault — or the replacement was low quality. Re-do the wiring inspection the first repair skipped.
- What does the computer do meanwhile?
- It substitutes a default value and keeps the engine running on assumptions. Functional, but you pay in drivability and fuel until the real measurement comes back.