Data Usage Information of the Arduino SIM

Hi all,

Some days ago I purchased a few Arduino MKR GSM 1400 together with some Arduino SIM cards, in order to use them for a university project. So far, I have managed to connect one of them - as a test version - with the IoT cloud and Google Spreadsheets through a webhook, which is really convenient.

However, one of the issues I am facing in this project is the optimisation of the data usage of the SIM connection, as they are limited to 5MB per month. The project idea is to collect data samples from 4-5 sensors every 15 min, and then send this data as a hexadecimal string to the cloud. However, even the message is being compressed as a hexadecimal code, I guess that there is a lot more data being sent by the connection itself. Maybe I could send messages i.e. every hour with data taken every 15 min all together in one string, but I’m not sure if it’s better… Do you know if it could be possible to see the data usage per message? Or if there is a optimal message size or sending frequency?

So far the only information that I see it’s the overall data consumption of the SIM, but it is not being very useful as it only has one decimal and I can’t really tell how much of it is being used per message. Attached you can find the picture of what I refer to, in the device manager.

Thanks in advance for the help!

SIM data usage.JPG

Hi mbatala, hi all,

I have more or less the same question, but also some experience to share.

For testing purposes I have set up a small project using the MKR GSM 1400 with the Arduino SIM. A DHT22 sensor measures the temperature every 30 seconds. I put the ArduinoCloud.update function in the same loop and therefore the maximum update frequency should be maximum 2 /min. The update limits for the temperature which I have defined in the properties are +/- 0.1 degrees. Since the temperature measurements are very stable I would not expect a deviation of >= 0.1 degrees every 30 sec.

With his setup I have experienced a data consumption of ~0.7 MB in 12 h which translates into ~500 bytes per update, if the update would take place every 30 sec. Is this an expected value? If the update is really only done every time the 0.1 degree limit is exceeded the data per update would be even much higher.

It tried to find in the related header files which data is really sent with a single ArduinoCloud.update(); but got lost there.

So still the question is: How much data is really send to the Arduino IoT cloud? Some information about this would be really helpful if not essential to plan projects.