ANROT Tutorial

ANROT CAN J1939 DBC Parsing Tutorial

Explains ANROT CAN J1939 29-bit extended frames, PGN / Source Address, DBC import, and IMU, attitude, GNSS / INS signal decoding.

Updated Apr 26, 2026 Products 5
  • j1939
  • can
  • dbc
  • tutorial

CAN J1939 DBC Parsing Tutorial

Protocol Support

Protocol / frameSupportScope of this tutorial
SAE J1939 / CAN DBCSupportedThe DBC describes CAN PGN / SPN signals for J1939 tools.
ANROT UART binary (0x91, 0x62, 0x63)Not applicableThese are UART binary frames, not J1939 frames.
CANopenNot applicableUse the CANopen tutorial instead.

This page explains how to use J1939.dbc to decode CAN J1939 output from ANROT devices. The DBC can be imported into CANdb++, CANalyzer, PCAN-View, or other CAN tools with DBC support. It converts raw CAN frames into physical values such as latitude, longitude, velocity, acceleration, angular velocity, attitude angles, and quaternion values.

The DBC only describes data decoding. It does not include device control, parameter setup, or output-mode switching commands. To configure output mode, Node ID, baud rate, or CANopen TPDO behavior, use the matching configuration document and CANopen tutorial.

Download

J1939 Frame Structure

J1939 uses 29-bit extended CAN frames. The ANROT J1939 DBC stores message IDs in DBC extended-frame notation, so the decimal BO_ ID in the DBC includes the extended flag. The actual 29-bit CAN ID seen on the bus is the lower 29 bits.

Example: PGN65332_FF34_Accel

ItemValue
DBC BO_ ID2365535240
DBC hexadecimal ID0x8CFF3408
Actual 29-bit CAN ID0x0CFF3408
Priority3
PGN0xFF34
Source Address0x08

The leading extended flag in 0x8CFF3408 is part of the DBC format. The actual CAN bus frame ID is 0x0CFF3408. If your CAN tool loads the DBC correctly, this conversion is usually handled automatically. If you compare raw logs or match IDs in code, account for this difference.

DBC Workflow

  1. Confirm that the CAN adapter supports 29-bit extended frames.
  2. Set the CAN baud rate to match the device output setting.
  3. Import J1939.dbc into the CAN analysis tool.
  4. Start receiving CAN frames and confirm that extended IDs such as 0x0CFFxxxx are visible.
  5. Read physical values by signal name, such as Acc_X, Gyr_Z, Roll, or Latitude.

Message Overview

The DBC is modeled with Source Address 0x08. If the device Source Address changes, the final byte of the actual CAN ID changes as well. In that case, the CAN tool may need a node / ID adjustment, or you may need to save a separate DBC for that source address.

DBC messageActual 29-bit CAN IDPGNMain data
PGN65296_FF10_LonLat0x0CFF10080xFF10Latitude, Longitude
PGN65300_FF14_AltUnduDiffAge0x0CFF14080xFF14Altitude, Undulation, Differential Age
PGN65304_FF18_StatusSats0x0CFF18080xFF18GNSS / INS status and satellite count
PGN65318_FF26_Velocity0x0CFF26080xFF26East / North / Up velocity, Ground Speed
PGN65327_FF2F_Time0x0CFF2F080xFF2FUTC time
PGN65332_FF34_Accel0x0CFF34080xFF34X / Y / Z acceleration
PGN65335_FF37_Gyro0x0CFF37080xFF37X / Y / Z angular velocity
PGN65338_FF3A_Mag0x0CFF3A080xFF3AX / Y / Z magnetic field
PGN65341_FF3D_RollPitch0x0CFF3D080xFF3DRoll, Pitch
PGN65345_FF41_YawDual0x0CFF41080xFF41Yaw 0-360, Yaw -180-180
PGN65347_FF43_TempPressure0x0CFF43080xFF43Temperature, Pressure
PGN65350_FF46_Quaternion0x0CFF46080xFF46Quaternion W / X / Y / Z
PGN65354_FF4A_Inclinometer0x0CFF4A080xFF4AInclinometer X / Y

Signals and Scaling

All multi-byte signals are decoded as little-endian values. Scale and offset are already defined in the DBC. After the CAN analysis tool loads the DBC, it should convert raw values into physical values automatically.

GNSS / INS Position and Status

PGNSignalTypeScaleUnit
0xFF10Latitudesigned 32-bit1e-7deg
0xFF10Longitudesigned 32-bit1e-7deg
0xFF14Altitudesigned 32-bit0.01m
0xFF14Undulationsigned 16-bit0.01m
0xFF14Diff_Agesigned 16-bit0.01s
0xFF18GNSS_Pos_Qualityunsigned 8-bit1-
0xFF18GNSS_Heading_Qualityunsigned 8-bit1-
0xFF18Sat_Pos_Countunsigned 8-bit1-
0xFF18Sat_Heading_Countunsigned 8-bit1-
0xFF18INS_Statusunsigned 8-bit1-

Velocity and Time

PGNSignalTypeScaleUnit
0xFF26Vel_Eastsigned 16-bit0.01m/s
0xFF26Vel_Northsigned 16-bit0.01m/s
0xFF26Vel_Upsigned 16-bit0.01m/s
0xFF26Ground_Speedsigned 16-bit0.01m/s
0xFF2FUTC_Year / UTC_Month / UTC_Dayunsigned 8-bit1-
0xFF2FUTC_Hour / UTC_Minute / UTC_Secondunsigned 8-bit1-
0xFF2FUTC_Millisecondunsigned 16-bit1ms

IMU and Attitude

PGNSignalTypeScaleUnit
0xFF34Acc_X / Acc_Y / Acc_Zsigned 16-bit0.00048828G
0xFF37Gyr_X / Gyr_Y / Gyr_Zsigned 16-bit0.061035deg/s
0xFF3AMag_X / Mag_Y / Mag_Zsigned 16-bit0.030517uT
0xFF3DRoll / Pitchsigned 32-bit0.001deg
0xFF41Yaw_360unsigned 32-bit0.001deg
0xFF41Yaw_pm180signed 32-bit0.001deg
0xFF43Temperaturesigned 16-bit0.01degC
0xFF43Pressuresigned 32-bit0.01Pa
0xFF46Quat_W / Quat_X / Quat_Y / Quat_Zsigned 16-bit0.0001-
0xFF4AIncli_X / Incli_Ysigned 32-bit0.001deg

Manual Decoding Example

If you decode the data in code instead of using a DBC-aware tool, use this formula:

physical value = raw value * scale + offset

For Acc_X in PGN65332_FF34_Accel, bytes 0-1 are a signed 16-bit little-endian value, and the scale is 0.00048828 G. If the raw bytes are 00 08, the little-endian raw value is 0x0800 = 2048:

2048 * 0.00048828 = 0.99999744 G

So Acc_X is approximately 1.0 G.

Difference from the CANopen DBC

ItemJ1939 DBCCANopen DBC
CAN frame29-bit extended frame11-bit standard frame
Main identifierPGN + Source AddressTPDO frame ID + Node ID
PurposeIMU, attitude, INS / GNSS data decodingCANopen TPDO data decoding
Control / setupNot includedNot included in the DBC; use SDO / NMT for setup
Common ID example0x0CFF34080x188

If the tool does not show decoded physical values, first confirm that the imported file is the J1939 DBC and that the CAN log contains extended frames. Treating a J1939 extended frame as a standard CAN frame will usually produce no match.

Troubleshooting

SymptomCheck first
No frames are receivedCAN baud rate, wiring, termination resistor, and whether CAN J1939 output is enabled on the device
Frames are received but the DBC does not decode them29-bit extended frame setting, DBC import status, and whether Source Address is still 0x08
Only some signals have no valueThe PGN may not be enabled, or the current product / setting may not include that data
Physical values look incorrectEndian, signed / unsigned setting, scale, and whether the tool is using raw ID instead of DBC extended ID
Decoding stops after Source Address changesThe DBC is modeled with SA 0x08; adjust the tool ID mapping or generate a new DBC