Site Information

 Loading... Please wait...

SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino - Arduino CAN Bus Shield by SK Pang electronics

Posted by Wilfried Voss on

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino.

Arduino CAN Bus Shield by SK Pang electronics

This shield by SK Pang electronics provides the Arduino CAN-Bus capability. As explained previously, it uses the Microchip MCP2515 CAN Bus controller with MCP2551 CAN Bus transceiver. The CAN connection is realized via a standard 9-way sub-D, however the pin assignment for CAN_H, CAN_L is not according to standard.

Note: In all truth, there is no mandatory standard for pin assignment, but the industry uses pins 2 (CAN_L) and 7 (CAN_H) as a virtual standard.

I recommend using the on-board CAN_L and CAN_H contacts to solder the CAN cable directly to the board. The shield also comes with a uSD cardholder, a serial LCD connector, and a connector for an EM406 GPS module, making this shield suitable for data logging application.


  • CAN v2.0B up to 1 Mb/s
  • High speed SPI Interface (10 MHz)
  • Standard and extended data and remote frames
  • CAN connection via standard 9-pin sub-D connector
  • As an option, power can be supplied to the Arduino by sub-D via resettable fuse and reverse polarity protection.
  • Socket for EM406 GPS module
  • Micro SD card holder
  • Connector for serial LCD
  • Reset button
  • Joystick control menu navigation control
  • Two LED indicator


  • No cables included
  • Header pins are not included; they must be ordered separately
  • Pin assignment for CAN_H, CAN_L not according to standard

All technical information regarding the use of the CAN controller, uSD cardholder, joystick, LEDs, etc. can be found on the company’s wiki website at:

Ordering Information

To order the SK Pang electronics CAN Bus shield, you can use the following resources (or browse for “Arduino CAN-Bus Shield” for further options):


SK Pang electronics

Note: The version of the SK Pang CAN shield I used for this book worked fine with the Arduino Uno R3, but it failed when running it with the Arduino Mega 2560, but I had neither the time nor the resources to pinpoint the problem. It may well be that newer versions of the shield will work. It is recommended to check with the manufacturer in regards to compatibility with Arduino versions other than the Uno.

A Comprehensible Guide to J1939

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.