Cellular IoT is hard. Building an end to end application requires in-depth understanding of hardware, firmware, cloud, wireless communication, power management and security to name a few. It’s hard to imagine people having expertise in all of these fields. Unfortunately, the strength of an IoT solution is as good as its weakest link. In order to bring a successful IoT project to life, the whole IoT chain needs to be understood.
In this article, 5 valuable lessons are shared which are gained through painful mistakes.
Novel developments enable IoT devices to enter a deep sleep state while keeping the session with the network operator alive. In order to transmit data, the device simply needs to wake up to initiate the communication instead of going through a complicated process to reconnect to a cell tower. These low power modes are known as Power Save Mode (PSM) and extended Discontinued Reception (eDRX).
Unfortunately, this doesn’t always work as expected. When mobile operators detect little to no activity they may close the connection with the device to free up resources in their cell towers. This is referred to as “purging” and can happen after several weeks of inactivity, but it may already occur within 1 day.
Keep in mind when developing your IoT firmware that devices can get purged by mobile operators. When this occurs, a reconnection process is required to establish a new session with a mobile operator.
Cellular IoT devices may reconnect to a network operator around six times per hour (source: AT&T). When reconnecting more often, your mobile operator may not allow you to access their network.
When conducting tests which require the device to reconnect frequently, you may need to switch network providers to enable more reconnections, or simply be patient. When applications require frequent transmissions, the connection with the cell towers needs to stay open. To reduce power, devices can be put in low power modes like eDRX or PSM to reduce battery drain.
To better address the needs for battery-powered IoT devices, the novel cellular technologies NB-IoT and LTE-M hit the market. These new technologies support lower power modes to extend the battery life. However, using a low power wireless technology doesn't change the fact that sending or receiving data consumes lots of energy. Don’t expect a device to run on its batteries for months when sending data every few minutes.
Transmitting or receiving data using LTE-M technology consumes roughly 100 to 360mA (sources: Quectel, Nordic and u-blox). The key lesson to reduce battery consumption is to reduce the frequency of transmissions and receptions and put your devices to deep sleep for as long as possible. To realize a battery lifetime of multiple years, reduce the daily transmission to a few times per day. Between transmission, put your device to deep sleep mode or turn the radio off completely.
IoT is not about monitoring data, it’s about triggering actions based on data. When building your application, make sure to directly close the loop by realizing an actuation based on the data you send. Examples are triggering webhooks, sending notifications by email or SMS, or transmitting a message to the cellular device with instructions to activate or deactivate certain processes.
There are many IoT platforms which enable triggers to be initiated based on incoming data. Unless you are an Azure or AWS expert, don’t start with these advanced platforms. Instead, use a platform which is easy to set up, allows for quick visualizations and rules to initiate triggers using little to no code. Some of my personal favorites include Akenza, Datacake, Qubitro, Ubidots and AV Systems.
There are many IoT communities and discussion forums out there aimed at connecting people and sharing experiences and expertise. At Monogoto, we recently launched a Community Forum to support cellular IoT developers in their daily work. The Forum is used to bring knowledge and experience together.
We invite you to join the Monogoto Forum and share your key lesson to support others in their cellular journey.