OBD-II Diagnostic Trouble Codes

On-Board Diagnostics II reference for light- and medium-duty vehicles. Powertrain (P), body (B), chassis (C), and network (U) fault categories standardized under SAE J2012.

OBD-II is the on-board diagnostics standard required on every gasoline and most diesel passenger and light- to medium-duty commercial vehicle sold in the U.S. since 1996. The codes follow a five-character format defined by SAE J2012 — a letter for the system (P, B, C, U), a digit for generic vs. manufacturer scope, and three hex digits for the specific fault. Use this hub to look up any individual code by family, or jump straight to the most-cited codes from the main Diagnostic Code Reference.

OBD-II Code Ranges

Codes begin with a letter indicating the system and a digit indicating generic (0/2) vs. manufacturer-specific (1/3).

7 ranges
OBD-II code prefix ranges
Prefix Category Description
P0xxx Generic Powertrain Engine, transmission, and drivetrain codes defined by SAE. Common in roadside inspections.
P1xxx Manufacturer Powertrain OEM-specific engine and transmission codes. Interpretation varies by manufacturer.
P2xxx Generic Powertrain (Extended) Additional SAE-defined powertrain codes introduced in later OBD-II revisions.
P3xxx Generic/Manufacturer Powertrain Mixed SAE and OEM powertrain codes.
B0xxx–B3xxx Body Airbags, seatbelts, HVAC, instrument cluster. Less common in CMV inspections.
C0xxx–C3xxx Chassis ABS, traction control, stability systems. Relevant to brake inspections.
U0xxx–U3xxx Network/Communication CAN bus, module communication faults. Can indicate wiring or ECU issues.

Reading OBD-II Codes

OBD-II fault codes follow a 5-character format: a letter identifying the system (P, B, C, U), a digit indicating generic (0, 2) or manufacturer-specific (1, 3) scope, and three hex digits identifying the specific fault. For example, P0300 is a generic powertrain code for random/multiple cylinder misfire detected.

In commercial vehicle inspections under the FMCSA Level I and II protocols, inspectors may connect a scan tool to the vehicle's OBD-II port (typically a 16-pin DLC near the driver's seat) to retrieve active and pending codes. Active emissions-related codes (e.g., EGR, SCR, DPF faults) can contribute to roadside out-of-service decisions depending on the state and inspection level.

OBD-II is standard on light- and medium-duty vehicles from 1996 onward in the U.S. Heavy-duty diesel trucks use the J1939 protocol instead — see the J1939 SPN/FMI reference for heavy-duty diagnostic codes.

Common Powertrain Code Families

  • P0100–P0199 — Fuel and air metering (MAF, MAP, O2 sensors)
  • P0200–P0299 — Fuel and air metering, injector circuits
  • P0300–P0399 — Ignition system and misfires
  • P0400–P0499 — Auxiliary emissions (EGR, evap, secondary air)
  • P0500–P0599 — Vehicle speed, idle control, auxiliary inputs
  • P0600–P0699 — Computer output circuits
  • P0700–P0899 — Transmission codes

Featured OBD-II Codes

A starter set of OBD-II diagnostic codes from our reference. Click any code for full meaning, severity, and diagnostic guidance.

More OBD-II codes in our database

Sorted by FMCSA inspection citations. Click any code for the full meaning, severity, and related diagnostic guidance.

Frequently asked questions about OBD-II codes

What does an OBD-II code look like?
Every OBD-II code is five characters: a letter (P powertrain, B body, C chassis, U network), a digit (0 or 2 = generic SAE, 1 or 3 = manufacturer-specific), and three hex digits identifying the specific fault. Example: P0420 is generic powertrain, fault 420 (catalyst efficiency below threshold, bank 1).
Where is the OBD-II port on a truck?
On light- and medium-duty trucks built after 1996, the OBD-II port is a 16-pin trapezoidal Diagnostic Link Connector (DLC) usually within 18 inches of the steering column, often under the dash. Heavy-duty trucks generally do not have an OBD-II port — they use a J1939 9-pin Deutsch or 6-pin connector instead.
Will an OBD-II code clear itself?
It depends on the type. Pending codes can clear after a number of consecutive successful drive cycles without the fault recurring. Confirmed (active) codes stay set until the fault is repaired and the code is cleared with a scan tool, or until enough drive cycles have passed without the fault to satisfy the readiness monitor.
Does an OBD-II code always trigger the check-engine light?
No. Pending codes (one occurrence) usually do not. Confirmed emission-related codes (the ones tracked by the EPA's MIL strategy) typically do trigger the malfunction indicator lamp. Body, chassis, and network codes have their own warning indicators if any.
Can OBD-II codes affect emissions inspections?
Yes — directly. In I/M (Inspection & Maintenance) program states, an active emissions-related OBD-II code or an unset readiness monitor will fail the emissions test, regardless of tailpipe measurements. The reverse is also true: clearing codes immediately before an emissions test resets readiness monitors and will fail the test until enough drive cycles have completed.

Related pages

Data sources & freshness

TruckCodex aggregates official public-sector datasets. See the Source registry for dataset-level coverage and the Freshness log for last-import timestamps.

Census, SAFER, SMS, Licensing & Insurance (L&I), roadside inspections, crashes, and authority history.

Refreshed daily.

Vehicle recall campaigns, defect investigations, and consumer safety complaints (SCRS).

Refreshed daily.
EIA

Retail diesel and gasoline price history and state fuel-tax tables.

Refreshed weekly.

Cross-border carrier registry and Canadian recall campaigns where applicable.

Refreshed weekly.

TruckCodex is an independent aggregator; it is not affiliated with FMCSA, NHTSA, EIA, or Transport Canada. Always verify compliance-critical information directly with the originating agency.