Xbee ID in Coordinator Arduino

Hi, I have 3 Xbee s2c modules with me and 3 Arduino M0 for each of them.
one is configured as a coordinator and other two as end devices or one act as a router and other as the destination device. for easy understanding lets name them A, B and C
the configuration is as follows:
A------ AT
B and C----- API which is 1

Basically what I am trying to do is send the information to a destination device using a router.
all the connections for an Arduino XBee combinations remain the same.
I am able to see in the other two Arduino serial monitors that the information I am getting is from the coordinator and I am getting the XBee address as well in both the devices i.e B and C.
I am also getting the acknowledgment from B and C that I can read in serial monitor of A in terms of characters. But here I need to know in the Coordinator Serial Monitor from where I am getting the acknowledgment from?? i.e; B or C??
I think my question is clear.. any help would be greatly appreciated. Just feel free to ask if you need any other information about the setup and configuration
Thanks

Just feel free to ask if you need any other information about the setup and configuration

A picture maybe, because your post is less than clear. For instance,

Hi, I have 3 Xbee s2c modules with me and 3 Arduino M0 for each of them.

Three Arduinos for each XBee means 9 Arduinos, which I doubt is what you have.

I can't imagine why you have some XBees in API mode and some in AT mode. They should all be in the same mode.

The Arduinos are running some code which is missing from your post.

A picture maybe, because your post is less than clear. For instance, Three Arduinos for each XBee means 9 Arduinos, which I doubt is what you have.

Thank you Mr. Paul for the reply. sorry i think that wasn’t clear enough… each XBee s2c module is built on an arduino… so 3 xbees mounted on 3 arduinos. think its clear now one as a coordinator and two others are nodes

I can’t imagine why you have some XBees in API mode and some in AT mode. They should all be in the same mode.

i need to know the address of the xbee(node Here) from which the information is coming from at the Coordinator arduino so keeping it in API gives me the frame data along with the address that I can see in a node Arduino serial monitor( means i am getting address of coordinator xbee at the serial monitor of receiver here but not the address of receiver xbee that gave me acknowledgement even when it is in api mode). but when I keep both of them in the API I could not get the acknowledgment in the coordinator which for instance is a “received”

The Arduinos are running some code which is missing from your post.

here is the code of what i am trying to run right now that I found on the forum and i took reference of Mr Andrew’s library of Xbee api as well

coordinator side

[/quote]

#include <Printers.h>
#include <XBee.h>

XBee xbee = XBee();
uint8_t payload[]={"hi"};

ZBTxRequest zbTx = ZBTxRequest(0x13A20040F8D871, payload,sizeof(payload));
void setup() 
{
  SerialUSB.begin(9600);
  Serial1.begin(9600);
  xbee.setSerial(Serial1);
  delay(1000);

} 

void loop() 
{ 

    xbee.send(zbTx);
   if (Serial1.available()){
    SerialUSB.print(char(Serial1.read()));
   }
    
  
   

  delay(500);

Receiver Side

#include <Printers.h>
#include <XBee.h>


XBee xbee = XBee();



XBeeResponse response = XBeeResponse();
ZBRxResponse rx = ZBRxResponse();


void setup() {
 SerialUSB.begin(9600);
 Serial1.begin(9600);
 xbee.setSerial(Serial1);
 delay(2000);
}

void loop()
{
 xbee.readPacket();
 if (xbee.getResponse().isAvailable())
 {

   xbee.getResponse().getZBRxResponse(rx);
   SerialUSB.print("Got an rx packet from: ");
   XBeeAddress64 senderLongAddress = rx.getRemoteAddress64();

   print32Bits(senderLongAddress.getMsb());
   SerialUSB.print(" ");
   print32Bits(senderLongAddress.getLsb());
   uint16_t senderShortAddress = rx.getRemoteAddress16();
   SerialUSB.print(" (");
   print16Bits(senderShortAddress);
   SerialUSB.println(")");
   SerialUSB.println("Received Data: ");
   for (int i = 0; i < rx.getDataLength(); i++)
   {
     print8Bits(rx.getData()[i]);
     SerialUSB.print(' ');
     Serial1.write("Received to Node 1");
   }

 }
 

}
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 k = (c >> 4);
 if (k <= 9)
   SerialUSB.write(k + 0x30);
 else
   SerialUSB.write(k + 0x37);

 k = (uint8_t) (c & 0x0F);
 if (k <= 9)
   SerialUSB.write(k + 0x30);
 else
   SerialUSB.write(k + 0x37);
}