CAN bus tools · runs in your browser

CAN frame decoder

Paste an identifier and the data bytes to see every field by name, with units: 639 NMEA 2000 PGNs, J1939 engine data and DM1 fault codes, and CANopen network management, heartbeat, SDO and emergency messages.

Examples:
Loading the NMEA 2000 database…

29-bit ID 0x09F21401

How it works

NMEA 2000 layouts come from canboat, the open-source PGN database that Signal K server's NMEA 2000 input (canboatjs) is built on. Values are little endian; the top of a field's range means “not available” and the value below it “error”. SI units (rad, K, m/s, Pa, C) are shown with a friendlier conversion next to them.

Messages longer than 8 bytes travel as fast-packet frames. Paste the reassembled payload here, or the raw frames into the log analyzer, which puts them back together.

J1939: SAE's parameter database isn't public, so only engine parameters published in manufacturer manuals are decoded — engine speed and torque, load, coolant temperature, oil pressure, battery voltage, fuel level, engine hours — plus DM1 lamps and fault codes (SPN, FMI, occurrence count).

CANopen: NMT commands, heartbeat states, expedited SDO reads and writes with abort codes, and emergency messages with the error register. PDO contents depend on each device's mapping, so they're shown raw — decode them with the signal calculator.

Other CAN tools

Sources & privacy

Everything is decoded in your browser — logs and frames are never uploaded. Message layouts come from these documents; where a source doesn't define something, the tools show the raw bytes rather than guess.

The NMEA 2000 definitions are derived from canboat, © 2009–2026 Kees Verruijt, under the Apache License 2.0. NMEA 2000® is a registered trademark of the National Marine Electronics Association; canboat's definitions are reverse-engineered, not the official NMEA database. Check critical values against your equipment's documentation.