## 2 Wireless Sensor Network
### Cross-Layer Routing Protocol  
The communication radio utilized in this work supports messages up to a size of 256 bytes. This means GNSS messages that usually consist of several kilobytes had to be split into smaller packets before sending. Additionally, the expected total amount of data received from the GNSS receiver is quite high. For this reasons, we used a cross-layer routing protocol [32; 42] that is able to transmit large data packets with only a few control bytes, as depicted in Figure 8, which shows a data packet consisting of eight control bytes and one to 246 data bytes. As the range of communication messages is larger than the range of wake-up messages, the routing protocol supports the use of wake-up relay nodes as visualized in Figure 9 from [42]. In this routing protocol, neighboring nodes (child and parent nodes) are able to wake-up themselves, which means nodes of depth \(i\) can wake-up nodes of depth \(i-1\). Furthermore, it is possible to wake-up several nodes in a row to communicate data across several levels from depth \(i\) to depth \(i-n\) with \(n\in\mathbb{N}\) limited by the root node and communication range. Figure 6: The lifetime of the GNSS sensor node plotted over an increasing number of logging and communications intervals in 24 h assuming a battery capacity of 40 Ah and no energy harvesting. The black curve depicts the case of 4-Hz logging, and the red curve assumes 20-Hz logging linked to longer transmission periods. Figure 7: (**a**) Schematic drawing of the base station; (**b**) Photo of the GSM (global system for mobile communications) base station node. In Figure 9 Node 13 sends for example a wake-up signal to Node 12, which forwards the wake-up to Node 11, and so on, until a defined maximum number \(n\) of forwards or the destination is reached. Then, data can be sent directly from Node 13 to one of the woken Nodes 10, 11 or 12. In case a connecting relay node fails due to the temporary or permanent outage, nodes of depth \(i\) are also able to wake-up nodes of depth \(i-n\) with \(n=1,2,...TTL\), if they are in wake-up range. If, for example, Node 12 is unreachable due to changes in the link or due to low energy, Node 13 is also able to wake-up one of the parent nodes of Node 12. Once the communication link to a node is established, up to 64 data packets (with up to 246 bytes of payload each) can be transmitted subsequently. After transmission, the link is closed, and the participating nodes go back to sleep again. To be able to split large GNSS messages into several smaller radio packets and to be able to reassemble them later, every GNSS measurement had a unique ID based on its measurement time. Additionally, each packet number was related to the total number of packets of which a complete GNSS message consisted. Figure 10 depicts a payload packet to visualize this. From Figures 8 and 10, it becomes obvious that the routing protocol is able to transmit up to 238 bytes of GNSS data per packet. As the expected number of bytes to be transmitted is in the order of several kilobytes, this is still challenging. As the routing algorithm is able to transmit up to 64 data packets along an existing link, this adds up to 15,232 bytes of payload. The data rate could be changed between 38.4, 100 and 250 kBit per second. At a data rate of 38 kBit per second (equal to 4.75 kByte per second), a transmission of 64 data packets takes roughly 4 s. The transmission of a 30-min period  
Figure 8: Data packet consisting of eight control bytes required by the routing algorithm and one to 246 payload bytes. Figure 10: The structure of the payload to be transmitted in a routing packet. The payload consists of a length field, type of sensor, the number of the current packet, the total number of packets belonging to this GNSS message, the measurement timestamp and the GNSS message (part or complete) itself. Figure 9: Schematic of the wake-up multi-hop routing protocol. of 15 observations logged at 4 Hz (2852 kByte) takes around 10 min.