Setting a 16-bit destination address in AT Firmware mode does not seem to work

I am using Series 2 ZB radios and have communications working fine in AT firmware, setting DH and DL with 64-bit addresses.

I am trying to use 16-bit addressing without success however.

I have read in a few places that what I am trying SHOULD work. Here are two examples:
“In order to get data transfer from one module to another, the destination address (DL in this case) of the transmitting radio must match the source address (MY) of the receiving radio. The opposite does not need to be true if the communication is one-way. When using 16 bit addressing the DH parameter must be left at its default DH=0x0.”

Another example:
"[…] 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. "

Attached files shows a screenshot of my communications in X-CTU. As you can see, setting the DH and DL works fine, but when I set DH to 0 and DL to the 16-bit address of the destination (as shown by ATMY on the destination radio, in this case “79A2”) the communications don’t go through. I have tried allowing time to pass, double-checking the ATMY, saving config then software reset, and a few other things.

Am I missing something obvious, or do DH and DL maybe no longer support 16-bit addressing? I tried searching for anyone having a similar problem but no luck.

I know 16-bit addressing will work in API mode but I’d like to prototype first in AT mode, baby steps and all that. Going straight to API mode loses the “what you see is what you get” which I’d like to hang onto for now.

It looks like this feature has been removed (?) from the ZB firmware…

The AT command reference for the series 1 radios specifically states that to use 16-bit addresses you make DH = 0 and DL = 16 bit address of destination.

However that text is absent from the ZB units’ AT command reference of DH and DL.

Also I tested with some series 1 units and it worked.
Similar operation with ZB units failed (as shown in my screenshot) so it looks like I’m out of luck. :frowning:

The 16 bit addressing option is only used in the Non-Mesh based products. The mesh based products require 64 bit addressing only.

Adding the mvut - the 16-bit under ZigBee is a temporary, transient value assigned by the coordinator (? I think ?) and you cannot control.

So on the older XTend (etc) or 802.15.4 radios you can use these like old NETBIOS - name them with 16-bit codes, but under mesh it works differently.

The best you can do is dynamically record/learn the 16-bit on incoming messages and use it when you send responses.