Xbee Pro 900 communication: arduino to computer

My equipment:
2x Xbee Pro 900 http://www.sparkfun.com/products/9097
Arduino Uno R3
Xbee Shield http://www.sparkfun.com/products/9976
Xbee Explorer http://www.sparkfun.com/products/8687

XB1 –> Xbee shield –> Arduino Uno
Transmitting to:
XB2 –> Xbee Explorer –> Computer

My goal is to get the xbee modules to communicate with each other.

So far, I have updated the firmware of each xbee using x-ctu program. the version number is 1161. Within x-ctu’s modem configuration tab the modem is identified as a XBP09-DP and the function for both the units after a fresh write/read becomes “XBEE-PRO 900 - 232 ADAPTER”.

I have been able to get some sort of rudimentary communication at a random baud rates but the output is always different from the input. I’ve verified that each XBEE is transmitting at 9600baud and arduino code is serial printing at 9600 baud. Here is the code I am running:

void setup() {                
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);     
int val = 42;
void loop() {
  digitalWrite(13, HIGH);   // set the LED on
  delay(100);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(100);              // wait for a second

I’m reading the output from the recieving XBEE from the arduino’s Serial Communication Tab and it looks like random characters. Initially I thought it was a baud rate issue, but changing the baud rates to any of the available solves nothing.

Essentially what I’ve tried to do is Todd Germeroth’s instructions which can be found here: http://diydrones.com/forum/topics/xbee-pros-unable-to-talk-w?commentId=705844%3AComment%3A685700

I ran into the issue of the function set being shifted to the 232 ADAPTER for both modules (when it is only supposed to be for the one)

Any help would be appreciated, and thanks for helping out a newb!

Why don’t you just use the 1061 firmware?

The ‘XBEE-PRO - 232 Adapter’ firmware would only be for use within the Digi XBee 232 Adapter. It enforces some notions of which IO pins RTS/CTS and DTR/DSR are connected to.

I do not know for a fact that your use of 1161 is the cause of your problem, but why risk it?

The standard 1061 firmware gives you normal access to the XBee IO pins via the various Dx commands.

If you are seeing random data, I would use a volt-meter and make sure none of your serial lines appear to be ‘floating’ (near 0vdc) - all should be near 3.3vdc with idle since an idle TX/RX line is ‘1’ or 3.3vdc.

The XBee pin ‘labels’ are DCE form, so TX is actually your receive line. If you accidently linked the Xbee’s ‘receive pin’ to the Arduino/PC receive pin, you’d have a nice sensitive random-data generator :slight_smile:

Hi. Do u have a solution for this problem already? facing the same thing.

i’m trying to do this trick https://www.loveelectronics.co.uk/Tutorials/7/xbee-tutorial-how-to-set-up-your-xbees
but i can’t seem to get whatever sent through arduino to be received correctly or at all to the receiver xbee.

i would like to know how the physical connection should be on a xbee pro 900.

tx of arduino board goes to DODI? or DIDO? or what?
rx of arduino board goes where

pls help