You may think that this is a simple question, but I have often searched the Internet to find an answer, but I could not find one (only some theoretical numbers) and decided to do a test. Here's the result.

The Story

The Datacake platform has a built-in MQTT broker that allows customers to easily bring their devices to Datacake. But since most of our own customers use cellular as connectivity, we wanted to find out how much data is required when using MQTT over SSL.

For microcontrollers, there is CoAP - a protocol developed specifically for "Constrained Devices", and if you use it in combination with sending over UDP, but still have encryption enabled (over DLTS), you can get by with less than 3 megabytes per month.

The drawback, however, is that a CoAP server is required and implementation on a device can be difficult.

But what happens if you have a SIM card with 500 megabytes prepaid available? Could we exchange CoAP and use MQTT over classic SSL instead? How far would this get us? Month, days or even years?

The result is impressive!

Prepaid IoT SIM Card

As a basis for the connectivity we use a SIM card from the company 1nce. They have a very interesting business model:

For 10€ you get 500 megabytes and 10 years runtime

If data volume or running-time are used up, you can recharge or reactivate them with another 10€.

1NCE | IoT Flat Rate | Connectivity for M2M and IoT applications
1NCE offers the world’s first IoT Flat Rate. Thanks to the 1NCE IoT Flat Rate, you can connect your IoT devices up to 10 years for only 10 Euros covering all neccesary costs.

Benchmarking MQTT

For the test we used the Balena.io balenaFin board and configured it as follows:

Follow this for a guide on how to set up a similar system:

Create a GPS tracking system with cell connectivity and minimal bandwidth
In this tutorial, we’re going to build a GPS tracking system using a balenaFin board, balenaCloud and a Hologram SIM card. This post outlines the steps to create a GPS tracking system, a useful project in its own right, but also a great way to experience a few features rolling

The hardware sent two measured values every five minutes as two separate MQTT messages:

def cb_pm_concentration(pm10, pm25, pm100):
    client.publish("dtck-pub/balena-fin-cellular-demo/0e5d7891-7b73-4377-a7f9-f837a12df327/PM25", pm25)
    
    client.publish("dtck-pub/balena-fin-cellular-demo/0e5d7891-7b73-4377-a7f9-f837a12df327/PM10", pm100)
This resulted in a consumption of 0.8 megabytes per day, which allows us more than 600 days or more than 1,5 years on a single 10€ SIM card.
"date": "2020-06-15",
"data": {
  "volume": "0.796092",
  "volume_tx": "0.420887",
  "volume_rx": "0.375205",
  "cost": "0.7960920000",
  "traffic_type": {
    "description": "Data",
    "unit": "MB",
    "id": 5
  },
SIM card usage statistics queried via the 1nce API

From a monthly perspective, this refers to a monthly fee of about 0.50€. This is awesome.

We currently source our cellular connectivity at 3 megabytes per month for about 3€. Since we charge our customers for the data they use, this would mean a profit increase of 2.50€ per month and per device!

Can we take this even further?

Yes. Let me give you a typical example of one of our clients.

They use our Industrial IoT Gateway to monitor their industrial gas supply stations. Five pressure transmitters, two PT100 temperature sensors and two digital inputs monitor the status of these stations and send measured values every five minutes.

When using CoAP + DTLS over UDP, we currently consume about 3 megabytes per month (including encryption, connectivity handshake, key rotation, etc.).

If we invested in building our own CoAP infrastructure (client libraries + servers) and used these 500 megabytes of prepaid SIM cards from 1nce, we would end up with that:

500 Megabyte / 3 MB per month / 12 months per year = 13+ years!

So your device would run on cellular connectivity for 10 years for a one-time payment of just 10€!

Think about it.

You could still charge your customers 1€ per month for the mobile device (and additional fees for overruns because you virtually limited the volume to 3 Megabyte per day :wink:) and you would still be cheaper than your competitors.

This is a huge business opportunity. Cellular connectivity at no monthly cost.

😎😉

If you want to know more about Datacake:

Datacake | Home
Low-Code IoT Platform with Node-RED and LoRaWAN Device Support

Or register for free:

https://app.datacake.de/signup

And learn how to start with MQTT on Datacake:

https://docs.datacake.de/mqtt/get-started