J1939 Diagnostic Messages

J1939 Diagnostics: DM1, DM2 and the Structure of a DTC

Anyone reading out the fault memory of a commercial vehicle, an engine or an agricultural machine inevitably ends up with three abbreviations: SPN, FMI and OC. Together they form a Diagnostic Trouble Code (DTC), and it is transported by the diagnostic messages DM1 and DM2 defined in SAE J1939-73. This article explains how those two parameter groups are built, how to decompose a DTC correctly, and where hand-written parsers regularly get it wrong.

Continue reading “J1939 Diagnostic Messages”

Understanding CANopen SDO Abort Codes

Understanding CANopen SDO Abort Codes

Anyone commissioning CANopen devices knows the situation: an SDO access to an object fails and the tool reports a 32-bit value such as 0x06090011 or 0x08000022. Without looking it up, that number says very little — yet it carries the decisive information about why the access was rejected. This article explains how abort codes are structured and shows, for the cases that actually turn up in the field, what really lies behind them. Continue reading “Understanding CANopen SDO Abort Codes”

Using multiple PDOs with the CANopen DeviceDesigner

The use of the emotas CANopen Stack and the great emotas CANopen DeviceDesigner allows for the development of devices that support up to 512 PDOs in each direction. However, should one wish to utilize more than 4 PDOs in each direction, a number of considerations must be taken into account. Continue reading “Using multiple PDOs with the CANopen DeviceDesigner”