What communication protocol to use? (I2C,SPI,CAN)

Hey all,

I have been brainstorming a project to use an Arduino for an autonomous plane and was wondering about what communication protocol would be the best to use to talk between the Arduino and the sensors/servos.

I read that SPI is faster then I2C but from what I can see I2C looks a lot easier to use then SPI. Is the speed difference that large, and if so would just using a CAN Bus system be better?

Thank you in advance for all of the help.

Each protocol has its advantages and disadvantages compared to others.

The protocol to be used in your project will depend on which protocol your sensor uses.

If you find devices that allow the use of different protocols, you should look in its datasheet to find the best result or ease of use it can offer in each protocol.

CAN bus will allow for the longest wires for an autonomous plane.

I got stared with drone thingies by reading the info on this website,

Good luck.

The servos used to use a PWM signal when I played with RC cars & gliders. Maybe more modern servo systems have moved on somewhat.

What sensors do you intend to use? Are they available with an SPI or I2C interface? As @ruilviana says in post #2, the sensors dictate the protocol.

You might explain the plain as to size, power available, etc. Ithink it is not an Airbus or 747, maybe a Cessna? What size are the sensors and actuators that you need to control. What is the liability if a system fails? I can grab one of many protocols out of the air but the best would be to know the exact application, environmental, amount of data, latency, etc. Wire length of SPI and I2C are short, CAN several thousand feet depending on data rate. There are various speeds to both SPI and I2C so I cannot answer that as asked.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.