xbee pro 900mHz

Hello. I want to do a quadcopter with very high distance, and found this xbee pro ( http://www.sparkfun.com/products/9099 ) that can work at max range of 6 miles. I want to know some things:

Is this xbee like the other ones? I mean, it's simple to use? What's RPSMA?

If I buy this, I can use with arduino mega, without a shield?

If I buy, I will have to program them with the xbee explorer? If yes, I read this on the sparkfun product page:

Note: Some users have found that the XBee-PRO 900 cannot be used with the XBee Explorer Regulated. A work around that many users have found is to bypass diode D1 on the Explorer.

How could I program them?

I saw another xbee with the max range of 1 mile, with the same price ( http://www.sparkfun.com/products/8768 ) what does they have of difference?

How does they communicate themselves?

Thanks to everyone that helps me!

Is this xbee like the other ones? I mean, it's simple to use?

Plug-and-pray, to borrow a Microsoft phrase.

If I buy this, I can use with arduino mega, without a shield?

How would you make the connections?

If I buy, I will have to program them with the xbee explorer?

That's the easiest way. The other way involves removing the ATMega chip from the Arduino. In the case of the Mega, that's a bigger job.

How could I program them?

I think that the key there is that "some users". Not everyone. And there is a workaround. Documented right there.

How does they communicate themselves?

They are radios.

Thanks, I did not express myself right. I mean, how it's the code to communicate them? How many pins does he really uses. And I asked about the shield cuz I saw that there's a board that can breakout the xbee pins and make it easy to connect with the arduino, without shield, but I don't remember the name...

Anyway, thanks by the help!

Anything that appears on the TX pin gets sent over-the-air by a XBee. Anything received over-the-air by the XBee gets put on the RX pin.

The Arduino puts stuff on the TX pin using Serial.write(), Serial.print(), or Serial.println(). It gets stuff off the RX pin using Serial.read().

The shield is not a requirement, but it is more convenient that stringing wires. The pin spacing on the XBee is not standard breadboard pin spacing, so some kind of breakout board is generally required, unless you want to solder wires directly to the XBee.

Hmmm, now I know. But I only need the breakout board, only? The other pins of xbee are only for programming and power source? If i get the rx pin and connect it to the arduino receptor, only this?

Thanks!

I have 5 of these units and 2 of the Explorer units that need the diode shorted. If you aren't good at shorting across some very tiny surface mount pads (I'm not, but I know someone who is that did it for me) then don't get the Explorer interfaces. If you do it, it is the tiny spec near the hole labeled DIN on the bottom side (not the LED near the hole labeled DIN on the top side - DAMHIKT). I got a couple of the Adafruit interface kits also. They are old school through hole full size components and not very many; it took me maybe 15 minutes per kit and they worked fine. Besides getting 4 xBees for my Arduinos, I got one extra that I put on a USB Explorer and connect to a terminal program on the PC. That way you can watch the data going back and forth, if you you use strings with println() to transfer. Unless you have a reason to be super efficient with data transfer, I suggest you use a text based approach so that you can see things going back and forth and make sense of it. I have only tested out a few hundred yards, but they worked fine. Be forewarned that it is a "party line" if you hook up more than 2. There is an xBee protocol to assign one unit as a coordinator to keep from getting collisions, but I implemented my own peer level protocol with some primitive but effective retry-if-not-acknowledged logic. The board gets the voltages right and I am really not sure what else. Power, ground, RX and TX are about all you will use (maybe RTS/CTS) and I have a couple of xBee/adapter units on breadboards/protoboards and a couple connected directly to the FTDI pins on Pro Mini boards. If you do that, you just have to pull the xBee from its socket to use FTDI to program the Mini. The SparkFun adapters meet up with the FTDI from the Minis properly, bu the Adafruits do not, so the Adafruits ones are on the breadboards.

The other pins of xbee are only for programming and power source? If i get the rx pin and connect it to the arduino receptor, only this?

You need to connect TX and RX, +V (3.3) and Gnd. The other pins can connect to sensors and transmit sensor data with the need for the Arduino to be involved.

Both the interfaces I mentioned (SparkFun Explorer and Adafruit interface) will accept either 3.3 or 5v. If you bypass them and try running the xBee directly (which I have no experience with), then it is a 3.3v device. I am using an interface even on the 3.3 Pro Minis, largely for the convenience of the socket and LEDs but also because it has some support circuitry like resistors that some of the xBee pins apparently need.