A fault code, or código de avaria, tells you which system detected an abnormal condition. It does not tell you which part has failed. For a maintenance team, the code is the start of a work order: you record it, confirm the cause with tests, repair, then check that the code does not return. Teams that treat the code as a parts list replace components that were never the problem. Teams that log every code against the asset, the symptom and the intervention build a history they can use to plan preventive maintenance. We built FullyOps around that discipline: work orders, intervention tracking, inventory and reporting in one place.
This guide covers vehicle and machinery diagnostic trouble codes (DTCs), the kind a technician reads with diagnostic equipment. It is written for maintenance managers, facilities companies and technical teams who need a repeatable routine, not for owners of a single car.
TL;DR
- A DTC is generated when the control unit detects abnormal operation, and it points to an area of the system, not to a single faulty part.
- The first letter gives the system (P, B, C or U), and the second position separates standard codes from manufacturer-specific ones.
- Read and record the code, and the freeze frame data if available, before clearing anything.
- Confirm the cause with tests, repair, clear the code, road test and read all modules again.
- Log each code on a work order tied to the asset so repeat faults become visible.
Índice
- What a fault code is and what it is not
- How to read a code: letter, digits and ownership
- Why the code rarely names the faulty part
- A diagnostic routine before you clear a code or replace a part
- Brand-specific codes: Volkswagen, Renault and others
- When to escalate to a specialist
- Turning fault codes into maintenance data
- Our perspective
- See how it fits your operation
- PREGUNTAS FRECUENTES
- Fuentes
What a fault code is and what it is not
A DTC is a code the vehicle’s control unit stores when it detects operation outside expected limits. According to Autodata Group, the code indicates a specific area with an anomaly within the vehicle’s systems, which helps narrow the problem down and speeds up repair.
In a European on-board diagnostics (EOBD) system, an emissions-related fault is stored in the memory of the responsible control module and the malfunction indicator lamp (MIL, the engine warning light) switches on. The TRW EasyCheck manual notes that the code can then be retrieved with diagnostic equipment to establish the type and status of the fault.
The standard behind this is OBD-II. The Master-Ecu blog explains that it can be read on practically any vehicle built from the year 2000 onwards, and that some codes are pending: the system has seen a problem but the warning light has not yet come on.
What a code is not: a diagnosis. The code names a condition. The same condition can come from several causes, and that distinction decides whether a repair works.
How to read a code: letter, digits and ownership
A code such as P0301 has one letter and four characters. The Sema Repair guide breaks the letter down like this:
| Letter | Sistema | Typical content |
|---|---|---|
| P | Powertrain | Engine, fuel supply, ignition, emissions, transmission |
| B | Body | Airbags, doors, lighting, climate control |
| C | Chassis | Brakes, ABS/ESP, suspension, steering |
| U | Network | Communication between control units |
The second position matters for your procedures. According to Final OBD, a 0 is a generic code fixed by the SAE J2012 standard and carries the same meaning on any make, while a 1 belongs to the manufacturer. The same source adds that P03xx codes relate to ignition and P04xx to emissions control. The SAE publishes the standard as J2012, Diagnostic Trouble Code Definitions, most recently revised in September 2025, and it also sets the ranges reserved for manufacturers.
The last two characters identify the specific fault inside the subsystem. Navixy’s documentation describes them as a fault index from 0 to 99. When the second character shows a manufacturer code, you need the manufacturer’s own information to interpret it.
Mandatory and voluntary codes
The TRW manual explains that DTCs split into mandatory codes, assigned by ISO/SAE and uniform across the industry, and voluntary codes, assigned by manufacturers and specific to a make or vehicle. For a mixed fleet this means your technicians will meet both kinds, and your procedure should say where to look for each.
Why the code rarely names the faulty part
This is the point that costs maintenance budgets the most. Sema Repair explains that an open-circuit code can come from a sensor, wiring, a connector, an earth, the power supply, a short or the control unit. Replacing the part is only one of the possible scenarios.
Pointsaver.pt gives concrete examples:
- P0301 is normally read as a combustion misfire in cylinder 1, but it does not prove the coil has failed. A worn spark plug, an uneven injector, low compression, unmetered air intake, a wiring problem or an engine management fault can all produce it.
- P0171 often points to a mixture that is too lean.
- P0420 points to catalyst efficiency below threshold, and the catalyst should not be replaced before checking the lambda sensors, misfires, oil consumption and exhaust leaks.
HELLA’s August 2026 product page makes the same point about sensors: a code alone does not prove the sensor is faulty. Check battery voltage, fuses, live data, the power supply and the installation point first.
The practical rule for your team: the first work order for a code is a diagnostic order, not a parts order.
A diagnostic routine before you clear a code or replace a part
The sequence below combines the steps described by OnMotor, Caetano y Peak Drive. It is a routine a technician can follow on any asset with an onboard diagnostic system.
- Collect the context. Ask the driver or operator when and under what conditions the problem appears. Note when the warning light came on and the symptoms. A fault that only shows in rain, after a repair or when the engine warms up needs a different approach from a permanent, repeatable one, as pointsaver.pt points out.
- Read and record every code before clearing anything. Include the freeze frame when available. Peak Drive warns that disconnecting the battery or clearing codes first can lose useful data, and Caetano notes that clearing the engine light before solving the problem can erase the code that would have helped.
- Check the status of each code. Sema Repair describes pending codes (condition detected, confirmation criteria not yet met, so the lamp may be off), stored or confirmed codes, and permanent codes. A permanent code cannot be cleared manually: it is removed automatically once the monitors verify that the fault is gone. Clearing a code does not fix the fault and can reset the OBD monitors and the data attached to it.
- Cross-check with live data. Pointsaver.pt notes that many control units store freeze frame values (revs, temperature, load, speed, voltage) at the moment of the fault, which helps reproduce it cold, under load or in a given rev range. A professional diagnosis also uses fault history, actuator tests and wiring diagrams.
- Test before replacing. Check supplies, earths, continuity, sensor signals, connectors and harnesses, and the integrity of the CAN network (the data bus the control units use to talk to each other). Consult the manufacturer’s technical information.
- Repair, clear, road test, re-read. After the repair, clear the codes, road test and read the relevant control units again. HELLA recommends this because a fault can remain registered in other modules on the network.
Where each step goes wrong
- Step 2 fails when someone clears the code to “see if it comes back”. The freeze frame is gone, and an intermittent fault becomes harder to catch.
- Step 5 fails under time pressure. A part is swapped, the lamp goes out for a week, and the fault returns on a second work order.
- Step 6 fails when only the module that raised the code is re-read.
Brand-specific codes: Volkswagen, Renault and others
Readers often ask what the codes mean for a specific make. The honest answer is that generic codes (the 0 range) mean the same everywhere, and manufacturer codes need manufacturer information.
For Volkswagen, the VW technical library states that DTCs and data can be retrieved with VW/Audi factory tools (VAG 1551, VAG 1552, VAS 5051) through the data link connector, and that P1xxx codes are manufacturer codes. Note that this library describes the North American market from model year 1996, so treat it as a reference for how the format works rather than a Portuguese-market code list.
For Renault, a technical note on a 2005 Mégane II 1.9 dCi shows the method well. Code DF 025 concerns the diagnostic line of the pre/post-heating unit. The manufacturer defines the possible faults (short to earth, open circuit, short to positive), and the technician checks connectors, fuse F2 (70 A), glow plug resistance (0.6 Ω ± 0.1 at +20 °C on the EDC16C), the 12 V supply and the earths before replacing the heating unit. The TRW manual also shows brand-specific procedures: on Renault airbag systems you select the connector (12 or 16 pins), read the codes, clear them and arm or disarm the airbags.
The lesson is the same each time: the manufacturer defines what the code can mean, and the technician proves which of those causes is present.

When to escalate to a specialist
Some situations should not wait for a routine work order. Bosch Car Service Portugal lists unusual noises, loss of power, excessive consumption, sudden stopping or braking, irregular running, and fault codes or warning lights as reasons to have a diagnosis done. It also notes that the analysis helps identify possible causes but does not guarantee an immediate fix, and that next steps are agreed beforehand.
Pointsaver.pt adds that a simple OBD reader is useful for generic codes and a first assessment, but it does not validate complex repairs or reliably catch intermittent faults. A flashing warning light or loss of power is a more serious situation. For brake-system warnings, Honda Portugal advises that if the brake light stays on with the handbrake released, there may be a problem with the brakes, ABS or ESP, and an authorised technician should inspect the vehicle. Take the asset out of service until that inspection is done.
Turning fault codes into maintenance data
A code read in the workshop and forgotten has no value beyond that day. The same code logged against the asset becomes information. Here is what a maintenance manager can build from it.
One work order per fault, with the evidence attached
For each fault, the work order should hold the asset, the code and its status, the symptoms and conditions, the freeze frame if one exists, the tests performed, the confirmed cause, the part replaced and the post-repair re-read. This is the record the diagnostic routine above produces. Our guide to the proceso de gestión de órdenes de trabajo and the five-stage work order workflow show how to structure that flow from request to closure.
Spot repeat faults
When the same code returns on the same asset, either the confirmed cause was wrong or the repair did not hold. Seeing that requires the history in one place, which is why we cover informes de mantenimiento as a reliability tool. A repeat code after a part swap is the clearest sign that step 5 of the routine was skipped.
Plan preventive work from what the codes show
Codes that appear only under load, in the cold or after wet weather suggest inspection tasks: connectors, earths, harness condition, supply voltage. Those belong in a preventive schedule, and our article on the proceso de mantenimiento preventivo explains how to build one. The examples there come from HVAC assets, but the scheduling logic applies to any asset class.
Keep the right part on the shelf
Once the cause is confirmed, the part has to be available. Recording confirmed causes against asset types shows which components you actually consume, and our guía de seguimiento de inventario covers how to turn that into stock levels. When the confirmed fault is on heavy machinery and you need attachments or spare parts for heavy machinery, a confirmed diagnosis lets you order the right item the first time.
Our perspective
We see the fault code as the first line of a maintenance record, not the last. The code says where the system noticed something wrong. The technician’s tests say why. The work order is where the two meet the asset’s history.
That is why FullyOps combines work order management, intervention tracking, inventory, performance analytics and reporting in one platform, with user roles and permissions so technicians, administrators and managers each see what they need. When the code, the cause, the part and the result sit on the same record, repeat faults stop being a surprise.
The routine in this article works with a spreadsheet for a handful of assets. It stops working when teams, sites and asset types multiply. That is the point at which a shared system pays for itself.
Pedro
See how it fits your operation
FullyOps is offered in three plans, Basic, Professional and Advanced, with different levels of functionality for technicians, administrators and managers. Pricing is not published on the site, so the plan details are on the Sitio de FullyOps. If you manage a mixed fleet or a multi-site facilities contract, start with how your team currently records diagnostics, and compare it against the work order checklist in our seven-step guide.
PREGUNTAS FRECUENTES
What do códigos de avaria mean?
They are diagnostic trouble codes (DTCs), stored when the control unit detects abnormal operation. The code points to an area of the vehicle’s systems, such as engine, brakes or network communication, and helps narrow down the repair. It does not by itself identify the faulty component.
Can I use the same code list for every make?
Only partly. Generic codes, whose second character is 0 and which are defined by SAE J2012, carry the same meaning on any make. Codes with a 1 in that position belong to the manufacturer, so your technicians need the manufacturer’s information to interpret them.
Should I clear the code once the warning light is on?
No, not before recording it. Clearing a code can erase the information that would help diagnose the fault and reset the OBD monitors. Read and log the code and the freeze frame, find and repair the cause, then clear, road test and re-read the control units.
Does a pending code need action?
Yes, record it. A pending code means the system has detected a condition but the criteria for confirming a fault are not yet met, so the warning light may be off. Logging it on the asset’s record lets you see whether it becomes a confirmed code.
Fuentes
- Autodata Group: códigos de avaria DTC
- TRW EasyCheck: manual de instruções
- Master-Ecu: o que é um DTC
- Sema Repair: como ler um código de erro OBD2
- Final OBD: códigos de avaria OBD2
- SAE International: J2012 Diagnostic Trouble Code Definitions
- Navixy: DTC, códigos de falha de diagnóstico
- Pointsaver.pt: códigos OBD explicados
- HELLA: novidades na gama, agosto de 2026
- OnMotor: códigos de falha na oficina
- Caetano: luz do motor acesa
- Peak Drive: luz do motor acesa, fixa ou a piscar
- VW Online Technical Library: Diagnostic Trouble Codes
- Dacarsa: nota técnica Renault Mégane II, DF 025
- Bosch Car Service Portugal: diagnóstico automóvel
- Honda Portugal: luzes do painel