Transmitting CANbus data using XBee

I'm trying to build a wireless telemetry system to transmit data from the CAN bus of a car. It looks like it should be possible to do this using an Arduino based system, but I'm not too familiar with Arduino.

Could I use a single Arduino with the SKPang CAN-Bus shield (I can't post a link in my first post) as well as an XBee module to transmit the data? If it won't all fit on a single Arduino, is it possible to connect two together, with the CAN shield on one and the XBee on the other?

Why don't you buy one of those Chinese OBDII to bluetooth adapters and save yourself a lot of work? Granted, XBee could have better range so it depends on how far you have to transmit. But, you can purchase an OBDII adapter on Ebay for about $30.

Just remember, don't reinvent the wheel. If it already exists and it's reasonably priced then, by all means, use the currently existing product.

There's no OBDII port on the car, and I plan on transmitting about 100m. It looks like it might actually be necessary to use Zigbee pro (or WiFi?).

If I had found an easier option, I wouldn't be here.

The OBD-II spec requires a connector within a certain distance of the steering wheel. If you haven't got one can you be sure it's OBD-II?

If it is OBD-II then you could just add a connector and use one of the devices that AdderD mentioned, although I have no experience with them. You're going to have to connect to the bus anyway, right?

Failing that then I see no reason why you couldn't use the XBee shield with the CAN-Bus shield. The CAN-Bus uses SPI to communicate with the Arduino, which can then send any data recieved out via the UART to the XBee. You'd probably have to go with an XBee with a chip antenna as the CAN-Bus shield would have to go at the top because of its DB9 plug/socket.

Oh, and if you go with XBee you'll obviously need another XBee to receive the data, where as if you went with WiFi or Bluetooth any suitable enabled device would be able to receive the data.

The XBee modules supposedly do 100m. SparkFun carries most (if not all) of the variations. They also have the SKPang CAN-Bus Shield and an XBee Shield.

I've found what could be a very helpful piece of information about the car.

If I take the data from the RS232 port of the ECU and connect to a serial port on a computer, I can view the data live in the ECU software, and so I wouldn't need to find a new program for viewing data.

I wouldn't be able to inject anything back into the system (the ECU can only be controlled over CAN) but it's much better than nothing.

What Arduino hardware would be best suited? The number of available devices is what makes Arduino so useful, but also hard to pick between. I've seen the ArduinoBoardSerial which has RS232, or ArduinoBoardFio which has integrated XBee.