GPRS connection best practice

Looking for advice on best practice around GPRS connecting / disconnecting.

Project is an IoT telemetry device, monitoring battery levels at remote sites. Readings sent every 15 minutes.

Using a GSM module (in this case the SIM800L, but module is unimportant in the context of this question).

When sending data, is it better / more reliable to connect GPRS every time, or open the GPRS connection at startup and leave it open?

There will be plenty of defensive coding to trap conditions where the send fails and reset as necessary, just wondering which approach is more reliable.


do yo have to be power efficient?

(connection can fail, so your code needs to handle reconnection anyway)

Doesn't have to be particularly power efficient (10's of mA either way won't matter).

In my testing the current draw is the same wither connected or disconnected from GPRS (when not sending any data).


I would connect once and use AT+CSQ and/or AT+CREG? to get the RSSI or the network status and reconnect if needed / fail safe if you can't.

the GitHub - adafruit/Adafruit_FONA: Arduino library for the Adafruit FONA offers convenience functions for this

  uint8_t getNetworkStatus(void);
  uint8_t getRSSI(void);


If I needed to be power efficient (another project coming up will need to be), what is the best approach then?


I would find ways to power down the module or put it to sleep and connect only when needed