Xbee for RC Quadcopter


After looking for a lot of information about Xbee and Arduino, I still haven’t found what I need.
I’m currently designing a quadcopter (powered with arduino as the main controller), and now I need a way to control it, like any regular RC aircraft. I thought that I could use the famous Xbee modules but I can’t find anywhere someone who did something like this, so I’m not sure if it’s possible… I saw people doing basic remote controlled cars but THAT’S NOT AS CRITICAL AS MY PROJECT IS WITH DELAY/LAG of the signal and in that case the range is not a big problem (which would be in my case too if it’s not good).

Do you know if it’s a reliable option to do it this way (Xbee) or it’s not possible? If not, which ways do you recommend me?

Thank you in advance.

Nobody knows? I'm really lost at this point and would appreciate any kind of help!

Hello, im also new on this aswell... have you tried it yet¿??? I´m just about trying the same thing. Im building a quadcopter using arduino as a microcontroller and I already made my own controller using some potenciometers and buttons. The controller works great when conected directly to the microcontroller but know I need to make it wireless. I need to send an array of about 14 bytes and as you know time is very critical, we don´t wanna crash! haha. I will keep you updated if I try it and it works. My plan is to comunicate the arduino nano that reads the buttons and potenciometers from the controller to the arduino uno which is on board of the quadcopter. I went to a shop and they told me that it should be fine but Im not sure. I also have a question, do you know if I could conect the xbee pro to the arduino through the wireless proto shield without burning it? because it requires a maximun of 295mA and the 3.3v maximun current is 50mA (I dont know about the 5v one).

What kind of information are you expecting to transmit? Over what range? How often? How much data?

You can't expect people to answer vague questions like "Can I use an XBee to control my RC quadcopter?".

First of all thank you for your reply!

Well, when I say "to control my RC quadcopter" I mean to do it just like a standard 2,4 RC radio would do. The kind of information to transmit would be the analog value of 4 potentiometers (maybe if it's possible I'd add some switchs later to use some more actions). The range would be, again, the same a standard rc radio (not the top-end one) would reach (to start, It would be enough if it's able to reach the farest point but still see the craft). And "how often"? Well, I don't know the exact time of the intervals, but It can't have a noticeable "lag" or "delay" from the moment I move a stick to the time It reacts... So I'd say maybe 20-30 ms?

Thank you for your help.

I´ve almost decided what Im going to buy. There are two main types of xbee, there is the series 1, which is to use it from point to point and there is the series 2, which is for point to point communication and to comunicate to multiple points. They are about the same price, the diference is that the second ones need to be configured with a program called the X-CTU, which is free and the first ones are easier to use. Both are about the same range 30 or 40 meters indoor and up to 100 outside with line of view aprox. for the regular ones. Each type has a pro version that goes up to a mile, this one is more expensive, about 30 euros. There are a couple of books that can help you which Im about to buy, but I already have in pdf version (they are very easy download). -"Arduino cookbook" which helps you with almost everything related to arduino, including xbee comunnication (it has mare than 700 pages, but is very good organized, and I think is great) -"Building wireless sensor networks" which is about programing with the xbees.

Im going to buy the xbee series 2 pro version with rpsma to conect an exterior antena. The second book also helps you chosing betwee de diferent xbees.

Hope you are flying your xBee-Arduino Quad Copter by now, and yes you can do what you are intended to.

With xBee Series 2 (Zigbee), you can set them in API Mode and transmit de Analog Values over to the recieving xBee that's hooked to the arduino Rx/Tx ports.

I recomend buying the Breakout board and the pin headers (male and female) from Sparkfun also, for better xBee holding and wiring.

The only thing that is not possible for Xbees for now (there's some kind of low layer support), is to have Analog Output Meaning, that an xBee would not be able to send analog values by himself to control a motor (stepper, etc).

But hooking the xBee to and Arduino as a reciever and logic holder for the QuadCopter, yes you can do what you want, since the Arduino will get the Analog Values from the xBee just reading the serial communications and then output that to the motors just as it would do if the Analog Joystick was connected to the Arduino itself.

I'm planning on doing the same for a QuadCopter (xBee+Arduino for Logic and Analog Output (voltage output)) and PS3 Joystick for controlling from the sender xBee.

In my case i'm using the Java Xbee-API, so i'll program a JAVA app for controlling remotely. No Arduino on sender end.

Cheers, Alan //

I´ve just finished reading "Wireless sensor networks", a book that has given me enough information to program my xbees. I will be using an arduino nano to get imput so I can transmit more data than just the xbee on its own reading the values. On board of the quad it will be an arduino uno with another xbee receiving the data. Good luck with your proyect!!

I am building a quad with Xbee pro and arduino due I am using a Logitech extreme 3d pro to manage it.

I am doing the same thing as well, i am using the Xbee 900 pro with wire antanna, an ADAFRUIT motorshield v2, an Arduino esplora, and an Uno rev 3 with a wireless sd shield. i got athe programming done, for both microcontrollers, but for some reason the communication will not take place between devices. i dont think it is a programming issure since it all varies and uploads flawlessly, i can post my code if interested, but i need help...

What do you mean by "communication will not take place between devices". Is it between the Xbee's or between motorshield and Arduino.

it is the Xbee module on the Esplora. for some reason, the module will function on its own through terminal on XCTU software, but when i hook it up to the esplora according to a 21st century aticle on the matter, it will not receive any information.

i can send input from the Xbee to the motorshield +uno + wireless shield via xbbe and it will receive according to the built-in led but nothing happens

I dont think this is good option to use Xbee. It is quiing data and then packetize and sending, so you will have there some delay. But you can send it also to send each character when you receive it. And have bad experience with Xbee PRO 868, it is behaving strange and freeze after a while. Would be critical if it freeze.
If I do hw reset of Xbee, it will turn off Serial line, and my virtual COM port disappear,dont understand how this could be possible.

Why you do not use standard RC sender/receiver set??? You can read output with analog inputs on UNO and then do what u need.

i dont have much experience with Sender/Receiver modules so when i looked at the xbee 900 pro, the pro appeared to do everything i needed fairly easily. i recently made a connection between computer xbee and uno xbee but the message "estimated prescale:2.81 ; actual prescale: 3 appeared on the xctu terminal of the computer xbee. What does this mean?

DaDo1: I dont think this is good option to use Xbee. It is quiing data and then packetize and sending, so you will have there some delay. But you can send it also to send each character when you receive it. And have bad experience with Xbee PRO 868, it is behaving strange and freeze after a while. Would be critical if it freeze.

The Freeze is not strange, thats because the EU regulation-authorities only allow a "duty-cycle" of 10Percent of the full bandwith, measured over a period of one hour. That means you can send 6 minutes at 24kBit/s and then the module blocks (freeze) for 54 Minutes. If you will send over a longer period than 6 minutes, then you have to lower you bandwith. So it's not strange, its just a regulation issue.

Hello, did u solve your issue? describe if it works or not?

I'm starting the same project as you.

I have a Arduino Mini Pro connect with the board to creat a flight control and setup the aerodynamic position (gyro, yaw, pitch, row, etc..)

Another arduino uno attached to the body of the quadcopter with a Xbee shield and a Xbee Pro Series 2 with 1 mile range.

On the other hand of the communication I have another Xbee Pro Series 2 connect serial to the computer (I don't know if here it's better to put another Arduino Mega to better process the data for example ).

I want to know if this communication is fast enough to response the sensors and send to the quadcopter.

Thank you at all.

I want to know if this communication is fast enough to response the sensors and send to the quadcopter.

Where are the sensors? On the ground? Why do you need that data on the quadcopter?

How often is that data going to change? How many sensors? How often do you need to send data to the quadcopter?

The answer to the question you asked is a definite maybe.

If I may be pessimistic, I had much experience with Xbee in past and I promise you it's a hassle to deal with. Also, the size of quad platform you'd need for the circuitry and boards plus battery would be large and expensive. I have done many enjoyable projects with Arduino and Xbee but I would avoid quadcopter. I even made a robotic tank on a Tamiya base but it's heavy...all that on an aircraft would require, as I've said, much...even if you use lighter batteries.

How would you control the quadcopter with the xbee? By means of an apk in the computer or mechanically with potentiometers or other things? I'm sorry to be vova, only that I've started in this