How many batteries for a remote gsm shield

I'm trying to get a rough idea of the number of batteries I need to run my arduino uno and tinysine gsm shield.

I've set it up today (powered by 1 x 9v battery) with it reading sensor data.... The SIM power light has gone out already! And it won't send texts!

It was probably running for 7 hours in total and sent about 20 texts.

I googled it just now and I think a 9v battery roughly holds 520 watt hours?

Anyone know what kind of battery I would need that would last at least a week preferably a month.


A lead acid automobile battery might last several weeks. It depends mostly on how often and how long you transmit.

Yes I think led acid battery is the way to go.

Does anyone know should I go for a 6v or a 12v lead acid battery?

A standard 9volt battery is about 200-500mAH, so it holds less than 5watts of power.

To calculate things, you need to know the current draw of your setup. That could be constant, or with peaks. Once you know the avarage current draw, you can size up your battery.

Example: Arduino UNO and a shield use 200mA. You want it to work for two weeks (336hours). 336x200=67200mAh, or 67.2Ah.

You need the full charge of a big truck battery for that. A 9volt battery, if it could handle the current, would be flat in 1-2hours. Leo..

A 6volt battery is problematic. That's 5.5volt when flat. Not enough for the onboard regulator to make 5volts. Unless you run things on 3.3volts.

Better to use a 12volt battery and a (Pololu) buck converter to make 5volts directly. Adding a buck converter could extend battery life by 40%. Leo..

Ill check out that buck converter. Thanks. I might get a 12v battery and swap it around with my gate motor one which gets charged of mains.

Does anyone else have any experience of using a gsm application in remote locations?

Also is it better to put the power through the jack rather than the 5v & ground pin?

The 5volt pin or the USB jack can be used to directly inject 5volts into the Arduino. e.g. from a 5volt buck regulator.

The DC jack is pre onboard 5volt regulator, and needs between 7.5volt and ~12volt.

The Vin is also pre onboard regulator, but after a polarity protection diode. Works properly from ~6.5-7volt. Not all Arduinos supplies are the same...

Bottom line. If you are going to use a 12volt battery, and are not concerned about battery life, use the DC jack. Keep an eye on the temp of the onboard regulator. Better battery life with a 5volt buck converter. Best battery life if you can replace the onboard regulator with a Pololu buck converter (SMD soldering skills needed). Leo..

I have an "UNO on a breadboard" running at 8MHz with internal clock and powered directly from a smartphone battery with 2600mAh battery that I got from my last phone.

I have the arduino sleeping for 1 hour and then it connects the GSM and after 1 minute it sends a text with the values of a coupe of sensors and goes back to sleep.

The GSM is the cheapest one I could find on eBay that was breadboard compatible. It costs 11€ or close.

The UNO would send a text warning on low battery at 2,75v but I replace the battery with a charged one every week and it never goes down to that voltage.

The secret is putting the arduino to sleep. It has a consumption under 50uAh that is close to nothing.

Please stop considering powering a gsm phone with a car battery as it is so weird... :o

Please stop considering powering a gsm phone with a car battery as it is so weird..

The OP needs a battery that meets the project requirements, rather than your idea of what is "cool".

Hey, sorry for giving my opinion on my own system that meets the requirement with a small, cheap and lightweight battery...

If you want to go for a car battery, please do so.

By the way, a diesel generator will also work...

Hey, sorry for giving my opinion on my own system that meets the requirement with a small, cheap and lightweight battery...

Is that the phone battery? How long does it last in service? What is its output voltage?


Yes, I'm using a 2600mAh phone battery to power my project.

I'm not running a real arduino as it waists a huge amount of power, and so I run an atmega chip (3€) and followed this instructions to have a minimal arduino that runs at 8MHz with the internal clock: Arduino To BreadBoard

I have the arduino (or atmega) sleeping for aprox. 1 hour and then, I power the GSM module and sensors. I read my sensors (Temperature, Humidity, Light, Distance) and I check the arduino battery and send an sms with the info and then it goes back to sleep again for 1 hour.

On sleep it runs under 50uA and when awake it runs under 200mA. When I started I calculated close to 2 weeks of run time and close to 1 month if I wait only 20 seconds for the GSM to register on the network but it would occasionally fail.

I power the arduino and the GSM directly from the battery and the voltage ranges from 4.2V (full charged) to 2.75v (full discharged). But I never reached 2.75v as I always replace the battery on the weekend. All sensors are powered from the same battery through a 5v boost converter (some tiny device that raises the battery voltage to around 5V) but this runs for less than 1 second.

The GSM module (12€) I'm running is this:

Anyway, to be on the safe side and to run this for 1 month, if it was up to me I would just test the project with 1 battery, and then I would parallel 2 or 3 more batteries as needed. They cost less than 4€. Maybe upgrading to 18650 batteries would be a good idea, but watch out for fakes!

All my components were the cheapest I could find on eBay. An exception on 18650 batteries as there are a lot of fakes. Real and good ones are 2600mAh (max) and cost around 5€ (min).


Just an update on the battery duration...

Since last post I decided not to replace the battery to test the system to the limit. 4 hours ago the messages stopped. As I has replaced battery on August 29, this means that my project runs for a little over 14 days with one 4€ cheap 2600mAh battery that is 2 years old.

Good news for those who plan on using car batteries as they should hang on for almost 2 years :)

Hi dreasi0n, I'm working on a similar project with more frequent connectivity and a solar panel. Did you try sending data instead of an sms? I'm trying to work out the trade off between sending an sms (higher monthly dollar cost) vs data (high power requirement and hence bigger solar panel/battery capacity)


Unfortunately I have no idea on how to send data.

This all started as an alarm system that would send me sms messages to the phone and that was all I've done (and a few calls).

The SIM card I have has a plan with 5000 free sms per month as long as I make a paid phone call every 3 months.

You could try to use the solar panel to recharge the batteries, correct? It would make things easier..

If this is a permanent installation outside consider a Solar panel and smaller battery, but the crucial information is how much current YOUR installation requires per hour/day/week. once that figure is known then a battery solution can be considered, this will need to also consider how you recharge the batteries, site location, ambient temperature etc.

Yeah the plan would be to use the solar panels to charge batteries. At the moment I have the arduino and shield hooked up to a small solar power pack. It works reasonably well for the tests I've done with an arduino uno and the tinysine gsm shield. Both of these have too many extra features for what I require but are enough to test my preliminary code. I've started making a bareduino and I actually have the same gsm shield you had dreasi0n, but I stopped using it when I had trouble getting it to work. I recently found a library to use with that module so it's not a problem now but I still cant get it to transmit data. I just need some time to sit down and figure out whats going on there, I suspect it's a power problem and just need to hook up 8AA batteries through the arduino power jack plus the USB.

I've noticed the lights on my gsm shield stay on and continue to blink after gsm shutdown is initiated. Is that normal or my shield still on?

To be honest I didn't explore the gsm shield that much.

It is still sending the messages every hour as needed and the code is the one from the examples with my phone number and custom message with sensors values.

And on my project I turn it on and off using a relay as I had problems powering it from arduino. The shiels draws some current spikes instantaneously and if powered from arduino it resets and does not behave correctly.

According to a friend that owns a 500€ multimeter, the gsm shield reaches over 1A on network registration. At least this is what he told me after some tests with the dmm. And after adding the relay I have no more problems.

And there is a blinking light that goes on and off every 3 seconds or so, and also a fixed one for power (not sure about this one). But I'm not even aware of what is that 'gsm shutdown'...

gsm shutdown apparently turns the gsm modem off - I haven't used my multimeter to check if it still draws current but the lights still flash as though its connecting which isn't a good start.

I might have to follow you in the relay circuit to run the gsm module because it does simply power off when trying to connect sometimes which I assume is power related. If you used any literature to get your gsm relay set up that'd save me a bit of time and be much appreciated!

For people in Australia, have any of you used an Australian company to receive texts and log the data? I have everything set up on IFTTT but you need to send the texts to a US number which is considerably more expensive than a national number.


For the relay there is not much to know. I've got a relay on a board from eBay (about 1 USD) and power it from arduino 5v. Then, one pin from arduino connects to the signal pin on the relay board and when it's HIGH the relay turns on and power (directly from the battery) flows to the gsm shield. After you are done just set the control pin on arduino LOW and the relay turns off...

One side of the relay is all arduino (5v, gnd, control) and the other side works as a switch that turns on and off depending oh the control pin from arduino.