# How can I accurately estimate the power consumption of a GPS tracking device?

I'm building a solar powered GPS tracking device using an Ieik Mini Nano V3.0 Atmega328p Board (based on Arduino Nano), Adafruit Fona GSM module, Ublox GPS module. The GPS module will transmit location data every minute and I want to calculate the battery capacity needed for two days of operation without sunlight. In order to do that I'm trying to get a better picture of the lengths of time the components will be operating at some specified current before I buy the components.

For example the Ublox GPS module's datasheet/manual says that at normal operating conditions, the working current is 40mA max and does not specify a min current. Does this mean the GPS module will draw 40mA 24 hours a day while tracking and transmitting?

The Adafruit Fona claims to draw 20-25mA on "standby", 200mA+ while running, and spikes up to 2A while calling/sending/receiving data. Since it will transmit every minute, it safe to assume it draws 25mA 24 hours a day? or do I have to factor in to 200mA+ somehow?

As for the microcontroller board, the Arduino Uno R3 operates at the same voltage range and has the same max current drawn per I/O pin (40mA) so I am relying on this experiment to perform power consumption calculations. Is it safe to assume that the board draws 40mA (for the GPS module) + 25mA (for the GSM module) 24 hours a day and round up a little?

• Are you able to put a 0.1 ohm resistor between the power supply and the rest of the system, and monitor it with your arduino analog input, to tract current use? The instantaneous current readings can be multiplied by a fixed voltage (assuming it never sags) and you can record/report/log this data during normal operation. Perhaps also try a running average/accumulator of consumed power? Commented Apr 30, 2015 at 16:09
• GSM modules may take a while to come in and out of standby - check this figure for your Fona. Commented Apr 30, 2015 at 16:15
• I don't know your specific requirements, but do you really need to transmit data every minute? I know with tracking via APRS, a 10 minute interval is more than sufficient. If you do need 1 minute position data, would it be possible to store 1 or 2 minutes of data and then transmit less frequently, say every 15 minutes? The Fona might be your biggest power hog and using it less frequently might be more efficient. Commented Aug 10, 2015 at 19:50

This is all fairly rough but based on your numbers and some past experience:

• 40 mA for the GPS receiver is probably a good figure to use for a start, although for most GPS receivers the maximum current is running at the maximum update rate which looks like 5 Hz for that module. You can probably save some power by setting it for a slower update rate even though you might still want the update rate to be higher than the transmission rate to capture maximum speeds for example.

• You'll probably find the GSM module may spend about five seconds in transmit mode per minute or say 12% of it's time at 200 mA which would give an extra 24 mA on average. Maybe round that up and say the GSM module will take 50 mA. GSM modules are always a little trickier because it can also depend on how many retries are required and the transmit power needed to reach the basestation.

• One problem I see is that page you've linked says while running an Arduino Uno the current is 46.5 mA without a load, the I/O current limit 0f 40 mA isn't related to that so you need to add on that current required by the Arduino itself. But the Nano is simpler and after a quick look at the schematic 20 mA would probably be closer the mark.

So I'd estimate as 40 + 50 + 20 = 115 mA but don't forget to take into account any conversion losses if somewhere along the line you're using a switching converter for the power supply. It's probably better for a prototype to add in say a 50% extra margin and then do some actual testing on current draw. If you don't have much in the way of test equipment just using a battery of a fairly known capacity should give you a good idea.

• If the Nano uses the same processor and voltage and frequency as the Uno, they will consume the same amount of current. An ATMEGA328P at 16Mhz and 5V does indeed use about 50mA. Which if you think about it, it's pretty damn bad Commented Apr 30, 2015 at 17:51
• @KyranF If you aggressively use sleep modes, remove the LED and perhaps get rid of the voltage regulator, you might power down the Arduino to the fraction of mA: home-automation-community.com/… Commented Jun 1, 2018 at 16:34