While I can talk between XBees I seem to be missing something when it comes to using AT commands. I'm using transparent mode with factory defaults. The following code receives nothing from the XBee after a reset but sometimes received back what I send if I power the leonardo and xbee off and back on.
I did to an ATRE,WR to make sure the XBee was at factory defaults.
#define Computer Serial
#define Wireless Serial1
String wlBuffer;
unsigned long nextTime = millis() + 10000;
void setup()
{
Computer.begin(9600);
Wireless.begin(9600);
/* add setup code here */
delay(8000);
}
void loop()
{
if (nextTime < millis() == true) XBeeTalk();
char received;
if (Wireless.available() == true)
{
received = Wireless.read();
//Computer.println("Received " + String(received));
if (received == '\r' || received == '\n')
{
if (wlBuffer.length() > 0) Computer.println(wlBuffer);
wlBuffer = "";
}
else
{
wlBuffer += String(received);
}
}
/* add main program code here */
}
void XBeeTalk()
{
Computer.println("Starting XBee");
delay(1000);
Wireless.println("+++");
delay(1000);
//Wireless.println("ATRE,WR");
//Wireless.println("ATID5555AP0SM0PL0CN");
Wireless.println("ATID,BD,AP,SM,SP,SO,PL,CN");
nextTime = millis() + 15000;
}