XBee not sending data in API mode

I have two xbee pro s2b. I want to be able to send some numerical data from one to the other when one is in Router AT mode and the other is in Coordinator API mode. However, when I change the router to be in Router API mode I do not get the frames containing the numerical data in the coordinator console working window. All I receive are “Explicit Rx Indicator” frames. How can I get the Router to send this numerical data (I’m using an Arduino) in API mode to a coordinator also in API mode? Thanks!

In API mode your payloads are embedded within an API frame that includes addressing information, a checksum, etc.

You can see a specification for this and other frames at https://www.digi.com/resources/documentation/digidocs/90002002/default.htm#Reference/r_frame_0x91.htm.

You would use API Frame 0x11 to send and API Frame 0x91 to receive. Pack your date into the payload field for TX and unpack it on the coordinator for RX.

Thanks for the fast response! I am trying to use Rapp’s xbee-arduino library with the following code

#include

uint8_t payload[] = { ‘H’ };
XBee xbee = XBee();

// SH + SL Address of receiving XBee
XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x40c8cc23);
ZBTxRequest zbTx = ZBTxRequest(addr64, payload, sizeof(payload));

void setup() {
Serial.begin(38400);
xbee.setSerial(Serial);
}

void loop() {
xbee.send(zbTx);
delay(1000);
}

However, this isn’t working for me and nothing appears on the XCTU coordinator console. Am I doing something wrong?

38400 would be an odd serial rate to use. Double-check that along with your address. Make sure you have an API firmmware on you XBee. Make sure your Arduino can hit 38400 with acceptable accuracy. Maybe try at a lower/higher baud rate just in case.