Roaming SIM Cards - Battery Life Impact
Table of Contents
Where does the energy go in uploading data?
Our latest range of cellular devices use the Nordic nrf9160 cellular modem.
Specs from this modem:
- Operates on all major global LTE-M and NB-IoT bands
- LTE-M (Cat-M1): B1, B2, B3, B4, B5, B8, B12, B13, B14, B17, B18, B19, B20, B25, B26, B28, B66
- NB-IoT (Cat-NB1/NB2): B1, B2, B3, B4, B5, B8, B12, B13, B17, B19, B20, B25, B26, B28, B66
When connecting to the network, a battery powered device must:
- Power on from sleep
- Scan all potential bands which the network could be on
- Once the network is found, register on the network
- Complete the upload
- Shut down
All of these steps can take a varying amount of time.
More time trying to connect and upload = more time with the modem on = more battery drain
Our devices maximise battery life as much as possible in the following ways:
Low Power Component Selection
Many cellular modems and other components are carefully tested and analysed, and only the best performing, and lowest power versions are used in the final design
Firmware Smarts: Adaptive Tracking
The device remains in an extremely low power 'sleep' mode as long as possible - only waking up when required to obtain a location, upload, and return to sleep.
Firmware Smarts: Autonet and Network Profile
Where possible, if a specific local SIM is detected, which won't be used for Roaming (i.e. Telstra SIMs in Australia) - the device automatically applies a network profile. This is the technology (LTE-M, NB-IoT, or both) to use, and the bands to search.
E.g. if a Telstra SIM is detected, LTE-M + NB-IoT, bands 3 and 28 is the automatically applied profile
This has the effect of limiting the search space, meaning less time is spend searching bands for a network that is not present on this band, saving energy. Most countries and networks use only 1-3 bands. So significant energy is saved in this non-roaming case.
This is why we strongly recommend that partners Set the Network Profile on their devices.
Early Cellular Registration Abort
Once the network has been joined, the modem is able to identify if the SIM is a local or roaming SIM. Then 3 different registration strategies can be used.
- Balanced - Simply use the configured device registration timeout (default 3 min) - as in try to register for that long!
- Low Power - Scan all bands defined in the network profile and quit once that is complete (will be faster than balanced)
- Ultra Low Power - conduct a 'best guess' scan - based on information such as the bands used on the last successful upload.
Put into context, typically a succesful upload takes about 10 seconds, so spending 3 minutes to try (and potentially fail) to register uses 20x more energy!
On home network SIMs, that don't roam between networks, we know exactly the bands the device will ever use - so we have the luxury of being able to use the Ultra Low Power mode
On roaming SIMs, if we change countries the bands might change, so the most power efficent strategy possible is Low Power, with more bands enabled
Partners should ensure they have configured their settings appropriately - see Upload Timeouts - Network Registration Strategy
How do we know what SIM is used, and what network we are on?
The device is able to detect which SIM card is inserted based on the IMSI - International Mobile Subscriber Identity. This uniquely identifies the SIM card.
Once registered, the modem is able to compare this IMSI to the information coming back from the network to work out if it is a 'home' SIM, or a roaming SIM.
When things don't go to plan
3GPP - the 3rd Generation Partnership Project sets out the specification for cellular networks and modems. Part of this spec dictates that:
- The modem must periodically scan all enabled bands to try and find a home network, before
- This frequency is controlled by the SIM card itself
- Minimum is every 2 hours, max every 10 days, default every 3 days.
Some roaming SIM cards are configured to do this regularly. This is a setting on the SIM which is fixed, and cannot be worked around via device firmware or parameters.
Often these SIMs also require the modem to be set to scan for 5 minutes, in order to allow the SIM to switch IMSI. According to the roaming providers, this best facilitates roaming, but it's not great for battery life!
Roaming SIM card 'Battery Tax'
We have tested the following SIM cards and have noticed the following.
Partners should conduct their own testing, results may vary over time and in varying locations, countries and on different networks.
Emnify
We have seen different results on different Emnify SIM cards, which makes predictions hard.
Emnify SIM # 1 (older SIM)
- This SIM would trigger an IMSI swap and full band scan approximately once daily
- This uses about 3.5mAh per day
- The roaming tax with Emnify roaming IMSI SIMs is huge
- Approximately 10%/month for the Yabby3 and Yabby Edge
- Approximately 3%/month for the Oyster3 and Oyster Edge
Emnify SIM # 2 (SIM purchased 2022)
Newer SIM card - this card would occasionally fail to register on the network when testing in the DMA office - causing a 180 second failed registration attempt - which wastes energy. This is not nearly as a dramatic impact as SIM #1 - but still uses much more battery life
Emnify Single IMSI SIM
As above. No IMSI swaps, but the SIM occasionally fails to register.
1nce
- In our testing, we have seen that 1nce SIMs effectively act as 'home' SIMs - with minimal impact on battery life when compared to a home SIM.
Testing
Turn on GSM Debug Logs
- In order to test and see the effects, we need to enable GSM Debug logging
- The debug logs will return the time the device spends attempting to register, and we can look for any lengthy/repeated attempts.
- See Turn on Debug Logging for full details on setting the debug level
- We want to set the GSM Module to Info (others can be left on Severe) - for at least a week.
Reading the Logs
Logs can be seen as shown here: View Device Logs
If in doubt, turn on logging as above, and Contact Support with the serials to look at. One of our team can assess the battery life impact of your SIM card.
Normal Registration example
4290798623 | 2022/06/13 06:28:16 | Debug[GSM][Info]: ICCID = 89883030000001089991 | ICCID of SIM Card (Emnify SIM) |
4290798708 | 2022/06/13 06:28:16 | Debug[GSM][Sevr]: IMSI = 295050999804013 | SIM IMSI (Take note of this as we can see if it changes later) |
4290798709 | 2022/06/13 06:28:27 | Debug[GSM][Info]: CEREG = 2 | Device is searching for network |
4290798711 | 2022/06/13 06:28:29 | Debug[GSM][Info]: CEREG = 5 | Device has registered, roaming |
4290798712 | 2022/06/13 06:28:29 | Debug[GSM][Warn]: Registered in 2s | Registered in 2 seconds (very quick) 2-60 sec is reasonable - in good coverage should regularly be under 10 sec. |
4290798713 | 2022/06/13 06:28:29 | Debug[GSM][Info]: Connecting to s0.oemserver.com:9983 (ATRDE) | |
4290798714 | 2022/06/13 06:28:29 | Debug[GSM][Sevr]: MCC/MNC: 505/1 (Roaming), RAT: CAT-M1, Band: 28 | 505/1 = Telstra Australia Cat-M1, band 28 |
IMSI Swap
IMSI swaps don't happen all the time, or on every connection. When reading the logs it helps to highlight any instances of "IMSI" and search through each entry (this log appears at the start of the connection
4297270061 | 2022/06/14 17:00:12 | Debug[GSM][Info]: CEREG = 2 | Searching for network |
4297270062 | 2022/06/14 17:00:14 | Debug[GSM][Info]: Light cell search failed | |
4297270063 | 2022/06/14 17:00:57 | Debug[GSM][Info]: CEREG = 2 | |
4297270064 | 2022/06/14 17:00:57 | Debug[GSM][Info]: Deep cell search failed | Couldn't find network |
4297270065 | 2022/06/14 17:02:16 | Debug[GSM][Info]: CEREG = 0 | |
4297270066 | 2022/06/14 17:02:21 | Debug[GSM][Info]: CEREG = 2 | |
4297270067 | 2022/06/14 17:03:11 | Debug[GSM][Sevr]: Aborting oneshot reg | |
4297270068 | 2022/06/14 17:03:11 | Debug[GSM][Info]: Reboot request: 4133 s | Modem has reset and scanned for 4133 seconds! |
4297270069 | 2022/06/14 17:03:12 | Debug[GSM][Info]: Power down | |
4297270070 | 2022/06/14 17:03:12 | Debug[GSM][Info]: CEREG = 0 | |
4297270072 | 2022/06/14 17:10:33 | Debug[GSM][Info]: ICCID = 89883030000001089991 | |
4297270073 | 2022/06/14 17:10:33 | Debug[GSM][Info]: IMSI = 537030901104013 | IMSI has swapped from before |
4297270074 | 2022/06/14 17:10:39 | Debug[GSM][Info]: CEREG = 2 | |
4297270075 | 2022/06/14 17:10:39 | Debug[GSM][Info]: CEREG = 0 | |
4297270076 | 2022/06/14 17:10:49 | Debug[GSM][Info]: CEREG = 0 | |
4297270077 | 2022/06/14 17:10:49 | Debug[GSM][Info]: Deep cell search failed | |
4297270078 | 2022/06/14 17:12:41 | Debug[GSM][Info]: CEREG = 0 | |
4297270079 | 2022/06/14 17:12:47 | Debug[GSM][Info]: CEREG = 2 | |
4297270080 | 2022/06/14 17:12:48 | Debug[GSM][Info]: CEREG = 5 | |
4297270081 | 2022/06/14 17:12:48 | Debug[GSM][Warn]: Registered in 136s |
Conclusions
- If roaming is not required, it is best to use a 'home SIM'
- This may come at an increased monthly SIM cost, but far reduced operating costs of fresh batteries and the cost to change them over.
- Set the network profile and limit bands as much as possible
- If we are using a 'roaming SIM' in a single country (for the costs not the roaming) - limit the bands to only those of the network in that country - Setting the Network Profile - LTE-M/NB-IoT devices
- If we are only roaming between a few countries - limit to only those bands
- Once these are limited we can try setting the Registration Strategy to "Low Power" to maximise battery life
- This could result in many upload attempts failing in some cases - so test before rolling out in bulk.