Apple announced support for iBeacon technology with the release of iOS 7. The technology is designed to let our phones know our exact location, which in turn makes our phones a lot more smarter in guiding us through venues and physical spaces. Adding in any technology, however, comes with concerns about the already-limited battery life. The iBeacon technology is designed with this constraint in mind — it is based on Bluetooth Low Energy (BLE), an extremely power efficient variant of Bluetooth, which was developed by Nokia.
iBeacons announce their presence periodically by emitting a BLE iBeacon signal. Mobile devices can sense these signals and position themselves relative to the beacon. This opens new opportunities for context aware behavior of mobile apps, such as, delivery of location based content, clienteling applications and much more. But to use beacons, cell phones need to do extra work of sensing them, in-turn adding to battery drain.
Here at Aislelabs, we are always experimenting with different type of beacons and phones to see their impact on the precious battery life. We released our report on iBeacon power consumption on Android phones last month, and now we are releasing our findings for iPhones. We have conducted very detailed experiments across different beacon use scenarios. In this report, our experimental findings for iOS are presented and a comparison to Android is explained.
Highlights of this report include:
- Android phones battery consumption is better (lower) than Apple devices for beacon scanning.
- Unlike Android, iPhones battery drain is less sensitive to the number of beacons nearby. With Android, more beacons near the phone meant more battery drain.
- iPhone battery consumption is more predictable than Android phones. New Android phones use automatic beacon sampling to optimize power use, whereas Apple allows individuals to configure beacons they are looking for.
- Newer devices (both iPhone and Android, with new BLE chips) are highly optimized for bluetooth low energy with minimal battery impact.
Our experiments are done with iPhone 4S, iPhone 5C and iPhone 5S, each running iOS 7. These are the three phones in existence during and after iBeacon release, and provide us with a spectrum of BLE chip families.
Android allows for scanning all beacon signals in the background, but iOS restricts background search to a pre-specified set of iBeacon identifiers (UUIDs). The process is called ranging and the set of UUIDs is known as the range set. A background iOS thread notifies the app of any beacons in the range set of the app every second (all beacons not in the range set are discarded by the operating system). While we were able to experiment with different scan intervals in Android in our previous report, all iOS experiments are done with a 1 second BLE scan frequency due to the fixed ranging interval of iOS. We explore the battery impact of both beacons in the range set and ambient beacons (i.e., beacons nearby but not in the range set).
iPhone Battery Drain
The table below compares battery drain per hour on the three iPhone models as we increase the number of beacons near the phone. Baseline corresponds to the phone not doing any ranging, i.e., no scans whatsoever for beacons.
Table 1. iBeacon battery consumption per hour for iPhones. Baseline corresponds to Bluetooth scanning off, but the phone is operating with the screen on. Lower is better.
Table 1 shows that iPhone 4S consumes the most amount of battery and iPhone 5S is the most optimized (newer phones have more optimized chipset). As the number of beacons increases, the phone uses more battery. With a single beacon, and continuous scan, 4S uses 5.75% more battery whereas 5S uses 4.25% extra battery compared to the baseline. As the number of beacons increase to 10, the additional battery drain for 4S and 5S becomes 11% and 4.75%. It is evident that the newer iPhone 5S consumes only half the battery compared to the 4S model when there are a 10 beacons nearby.
Note, while the battery drain for iPhone 5S may seem very high in our experiments, this is not the case in real-life. In our experiments, we are doing continuous scan every second for an hour, a sensible app in real-life in the background scans are a lot less frequent. Daily consumption with iBeacon applications should be no more than 1% over a 12 hour period in real-life situations.
Table 2. iBeacon battery consumption compared to baseline with and without ambient beacons. Lower is better.
Table 2 presents the impact of ranging on battery as the number of beacons increases. Percent battery drain over the baseline consumption per hour is reported. The table shows three measurements for each phone model:
- a single beacon near the phone
- 10 beacons near the phone but the range set has only one beacon UUID, and remaining 9 beacons are discarded by the iOS
- 10 beacons near the phone and each one in the range set
This experiment is designed to evaluate the effectiveness of iOS in discarding beacon signals before fully processing them if they are not in the range set. Android phones do not have the concept of range set and all nearby beacons are processed, whereas iOS adds this additional filtering layer based on beacon UUIDs.
It is evident that ambient beacons have no impact to battery consumption with newer iPhones which is very reassuring and signifies that ranging has been carefully optimized by Apple engineers to make the filtering step for ambient beacons battery efficient. Our results show that this design decision by iOS indeed pays off as battery use for scanning 1 beacon with 9 ambient beacons is almost the same as scanning with no ambient beacons. Even though the battery saving is modest, every optimization counts when it comes to the precious battery life, and iOS wins over Android in this case.
Figures 1 and 2 below present the results of the same experiments for iPhone 5C and 5S. Overall the trends are very similar. This is not surprising as the phones feature similar BLE chipsets. From the figures we can observe that compared to iPhone 4S, the baseline case has been much improved with the use of newer hardware. When ranging but with no beacons nearby, the battery impact in iPhones 5C and 5S is less than that of 4S. The behavior of both the new devices for ambient beacons is consistent, depicting no impact to battery consumption during the presence of ambient beacons in the vicinity. For 10 beacons, the battery consumption compared to ranging for zero beacons is 30% per hour more. This is clearly much improved than in the case of iPhone 4S that depicts almost 100% per hour more battery consumption for the same number of beacons.
Comparing iOS and Android Battery impact
In this section we make a direct comparison between iOS and Android devices, utilizing the results of our previous analysis for Android battery consumption.
Table 3. Battery consumption for iBeacon BLE activity as % reduction per hour. The baseline battery consumption has already been subtracted. Lower is better.
From the table it is evident that Moto G depicts the best battery behavior. Comparing Nexus 5 and iPhone 5 family (roughly having the same generation of BLE chipsets) at low number of beacons, we observe that Nexus 5 depicts better (lower) battery consumption. As the number of beacons increases, the battery consumption becomes similar.
Android’s Beacon Sampling
Moto G, and newer Android phones are extremely power efficient when using iBeacons. We believe this comes from beacon sampling on BLE chipsets used by these phones.
Moto G chipset decodes only a fraction of BLE signals, whereas Nexus 5 and other handsets process all BLE signals received by them. Our experiments suggest, Moto G processes only around 25% to 33% of all signals giving it a clear advantage when it comes to battery life. This means, given 100 beacon advertisements, Nexus 5 decodes all 100 received signals whereas Moto G only decodes 25-33 of them. Given that the beacons advertise frequently (every 100-600 ms), most signals are duplicate anyways, allowing the chipset to not decode every signal.
We were not able to determine if Apple devices perform similar sampling — the iOS deduplicates the iBeacon signals before sending them to the app. But based on our battery consumption charts, it is unlikely that Apple devices do any sampling. Apple lets the developer manually specify a list of beacons to scan for as an attempt to save battery. Moto G on the other hand does automatic sampling without imposing a burden to the app developer.
Apple introduced iBeacons and scanning mechanisms using range sets. Since the technology is based on the open BLE standard, the new version of Android not only supports the technology, but also seems to be more efficient than iPhones. While both operating systems are comparable, Android offers the app developer more options to customize whereas iOS provides an optimized out-of-box solution but with less features.
In summary, we expect that battery consumption for BLE keeps on improving dramatically with each new generation of BLE chipsets. Newer handsets, with Bluetooth chipsets designed specifically with BLE use cases in mind, are extremely power efficient. In our experiments, we conduct continuous scans every second, but in real-life scenarios the actual consumption is under 1% for all modern phones for a days use.
Time Lapse Video
An iPhone continuously ranging for iBeacons. Showing the battery level and time in the top status bar.
Figures and Graphs
Chart and graphs for power use on different iPhone models. The x-axis plots the time in number of hours elapsed since the beginning of the experiment. Y-axis plots the corresponding battery charge as it decreases with time. The legend shows the phone model and the number of beacons in the vicinity of the phone. Also see similar charts for Android phones doing beacon scanning.