I ran into a strange problem that seems to be a firmware bug.
I am using a module configured as “zigbee end device api” fw.2921, modem XB24-ZB, zigbee profile pro (ZS=2).
It is connected to another device via serial port at 1200 bps due to communication problems at higher speed.
The network has one coordinator, one router, and one end node.
The router is configured to broadcast I/O samples when the state of some I/O lines change. When the end node receives the sample, it sends it via serial line to the external device.
When the network starts everything seems to work fine: the end node connects to the router (NC=9), and if you perform a ND the coordinator is able to see both remote nodes.
When the router sends a sample, the end node receives it (RSSI led on) and transmits it on the serial line, but the sending speed is NOT 1200 bps as it should be but 9600 instead.
If you now send the end node ANY explicit command (not a broadcast packet) over the air, the serial line magically sets to 1200 and everything works fine.
In short, the end node needs to receive one non-broadcast packet in order to set the serial line correctly. The same behaviour does NOT happen at higher speeds.