Blog
Recent Posts
A Beginner's Guide to SAE J1939 Embedded Software Development
Introduction Welcome to my beginner's guide! By opening this page, you have entered the first and probably most crucial stage toward developing your SAE J1939 project: Reading. Over the years, I dealt with many newcomers to the J1939 technology, some of them motivated by great product ideas. Others were thrown into a project because they were [...]
Controller Area Network (CAN Bus) And Higher-Layer Protocols CANopen, SAE J1939, NMEA 2000
For the longest time, the major misconception about Controller Area Network (CAN) was that it merely applies to automobiles. The truth is, CAN, since its introduction in 1986, proved to be a robust, versatile, and straightforward technology and, consequently, the CAN Bus technology found its way into all areas of applications where microprocessors need to [...]
The Benefits Of Controller Area Network - CAN Bus - For Embedded Applications
The following is an excerpt from A Comprehensible Controller Area Network by Wilfried Voss. Controller Area Network, like any field-bus system based on serial communication, will reduce wiring, which was initially considered only as an advantageous side effect. Distributed control, i.e., the use of a multi-processor system, will consequently result in increased performance, and the vastly reduced costs [...]
LIN To CAN Bus Gateway - Prototyping And Firmware Development With The Arduino-Compatible Teensy Board
In general, let's start with a brief comparison of CAN Bus (Controller Area Network) and LIN Bus (Local Interconnect Network): LIN Bus networks provide cost-efficient communication in applications where the bandwidth and versatility of the CAN Bus technology are not required. LIN Bus applications are relatively inexpensive using the standard serial universal asynchronous receiver/transmitter (UART) technology, which are embedded [...]
Engineering Note: Reverse Engineering Of CAN Bus Communication
There are many applications, in which one may need to reverse engineer CAN Bus communication. Examples are automotive competitor analysis, telematics applications such as fleet management, and disabled driver applications. The typical reverse engineering process is concerned with moving a sensor and watching the CAN Bus network for message changes. For example, wind down a door [...]
Controller Area Network (CAN Bus) - Message Frame Architecture
The following is an excerpt from A Comprehensible Controller Area Network by Wilfried Voss. The following chapter explains the CAN message frames by bit and bytes. Further chapters will address the mechanism of message broadcasting, the bus arbitration and the actual physical layer. In the language of the CAN standard, all messages are referred to as frames; there are data frames, remote [...]
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 [...]
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 [...]
SAE J1939 Programming with Arduino - Introduction to Controller Area Network
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Controller Area Network (CAN Bus) is a serial network technology that was originally designed for the automotive industry, especially for European cars, but has also become a popular bus in industrial automation as well as other applications. The CAN Bus is primarily used [...]
SAE J1939 Programming with Arduino - A Brief Introduction to the SAE J1939 Protocol
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. 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 [...]