my name is Simon and I am developing a new wireless IoT-product for a company. The current prototype is using XBee ZigBee for communications and I am currently trying to figure out how to avoid having to run a dedicated ZigBee-Coordinator device. I do not want to develop a second hardware just to let it act as the main ZigBee Coordinator.
So the project is about developing a single product which will be installed multiple times inside a building, factory or home and which can communicate over ZigBee. So Meshing is very important. But there is no chance to add a second hardware to act as Coordinator or to use any third party hardware.
So I read about the Digi S2C modules and stumbled over the fact that this module has a larger flash and therefor incorporates all three ZigBee-Firmwares (End-Device, Router, Coordinator) into one single file. With using serial-commands you can then change the device-mode from coordinator to router or end device.
By thinking about it I came up to the following idea how to avoid having a second hardware just acting as a coordinator.
By powering up the first hardware unit the ZigBee Module runs as a Router / End-Device and is looking for a coordinator
If there is no coordinator the module resets itself and changes its device-mode to become the coordinator
Every following unit does the same and will connect to the first unit which acts as the coordinator
Using this concept I could stick with my single hardware and let it automatically choose between running as an End-Device, Router or Coordinator.
I know that you can put custom code onto the ZigBee-Modules controller. Is this controller able to reset itself and restart in a different operation-mode? Like leaving a flag before restarting or so?
Or do I need a second controller that is taking care of such a process?
Am I missing some detail in the ZigBee-Stack that has already implemented such a concept?