Energy -the holy grail of IoT

Battery and energy consumption is central to IoT. It does not have to, we will talk about that later, but almost always comes up in discussions. Battery-driven sensors are what many think of first when it comes to IoT. Sensors with tens of years of battery life, all running on a primary cell, or in other words, disposable batteries.

The battery life is so central in IoT, that I have been joking for years about the number of sensors that needs new batteries ten years from now. I even suggested Battery replacement manager as a new work role, taking responsibility for the sensors out there.

With numerous IoT devices being deployed, batteries sooner or later have to be replaced. I do strongly feel that disposable batteries are not good for the environment, and in IoT, we tend to use a lot of them. As I was recording a video about this, I noticed a poll on LinkedIn by Alex Nanzer. The poll was about four important things an IoT device should provide, and you could only pick one. So the four things to pick from were

  1. Energy.
  2. Connectivity.
  3. Security.
  4. Reliability.

This caught my eye as the first one was energy. So which one to pick, if we leave the energy question for a minute? I just could not find a universal answer as I meet different requirements in different use-cases. But the creator of the poll is right, these four are the core issues to solve, and each customer prioritizes different things. The ideal answer would be to say all matters, the real answer is that it is depending on use-cases.

However, for me the answer was easy. Even though I started the post as I did, it was not Energy, it was Reliability. Ok, so that was not the most important thing according to the responses from the other ones answering the poll. Almost 50% responded that energy was the most important. From my standpoint reliability is most important. Without reliability, the other ones don’t matter. Without reliability, the batteries run out due to retransmissions. So let me address that first.

Energy and IoT -are always in the same discussions

Energy is important in some applications, like AMR, automated meter reading of water, and electricity. In these situations, you normally have to guarantee that your device will run 10+ years on a battery. But energy consumption also happens to be the holy grail of IoT for a lot of people in the IoT market. It is an easy USP -our device will run 10 years on a battery. No one will question if it is needed or if it is realistic. But it is the IoT metric any solution must benchmark against. When you compare LoRaWAN with NB-IoT the battery life is what is always the big debate. My feeling is that battery life in many cases is something that is not a need, it is just something the customer has heard for years, that IoT will provide. In a lot of cases you find out that every 1-2 years, the customer will visit the site anyways for mandatory inspections. The thing is that long battery life means disposable batteries. You throw them away after usage. You impact the environment. So for the customers that regularly visit a site, a rechargeable battery has a better impact on the environment.

Another thing with battery life, that we seldom talk about is that it is not a hardware thing, most of the battery life can be affected by smart filtering of data in the device, by smart storing of data locally, and uploading occasionally.

Proving our point

I am not often blogging about my daily grind, but in the sensor, I have developed with our team, the device can store data locally, it can decide whether to upload or not based on the reading, and it can just disregard a reading if it is within a safe zone, like with temperatures.

So I feel that energy consumption is something that should be flexible within a device to control, depending on the use case. I.e. I think this is a standard feature of any smart IoT device.

IoT-testIn the case of our sensor, I have been measuring temperature regularly in a test environment. We measure every hour and upload once per day. The idea is to see if a solar-powered sensor and a rechargeable battery can be a good combo, still having a small size. As you can see the box is not that well designed, it is a 5V solar panel just taped to a water-resistant box. It is far from a production unit but proves our point.

After half a year, the battery voltage is at the point we started.

You can see that it dipped down the first months:battery level

But as we use a LiPo battery, that cell can not be charged below 0°C. So we have an intelligent charger that cuts the charging at that temperature. So if I overlay the temperature, you see why the voltage is dropping in the beginning (of course Stockholm in December only has about 6 hours of sun as well, to add to the complexity).
battery-level temp

The conclusion, well you can run a sensor for a long time, with a small solar panel and get great performance. So let us look at the other three points.


As with battery life, connectivity is very much a software drill. I work a lot with cellular networks, and LTE CAT-M1 is very much available here in Sweden. So if a network is available the device should be able to do its best to get connected and to stay connected, and when it can not get connected, it should not try indefinitely to re-attach. Many of the poorly designed devices out there do not have this under control. Believe me, there are quite a lot of things you can do right and wrong. But again, these are standard things, if working with the cellular networks at least. For the LoRaWAN networks, I have not been involved in hardware design, so I can not share my ideas on standard mechanisms to keep the connection happy.


IoT security deserves a blog post of its own. It spans from deploying devices with insecure default settings to devices that are a part of an insecure ecosystem. Devices that report to some platform sending your data to god knows where, with poor privacy protection. Devices that lack secure update mechanisms, and devices that lack device management. It is a very complex area, ranging from the integrity of the software in the device to the ecosystem it uses. But at the same time, IoT devices have been around for some time now, so this should be a standard function in any IoT device. Ask your vendor, and they will tell you what they have done to protect you, your data, and your device. If not, ask someone else.


My experience is that reliability comes first, I have through the years seen hundreds and hundreds of thousands of devices deployed. Reliable for me means that you have a device with mechanisms to keep it attached to the network. It also means having watchdogs to handle errors in the device. In the case of the sensor, we have developed ourselves we have a software watchdog that monitors hardware functions and controls quite a lot of the edge decision-making to perform tasks if something is not working. This is based on our design in micropython. In other designs, I have also seen a second processor that only acts as a watchdog.

Lacking this can lead to battery degradation (devices try to attach, repeated reboots because of software or hardware, or the device gets stuck because of bad firmware). So if these things are not in place in the device, battery life will not matter.

Bottom line is that a reliable device handles security and connectivity. It normally has a smart way to cope with energy and is at a level where the design is reliable.