# Design and Analysis of Adaptive Hierarchical Low-Power Long-Range Networks
## 5 Real-World Evaluation
### Assessing the Mechanisms That Control the Adaptation Process  
The next experiment focuses on the difference between the _FixK_ and _AverageK_ approaches for characterizing device consistency. Figure 6(a) depicts the _messages_ transmitted by _FixK_. With _FixK_, less messages are transmitted over time as sub-networks are larger than three nodes and so the consistency requirement is met even when nodes lose some of the messages. On the other hand, the _AverageK_ version has a slightly higher message rate as it adapts to the size of the reported neighborhood. Note that the sub-network detection component reported the same sub-networks in both experiments, confirming the correctness of the implementations. The specific characteristics of the IoT deployment define the version of mechanism that should be chosen to minimize network traffic during stable periods. When the nodes are uniformly distributed over the network without prior knowledge of the deployed topology, we can use _FixK_ with the network density as the \(k\) value. _AverageK_ is a more adaptive implementation and operates reliably on any given network as each device uses a different \(k\) value based on its own neighborhood with a small overhead on the number of messages. In order to further understand the effect of the LQI thresholds on the sub-network formation process, an additional experiment was conducted based on the _AverageK_ implementation with an LQI threshold of 180. The results of the experiment are depicted in Figure 8. Using LQI to ignore devices with noisy channels provides much more stable links for the whole duration of the experiment, eliminating devices on the outskirts of the sub-network that have a high rate of communication failures  
Figure 6: Sub-network discovery for various beacon interval and timeout periods. Figure 7: Message transmissions during sub-network detection. and allows the devices to reach a consistent state easily. Not using LQI thresholds allows more distant devices to be included in the sub-network, and results in less stability as message loss rates are higher over high distances. However, in real IoT deployments, without LQI thresholds, it is very difficult to reach a consistent state. The results of the experiment indicate that providing a suitable LQI threshold significantly improves the stability of the IoT deployment. Assessing the Effect of the Sub-Network Detection Mechanism on the Network Lifetime  
Results from previous experiments indicate that the sub-network detection mechanism achieves the design goal of minimizing message exchanges. The next step is to evaluate the performance on battery powered devices to find out how it affects the _lifetime_ of the devices. In this experiment, six devices are used that are powered with 2 AA rechargeable batteries. The devices were located in a way such that a single neighborhood would be formed (see Figure 8(a)). An additional device was introduced that was connected and powered via USB--the role of this additional device is to collect battery statistics from the operation of the battery powered devices. For each experiment, the 2 AA batteries where fully recharged and confirmed that the Voltage of all batteries was the same before each experiment. The results of the experiment are depicted in Figure 8(b) nodes where a network running a _Fixed_ beaconing mechanism had an average lifetime of 1332 min while both adaptive mechanisms achieved a longer lifetime of 1612 min for the _FixK_ version and 1406 for the _AverageK_. Interestingly, the _FixK_ implementation achieved on average 21% longer lifetime. Note that, in these experiments, the devices are configured so that no duty cycling is used. All devices are operated continuously during the whole experiment. Taking into account that computations consume far less power than message exchanges, the longer lifetime achieved by the sub-network detection is almost completely due to minimizing beacon exchanges. Figure 8: Sub-network detection in combination with _AverageK_.