CoderTools

CAN Bus & J1939 Decoder

Vehicle Network Analysis with DBC Support

🔒 100% Local ProcessingYour input data is processed entirely in your browser. It is not uploaded to any server.

CAN ID Decoder

Parse CAN ID to extract J1939 parameters including Priority, PGN, Source Address, and Destination Address.

Documentation

This tool provides comprehensive support for CAN (Controller Area Network) and SAE J1939 protocol analysis. CAN is the dominant communication standard in automotive and industrial applications, while J1939 extends CAN for heavy-duty vehicles and off-road equipment.

Understanding J1939 Protocol

SAE J1939 is a higher-layer protocol built on CAN 2.0B with 29-bit extended identifiers. The 29-bit CAN ID encodes multiple parameters that define message routing and priority.

J1939 Identifier Structure

The 29-bit identifier is partitioned into distinct fields. From most significant to least significant, the structure contains Priority (3 bits), Reserved/EDP (1 bit), Data Page (1 bit), PDU Format (8 bits), PDU Specific (8 bits), and Source Address (8 bits). This encoding allows efficient message prioritization and addressing within the vehicle network.

Priority (3) EDP (1) DP (1) PF (8) PS (8) SA (8)
Bit 28-26 | Bit 25 | Bit 24 | Bit 23-16 | Bit 15-8 | Bit 7-0

Parameter Group Numbers (PGN)

PGN is the fundamental addressing mechanism in J1939. It identifies the type and content of data being transmitted. The PGN is derived from the PDU Format and PDU Specific fields, with the interpretation depending on whether the message uses PDU1 or PDU2 format.

When PDU Format is less than 240 (0xF0), the message is PDU1 format with destination-specific addressing. The PDU Specific field contains the Destination Address. When PDU Format is 240 or greater, the message is PDU2 format for broadcast messages, and PDU Specific becomes part of the PGN itself.

Signal Extraction Methods

J1939 and CAN protocols encode multiple signals within 8-byte data frames. Each signal has a defined start bit position, bit length, and byte order. This tool supports both Intel (Little-Endian) and Motorola (Big-Endian) byte ordering conventions.

Physical values are calculated from raw signal values using the standard formula: Physical Value = Raw Value × Factor + Offset. This conversion transforms binary sensor readings into meaningful engineering units like temperature, pressure, or speed.

Common J1939 PGNs

  • PGN 65262 (0xFEEE) - Engine Temperature 1: Contains engine coolant temperature, fuel temperature, and oil temperature readings.
  • PGN 61444 (0xF004) - Electronic Engine Controller 1: Reports actual engine torque, driver demand torque, and engine speed (RPM).
  • PGN 65265 (0xFEF1) - Cruise Control/Vehicle Speed: Provides wheel-based and engine-based vehicle speed measurements.
  • PGN 65269 (0xFEF5) - Ambient Conditions: Contains barometric pressure, ambient temperature, and engine air inlet temperature.
  • PGN 65263 (0xFEEF) - Engine Fluid Level/Pressure: Reports fuel delivery pressure, oil pressure, and coolant pressure.

Practical Applications

  • ECU Development: Validate message formats during embedded controller development and integration testing.
  • Vehicle Diagnostics: Analyze live CAN traffic to troubleshoot communication issues and verify sensor readings.
  • Fleet Telematics: Parse J1939 data for fuel consumption monitoring, engine hours tracking, and predictive maintenance.
  • Powertrain Calibration: Extract engine parameters for performance tuning and emissions compliance verification.
  • Protocol Education: Learn J1939 protocol structure through hands-on decoding of real-world message examples.

Byte Order Conventions

Intel (Little-Endian) starts from the least significant bit and byte, commonly used in x86 processors and many modern ECUs. Motorola (Big-Endian) starts from the most significant bit and byte, traditional in CAN and automotive applications. Selecting the correct byte order is critical for accurate signal interpretation.

Tool Features Overview

This comprehensive CAN Bus decoder provides four main functional modules to meet various vehicle network analysis needs:

  • ID Decode: Parse 29-bit J1939 extended IDs or 11-bit standard IDs. Extract Priority, PGN, Source Address, Destination Address, and PDU format information.
  • Data Extract: Extract signal values from 8-byte CAN frames using configurable start bit, bit length, and byte order. Supports signed/unsigned integers and IEEE 754 float types.
  • Log Viewer: Parse CAN log files in multiple formats including Linux candump, Vector ASC, and PCAN TRC. Filter by CAN ID and export to CSV.
  • DBC Decoder: Load Vector CANdb++ DBC files to automatically decode all signals. Browse messages, search signals, view nodes, and perform quick signal decoding.

DBC File Support

DBC (CAN Database) files define the complete structure of CAN communication including messages, signals, nodes, and value descriptions. This tool fully supports Vector CANdb++ format DBC files.

After loading a DBC file, you can browse all defined messages with their cycle times and signal counts, search through thousands of signals by name or unit, view ECU nodes and their transmitted messages, and quickly decode raw CAN data using predefined signal definitions.

DBC parser supports: message definitions (BO_), signal definitions (SG_), node declarations (BU_), value descriptions (VAL_), comments (CM_), attributes including cycle time and initial values, Intel/Motorola byte order, and signed/unsigned value types.

Supported Input Formats

Multiple data input formats are supported for flexibility:

  • Hex Space-Separated: Standard format with bytes separated by spaces. Example: FF 00 11 22 33 44 55 66
  • Hex No-Space: Continuous hexadecimal string without spaces. Example: FF00112233445566
  • Base64: Base64 encoded binary data. Example: /wARIjNEVWY=
  • C/C++ Array: C-style array notation. Example: 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66

Log File Formats

The Log Viewer supports automatic detection of common CAN log formats:

  • Linux candump: (1234567890.123456) can0 18FEF100#FF00112233445566
  • Vector ASC: 0.000000 1 18FEF100x Rx d 8 FF 00 11 22 33 44 55 66
  • PCAN Trace: 1) 1234.5 18FEF100 8 FF 00 11 22 33 44 55 66

Transport Protocol Support

J1939 Transport Protocol (TP) enables transmission of messages larger than 8 bytes. Enable TP reassembly to automatically combine multi-frame messages (BAM and CMDT) into complete data payloads for analysis.

Related Tools

Quick Menu

No recent tools