First time evaluating Zigbee ZB protocol, I have only had previous experience with the 802. protocol tranceivers, and I have a simple question that I just cannot find a direct answer.

The link I desire is between a ZIGBEE COORDINATOR AT and a ZIGBEE END DEVICE AT. Both modules I was able to program these firmwares using X-CTU to the most current version. In a nutshell, I can transmit from the END DEVICE to the COORDINATOR, but I am unable to transmit from the COORDINATOR to the END DEVICE.

PanID’s on both modules are set to “0x123”, and destination addresses (both L and H) are “0” on both modules. Network Security settings are left default. I understand that I am missing something with the Zigbee protocol, but I would really appreciate the fundamental behind the 2-way communication scheme, and how I can implement it.

One more things to add…right now, when I transmit from END DEVICE to COORDINATOR, the coordinator outputs a header from its UART port, as seen in the X-CTU terminal. I do see the data string at the end of this ~10 byte header, and what appears to be a checksum after the data string. Can I change this output behavior to only output the data string?

Sean Michnowski


Try setting DH and DL of End Device as SH and SL of Coordinator and vice versa. Then reset both the module. Remember, Start the coordinator first.

Hi shahrj1988,

I tried what you specified, but to no success. I also made sure I powered up the coordinator before I did the end device.

I tried reprogramming the end device to be a ‘ZIGBEE ROUTER AT’, thinking that might affect things; but communication is still unchanged…I can transmit router-to-coordinator, but not coordinator-to-router.

I appreciate your input, and I’ll certainly try anything else you specify.

OK, figured it out! Just completely reflashed the firmware on both modules, and started new. They can communicate fine.

So I guess I tried to set too many parameters at the same time.

Thanks for your help, I did use your advice when setting the DH and DL for both devices!

Also be aware that technically, a coordinator cannot ‘transmit’ to the end-device. The coordinator transmits the message to the PARENT of the end-device (which is likely the coordinator, so it just holds it), and the end-device polls the parent for data - by default 10 times a second.

So using an end-device which is awake makes your RF very noisy with pointless polls.

I hope you also know that end-device are not part of a ‘mesh’. Only routers (& the coordinator) participate in mesh/diverse path routing.