Elduino CAN128 as a standalone CAN-bus sniffer

Few weeks ago I have figured out that my old Ford Mondeo's ECU and ABS module are connected to the CAN bus. I was willing to hack the messages and make something useful. However, I could not find any valuable information about my Ford's CAN bus messages and their contents. The only thing I found is that RPM  and gas pedal values are in the packet sent with CAN id of 0x201.

Happily I have an Elduino CAN128 board which is Arduino-like board targeted for car hackers. It has built in modules and transceivers allowing to connect it to CAN and LIN busses without any external shields.

I have spend a few evenings writing a sample application to make the Elduino CAN128 board as a standalone CAN sniffer. I was happy with the result - I got a functionality of a device that would easily cost me 500€. 

The Elduino CAN128 firmware is listening for all data on the CAN bus. After receiving a packet it checks if packet with such ID was seen before. If it was not, it adds its data to the list. If packet from such ID has been received before, it updates its data and calculates time since the last time packet with this ID was received. This way Elduino CAN128 stores up to 20 packets with different CAN IDs.

There are two ways to see the stored data: on the computer screen via PUTTY terminal or localy on the LCD mounted to the Elduino board. Elduino board sends data to PC through built-in USB-UART converter. The data can be seen using any terminal application. 

 Elduino CAN128 sniffer terminal window

Since the LCD shield I have has a small text display, only the last message with one CAN id is shown. It is possible to navigate between stored messages with different CAN IDs by pressing buttons UP and DOWN.

Elduino CAN128 board as a standalone CAN sniffer

Functionality of the firmware was tested on the bench with two Elduino boards and CAN-USB converter connected to the same CAN bus.

Elduino CAN128 CAN sniffer test setup

Test in action

 

Next step is to go and connect the board to the car's OBD2 connector...

Elduino CAN128 CAN sniffer with OBD2 connector

 

 You can find the Arduino libraries and source code of this example on the GitHub:

https://github.com/ElectronicsWorkshop/ElduinoCAN128_lib

Comments

Comment: 
Hi, Is it possible to buy the elduino can128. Regards,
By Darren (not verified)

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Please prove you are not a robot:
Question text provided by textcaptcha.com