A fault code on a heavy truck is four things: the module that raised it, the SPN (what), the FMI (how), and the state it is in. Rignos keeps all four visible, because dropping any one of them is how a confident wrong answer gets written on a customer’s report.
Every module on the bus has a source address: engine 0x00, transmission
0x03, brakes 0x0B, body controller 0x21, cab controller
0x31, aftertreatment 0x3D, and so on. Rignos polls each module it has
seen by address, every 60 seconds, for stored (DM2), permanent (DM28) and freeze-frame
(DM4) data — PACCAR modules, for one, ignore those requests when they are broadcast.
The Modules tab is the inventory: name from the module’s own Component ID, maker
from its NAME, and a card per module showing only the parameters that module actually
broadcasts. A module whose card says ? for a value is one we have not verified
against a dealer tool yet — the app says so instead of guessing.
The code is looked up in the table of the module maker, not the engine maker:
(?) rather than picking one.5-2.FC 36.Not yet covered: Allison, International/Navistar, Freightliner body modules and the Bendix Wingman family. Their codes still show, as SPN/FMI with the generic SPN name where a generic name exists. Manufacturer-range SPNs (520192 and up) are never given a generic name, because the same number means different things to different makers.
For a stored code the ECM may keep a snapshot of the moment it set: engine speed, load, coolant temperature and more. The Faults tab shows a ❄ on codes that carry one, and the snapshot opens under the code. Modules that do not answer DM4 (older PACCAR MX engines, for example) show a dashed placeholder rather than an empty table.
A guided test script can end with an engine-off clear as its final step; that step is skipped with a reason rather than marked passed when the engine is still turning or no module answers.
Alongside the codes, each session records when things happened: a code appearing or going away, a lamp changing, a regen starting, derate and engine-protection flags, engine start and stop, and every clear command with its outcome — per module, timestamped. Questions like “did it derate before or after the regen?” are answered from that log instead of from raw frames.