How do I use programmable XBee pro (with Serial bypass app installed) with an Arduino?

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…

The range is going to be the same regardless if you use the programmable or not of that specific product line.

Not trying to be rude, but did you read the whole thing? That’s not the issue.

Yes I did. The point is, the programmable module is the wrong one to use for this. You are not going to be able to get it into AT command mode by sending +++. You would need to first get it into a bootloader state and then into bypass mode. Then and only then would the AT command mode be an option.

So really again why are you using a Programmable module along with an Arduino? That is really just duplicating things. That is a mP connected to a mP connected to an RF processor.