What I want to do:
I have a programmable XBee Pro 900HP that I want to interface with an Arduino.
Before I explain the issue please know:
First of all, I want to make it clear that I know this isn’t really the module I would usually pick for an Arduino project, but I need the long range and the non-programmable modules don’t offer very long range at all. Another thing I want to make clear is that the port settings are exactly the same on both ends and the module TX is connected to the Arduino’s RX and module RX is connected to the Arduino’s TX. I have checked, double checked, and triple checked this is true. I have even checked with an oscilloscope equipped with a serial decoder. Both modules are in API mode by default, but the problem exists in both modes (both variants of API mode and AT). The serial bypass app is installed on the module’s MCU and is confirmed to work with a PC serial terminal (legacy X-CTU) and I’m able to send AT commands on PC without issue.
The issue:
When sending any serial data from the Arduino (I have tried both the Mega and the DUE) the XBee completely ignores it. Usually on the PC, to enter AT Command mode, one would send three plus signs (“+++”). However, when this works on the PC, it does not on the Arduino. I’ve tried simply using Serial.print(“+++”) without success. I’ve also tried putting three plus signs in their hex form (0x2B) in a byte array and using Serial.write(byte_array, sizeof(byte_array)) without success also. I’ve also generated an AT command frame with X-CTU and sent the corresponding byte array to the module with the Arduino, again there is no response. I’m not sure what I’m doing wrong…