I am creating a stand alone node that acts as a repeater, and I want to
While updating the firmware of the repeater remotely through X-CTU, if for some reason the connection is interrupted, the program becomes non-responsive. When this happens, the repeater Xbee becomes non-responsive remotely, and cannot associate with the coordinator. Thus, it requires me to physically connect it and flash the module.
Is there a hardware method of rebooting the repeater without retrieving the repeater? Or a remote way of accessing the repeater?
Remote fw update via ZB is quite unrealiable - it is the nature of the beast. You are moving a 128K image 65 to 70 bytes at a time to an XBee which needs to run enough code to retain ZigBee/network comms, yet it doesn’t have enough free memory to hold the entire thing.
There is a whole list of things which can cause the router’s XBee to drop into boot-loader mode. Once it’s crashed to bootloader mode, rebooting won’t help, and you must use the serial port to recover.
I suspose you could put 2 XBee in every product, then use the second one to reflash the first serially.
But I think it is best not to plan to reflash the Xbee OTA as ‘normal’ procedure, plus assume that some percentage of the units will fail. So if you have 10 nodes, I’d expect 1 or 2 to fail so would be ‘joyous’ at the 8 which magically worked, and accept that 2 units must be manually accessed.
Well, ‘quieting’ the network will help quite a bit.
At least shutdown your main application. I don’t think small unicasts from the other nodes will hurt, but of course if they expect to route through either the reflashing node OR the helper node doing the reflash, this could cause node discovery, broadcasts, and other disruptions which risk failure.
I know of a few user which have enough flash on their own PIC/micro to hold the image, so use a proprietary reflash, copying the Xbee firmware to the device and having it do the reflash locally by serial.