Site Information

 Loading... Please wait...

Blog

Guide To SAE J1939 - Communication Methods

The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. SAE J1939 provides three communication methods, each serving a specific purpose.1. Destination Specific Communications:Destination specific communications use PDU1 (PF values 0 to 239), but also the global destination address 255. There are cases where this method will require the utilization of destination specific Parameter Group Numbers, for instance, [...]

Read More »


Guide To SAE J1939 - J1939 Characteristics

The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. SAE J1939 is a higher-layer protocol based on Controller Area Network (CAN). It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy-duty vehicles.Everything that has to do with CAN is based on maximum reliability with the [...]

Read More »


Guide To SAE J1939 - Controller Area Network and J1939

The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. The standard CAN message frame uses an 11-bit message identifier (CAN 2.0A), which is sufficient for the use in regular automobiles and any industrial application, however, not necessarily for off-road vehicles.The Society of Automotive Engineers (SAE) Truck and Bus Control and Communications Subcommittee had developed a family of [...]

Read More »


Guide To SAE J1939 - CAN Bus Higher Layer Protocols

The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. Even though extremely effective in automobiles and small applications, CAN alone is not suitable for machine automation, since its communication between devices is limited to only 8 bytes per message. As a consequence, higher layer protocols such as CANopen for machine control, DeviceNet for factory automation and [...]

Read More »


Guide To SAE J1939 - Introduction to J1939

The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. The Society of Automotive Engineers (SAE) Truck and Bus Control and Communications Subcommittee has developed a family of standards concerning the design and use of devices that transmit electronic signals and control information among vehicle components. SAE J1939 and its companion documents have quickly become the [...]

Read More »


SAE J1939 Programming with Arduino – Recommended Literature

This post is part of a series about SAE J1939 ECU Programming & VInsert linkehicle Bus Simulation with Arduino. There is more than plenty and valuable literature available on the Arduino, but, being an experienced programmer, the one and only work I read was:Programming ArduinoGetting Started with SketchesBy Simon MonkISBN 978-0071784221Also recommended for providing more background information:Controller Area Network [...]

Read More »


SAE J1939 Programming with Arduino – Function Calls Description

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. j1939.Initvoid j1939.Init(int nSystemTime);Initializes the ARD1939’s memory, baud rate settings, etc.nSystemTime - This is the loop time of your application in milliseconds. This information will provide the ARD1939 protocol stack a time base to manage all timers required for various protocol tasks.Ideally, the system [...]

Read More »


SAE J1939 Programming with Arduino – Application Structure

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. As with every Arduino application, the initialization of data and the J1939 protocol takes place during the setup() function, while the actual application resides in loop(). setup() - The j1939.Init function is mandatory to operate ARD1939. [...]

Read More »


SAE J1939 Programming with Arduino – ARD1939 Protocol Stack Reference

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. The functions available to the SAE J1939 application layer (i.e your program) are:Initialization j1939.Init – Initializes the protocol stack settings j1939.SetPreferredAddress – Sets the preferred node (source) address j1939.SetAddressRange– Sets the negotiable [...]

Read More »


SAE J1939 Programming with Arduino – Debugging Macros

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Please be aware that the following macros are one-liners. Due to the limited page space, some macros appear as wrapped into more than one line and the line breaks are indicated with “\”. SAE J1939 has become the accepted industry standard and [...]

Read More »