First, I do appreciate the “Well thanks a lot for this”. I do not belong to Digi.
This frame is a 0x10. It means a radio wants to send a message, option = 1 (you will to receive a 0B message with transmission status). On 0x8B message, a 0 on the 9th byte means OK otherwise error.
If your sender is reading this message, it means it is properly talking with his radio.
Next step, for a big relief (transmission!), is to address the frame properly.
7E 00 11 10 01 (DL)00 00 00 00/(DH) 00 00 0F FF/(MY) F0 FF/(broadcast option, I always leave 0 there) FF 00 01 AE DA 69
The 64 bits address is 8 bytes and the 16 bits address is 2 bytes. Addressing takes therefore 10 bytes.
Case one: a radios want to send a broadcast message. All the radios in the network will receive it. You would address as:
00 00 00 00 (DH = 0) FF FF FF FF (DL = 0xFFFF) FF FY (MY for broadcast)
Case two: a radio wants to send a frame to a specific recipient. Only the recipient will receive it. You would address it as:
00 12 A2 00 (DH) 40 52 2B AA (DL) xx yy (insert the latest MY. caution it changes)
Case 3: a radio wants to send a message to the coordinator. Only the coordinator will receive it. You would address it as:
00 00 00 00 (DH) 00 00 00 00 (DL) 00 00 (it never changes!)
You can use the 3 rd option to set your network as a star. Everyone is talking to a master, easy addressing for remotes !
The master (coordinator) can send himself send a ND network discovery command (‘07 00 04 08 01 4E 44 64’). Radios will reply back with their 64 bits and latest 16 bits address, NI… and other options if you configure them.
I suggest you use XCTU. Under the console tab, you has first to connect the console. Then on the bottom part, there is an editor that helps greatly to write and understand frames. You can send those frames right away and see exactly what is going on. It helped me a lot to understand how this thing works!
From arduino.cc (https://www.arduino.cc/en/Main/ArduinoXbeeShield):
Your radios need to be on the same network, as set by the ID parameter (see “Configuration” below for more details on the parameters). The modules need to be on the same channel, as set by the CH parameter. Finally, a module’s destination address (DH and DL parameters) determine which modules on its network and channel will receive the data it transmits. This can happen in a few ways:
If a module’s DH is 0 and its DL is less than 0xFFFF (i.e. 16 bits), data transmitted by that module will be received by any module whose 16-bit address MY parameter equals DL.
If DH is 0 and DL equals 0xFFFF, the module’s transmissions will be received by all modules.
If DH is non-zero or DL is greater than 0xFFFF, the transmission will only be received by the module whose serial number equals the transmitting module’s destination address (i.e. whose SH equals the transmitting module’s DH and whose SL equals its DL).
Again, this address matching will only happen between modules on the same network and channel. If two modules are on different networks or channels, they can’t communicate regardless of their addresses.