DTCs are generated by the vehicle’s on-board diagnostics (OBD) system whenever a fault is detected. The OBD both diagnoses the fault and displays the DTC through visible warnings such as the illumination of a check engine light. It is also what allows external devices, such as an OBD scanner, to interact with a vehicle’s onboard computer system.

Over the years, several different versions of OBD interfaces were used—these interfaces, now classified as OBD-I, largely varied from manufacturer to manufacturer. Today, there are two main standards that people can use to read DTCs.

  • OBD2: best for light- and medium-duty vehicles
  • J1939: best for heavy-duty vehicles and heavy equipment

With the implementation of OBD-II, a standard DTC list that contains codes that are common to all manufacturers was created by the Society of Automotive Engineers (SAE).

Though OBD-II is widely used, it is important to note that manufacturer-specific DTCs still exist. Manufacturers may create their own DTCs to supplement the list of universal codes if the vehicle requires it, but more often than not these manufacturer-specific codes are difficult to interpret without a mechanic