Identifiers, bytes and units
CAN IDs and data bytes are hexadecimal, optionally prefixed 0x where the individual field accepts it. PGNs and extracted numeric fields are decimal unless labeled hex. A CAN ID must fit 29 bits; logger flags are rejected, not silently removed. The parser assumes extended classical data frames and does not infer IDE from the numeric value.
Priority occupies bits 28–26; page/reserved bits 25–24; PF bits 23–16; PS bits 15–8; SA bits 7–0. PF below 240 selects PDU1, whose PS is destination, not PGN. PDU2 includes PS in the PGN.
Accepted capture text
Compact candump uses one frame per line, for example:
(0.000) can0 18ECFF00#200A0002FFCAFE00Timestamps are optional nonnegative finite seconds. CAN IDs in this format need eight digits. CSV requires a header with id,data and may add bus,time in any order:
time,bus,id,data
0.000,can0,18ECFF00,20 0A 00 02 FF CA FE 00
0.100,can0,18EBFF00,01 44 FF 6E 00 05 03 64
0.200,can0,18EBFF00,02 00 01 02 FF FF FF FFA missing bus column becomes “capture”; do not combine different channels without a bus column. If time is present, every row needs seconds. Bus names accept 1–32 letters, digits, underscores, dots or hyphens. Quoted CSV cells and doubled quotes are parsed, but embedded newlines, unknown/duplicate headers and malformed rows are rejected. Blank lines are ignored. Limit: 5,000 data rows and 500,000 characters. No FD/RTR/ASC or automatic format repair.
Diagnostic payload boundary
Two lamp bytes precede 4-byte DTC records. An 8-byte single-frame payload has two trailing FF padding bytes; a reassembled payload retains only its declared length. DM1 and DM2 share the layout, so payload bytes alone cannot identify their active/previously-active meaning. Current-layout SPN is withheld for CM=1; OC 127 is unavailable. The no-DTC marker is four zero bytes, not an all-FF record.
BAM transport boundary
TP.CM PGN 60416 with control 0x20 starts a broadcast sequence. Its length is little-endian; the count must cover 9–1,785 bytes in seven-byte pieces. TP.DT PGN 60160 starts with a sequence number. The checker separates bus/source sessions, reports gaps and never invents missing data. Directed transport, ETP, timeouts and full standard conformance are outside scope.
64-bit NAME fields
NAME is transmitted little-endian. From least significant bits: identity 21, manufacturer 11, ECU instance 3, function instance 5, function 8, reserved 1, vehicle system 7, vehicle-system instance 4, industry group 3, arbitrary-address-capable 1. NAME values are shown as 16 hex digits without rounding. A manufacturer number is not a verified company lookup.
PGN 60928 identifies Address Claimed. Global destination is FF; FE source is Cannot Claim, FF source is invalid for a claim. Distinct NAMEs sharing an address over time are review candidates, not automatically simultaneous conflicts. Lower observed NAME indicates priority only.
Report and privacy boundary
Inputs remain in the page and are not persisted or attached to analytics. Copy/print includes the supplied input and full bounded result; screen tables preview at most 200 rows. Editing invalidates the result. Copy may require a secure context or clipboard access; if unavailable, select the plain-text report. Printing an invalid or uncomputed state produces no analysis report.