SAE J1939 Programming with Arduino - SAE J1939 Monitoring Examples
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino.
The following chapter is primarily about SAE J1939 data monitoring, i.e. the Arduino projects as described work mainly in “Listen-Only” mode. Any bidirectional communication with the vehicle bus requires an SAE J1939 protocol stack implementation, specifically the address claim process.
Without a node (source) address, accessing the vehicle bus may cause address conflicts and unpredictable side effects.
The following projects were designed with the assumption that using a presumed node address will not affect the network, either due operating under lab conditions or the knowledge of all node addresses in the vehicle network (thus preventing any address collision).
Keep in mind that these projects are meant for mere demonstration and educational purposes.
SAE J1939 has become the accepted industry standard and the vehicle network technology of choice for off-highway machines in applications such as construction, material handling, and forestry machines. 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. The messages exchanged between these units can be data such as vehicle road speed, torque control message from the transmission to the engine, oil temperature, and many more.
A Comprehensible Guide to J1939 is the first work on J1939 besides the SAE J1939 standards collection. It provides profound information on the J1939 message format and network management combined with a high level of readability.