Battery powered GSM / Cellular Shield?

Hi folks, I like to collect some data from a bunch of sensors over a day. Once a day I want to sent this data via GSM to cosm.com or an other website. This should be a long term project over some month. There is no power nearby so I relay on batteries.

Have you any recommendation for GSM boards that (1) can be powered by battery, some manufacturer say explicitly on ebay you need a power supply because of peaks up to 2A if the shield is running (2) are there special shields / GSM modules who are extra power saving or that I can complete disable--I only need the GSM 1-2 minutes per day

There is a great page about saving power for the Arduino http://www.gammon.com.au/forum/?id=11497 Is there any comparable for GSM modules?

It is interesting that they do not recommend "normal" Arduino bards for power critical applications:

The initial outcome is that, to save power, forget about using a development board. Further savings (like reducing clock speed) would be overshadowed by the huge overhead of the voltage regulator and USB interface chip.

So I think this can be the same issue for GSM modules. I see on many boards voltage regulator and additional stuff so I doubt if it is a good idea to drive such modules by battery?

Have you any recommendation for GSM boards that (1) can be powered by battery

Any GSM shield can be powered by batteries. As long as they are big enough. Getting 2A out of small batteries isn't likely.

(2) are there special shields / GSM modules who are extra power saving or that I can complete disable--I only need the GSM 1-2 minutes per day

When you do, though, you need the full 2A capability. The shield only sucks that much current in transmit mode.

PaulS: Any GSM shield can be powered by batteries. As long as they are big enough. Getting 2A out of small batteries isn't likely.

Yes that's true of course! ;-) So let me specify it. What battery do I need, if will run the GSM module once a day and this for six month: 2 minutes x 30 days x 6 month: means 6 days permanent on.

I think this http://www.ebay.de/itm/SIM900-GSM-GPRS-Shield-module-development-board-IComSat-kit-for-Arduino-/150872501603 is not the way to go:

Current Consumption(pulse) 2000 mA Current Consumption(Continues) 500 mA

The problem is all data is in the "max" collumn, not data in "Type". So I do not know if this values are overrate the real consumption.

5V @ 500 mA means 2.5W So I would reach about 3.6h permanent on or for a 2Ah battery--for my application--about 100 days

PaulS: When you do, though, you need the full 2A capability. The shield only sucks that much current in transmit mode.

Yes and I have reservations that this peak corrupts my calculation. Also I do not know what this peak for a Battery means. Is for 2A max. a 3Ah battery sufficient or must it be more or is there an other parameter beside the "Ah" to respect.

Has anyone a project for a longer time (more than a week) with a battery powered GSM shields running and can share some experiences?

I recently bought this GSM adapter:

http://www.ebay.co.uk/itm/130822162881?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

I am also trying to conserve power, but have a different use-case as I need to listen for commands from SMS messages. Which means I am likely to have to periodically wake up and check for SMS messages and then go back to sleep again.

Last night I was trying to get a feel for power consumption of the board. It needs its own 12v supply in order to run it's large onboard voltage regulator 4v I think. I think they just say 12v to be safe, but I think you'd get away with anything above about 6v provided it could supply enough current. I am working in a 12v environment (12v lead acid batteries and solar panels) so 12v is fine for my case.

I'm using a Xino Basic board, which is pretty bare bones. It has its own 5v and 3.3v regulators installed on it.

I was using a simple digital multimeter to read the current usage. Not that accurate or fast, but enough to give some kind of idea.

When the board powers up it seems to use around 1A for a short while, then settles down to running at about 70mA. That is the GSM shield and the Xino Basic together, fed via a 12v supply (with the Xino's 5v regulator feeding the Xino, and the GSM regulator feeding the GSM board), and connected to the GSM network (ie. listening). That was surprisingly low, I was expecting it to be much higher. I think I measured the Xino Basic on its own at using about 30mA. That is with no power saving techniques, the 5v and 3.3v onboard regulators running and the power LED on.

When an incoming SMS message arrives the current jumps up to around 150mA - 200mA briefly, then goes back down to 70mA. I couldn't get it to send an SMS last night for some reason (it was working previously). I think I may have run out of credit and need to top the account up.

I am thinking about switching the Vin to the GSM shield via a MOSFET on the Xino, so that I can power it up and down via software. I just need to make sure that the power saved whilst off isn't negated by the extra power required at the start to find and join the GSM network every time I wake up.

I have attempted to switch the GMS radios on and off via AT commands, but that didn't seem to do anything (the GSM network led still blinked as though it was connected to the GSM network).

-Matt

Thanks for the numbers! 70 mA sounds ok when you're using the GSM part-time only. I wonder why GSM shields need an additional MOSFET to switch the power on or off. Perhaps I'm wrong but I would expect that many will use GSM in a battery powered setting, so power saving or switch off should be a main property. But it seems that I'm wrong. ;-)

I found some inconsistent information about the current consume of the new Arduino GSM shield http://store.arduino.cc/eu/index.php?main_page=product_info&cPath=11_5&products_id=244

And for me even more interesting: Is there a power saving mode or can I deactivate / switch off / disconnect power the whole device via software commands or is this only doable via an external hardware switch (MOSFET, Relay, …)

On the product page http://arduino.cc/en/Main/ArduinoGSMShield you can read

It is recommended that the board be powered with an external power supply that can provide between 700mA and 1000mA. Powering an Arduino and the GSM shield from a USB connection is not recommended, as USB cannot provide the required current for when the modem is in heavy use.

The modem can pull up to 2A of current at peak usage, which can occur during data transmission. This current is provided through the large orange capacitor on the board’s surface.

But in a blog post http://blog.bluevia.com/2013/03/11/meet-the-new-arduino-gsm-shield/ is much less current mentioned:

Peak current < 400mA

A tutorial shows also powering the shield via USB, no extra or external power!

As I can tell from the schematic of the new official GSM shield, it should be able to get down to ~1mA if the M10 module is powered down, which should be possible by pulsing pin D7 from the Arduino board.

--- This is my interpretation of the schematic and the currents in an off state --- 5mA LED - indicates power and always on. Can be removed with a soldering iron. 1mA - LMZ12002TZ, has something called Iq, non switching current. I have no idea what this is as I have not yet got my GSM board, but I think this is unavoidable as the EN signal is tied to +5V.

A_TX should be turned low from the Arduino or it might power the 2.8 volts input with 3.3 volts. ( Is this an error in the schematic? )

If the module is to accept incoming calls it can not be turned off completely, but Quectel claims to be able to do some RX9 mode which just draws an addition 0.7mA. So in total the GSM shield should be able to receive incoming calls/sms with ~2mA of power consumption.

I'm currently trying to do a battery powered re-design by combining an UNO with this shield on a single board, just to do long term battery. It will require some pins on the ATMega328 to turn off some regulators, but should be able to do ~1 year on a primary lithium D-cell (17Ah) with sensor uploads every second hour. If you have solar panels and Quectel tells me how to do charging it could last forever (or until the Li-ion battery dies of charging cycles ;-) Send me a PM if you are interested in this. I will need some beta-testers if I'm able to make it real ;-) If you have any ideas, please post in the thread I created before Clemens pointed me to this discussion... arduino.cc/forum/index.php?topic=154763

Yes, there is an error in the schematic of the GSM Shield on the A_TX. You can find more info here: http://forum.arduino.cc/index.php?topic=158811.0 and the way to fix it is to add digitalWrite(3,LOW); after the gsm.shutdown().

I just noticed that you (AndersHedberg) are the author of the other thread and you resolved the issue on the schematic :-).

If you are only going to send data, you can power down the GSM-module between sendings. The SIM900 have a power down mode where it only draws a cuple of mA. However the voltage regulators that is typical used on the GSM/GPRS-Shields have a no-load current-consumption of 10 - 20 mA. Fortunately these regulators normaly also have a shutdown mode, that with a small hack can be used to turn the shield completly off.

If you have a high supply voltage, you might want to trow away the linar regulator and go with a switching one. For my beehive monitor project i made my own GPRS-module, with the SIM900BE and a switch-mode powersupply.

LEGO-lars, if it is not an issue for you, would you mind sharing the schematic? I was thinking to build my own GSM shield to better control power consumption, but my hardware design is a bit rusty. Also, do you have any suggestion for the types of voltage regulators with shutdown mode and what the hack to activate this is?

Thanks.

Sure :)

Almost every voltage regulators in a 5 pin package got a shutdown pin, which needs to be pulled high or low to turn on the regulator. just read in the datasheet. If you are using those cheap ebay powersupplies based on the LM2596, you just need to desolder the ON/OFF pin and connect it to a circuit like the one in the button on my schematic in order to control it with a arduino pin :)

Thank you for sharing LEGO-lars.

So if I understand correctly the idea would be to shutdown completely the GSM modem when you are not sending, by shutting down the voltage regulator and therefore providing 0V to the GSM chip. Then when you want to transmit you reactivate the voltage regulator and therefore proving voltage to the GSM chip, reconnecting to the network, transmit and shutdown again.

Quick other question: if you use batteries is a voltage regulator necessary? (of course making sure that it is not a 9V battery when you need to supply a 5V circuit…). If it is not necessary would there be another way to shutdown the GSM chip (e.g. connecting VBAT to an arduino output PIN)?

Hi the shutdown of the voltage regulator is only to prevent the regulator itself from wasting power. Linear regulators usually have a quiescent current of 10-20mA. This current will be saved by shutting down the regulator. The GSM-module itself can easily be switched off with AT-commands or the PWR_KEY pin.

Regarding your question The power supply range of the sim900 is from 3.2V to 4.8V. So a single cell lipo battery would probobly be the best way to power the module directly. You would still be able to power down the module using AT-commands, so this is probobly the most power-efficient approach.

OK, then I believe that the GSM library for the arduino GSM shield (this is what I am using) uses gsm.shutdown() to trigger the power down of the GSM modem. So after some measurements on an Arduino UNO (standard shield, no modifications) + the Arduino GSM shield, the GSM shield after a modem shutdown uses ~10mA extra that come from additional components:

  • ~ 2mA from the "ON" LED
  • the rest (~8mA) must come from the voltage regulator (based on my measurements there are no other circuits that dissipate power)

So, the Arduino GSM Shield uses the LMZ12002 regulator (http://www.ti.com/lit/ds/symlink/lmz12002.pdf) that has an "Enable" PIN (PIN 3) that on Arduino is put to +5V constant.

Questions are:

  • Can this "Enable" PIN be used to shut off/on the voltage regulator? (not 100% clear from the datasheet)
  • If yes, is there a [u]safe[/u] way that I can connect this PIN to an Arduino PIN so that I can control it via Software? (i.e. a similar hack as suggested by LEGO-lars)
  • If yes, is it as simple as removing the connection to the +5V and re-connecting this PIN to an Arduino output PIN? Or do I need resistors, capacitors, etc. in the middle? (The data sheet mentions 2 resistors, but unclear for which scope/use)

If this can be done then using the Arduino power saving techniques + shutting down the GSM Modem + shutting down the voltage regulator + removing the ON LED, and turning back on the GSM Modem + Voltage regulator when needed, should lower the power consumption to the uA range(?). Any flaw in this? (other than the GSM connection can be used only when powered on...).

From my understanding of the datasheet it looks like you can turn off the regulator by driving the EN-pin low directly from an arduino pin. However, I am not familiar with the arduino GSM-shield or the Quectel, and I don't know how the rest of the circuitry wold react if you switch of the regulator.

Looking at the schematics for the GSM-shield, it looks like it got some sort of auto power-selector on it. This may draw a couple of mA regardless of the state of the voltage regulator.

mfoobar: I recently bought this GSM adapter:

http://www.ebay.co.uk/itm/130822162881?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

I am also trying to conserve power, but have a different use-case as I need to listen for commands from SMS messages. Which means I am likely to have to periodically wake up and check for SMS messages and then go back to sleep again.

Last night I was trying to get a feel for power consumption of the board. It needs its own 12v supply in order to run it's large onboard voltage regulator 4v I think. I think they just say 12v to be safe, but I think you'd get away with anything above about 6v provided it could supply enough current. I am working in a 12v environment (12v lead acid batteries and solar panels) so 12v is fine for my case.

I'm using a Xino Basic board, which is pretty bare bones. It has its own 5v and 3.3v regulators installed on it.

I was using a simple digital multimeter to read the current usage. Not that accurate or fast, but enough to give some kind of idea.

When the board powers up it seems to use around 1A for a short while, then settles down to running at about 70mA. That is the GSM shield and the Xino Basic together, fed via a 12v supply (with the Xino's 5v regulator feeding the Xino, and the GSM regulator feeding the GSM board), and connected to the GSM network (ie. listening). That was surprisingly low, I was expecting it to be much higher. I think I measured the Xino Basic on its own at using about 30mA. That is with no power saving techniques, the 5v and 3.3v onboard regulators running and the power LED on.

When an incoming SMS message arrives the current jumps up to around 150mA - 200mA briefly, then goes back down to 70mA. I couldn't get it to send an SMS last night for some reason (it was working previously). I think I may have run out of credit and need to top the account up.

I am thinking about switching the Vin to the GSM shield via a MOSFET on the Xino, so that I can power it up and down via software. I just need to make sure that the power saved whilst off isn't negated by the extra power required at the start to find and join the GSM network every time I wake up.

I have attempted to switch the GMS radios on and off via AT commands, but that didn't seem to do anything (the GSM network led still blinked as though it was connected to the GSM network).

-Matt

Would you mind telling me how you measures the power usages? I want to build a similar project and have an Arduino MEGA 2560 + Itead's IComsat SIM900 GSM/GPRS Shield, V1.1. Currently the only way I could even power up the Arduino + shield is with a 9V, 1300mA transformer - which is obviously way too much if I want to run it on battery power for a long time (2 / 3 weeks).

which is obviously way too much if I want to run it on battery power for a long time (2 / 3 weeks).

Not a problem. You'll just need a really big battery. Say about the size of a small house.

Did anyone get to the bottom of this? Butyouyes, you were describing exactly what I was finding out regarding shutting down the power module directly. It does look like I can link pin 3 of the module to one of the outputs from the Arduino which we can simply control high or low to enable the power module. This would be much cleaner that just through using software as no current would flow.

Did you get around to trying this? Want to be sure before I break out the soldering iron to desolder pin 3.