Take the 2-minute tour ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

I repair electric powered steering systems for cars, especially Fiat, Alfa, and Lancya (Delphi manufacturers), and I'm in need of making some tool to test these reparations. I mean just turning it on, for example.

I have researched during some time, and I figured I need CAN bus signals to be simulated as the eps ECU is receiving ignition packets from CAN. Here I go...

I need to know what way I could read and send CAN packets from/to the bus. I mean, what tool or anything else. I have been trying with Arduino Uno + a SparkFun CAN BUS Shield, but I don't get any results. When everything is connected, my serial console isn't sniffing any packets. I have connected all correctly, I think, and tried different bit rates, changed Arduino boards and shield, tried many different examples. I invested lots of hours with no profit... I was using SEAT Ibiza 2010 for I+D, connected CAN-H and CAN-L on the OBD port, in the CAN lines from the radio, etc...

Any idea of what could be wrong is welcome, as is a new method to make my project...

Information:

ARDUINO AND SPARKFUN SHIELD AND SERIAL CONSOLE

Libraries Used

UPDATE 2 (28/12/2014): I used a multimeter because I dont have a oscilloscope. Reading the voltages are always giving me plain 2.5V on CAN-H and CAN-L, I get this readings at Arduino CAN-H CAN-L and in OBD2 Port (Pins 6 and 14)

UPDATE 3 (29/12/2014): I'm planning to switch to some programming language with a CAN interface, any suggestions are welcome, thanks!

UPDATE 3.1 (30/12/2014): Definitely, I'm taking another way to do this, I'm waiting Kvaser and ECOM to reply me in their support emails. That way we may know if their tools fit with my project. I will keep you updated, thanks for all the help guys! :)

share|improve this question
    
My best guess is that your CAN receiver is receiving the broadcast packets. But since your identifier doesn't match with the destination address, your CAN receiver simply drops the packet. You might be looking for something like this ebay.com/itm/… –  Damon Dec 26 '14 at 5:49
    
@Nick Alexeev but as i think the code used is for sniffing all data roaming in this lines, shouldnt it show something? X_X Anyways, i had ordered the ELM already, but i dont know if i can send custom HEX packets to CAN Bus for my purpose of simulating signals.. Thanks for your attention! :) –  Aaron Aguayo Martinez Dec 26 '14 at 12:57
    
What is "I+D"?​ –  Peter Mortensen Dec 26 '14 at 19:23
    
With an oscilloscope you can determine the bitrate and if the CAN bus signals are actually present at the CAN bus shield. –  Peter Mortensen Dec 27 '14 at 0:34
    
Can you post the code you are using? –  Peter Mortensen Dec 27 '14 at 0:41

2 Answers 2

up vote 1 down vote accepted

The Arduino CAN shield is pretty cool if you want to build an embedded computer to play with CAN. However, if I understand correctly, you are building a one-off tool for your personal use (or will merely use an off-the-shelf tool if one exists for the right price). For that reason, I urge you to consider writing PC software rather than embedded software to interface with existing, low-cost CAN hardware interfaces.

Charlie Miller and Chris Valasek used this so called ECOM tool and wrote software which interfaces with it. The ECOM tool appears to have an API and example driver. Their car hacking white paper and software will give a pretty good starting point for interfacing a PC to a car. Softing also makes PC CAN interface hardware, but I am having trouble accessing their website right now, so I won't link it.

There are also several full-fledged, commercial software tools for analyzing and simulating CAN on a PC as well. Vector's CANoe is a well known (and expensive) tool for that purpose.

EDIT

I do not have the reputation to comment on the EE stack exchange. Most likely there is some sort of driver supplied with any sort of low-cost tool. The ECOM tool I mentioned is $180. That ELM327 is $7-$21. Either one will require some amount of programming. It looks like that ELM device uses an AT command set over RS232. I would interface with that using Python, but it should be pretty well dead simple once you get the hang of the device.

share|improve this answer
    
Hello @downbeat, first of all sorry for not answering, I didnt see your answer. What specific interface (if it's cheap, better :P, if not, I need it anyways ) can I use for interface with the car with my IDE? What language to use? I know java, a bit of C++, any info or examples for it would be very appreciate. –  Aaron Aguayo Martinez Dec 29 '14 at 21:34

If you're open to buying something off the shelf for a few hundred dollars, Kvaser's Leaf products are pretty easy to use. They let you send pre-recorded sequences of packets and monitor the bus. You can get one with an OBD-2 connector if that's what you need.

Building your own test equipment is fine for a personal project, but if you're making money off of these repairs, it's probably better to start with something you know is reliable.

share|improve this answer
    
thanks for the tips Adam! could you leave me a link? I would prefer making my own as it shouldnt be very hard, so later I can improve my tool for my new needs, regards! –  Aaron Aguayo Martinez Dec 28 '14 at 3:32
    
Here's a link to the low-end model: kvaser.com/products/kvaser-leaf-light-v2 –  Adam Haun Dec 28 '14 at 4:10

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.