How to send zdo command, Management LQI (Neighbor Table) Request to remote routers

Hi All,
I want to send zdo command, Management LQI (Neighbor Table) Request to remote routers.

But it seems I have not done every thing inline. I don’t receive any response back.

This is my setup--------------
ZIGBEE END DEVICE API - Configured with X-CTU - firmware 29A0 - AO =1, PAN ID = ff, all other parameters set defaults.

ZIGBEE Coordinator API - Configured with X-CTU - firmware 21A0 - AO =1, PAN ID = ff, all other parameters set defaults.
connected to PC using explorer board.
Interface using java (xbee-api)

XBeeAddress64 addr64 = new XBeeAddress64(0x00,0x13,0xa2,0x00,0x40,0x76,0xd3,0x62);
        //0000FFFF also tried

            int[] payload = new int[]{0, 0, 0};
            int sourceEndpoint = 0;
            DoubleByte clusterId = new DoubleByte(0x0, 0x31);
            ZNetExplicitTxRequest request = new ZNetExplicitTxRequest(0x00, addr64, XBeeAddress16.ZNET_BROADCAST, 0x00, ZNetTxRequest.Option.UNICAST, payload, sourceEndpoint, 0, clusterId, ZNetExplicitTxRequest.znetProfileId);

Please advise me where did I do wrong.
Does it required to set any other parameters in XCTU or in java code.
I also tried to mannually send API packet using

int zdoPacket[] = {126, 0, 22, 17, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 254, 0, 0, 0, 49, 0, 0, 0, 0, 118, 0, 78};

But No luck ! :frowning:
Thanks in advance


int zdoPacket[] = {126, 0, 22, 17, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 254, 0, 0, 0, 49, 0, 0, 0, 0, 118, 0, 78};

In this case, not Broadcast address but Unicast address is required.

It tried on my XBee ZB.
The request is transmitted from coordinator set to ZS=2 and AO=1 to router similarly set to ZS=2 and AO=1.

Hi chobichan,
Thanks for the respose. I managed to send and receive ZDO LQI request and response.
I had coordinator and 2 routers, all configured as yours.
But my LQI response seems to be having some issue. It doesn’t seems any “Neighbor Table Entry” is available.
This is my codes and responses

int zdoPacket[] = {126,0,22,17,1,0,19,162,0,64,118,211,98,255,254,0,0,0,49,0,0,0,0,118,0,169}; 
while (true) {
while ((response = queue.poll()) != null) {
System.out.println(" Packet Bytes = "+Arrays.toString(response.getPacketBytes()));

This is what I get soon after sending request

 Packet Bytes = [0, 20, 145, 0, 125, 51, 162, 0, 64, 118, 211, 98, 70, 175, 0, 0, 128, 49, 0, 0, 65, 118, 132, 237] 


 Packet Bytes =  [0, 7, 139, 1, 70, 175, 0, 0, 0, 125, 94]

Can you please help with this?

I have another question. Does anybody found source explaining what exactly “LQI” byte in the LQI response and how it is calculated? I only found that is is not directly related to RSSI.


Although tried once again, the response is received normally.

A blue place is considered to be LQI.
LQI and RSSI are not the same things.

Possibly, is not it displaying, before completing taking in of all the data? .


is there a document that describes what ZDOs are supported by the XBee modules?

It is strange. When I change my PAN ID, the command works perfectly. (FF to FFF)! Any how now it is working!

LQI and RSSI are not the same things.

I found only this in all the places that it is discussed about LQI.

Does somebody know how this “LQI” is calculated? Or at least which parameters (Ex. RSS, BER, etc.) are taking into account when it is calculated?

Another thing I need to clarify is what is the “ZigBee stack profile setting” for series II 2mW version? (not PRO)



The document of ZDO are acquired from a ZigBee alliance.

The document of ZDO of XBee should use the following links.

Hi All,
I am still stuck in this LQI definition and sending the ZDO command to no-PRO (2mW) series 2 module!

I have faced another issue. I am testing with 3 routers and a coordinator. And I sending ZDO LQI requests continuously in every one second.Things are ruining smoothly until all are powered on! (say 1, 2, 3)

When a router is power off (say 03), Still I have max_hops table entry for that node 03 in the ZDO response I get from others. This will not be corrected until I power reset the modules.

FYI: when I power on a module in the middle of ZDO requesting, that module is added properly to the ZDO LQI response.


I´m trying for ages to send a LQI Request using the ZNetExplicitTxRequest method. Did someone used it successful?

In my case it was due to not setting A0=1. YMMV.