A silver Vauxhall VX220 on track
← All guides

Reading fault codes (OBD-II) and a code lookup

How to read the car’s fault codes with a cheap adapter, what the code letters and digits mean, the GM driving cycle, the codes members have reported, and a searchable list of the generic GM codes. The list is not specific to the VX220, and some descriptions are wrong for this car.

Applies to: VX220 and Speedster, NA, TurboDifficulty: EasyTime: Not applicable

The code list below is a generic General Motors list, not a VX220 one. It was copied into the forum in 2006 and includes things the car doesn't have: automatic gearbox, cruise control, OnStar, seat memory, sunroofs and the Cadillac Escalade. The original poster says so himself. Worse, at least two owners found that the list's description of a code didn't match what the car was reporting (P1243 and P1612, see below). Use it as a pointer, and check the car-specific lists linked below before spending money.

Reading the codes

A cable plugs into the car's OBD-II connector and the other end goes to a scan tool. A laptop with Scantools or other free programs works, with a cheap USB adapter from eBay. An ELM323-based one has been used successfully. The thread doesn't say where the connector is on the VX220, or whether a particular adapter works with the Turbo.

GM cars use the SAE J1850 VPW protocol, and some German Opel derivatives use the European ISO 9141 protocol. Asked whether the list applies to European GM cars, the original poster answered that it works for him.

How a code is built

A code is a letter and four digits, such as P0140.

  • First letter: B for body, C for chassis, P for powertrain, U for network.
  • First digit: 0 is an SAE (generic) code and 1 is a manufacturer-specific one.
  • Third character (the system): 1 and 2 are fuel and air metering (2 is the injectors), 3 is ignition or misfire, 4 is auxiliary emission controls, 5 is vehicle speed and idle control, 6 is the computer output circuit, and 7 and 8 are the transmission.
  • Last two digits: the individual fault, 00 to 99.

There are two types of emissions-related code. A Type A code lights the warning lamp, and stores a freeze frame, after one failed driving cycle. A Type B code sets a pending code after one failed cycle, clears it after one good cycle, and only turns the lamp on and stores a freeze frame after two failed cycles in a row.

The GM driving cycle

A full cycle runs the monitored diagnostics and can usually be done in under fifteen minutes. The speeds are American (55 mph), copied from a GM procedure, so treat it as a rough guide and be sensible about legal speeds.

  1. Cold start. Coolant below 50°C and within 6°C of the air temperature. Don't leave the key on beforehand, or the oxygen sensor heater test may not run.
  2. Idle for two and a half minutes, with as much electrical load as you can apply. This tests the O2 heater, misfire and, if the engine reaches closed loop, fuel trim.
  3. Accelerate at half throttle to 55 mph (88 km/h) with the loads off.
  4. Hold a steady 55 mph for 3 minutes.
  5. Decelerate without shifting, braking or using the clutch, coasting down to 20 mph (32 km/h).
  6. Accelerate at three-quarter throttle to 55 to 60 mph.
  7. Hold a steady 55 mph for five minutes. The catalyst monitor runs here. If the catalyst is marginal, or the battery has been disconnected, it can take five complete cycles to judge it.
  8. Decelerate again the same way.

Codes members have reported

  • Traced correctly from the list (2006): P1137 (downstream heated oxygen sensor lean, bank 1), P1171 (fuel system lean during acceleration), P1514 (airflow to throttle position sensor correlation high), P0141 and P0140 (oxygen sensor heater performance and insufficient activity, bank 1 sensor 2) and P0107 (MAP sensor circuit low voltage).
  • P1243 on a Turbo (2006): seen after an engine rebuild and read as turbocharger bypass solenoid valve circuit open, which is different from the list. The list gives "Injector Circuit Cylinder 8 Intermittent", which can't apply to a four-cylinder car.
  • P1612 (2011): the message was immobiliser signal improbable. The list gives "Loss of IPM Serial Data".
  • P0130, P0135, P0170 and P0302 (2011): the owner's oxygen sensor kept failing, and a ScanGauge showed the car always in open loop. The P0302 was a misfire on cylinder 2 caused by water on the coil pack, which a bit of WD-40 cured. He asked whether P0170 (fuel trim, bank 1) is also oxygen sensor related, and nobody answered.
  • P0140 (2012): one owner asked whether the sensor was dying or just having a fit, since he expected more oxygen codes if it were dead, and how long a cleared code stays away if the sensor is busted. Nobody answered.

For P1512 (throttle minimum position not learned, with a no-start), see the P1512 guide, since it isn't in the generic list below.

Better lists for this car

Code lists specific to Opel and to our engines are available. They are PDFs, hosted elsewhere, and we haven't checked that they are still online.

Generic GM code list

Search by code or word. It includes powertrain (P), chassis (C, mostly ABS and wheel speed), body (B, mostly airbags and climate control) and network (U) codes. The manufacturer-specific numeric codes in the original post (such as "DTC 21"), which belong to other GM modules, are left out.

Loading codes…

Help wanted
We have no VX220-specific code list of our own, and no photo or location for the OBD connector. If you have a verified list for the Z22SE or Z20LET, or a code you have traced to a real fault, please tell us, especially for codes like P1243 and P1612 where the generic description is wrong.

Send us details or photos →

Sources & credit

Written up from these owners' original posts. Thanks to everyone who contributed.

Last updated 2026-10-15