Problema para comunicar 2 módulos Xbee con Arduino

Estimados

Necesito de su ayuda, quiero conectar 2 dispositivos Xbee S2C integrados a un Arduino Uno R3, la estructura de los dispositivos es la siguiente:

0013A2004172FE0E – Shiled Xbee – Arduino UnoR3 (Transmite datos)
0013A2004172FE0C – Shiled Xbee – Arduino UnoR3 (Recibe datos)

Actualmente tengo estos códigos (sketch) en Arduino y tengo el problema de que no se logran comunicar los dispositivos, no sé si es un problema del dispositivo que transmite, o es el problema del dispositivo del que recibe. Las pruebas realizas indican que al parecer los datos si son transmitidos, por otro lado en el dispositivo que recibe está la función xbee.getResponse().isAvailable()) que retorna un 0. Al parecer la función xbee.readPacket(); no está funcionando.

En XCTU los dispositivos fueron configurados con los siguientes parámetros:

0013A2004172FE0E (Transmite)
PAN ID: 1308
CE: Enabled
OP: 1308
OI:DB57
CH: 18
AP: API Enabled 1

0013A2004172FE0C (Recibe)
PAN ID: 1308
CE: Disabled
OP: 1308
OI:DB57
CH: 18
AP: API Enabled 1

Transmite desde 0013A2004172FE0E

#include <SoftwareSerial.h>
#include <XBee.h>

XBee xbee = XBee();
//Transmitir datos hacia dispositivo 0x0013a200, 0x417fe0c
XBeeAddress64 Broadcast = XBeeAddress64(0x0013a200, 0x417fe0c);
char Hello[] = "Hello";
char Buffer[128];  

void setup() { 
 Serial.begin(9600);
 xbee.setSerial(Serial);
 Serial.println("Initialization all done!");
}

void loop() {
 Serial.println("1");
 ZBTxRequest zbtx = ZBTxRequest(Broadcast, (uint8_t *)Hello, strlen(Hello));
 Serial.println("2");
 xbee.send(zbtx);
 Serial.println("3");
 delay(30000);
 strcpy(Buffer,"I saw what you did last night");
 zbtx = ZBTxRequest(Broadcast, (uint8_t *)Buffer, strlen(Buffer));
 xbee.send(zbtx);
 delay(30000);
 Serial.println("End");
}

Recibe datos desde 0013A2004172FE0E

#include <XBee.h>

XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
ZBRxResponse rx = ZBRxResponse();
ZBRxIoSampleResponse ioSample = ZBRxIoSampleResponse();

void setup() { 
 Serial.begin(9600);
 xbee.setSerial(Serial);
 Serial.println("starting up yo!");
}

void loop() {
   xbee.readPacket();
   if (xbee.getResponse().isAvailable()) {
     Serial.print("Frame Type is ");
     Serial.println(xbee.getResponse().getApiId(), HEX);
   
     if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
       xbee.getResponse().getZBRxResponse(rx);
       Serial.print("Got an rx packet from: ");
       XBeeAddress64 senderLongAddress = rx.getRemoteAddress64();
       print32Bits(senderLongAddress.getMsb());
       Serial.print(" ");
       print32Bits(senderLongAddress.getLsb());
     
       uint16_t senderShortAddress = rx.getRemoteAddress16();
       Serial.print(" (");
       print16Bits(senderShortAddress);
       Serial.println(")");
     
       if (rx.getOption() & ZB_PACKET_ACKNOWLEDGED)
         Serial.println("packet acknowledged");
       if (rx.getOption() & ZB_BROADCAST_PACKET)
         Serial.println("broadcast Packet");
         Serial.print("checksum is ");
         Serial.println(rx.getChecksum(), HEX);
         Serial.print("packet length is ");
         Serial.print(rx.getPacketLength(), DEC);
         Serial.print(", data payload length is ");
         Serial.println(rx.getDataLength(),DEC);
         Serial.println("Received Data: ");
       for (int i = 0; i < rx.getDataLength(); i++) {
         print8Bits(rx.getData()[i]);
         Serial.print(' ');
       }
     
       Serial.println();
       for (int i= 0; i < rx.getDataLength(); i++){
         Serial.write(' ');
         if (iscntrl(rx.getData()[i]))
           Serial.write(' ');
         else
           Serial.write(rx.getData()[i]);
         Serial.write(' ');
       }
       Serial.println();
       // So, for example, you could do something like this:
       handleXbeeRxMessage(rx.getData(), rx.getDataLength());
       Serial.println();
     }
     else if (xbee.getResponse().getApiId() == ZB_IO_SAMPLE_RESPONSE) {
       xbee.getResponse().getZBRxIoSampleResponse(ioSample);
       Serial.print("Received I/O Sample from: ");
       XBeeAddress64 senderLongAddress = ioSample.getRemoteAddress64();
       print32Bits(senderLongAddress.getMsb());
       Serial.print(" ");
       print32Bits(senderLongAddress.getLsb());
       uint16_t senderShortAddress = ioSample.getRemoteAddress16();
       Serial.print(" (");
       print16Bits(senderShortAddress);
       Serial.println(")");
       if (ioSample.containsAnalog()) {
         Serial.println("Sample contains analog data");
           uint8_t bitmask = ioSample.getAnalogMask();
           for (uint8_t x = 0; x < 8; x++){
           if ((bitmask & (1 << x)) != 0){
             Serial.print("position ");
             Serial.print(x, DEC);
             Serial.print(" value: ");
             Serial.print(ioSample.getAnalog(x));
             Serial.println();
           }
         }
       }
       if (ioSample.containsDigital()) {
         Serial.println("Sample contains digtal data");
         uint16_t bitmask = ioSample.getDigitalMaskMsb();
         bitmask <<= 8;  //shift the Msb into the proper position
         bitmask |= ioSample.getDigitalMaskLsb();
         for (uint8_t x = 0; x < 16; x++){
           if ((bitmask & (1 << x)) != 0){
             Serial.print("position ");
             Serial.print(x, DEC);
             Serial.print(" value: ");
             Serial.print(ioSample.isDigitalOn(x), DEC);
             Serial.println();
           }
         }
       }
       Serial.println();
     }

     else {
       Serial.print("Got frame id: ");
       Serial.println(xbee.getResponse().getApiId(), HEX);
     }
   }
   else if (xbee.getResponse().isError()) {
     Serial.print("************************************* error code:");
     Serial.println(xbee.getResponse().getErrorCode(),DEC);
   }
   else {
     // I hate else statements that don't have some kind
     // ending.  This is where you handle other things
   }
}

void handleXbeeRxMessage(uint8_t *data, uint8_t length){
 for (int i = 0; i < length; i++){
//    Serial.print(data[i]);
 }
//  Serial.println();
}

void showFrameData(){
 Serial.println("Incoming frame data:");
 for (int i = 0; i < xbee.getResponse().getFrameDataLength(); i++) {
   print8Bits(xbee.getResponse().getFrameData()[i]);
   Serial.print(' ');
 }
 Serial.println();
 for (int i= 0; i < xbee.getResponse().getFrameDataLength(); i++){
   Serial.write(' ');
   if (iscntrl(xbee.getResponse().getFrameData()[i]))
     Serial.write(' ');
   else
     Serial.write(xbee.getResponse().getFrameData()[i]);
   Serial.write(' ');
 }
 Serial.println(); 
}

void print32Bits(uint32_t dw){
 print16Bits(dw >> 16);
 print16Bits(dw & 0xFFFF);
}

void print16Bits(uint16_t w){
 print8Bits(w >> 8);
 print8Bits(w & 0x00FF);
}

void print8Bits(byte c){
 uint8_t nibble = (c >> 4);
 if (nibble <= 9)
   Serial.write(nibble + 0x30);
 else
   Serial.write(nibble + 0x37);
     
 nibble = (uint8_t) (c & 0x0F);
 if (nibble <= 9)
   Serial.write(nibble + 0x30);
 else
   Serial.write(nibble + 0x37);
}