# Battery lifetime calculation approach for Arduino + GPS/GSM

I want an Arduino Nano to send its GPS coordinates via SMS. I'm going to use the GSM/GPS module SIM908. My problem has to do with how many SMS will I be able to send before the battery dies.

I've done some calculations but I'm not sure if I'm doing something wrong or missing something...

The arduino nano voltage is 5V while the SIM908 Operating Voltage is 3.2V to 4.8V.

Then I've done this timeline trying to be really conservative:

• Turn on: 3 seconds @ 580mA (280mA Arduino + 300mA SIM908).
• GPS data gather: 2 seconds @ 2280mA (280mA Arduino + 2000mA SIM908).
• Data processing: 1 second @ 580mA (280 Ard + 300 SIM).
• SMS Send: 3 seconds @ 2280mA (280mA Ard + 2000 SIM).
• End process + turn off: 1 second @ 580mA.

(I totally made up the durations, I just hope they're upper bounds)

average = (5*580+5*2280)/10 = 1430mA.

That is, the process of transmitting an SMS consumes in average e=1430mA. Then, if I have a battery with a capacity of C=10.000mAh, I could get the battery lifetime as,

    L = C/e = 10000/1430 = 7h.


Since 7h = 25200 seconds and we spend 10 seconds in each gather data - send data process, we could be able to complete the process 2.520 times with a full battery...

Now, some considerations: I know that the voltage is slightly different for the Arduino and the SIM908, and the calculations are assuming their voltage is the same, but anyway my result is an upperbound, right?

This calculations are not taking into account the time interval between executing the process. Actually this will be done automatically once every 12h, so I guess the Arduino should actually be ON all the time and fire an interruption every 12h. I don't know if there's any low-consumption mode for such things... or perhaps there are some other ways to handle this like having really low-consumption specific hardware.

Am I missing some important fact that will drop my battery? The battery is meant to last months with just one charge... the device should just send its coordinates via SMS every 12h (or maybe 8h), and perhaps this long periods of time might cause some other problems.

• Your time to fix for a GPS signal seems very optimistic to me because it seems like you're going to be doing cold starts every time. – scld Feb 25 '16 at 3:57
• It seems like your basic approach is correct. Battery capacity divided by average battery current = battery life. But you are so unsure about all the numbers that I don't see how you can have any confidence in the result. Suggest you do actual measurements of average current ASAP to get a better idea. Any uncertainty about average current contributes directly and proportionately to uncertainty about battery life. – mkeith Feb 25 '16 at 4:12
• The battery capacity is 10 Ah, right? Not 10 mAh? I didn't edit it because I wasn't 100% sure. You might want to clarify that by editing the question. – mkeith Feb 25 '16 at 4:18
• @scld how much time would you guess, based on your experience? and yes, I'm planning on doing cold starts. – Carlos Navarro Astiasarán Feb 25 '16 at 4:30
• What does your power system look like? Could you draw a diagram? Are your power numbers actual measurements? Or are they datasheet numbers? Are these dev boards or modules your using? Does the GPS run off of USB? – Voltage Spike Feb 25 '16 at 7:11

I don't know if its still applicable.

SIM908 board does consume that much average current during normal operation. It includes the current drawn by the total circuit shown in this image.

SIM908 does take a minute or two for getting GPS satellite fix after power on, using a active antenna, Depending on how well exposed the antenna is to the sky. If power saving is the concern then, you should put the module in sleep mode and wake up when needed. The module has the capability to stay in low power mode with average current consumption <1mA. And it can automatically wake up when there is a event like SMS arrived or call arrived. Also there is a catch, We cannot enter the GSM engine to sleep mode unless the GPS engine is powered off.

So, we cant expect to get power saving at a time with faster TTF.

The ideal way would be to use separate GSM/GPS modules like this,

Here I am using the SIM800C GSM and SIM39EA GPS module. This gives me freedom to save power as I can put the individual modules into sleep mode or not. The SMS based tracking of this product is able to run for more than 72 hours on 1100maH Li Ion battery. The device is always on during this time and listening to incoming SMS commands to reply. The TTF of SIM39EA is very good. It is able to acquire GPS signal in less than 30s after waking up from sleep mode.

P.S: I am the author of the blog listed above.

GPS units have a "cold-start-to-fix" time that averages over 1 minute, and you can't really speed that up except by keeping the devkce "on" all the time, due to the way the GPS system works.

This is a complex thing that's far beyond the scope of this question, but it's well explained in the Wikipedia Article.

In short, your receiver has to download a LOT (relative to the transmission speed) of data from the satellites in order to know where each satellite is located, before it can start using relative timings of received signals to start calculating its location.

Also, your circuits will still consume some power, even when "turned off," unless you're physically disconnecting them from the battery supply every time you finish sending a GPS text. You're going to need to figure in the 'standby current' of your devices for any accurate estimation of battery life.