On a 1991–1995 XJ you can read trouble codes for free by cycling the key on-off-on-off-on and counting the Check Engine Light flashes — no scanner needed. On a 1987–1990 Renix XJ that trick does nothing: those trucks don't store codes, and most don't even have a Check Engine Light. Knowing which system you have is the whole job.
The "key dance" is one of the most useful things you can know about an OBD-I Jeep. When the Check Engine Light comes on, or when the engine runs rough and you want a starting point before throwing parts at it, the PCM can flash its stored fault codes through the dash light. The catch is that this only works on 1991–1995 XJs. The earlier Renix-injected trucks (1987–1990) use a completely different computer that doesn't store or flash codes the same way — confusing those two systems is the single most common dead end XJ owners hit. This guide covers both, plus what to do with a code once you have it. A code tells you which circuit is unhappy, not which part is bad — it's a place to start testing, not a verdict.
There are three diagnostic eras across the XJ run, and they behave nothing alike:
**1984–1986 (2.8L GM V6 / carbureted or early TBI):** Pre-Renix. No usable flash-code system on the 4-cylinder/V6 of this era. Diagnosis is done with a multimeter and a manual.
**1987–1990 (Renix 4.0L and 2.5L):** The Renix system monitors sensors in real time but does **not** store trouble codes, and most of these trucks have no Check Engine Light at all. The key dance does nothing. To read anything you need a period scan tool — a Snap-on MT2500, a Chrysler DRB-II with the Renix cartridge, or the AMC MS-1700 — connected to the two yellow-capped diagnostic plugs under the hood near the passenger strut tower. These pull live data while the engine runs; they don't dump a stored history. This is shop or club territory — buying one of these tools for a single Jeep isn't worth it.
**1991–1995 (Chrysler OBD-I):** Full key-dance support. The PCM stores fault codes and flashes them through the Check Engine Light. This is the system the steps below cover.
**1996+ (OBD-II):** Standardized 16-pin port under the dash, read with any cheap code reader. That's a separate guide — see "OBD-II Scanner Basics for XJ (1996+)."
**12** — Battery or PCM power was recently disconnected (sets after every battery pull; clears on its own).
**13** — MAP sensor not detecting vacuum change.
**14** — MAP sensor voltage out of range.
**15** — Vehicle speed sensor signal.
**17** — Engine staying too cold — usually a stuck-open thermostat.
**21** — Oxygen sensor circuit.
**22** — Coolant temperature sensor (CTS) — the two-wire sensor that feeds the PCM, not the single-wire gauge sender.
**23** — Intake/charge air temperature sensor.
**24** — Throttle position sensor (TPS).
**25** — Idle air control (IAC) motor circuit — common cause of surging or stalling at idle.
**27** — Injector control circuit.
**31** — EVAP purge solenoid circuit.
**33** — A/C clutch relay circuit.
**41** — Alternator field / charging circuit.
**42** — Auto shutdown (ASD) or fuel pump relay circuit.
**43** — Ignition coil or misfire.
**44** — Loss of battery-temp input or FJ2 voltage.
**46 / 47** — Charging voltage too high (46) or too low (47).
**51 / 52** — Fuel system running lean (51) or rich (52) at the O2 sensor.
**53** — Internal PCM fault.
**54** — Camshaft sync / distributor sync signal.
**55** — End of codes (always last — not a fault).
A code 12 by itself after you've disconnected the battery is normal and means nothing. Code 55 by itself means clean. Anything in between is a thread to pull.
Why it works
Costs nothing on a 1991–1995 XJ — the diagnostic capability is built into the truck and the dash light.
Narrows a no-start or rough-running problem to a circuit in a couple of minutes, before you spend money guessing.
No tools, no port adapter, no app — works in a parking lot with a dead phone.
Trade-offs
Renix trucks (1987–1990) get nothing from the key dance; they need a borrowed period scan tool, which is a real barrier.
A flash code names a circuit, not a failed part — you still need a multimeter and some testing to confirm the actual fault.
OBD-I codes are coarse compared to OBD-II. They'll point you at a system but won't always tell you whether it's the sensor, the wiring, or the ground.
Tools required
ignition key
notepad or phone to count flashes
digital multimeter (for following up on a code)
scan tool (Renix only — borrow, don't buy)
Parts
Some parts links are Amazon affiliate links — if you buy through them Trail Manual may earn a small commission at no extra cost to you. We only list parts we’d run on our own rig, and never on safety-critical pages.
Renix-era scan tool (Snap-on MT2500, Chrysler DRB-II, or AMC MS-1700) — borrow or shop-only
borrow from a shop / local club
~$0
Sources
{'title': 'Cherokee Forum — How to Read OBD Trouble Codes (1984–2001)', 'url': 'https://www.cherokeeforum.com/how-tos/a/jeep-cherokee-1984-2001-how-to-read-obd-trouble-codes-399060'}
{'title': 'FixJeeps — Jeep check engine codes for the YJ, XJ and other OBD-I Jeeps', 'url': 'https://www.fixjeeps.com/jeep-check-engine-codes.html'}
{'title': 'NAXJA Forums — Retrieving codes on a 1990 Renix Cherokee', 'url': 'https://naxja.org/threads/how-do-i-get-the-trouble-codes-from-a-90-cherokee.11474/'}
Written and maintained by an AZ wheeler and driveway wrencher. Always cross-reference your factory service manual — modifications affect vehicle safety and warranty. Work at your own risk.