OBDII with Arduino DUE

The intention of this tutorial is to provide a quick method for getting OBDII vehicle communications working with your Arduino DUE CAN shield kit.

Step #1: build and test the shield 

Before we get started, lets make sure everything works. Follow our building and testing tutorial here for the DUE CAN shield.

Step #2: Wire the OBDII port 

To connect the DUE to your car, you’ll need to wire the unit to the OBDII port on your vehicle (must be 2008 or older to support CAN). You will need a vehicle interface cable (shown below) properly wired to CAN H and CAN L signals on the Arduino DUE CAN shield port 0.

144502_pinout

Step #3: Program it

Open the IDE and go to File->Examples->CAN and select “OBD_11bit_ID.ino” or “OBD_29bit_ID.ino”. Which one you need will depend upon the type of vehicle you have, the 29bit is used by Honda, and probably less common than 11bit. Our examples were tested on Honda and Toyota vehicles.  Remember you’ll need to have all of the DUE drivers installed and there is a tutorial on the arduino due website here. Make sure you have selected the proper board and port selected from Tools->Board->Arduino DUE Programming Port and Port->COMxx. Now click upload button, it will verify and upload the code to the DUE. Once completed go to Tools->Serial Monitor and make sure the baud rate is 115K. Turn the vehicle on.

Step #4 Check the serial monitor

The board should be communicating to the car at this point. The easiest way to see that you are getting data is to watch the engine RPM message.

A successful engine startup should look something like this:

 System Reset 
Engine Speed 0.00 RPM 
Throttle 0.00 % 
Coolant -40.00 C 
Speed 0.00 KPH 
Load 0.00 % 
MAF 0.00 grams/s 
IAT -40.00 C 
Engine Speed 862.50 RPM 
Throttle 16.08 % 
Coolant 59.00 C 
Speed 0.00 KPH 
Load 32.55 % 
MAF 4.17 grams/s 
IAT 25.00 C 
Engine Speed 865.50 RPM 
Throttle 16.08 % 
Coolant 59.00 C 
Speed 0.00 KPH 
Load 32.55 % 
MAF 4.10 grams/s 
IAT 25.00 C

Thank you for your purchase, we wish you success!