J1939 Error description

Error level

Error Code Description
WARNING 0 An error warning has occurred
ERROR 1 An error has occurred
FATAL 2 A fatal error has occurred
OK 3 No error has occurred yet

Error identifier

Error Code Description
ERR_ERR_ID 0 Error unit identifier
DLL_ERR_ID 1 Data link layer identifier
MEM_ERR_ID 2 Memory unit identifier
TPL_ERR_ID 3 Transport protocol identifier
NWM_ERR_ID 4 Network management identifier
APL_ERR_ID 5 Application layer identifier
CYC_ERR_ID 6 Cycle unit identifier
REQ_ERR_ID 7 Request unit identifier
L2C_ERR_ID 8 Layer 2 unit identifier
ADR_ERR_ID 9 Addressing unit identifier
NMEA_ERR_ID 10 NMEA 2000 module
CDP_ERR_ID 11 CAN Diagnostic Protocol
DIAG_ERR_ID 12 J1939 Diagnostic Module
USR_ERR_ID 13 User specific code (generated)
OK_ID 14 No error

Error codes

Memory

Error Code Description
MEM_ERR_ALLOC_MEMORY 111 Allocate memory failed
MEM_ERR_FREE_MEMORY 112 Free memory failed

Transport layer

Error Code Description
TPL_ERR_TX_OVRN 151 No free Entry in the TxQueue of the TPL available
TPL_ERR_CONF_FILTER 152 Too many PGNs tried to register in the config filter
TPL_ERR_UNEXP_BAM_FRM 161 Unexpected BAM frame received
TPL_ERR_UNEXP_RTS_FRM 162 Unexpected RTS frame received
TPL_ERR_UNEXP_CTS_FRM 163 Unexpected CTS frame received
TPL_ERR_UNEXP_EOM_FRM 164 Unexpected EOM frame received
TPL_ERR_UNEXP_CA_FRM 165 Unexpected CA frame received
TPL_ERR_UNEXP_DT_FRM 166 Unexpected DT frame received
TPL_ERR_RX_OVRN 167 No free Rx Msg Buffer in the TPL for a global message available
TPL_ERR_TX_TIMEOUT0 168 Timer overrun for Tx Timeout T0
TPL_ERR_TX_TIMEOUT2 169 Timer overrun for Tx Timeout T2
TPL_ERR_RX_TIMEOUT0 170 Timer overrun for Rx Timeout T0
TPL_ERR_RX_TIMEOUT1 171 Timer overrun for Rx Timeout T1
TPL_ERR_RX_TIMEOUT2 172 Timer overrun for Rx Timeout T2
TPL_ERR_RX_LONG 173 The length of the received message is too long for a seg msg
TPL_ERR_SEND_MSG 174 Error by Sending: Can't send a segmented message
TPL_ERR_SEND_CA 175 Sending a CA message failed
TPL_ERR_SEND_NACK 176 Sending a NACK message failed

Network management

Error Code Description
NWM_ERR_DEVICE_REG 201 The device is already registered in the device list
NWM_ERR_INVALID_HDL 202 The device handle is invalid
NWM_ERR_INVALID_ADDR 203 The device address is invalid
NWM_ERR_NO_COMM 211 The device is not able to start the CAN communication (starting CAN failed)
NWM_ERR_NO_ADDR 212 The device is not able to claim an address and is therefore not allowed to take part at network communication any longer
NWM_ERR_LIST_FULL 213 The maximum number of nodes in the network is exceeded

Application layer

Error Code Description
APL_ERR_TIME_EXCEEDED 251 APL_Main() was not called in the required sequence
APL_ERR_TX_LONG 252 The data field of the transmit message is too long
APL_ERR_NO_MEMORY 253 No memory for the data field of the transmit message allocated
APL_ERR_REG_REQUEST 254 An error occurred during registration of a request PGN
APL_ERR_TX_NO_ADDR 255 Device has no address claimed
APL_ERR_INVALID_PARAM 257 Invalid parameter passed to an API function
APL_ERR_REQ_RESPONSE 261 A request message couldn't be answered from the request handler due to a queue overrun

Cyclic unit

Error Code Description
CYC_ERR_NOT_INITIALIZED 301 The unit is not yet initialized
CYC_ERR_RX_REGISTRATION 302 The maximal number of receive messages is exceeded
CYC_ERR_TX_REGISTRATION 303 The maximal number of transmit messages is exceeded
CYC_ERR_TIME_EXCEEDED 304 CYC_Main() was not called in the required sequence
CYC_ERR_RX_TIMEOUT 311 A registered message wasn't received in the given time
CYC_ERR_TX_INVALID_HDL 312 A message couldn't be sent due to an invalid address handle
CYC_ERR_TX_QUEUE_OVRN 313 A message couldn't be sent due to an overrun of the transmit queue
CYC_ERR_RX_INVALID_LENGTH 314 The length of the received message is too long for the receive buffer

Request unit

Error Code Description
REQ_ERR_INVALID_PARAM 351 Invalid parameter passed to an API function

CAN diagnostic

Error Code Description
CDP_ERR_TIME_EXCEEDED 551 CDP_Main() was not called in the required sequence
CDP_ERR_ADDR_FORMAT 552 The addressing format of the CAN diagnostic protocol is invalid
CDP_ERR_CONF_PGN 553 There is no PGN entry free to register a CDP message
CDP_ERR_UNKNOWN_PGN 554 PGN is not registered
CDP_ERR_STATE_READY_TX 555 PGN is not ready for transmitting a CAN diagnostic message
CDP_ERR_STATE_READY_RX 556 PGN is not ready for receiving a CAN diagnostic message
CDP_ERR_NO_MEMORY 557 No memory for the data field allocated
CDP_ERR_ALLOC_MEMORY 561 Allocate memory failed
CDP_ERR_FREE_MEMORY 562 Free memory failed
CDP_ERR_RX_LENGTH 563 The length of the received CAN diagnostic protocol message is too large for the available receive buffer
CDP_ERR_RX_TIMEOUT_FC 564 The CAN diagnostic protocol flow control message wasn't received in the given time
CDP_ERR_RX_TIMEOUT_CF 565 The CAN diagnostic protocol consecutive frame message wasn't received in the given time
CDP_ERR_TX_TIMEOUT 566 The CAN diagnostic protocol message wasn't sent in the given time
CDP_ERR_PCI_INVALID 567 The CAN diagnostic protocol control information was invalid

J1939 diagnostic

Error Code Description
DIAG_ERR_MEM_ABORTED_TX 611 A memory access session was aborted due to a transmit problem (sending a memory access message failed)
DIAG_ERR_MEM_ABORTED_RX 612 A memory access session was aborted due to a receive problem (a memory access message wasn't received in the expected time)
DIAG_ERR_MEM_ABORTED_KEY 613 A memory access session was aborted due to security reasons (an invalid key was received)
DIAG_ERR_MEM_ABORTED_DATA 614 A memory access session was aborted due to addressing problems (invalid data length was received)
DIAG_ERR_MEM_BUSY 615 A memory access session was declined because the device is busy (another session is in process)
DIAG_ERR_MEM_BUSY_FAILED 616 Transmit a memory access response 'busy' failed
DIAG_ERR_MEM_INVALID_MSG 617 Invalid message received (the received PGN was not registered for the diagnostic unit)

User specific error

Error Code Description
USR_ERR_REQ_RESPONSE 661 A request message couldn't be answered from the request handler due to a queue overrun