Updated: 2026-11-14
The reference covers 36 codes from the factory tables of Bendix ABS/ESP — the full list by system is below, stop-now codes first.
Bendix ABS/ESP is a separate table for brake electronics: 36 codes under J1939, mostly brakes and the power supply. The ABS lamp means anti-lock braking is not working, even if the brakes still stop the truck, so take the code seriously and do not put off the check.
Start with these codes:
Bendix supplies brake electronics: ABS, ATC and ESP controllers for tractors, trucks and trailers. The page covers this electronics, not the engine and not the brake mechanisms themselves. The codes follow J1939: a component number (SPN) and a failure mode (FMI) come as a pair.
Bendix has a second way to read them: blink codes. The ABS lamp in the cluster flashes a sequence, and each code has two groups (a first and a second digit). In Bendix tables each blink code is matched at once to a J1587 number (SID), an SPN and an FMI. It is one fault written three ways, not three different faults.
The SPN names the component and the FMI names the failure type. For example, in the Bendix table the wheel speed sensors use SPN 789 to 794 (one per wheel) and the controller is recorded under SPN 629. The FMI list is the same for every make: 3 is voltage above normal, 4 is below normal, 2 is erratic data, 9 is an abnormal update rate.
A blink code cannot be compared with an SPN directly: it is a number built from a count of flashes. A two-digit blink code is first translated through the Bendix table into SPN and FMI, and only then matched to the page. The reverse mistake also happens: a two-digit number taken for an SPN.
The letters in Bendix descriptions mean position: SA, DA and AA are axles (steer, drive and additional), Left and Right are the side. This matters for wheel codes: the left and right sides of one axle have different numbers.
According to the Bendix guide, the mode is entered with the diagnostic switch: one press for active codes, two for inactive (stored) codes, three to clear active codes. Other presses start a system configuration check, the dynamometer mode and ECU reconfiguration. Wait at least two seconds after ignition on before pressing.
The controller does not enter blink code mode if the wheel speed sensors show the vehicle moving, and it leaves the mode when motion starts. Flashes last half a second, the pause between digits is 1.5 seconds, between messages 2.5 seconds, and the lamp stays on for 5 seconds at the end. This is from the Bendix summary for the EC-60 controller; other controllers may differ, so check the service data sheet for your model.
A dirty tone ring or a corroded connector gives a wheel sensor code with a good sensor. Inspect and clean first, replace after.
1. Write down every code in full, with SPN and FMI. If you read by flashes, write down the count in each group and translate it using the table for your controller model.
2. Mark active and inactive codes separately. An inactive code is a fault that happened but is not present now.
3. Check the controller power and ground, then the connectors and the harness at the axle.
4. For a wheel sensor, inspect the ring and the gap against the manual for that axle. The guide gives no values.
5. Clear the codes after the repair. According to the Bendix guide, active codes clear by cycling the ignition, and wheel speed sensor codes only once the controller again sees valid speed from all wheels.
6. Check for a repeat on a normal trip. One start without a repeat proves nothing.
A lit ABS lamp means anti-lock braking is not working, even if the brakes still stop the truck. Ordinary air braking remains, but there is no protection against wheel lock. On wet or slippery roads, increase your following distance and do not count on that protection.
If the red brake lamp is lit with the ABS lamp, or air pressure is falling, stop in a safe place. A yellow ABS lamp alone usually lets you reach a workshop, but do not put off the check.
Blink codes replace a scan tool only when none is at hand. Read the full table, inactive codes and event history with a diagnostic tool. Do not translate a blink code through the table of another controller model: numbering depends on the series (EC-60, EC-80 and so on).
Do not replace the controller for one code. Power, ground, connectors and harness first. After a sensor, controller or modulator is replaced, calibration or reconfiguration may be needed; the data sheet for the model says so.
WABCO - other brake electronics, ABS lamp is on
SPN 629 - controller #1, SPN 639 - J1939 network #1, SPN 627 - power supply
A code has two halves. SPN is what is actually at fault — the sensor, component, or parameter. FMI is what is wrong with it — value out of range, open circuit, short circuit, invalid data. So “SPN 100” alone is not a diagnosis yet, but “100/1” already tells you oil pressure has dropped below normal.
That is almost always how it goes: one fault drags five or six codes behind it. An empty AdBlue tank first throws a level error, then interrupted dosing, then a NOx excess and a torque derate. Fix the root cause and the rest clear on their own. Paste the whole list — we will show which code is the root cause.
Problem pages that cover codes of this make.
No. A blink code is groups of flashes, not an SPN. It is translated through the Bendix table into an SPN and an FMI. A number of flashes is not an SPN.
The brakes remain, but there is no protection against wheel lock. You can drive carefully to a workshop, but do not put off the check.
First inspect the tone ring, the gap, the connector and the wire. Dirt and a corroded contact give the same code with a good sensor.
Not necessarily. Active codes clear that way, but the cause remains. Look at the inactive codes and check for a repeat on a trip.
Know the code number? Type it into the search — or paste the whole list from the scanner and we will show which fault is the real one.