DF Report
DF Report - Diagnostic Faults (ECU faults)
Carries the full list of active faults reported by the vehicle’s computer — J1939 on trucks and machinery, OBD2 on light vehicles — with the date and time the fault appeared.
It is generated in three ways:
- Automatically, when a new fault appears or all of them clear, if the
CXDTC module has
autorpt=1. - On demand, with
>QDF<(direct response) or>GDF00H<(queued to the destination). - From a rule in the event engine:
ACC={GDF00H}.
Every report is a full snapshot of the state: the platform never needs to rebuild anything or keep track of which fault was added or removed.
DF report format
>RDF[NN][DDMMYY][HHMMSS];[n][;fault;fault;...]<Report fields
| Field | Description |
|---|---|
| NN | Report number (00-FF) |
| DDMMYY | Date of the fault |
| HHMMSS | Time of the fault |
| n | Number of active faults (0 = resolution: none left) |
| fault | Each fault as <source>:<ecu>:<code>:<fmi>:<occurrences> |
Date and time are those of the event, not of transmission. If the vehicle was out of coverage, the report waits in the device queue and reports when the fault actually occurred once signal returns.
Examples
// Truck (J1939): two active faults
>RDF00020826143512;2;J:00:100:1:4;J:00:1761:1:12<
// Light vehicle (OBD2): one active fault
>RDF00010926104233;1;O:00:P0301:0:0<
// Resolution: all faults cleared
>RDF00020826150233;0<Reading the first example: the engine ECU (00) reports oil pressure (SPN 100) below the normal
range (FMI 1), which occurred 4 times, and low AdBlue/urea level (SPN 1761), 12 times.
Structure of each fault
J:00:100:1:4
│ │ │ │ └─ occurrence count
│ │ │ └─── FMI: how it fails
│ │ └─────── SPN: which component fails
│ └────────── reporting ECU (hex)
└──────────── source: J = J1939 · O = OBD2| Source | Code | FMI | Occurrences |
|---|---|---|---|
J (J1939) | Numeric SPN (100, 1761) | 0-31 | 0-127 |
O (OBD2) | SAE J2012 standard code (P0301, U0100) | always 0 | always 0 |
FMI and occurrence count are J1939-specific fields: the OBD2 protocol does not transmit them.
DF versus RDTC
The >QDTC< query answers with the RDTC prefix and the same list, but without date or time.
The different prefix is deliberate: it lets the server tell a spontaneous report from a command
response without counting characters.
RDF | RDTC | |
|---|---|---|
| Origin | Report (automatic, QDF, GDF or rule) | Response to >QDTC< |
| Date and time | Yes, of the event | No |
| Queue, retries and ACK | Yes | No, answers over the asking channel |
Limits
| Limit | Value |
|---|---|
| Simultaneous faults in the device table | 32 |
| Faults per frame | ~15 — the reported count (n) is always the real one, the list is truncated |
| Minimum interval between automatic reports | 10 s |
Related signals
| Signal | Description |
|---|---|
DTC00 | There is at least one active fault |
DTC01 | A new fault appeared |
DTC02 | A dashboard lamp is on (J1939 only) |
DTC03 | All faults were cleared |
Compatibility
Rinho Zero IoT has no CAN transceiver: it does not generate this report.
The 1.09.27 series is, at the time of publishing this page, a T (pre-release) version delivered via FOTA on request. OBD2 support arrived in T9; with an earlier T the device only reads J1939 faults.
See Also
- CXDTC Command - Fault module configuration
- Reading ECU faults - Step-by-step application note
- G Command - On-demand report generation