How Source Addresses Work on the J1939 Network
Every module on a J1939 CAN network claims a source address (SA) — a number from 0 to 253 that identifies it on the bus. When a module broadcasts a diagnostic message, that message includes the SA of the reporting module in its header. SA 0 is the preferred address for the engine ECM, SA 3 for the transmission controller, SA 11 for the ABS controller, and SA 49 for the cab controller — these are SAE-defined preferred assignments, not universal rules.
Source addresses appear in the fault code display as 'SA' followed by a number, or as a module name if the scan tool has a name table for the vehicle. Some displays show source address as decimal (SA 0 = engine), others as hexadecimal (SA 0x00). The lookup tool on this page helps decode SA values to their module type context.
Why SA Is Needed to Select Service Information
The same SPN/FMI pair can be reported by different modules — and the diagnostic procedure is completely different depending on which module reported it. SPN 3364 FMI 1 (downstream NOx sensor below normal) from SA 0 is an engine ECM fault in the aftertreatment NOx sensing circuit. The same SPN/FMI from a different SA may involve a different aftertreatment module, a different circuit, and a different service procedure.
Without the SA, a technician looking up the code in OEM service documentation cannot confirm they are in the right diagnostic procedure. Bringing the SA along with the SPN and FMI is the standard of complete fault code reporting.
OEM Variations and Confirmed SA Assignments
SAE J1939 defines preferred SA values, but OEMs are not required to follow them for every module. Proprietary body controller modules, telematics units, and specialty systems often use manufacturer-assigned SA values that are not in the SAE preferred list. The lookup table on this page covers the most common SAE-preferred assignments; for a specific vehicle's module map, the OEM's J1939 network documentation or the scan tool's module list is the authoritative source.
On trucks with multiple ECMs or split module architectures (some Volvo, Mack, and Detroit platforms), a single physical module may use multiple source addresses for different subsystems — the engine ECM may be SA 0 for emissions functions and a different SA for retarder control. This is normal and not a fault condition.
Recording SA in the Field
Most OEM and fleet scan tools display source address automatically alongside SPN and FMI. If the display shows 'Engine ECM: SPN 100 FMI 1' — the module name is the SA translation. If it shows 'SA 0: SPN 100 FMI 1' — the SA number is provided directly. Either format allows the correct service documentation to be selected.
When using a generic J1939 scanner that does not display module names, record the raw SA number. Even a basic J1939 reader will display SA in decimal or hex format. That number, combined with the vehicle's make and model, allows the SA to be confirmed against the manufacturer's address list.
Related Pages
Sources
- SAE J1939 Standards Collection SAE International · official · accessed 2026-05-05 · confidence medium
Source: SAE International, SAE J1939 Standards Collection. This page paraphrases factual fields only and is not a substitute for the original document.
Open source - ELD Malfunctions and Data Diagnostic Events Federal Motor Carrier Safety Administration · government · accessed 2026-05-05 · confidence high
Source: Federal Motor Carrier Safety Administration, ELD Malfunctions and Data Diagnostic Events. This page paraphrases factual fields only and is not a substitute for the original document.
Open source - 49 CFR 395.34 - ELD malfunctions and data diagnostic events Electronic Code of Federal Regulations · government · accessed 2026-05-05 · confidence high
Source: Electronic Code of Federal Regulations, 49 CFR 395.34 - ELD malfunctions and data diagnostic events. This page paraphrases factual fields only and is not a substitute for the original document.
Open source
FAQ
Is the source address (SA) the same as the fault code?
No. Source address identifies which module on the J1939 network sent the diagnostic message. A fault code is the SPN/FMI combination that describes the condition being reported. The same SPN/FMI can be reported by different modules — SA distinguishes which module is involved, which determines which OEM documentation and diagnostic tool applies.
Are source address assignments standardized across all truck brands?
SAE J1939 defines preferred SA values for common module types (SA 0 = engine, SA 3 = transmission, SA 11 = ABS), but OEMs and suppliers can use different assignments and may use multiple source addresses for the same module or split functions across addresses differently. Confirm SA assignments for a specific vehicle using the OEM's J1939 network documentation or the scan tool's module list.
Why does the source address matter for diagnosis?
Two different modules can report the same SPN/FMI using their own SA. An SPN 102 FMI 4 from SA 0 (engine ECM) involves the engine ECM's intake manifold pressure circuit. The same code from SA 11 (ABS controller) would be a completely different fault in a completely different system. Using the wrong documentation for the wrong module leads to misdiagnosis.