# On the Energy Performance of Iridium Satellite IoT Technology
## 4 Current Consumption Model for Iridium Satellite IoT
We observe that, in this case, the average current consumption of the device increased; we speculate that the device performs lower layer retransmission attempts, and after unsuccessful message delivery, the message transmission is considered failed, and the device returns to sleep mode. However, additional upper-layer retransmissions of the same message can be triggered subsequently by the application. Based on our measurements, we found that the average time since the start of the operation until the instant in which the device returns to sleep mode, when message delivery is unsuccessful, is 20.0 s. This duration, which is greater than the one in a  
Figure 4: Current consumption pattern of a RockBLOCK Mk2 device that is initially in sleep state, performs a successful message transmission, and returns to sleep state. Figure 5: Current consumption pattern of a RockBLOCK Mk2 device that is initially in sleep state, performs an unsuccessful message transmission attempt, and returns to sleep state. successful message transmission, is consistent with our speculation that lower layer retries may have been performed. The average current consumption corresponding to the considered unsuccessful message transmission, since the device receives the command to start message transmission until 3 min later, denoted \(I_{KO}\), is 10.1 mA. We next calculated the average current consumption of the considered Iridium device, denoted \(I_{Avg}\), taking into account that unsuccessful message transmission may occur, with probability \(p\), and assuming that an application-layer mechanism triggers a message retransmission after \(T_{Retry}\) if the last message transmission attempt has failed. We also assume that successive retries of a failed transmission attempt are mutually independent. Figure 6 illustrates the device current consumption in an example where three transmission attempts are needed for successful delivery of a message. Let \(T_{Act}\) denote the duration of the interval since the Iridium device starts the process to perform a message transmission, until the message is successfully delivered. Note that, after an unsuccessful message transmission, there will be an application-layer-triggered message retransmission. The time between the start of two consecutive message transmission attempts is equal to \(T_{Retry}\) (see Figure 6). Let \(T_{Slop}\) denote the time since successful message transmission until the start of the first transmission attempt of the next message. We assume \(T_{Act}<T\), which will hold in a practical scenario. Therefore, \(T_{Slop}+T_{Act}=T\). Let \(I_{Act}\) and \(I_{Slap}\) indicate the average current consumption of the device during \(T_{Act}\) and \(T_{Slep}\), respectively. Based on the defined variables, the average current consumption of the device, \(I_{Avg}\), can be calculated as follows:  
\[I_{Avg}=\frac{E[I_{Act}]\cdot E[T_{Act}]+E\big{[}I_{Slep}\big{]}\cdot E\big{[} T_{Slep}\big{]}}{T} \tag{1}\]  
where E[\(\cdot\)] indicates the expected value of the corresponding variables. We started to calculate the terms in (1) by first determining \(E[I_{Act}]\). For the sake of analytical simplicity, we assumed that \(T_{Act}\) comprises an integer number of intervals of duration \(T_{Retry}\) including the interval where the successful message transmission occurs (i.e., the last interval, see Figure 6). Let \(I_{OK}\) and \(I_{KO}\) denote the average current consumption of an interval of duration \(T_{Retry}\), where successful and unsuccessful message transmission have occurred, respectively. Let \(n\) indicate the number of intervals of duration \(T_{Retry}\) that may occur within \(T\). Figure 6: Device current consumption over time, where three transmission attempts are needed for successful delivery of a message. The main current and time parameters of the model are indicated in the figure. Based on the introduced variables, \(E[I_{Act}]\) can be computed as shown next:  
\[