Online Books

A Comprehensible Guide to Controller Area Network (CAN Bus) by Wilfried VossA Comprehensible Guide to Controller Area Network by Wilfried Voss represents the most thoroughly researched and most complete work on CAN available in the marketplace. 
Controller Area Network (CAN) 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 in embedded systems, and as its name implies, is a network technology that provides fast communication among microcontrollers up to real-time requirements, eliminating the need for other, expensive and complex technologies. 

This book provides complete information on all CAN features and aspects combined with a high level of readability.

The author, Wilfred Voss, is the owner and president of Copperhill Technologies Corp., a company that specializes in CAN and SAE J1939 technologies.  The company is located in Greenfield, Massachusetts.  Mr. Voss has worked in the CAN industry since 1997 and before that was a specialist in the paper industry.  He has a master’s degree in electrical engineering from the University of Wuppertal in Germany.

Mr. Voss has conducted numerous seminars on CAN and CANopen during variousReal Time Embedded And Computing Conferences (RTECC) and ISA (Instrumentation, Systems, and Automation Society) events all over the United States and Canada. Read more…


A Comprehensible Guide to SAE J1939 by Wilfried VossSAE 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.

The information in this book is based on two documents of the SAE J1939 Standards Collection:

  • J1939/21 – Data Link Layer
  • J1939/81 – Network Management

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. More Information…


Controller Area Network (CAN Bus) Proptotyping With ArduinoWhile the Arduino is not necessarily considered an industrial-strength solution, it provides, due to its low price and ease of programming, the perfect prototyping platform for all kinds of Controller Area Network (CAN) applications.

This book, written by a leading expert on CAN technologies, guides the reader through the process of acquiring all necessary hardware and software components, the implementation of the CAN driver, and the implementation of programs (Arduino Sketches) to read, send, process, and display data from and to a CAN network.The collection of programming examples cumulates into a full-fledged USB-to-CAN Gateway communicating with a Windows/Linux PC.

This book will enable you to achieve CAN functionality literally within only a few hours.

The topics include:

  • Introduction to Controller Area Network
  • Prototyping Hardware and its Variants
  • Arduino CAN Shields
  • CAN Driver Implementation and Library Functions
  • Simple CAN Test Programs
  • CAN Network Monitoring, Simulation, and Diagnostics Program
  • CAN Data Display via Windows/Linux GUI

More Information…


SAE J1939 ECU Programming And Vehicle Bus Simulation With ArduinoThis book, written by a leading expert in the field of Controller Area Network (CAN) technologies, represents the perfect guide to implementing an SAE J1939 protocol stack for embedded systems. The book is filled with numerous C/C++ code examples and valuable documentation of the resulting J1939 vehicle network data traffic. It explains in great detail the inner workings of the protocol through designing and transmitting J1939 data frames, receiving and processing J1939 data frames, and simulating J1939 ECUs (Electronic Control Units).

Other Arduino sketches (software projects) include a J1939 network scanner, and a simple SAE J1939 to USB Gateway application with associated Windows GUI (Visual Studio C# project). The collection of sketches is concluded by the ARD1939 project, a fully functional SAE J1939 protocol stack for the Arduino Uno and Mega 2560.

As an added value, the included proof of concept explains (by means of code examples and bus traffic recordings) the details of the Transport Protocol (TP) according to SAE J1939/21 (BAM Session, RTS/CTS Session) and the Address Claim Procedure according to SAE J1939/81. In combination with the low-cost and high-level user-friendliness approach of the Arduino environment, this book represents the ideal platform to learning and implementing embedded applications with the SAE J1939 protocol stack. More Information…