Once the Nodes are successfully bonded and installed, the Discovery process must be invoked in the Coordinator to create the routing structure. The goal of the Discovery is to find and virtually re-address all bonded Nodes (except ones with disabled routing, see below) in ascending order according to the “distance“ from the Coordinator. The resulting addresses are called VRNs (Virtual Routing Numbers). Then, a routed packet is propagated through the network according to the rule that every routing Node routes in the time slot corresponding to its VRN address. Such a mechanism is called TDMA (Time Division Multiple Access). See the animations on how the routing works. Logical addresses remain unchanged after Discovery.
During the Discovery, the discovered Nodes are divided into routing Zones (groups of Nodes that can be reached by the same number of hops from the Coordinator). Zone 0 contains all the discovered Nodes in direct RF range with the Coordinator (0 routing hops).
Discovery is a process that consumes a certain time. This time depends on the network size (number of Nodes) and its topology. It can take from a few seconds to tens of minutes. In the case of complicated networks, it might take about 1 hour. See the animation on how the Discovery works.
● Discovery result (the number of discovered Nodes, the number of Zones, …) need not be absolutely reproducible but can vary when repeated because of an actual RF environment.
● Discovery must be repeated every time the topology (a new, removed, and / or relocated routing Node) and / or RF conditions (e.g. a new RF obstacle) change.
● The number of discovered Nodes can be less than the number of bonded Nodes. Despite this, the network can be functional. After Discovery, it is recommended to check the connectivity to all Nodes (ping). If the communication is reliable, the lower number of discovered Nodes itself means a lower number of routing Nodes but may not present a problem.
• In the case of a homogeneous network (e.g. street lighting), it is not always necessary to discover all Nodes (e.g. 95 from out of 100 might be OK) but all Nodes must be reliably accessible.
• When the network contains non-routing Nodes (e.g. moving devices) then all routing Nodes should be discovered to cover the whole required area.
● If non-routing Nodes are intentionally present in the network (with routing disabled in TR configuration) then it is recommended to bond them into the logical addresses from a compact address range at the top of the address space. This allows to effectively use the Discovery parameter Max. Node Address.
Example:
• Addresses 1 to 50: Dedicated to routing Nodes. (Set Max. Node Address to 50 in this case.)
• Addresses 100 to 150: Dedicated to non-routing Nodes
● It would be useful to run Discovery with lower TX power (e.g. 5 or 6). Current TX power used by the Coordinator when Discovery is called is used also for all Nodes participated in the Discovery process. If Nodes are discovered even with lower TX power than the one used in the normal operation (e.g. 7), it is supposable that the communication will be more robust and reliable.
After Discovery, the bonded Nodes in the network are differentiated as follows: ● Discovered Nodes: Having a VRN, capable of routing, a part of the routing structure (routing backbone), assigned to a Zone, not relocatable. ● Not discovered Nodes, either intentionally (with routing disabled in TR configuration) or unintentionally (due to an RF failure during Discovery): Having no VRN, not capable of routing, not assigned to a Zone, relocatable. |
The Discovery can be invoked by DPA command Discovery. Its main input parameters are TX power to be used during the Discovery and the maximal logical address of the Node to be a part of the routing structure.
● Set the requested TX power and Max. Node Address (see above).
●
Note: The parent structure represents just information about the parent for each Node and about the affiliation to a Zone. It does not relate to the number of redundant paths to individual Nodes at all. The parent stands for the Node which discovered the given Node. |
Refer to IQRF OS User’s guide, chapter Discovery.