The Zigbee standard includes a process for instructing all the nodes in a network to move to a different RF channel. This would typically be used if there was a lot of interference on the current channel. By default, the coordinator (in this case an X4) is the “Network Channel Manager”.
Is there a way to trigger this process manually from the X4 that is coordinating the network?
Also, will the X4 every trigger it automatically if there is a lot of interference on the current channel, as suggested (but not mandated) by the Zigbee spec?
The ability to specify a channel depends on the RF protocol stack basically, details to be found in the appropriate RF Product Manual. For example, the 802.15.4 protocol allows this via the read/writeable CH command, but in our ZB (ZigBee) modules, CH is a read-only field.
This isn’t to say that channel selection isn’t allowed in our ZB protocol, only that its done a different way - by way of the SC (scan channel) parameter. Basically, with CH on 802.15.4, you’d be telling your Xbee module “only use this channel”. With the versatile SC command, you can specify a channel or series of channels you want your network to Initialize on (Coordinator) or Join (Router/End Device) by specifying a bitmask to narrow or expand the channels you want to look at.
I recommend the following for additional information on the various Networking command options.
ZB Product Manual
ZigBee channels article
Changing operating channel by setting the SC parameter on a Digi Zigbee coordinator initialises a brand new network, so any routers joined to the existing network will no longer be contactable from the coordinator. I’m looking for a way to move the existing network onto a new channel, rather than initialising a new network and making all the nodes join that one.
The channels article that you linked to states that “Once a coordinator selects a channel, it does not move regardless of error rate… A user or external software must manually force the coordinator to move via setting changes, plus the routers will NOT follow unless various non-default settings have been enabled.”
I’m trying to find out whether a Digi coordinator can actually make the routers follow, as implied by the last part of that sentence! The routers in our network are not Digi devices, my question here is just about how to make the Digi coordinator send out the right commands to tell the routers to switch channels. Thanks!
If the overall goal is PAN migration, I’d go about that a bit differently.
The original question was about how to configure a network for a particular Channel, which isn’t possible in our ZB protocol stack (though the SC parameter essentially does the same thing, but offers more configurability as well). You are very correct that the SC command would cause the network to reform (in the case of a Coordinator), or leave a network in the case of a Router/End Device. When the device leaves the network it was originally on however, it will attempt to re-join a network on the same PAN ID, then probe each channel within the PAN until it finds the correct one. This then is the key to what you’ll want to do to accomplish your overall goal.
Going back a step further than SC, you’ll want to pre-configure a PAN ID for that network (ID parameter) to use on the Coordinator, and all devices you want to join that Coordinator’s network. This way when a Network Reset occurs due to the SC parameter, the Devices which were network reset will begin looking for a new channel within “SC” for the pre-configured PAN ID “ID”. Assuming all devices on the network were pre-configured for the correct PAN ID, they shouldn’t have any problem migrating to the new channel on that PAN ID.
If instead you want to migrate to a new PAN ID altogether, you’d configure the new PAN ID of the current network devices over-the-air from the Coordinator (which will cause the devices to leave their current network as the ID command is applied). When the now-orphaned devices are searching for a new network, they will probe the channels on the pre-configured PAN ID. You then migrate the Coordinator to the new PAN ID last, so that all the orphaned devices attempting to join on that PAN would now find their Coordinator and re-join their original network, on the new PAN ID.