A fault code is the control module recording that a reading fell outside the range it
expects. It tells you where to look. It does not tell you which part has failed, and that
distinction is where most money gets wasted.
What the code itself tells you
Every code follows the same structure, so even one we have not written up still gives you
something useful.
The first letter is the system: P is powertrain, engine
and gearbox. B is body, things like airbags and central locking.
C is chassis, so braking, steering and suspension. U is
network, meaning the modules are not talking to each other properly.
The second character tells you who defined it. 0 and 2 are
industry-standard codes that mean the same thing on any make. 1 and 3 are the
manufacturer’s own, so the same code can mean completely different things on a Ford and
on a BMW.
Plenty of websites state that the other way round. We checked it against the
text of the standard, and it is 0 and 2 that are the shared ones.
A stored code is a starting point, not a diagnosis
A code pointing at a lambda sensor very often means the sensor is reporting correctly and
something upstream is wrong. Replacing the part named in the code, without testing, is the most
common way people spend money twice.
That is why we read live data and test the circuit rather than reading the code and ordering
a part. It takes longer and it costs less overall.
Codes that will not clear
If a code comes straight back after clearing, the fault is still present. If it clears and
returns days later, it is intermittent, which usually points at a connector, a chafed wire or a
component that only misbehaves hot or cold. Both are findable, they just take different tests.
Where we draw the line
We will not simply suppress an emissions or safety related code on a road car so a light goes
out. It fails an MOT, it can affect insurance, and it leaves somebody driving a car they believe
is fine. We would rather find the fault.