When the PCM recognizes and identifies a problem a DTC for that fault is stored in its memory. These codes are intended to help you determine the root cause of the failure. The diagnostic codes that are required by law on all OBDII systems are standardized and all vehicle manufacturers use the same common code list. This means the misfire code P0300 represents the same failure on a Chevy, Chrysler, Ford, or Toyota.
OBD II DTCs consist of a five-digit alphanumeric code. The DTC format and general code types are shown in this chart.
OBD II emissions related DTCs are from the powertrain and begin with P0xxx. P1xxx codes refer to manufacturer specific codes which often cover areas that are not emissions related and may not cause the check engine light to illuminate.
For P0xxx codes, the third character in the code identifies the system where the fault occurred. Numbers 1 and 2 are for fuel or air metering problems, 3 is for ignition problems or engine misfire, 4 is for auxiliary emission controls, 5 relates to idle speed control problems, 6 is for computer or output circuit faults, and 7 and 8 relate to transmission problems. Failures occurring in non-powertrain systems such as ABS, HVAC (Bxxxx, Cxxxx, Uxxxx codes) may be retrieved through the OBDII diagnostic link connector but do not illuminate the check engine light and are not involved with (NYVIP2) emissions inspections.
If the PCM commands the check engine light to illuminate there will be at least one P0xxx code stored in memory. However, in some cases you can have a situation where there is a P0xxx code in memory and the check engine light is not commanded to be illuminated. These codes are referred to as pending or maturing codes. Pending codes are caused by intermittent faults or faults that the PCM needs to see happen in two consecutive warm-up cycles to set the code. If the fault does not reappear within 40 warm-up cycles, the code will be cleared from memory. If the fault reappears for the specified number of times, the code will then mature into a diagnostic trouble code (DTC) and the PCM will command the check engine light to illuminate.
When a pending code is stored in the PCMs memory, freeze frame data is also captured. The freeze frame data will give the repair professional the actual operating conditions that were occurring when the fault triggered. This data allows for duplication of conditions so you can hopefully isolate the fault. The pending code feature is also helpful in trying to figure out why a particular system monitor will not set. The component or process that is the subject of the pending code is often involved as part of the enabling criteria to successfully complete a monitor.