Design Ideas for energy efficient IOT wireless nodes
Rahul Yadav
IOT System Architect | Product & Platform Strategy | Leadership | Wireless Connectivity | Security | Bluetooth Mesh | Smart Phones
Introduction?
IOT nodes are ubiquitous and many of them are running on battery. Be it a sensor node, a portable light, or a wearable device, it is important to have longer battery life while keeping the device small and portable.?
A typical IOT system has 3 major components – end nodes, controllers, and cloud. The Controllers are mobile Apps, web portals. Cloud is to host cloud applications, services, ensure always and from anywhere connectivity, security, and analytics to name few of the services. End nodes are the foot soldiers of the IOT systems and tasked with the ‘dirty’ work of collecting data and actuating the commands sent from the controller devices or the cloud. The end nodes are part of various kinds of devices (many a times battery operated), typically have low power and computational capacity.?
Other than the end nodes, few controllers such as remotes and sensors could also be battery based and utilizing wireless communication technologies such as plain RF, Bluetooth, Zigbee or Wi-Fi etc.?
These MCUs and wireless SOCs come with various sleep modes like light sleep, deep sleep etc. In most cases a reference documentation is available. Therefore, here we’ll talk more about some additional ways to design low power wireless nodes and increase the battery life of the end products. The article gives a detailed list of available options but not limited to any one wireless technology. These techniques could be adopted to develop any custom protocols as well. The article refers to any existing IEEE standards such as IEEE 802.11 (Wi-Fi), BLE etc. to explain specific available features. Though, it talks more from the end node’s perspective but not limiting its applicability to other kinds of applications.??
Major factors causing the energy consumption
Main causes of the power consumption in the devices are 1. radio communication, 2. processing power. Wireless SOCs and standards are generic which are built by keeping several applications in mind. But several of these features are configurable to suit respective applications.?
Radio communication could be reduced by available techniques and suitable configuration of the protocol layers in a manner that reduces need of the communication itself. We will see if we can reduce the power consumption per transaction with some trade off.?
On the processing side, power consumption is proportional to the CPU frequency. Therefore, we will see if we can tweak the CPU frequency for certain applications to have a low power solution with trade-off for latency. For some simple applications, it can certainly be possible. There are wake locks used by processors which block CPU from going to power saving modes. A developer can disable these wake locks to get some mileage on this front as well.?
On the radio environment side, interference, and flooding of the network due to other transmitting devices is a cause of radio retransmissions and hence cause of excessive power consumption. DFS (Dynamic frequency selection) is a mechanism to select the less congested frequency channel of communication. A node can utilize this to reduce radio retransmissions and save power. Typically, in Wi-Fi networks, operating frequency channel is defined by access points. In Zigbee, PAN coordinator selects the channel while Bluetooth implements frequency hopping, so this may not apply to Bluetooth technology. Consider this for any battery based wireless hotspots, repeater nodes or ad-hoc networks.?
Communication Protocol Optimization?
Reduce TX packets - Optimize ACK.?
Optimize Software?
Avoid Segmentation and Reassembly?
Use connectionless communication?
Reduce channel width?
Optimize scan mechanism and interval?
Advertisement interval, connection interval and slave latency??
Let’s take an example of Bluetooth Low Energy to explain these parameters. Advertisement interval, connection interval and slave latency are 3 critical parameters that could be tuned to optimize the power consumption with some trade off in Bluetooth low energy (BLE) devices. Here is a brief description of each,?
领英推荐
For example, consider the scenario of a TV and the remote. Connection interval could be smaller so TV can wake up every connection event to maintain the connection but remote could sleep longer by skipping connection events using slave latency feature. But since the connection interval is small, remote can send command instantly on the button press. TV anyway is not going to initiate communication so a remote can afford to be sleeping for longer duration (several connection events) utilizing the higher slave latency.?
Adaptive TX Power Control (TPC)?
Transmitting at lower power reduces the collision in the network (due to reduced range) as well as the power consumption at the source of transmitting packets. We can define a simple algorithm based on 802.11h that defines using transmit power control to minimize the interference. IEEE 802.11h defines controlling the transmission power statically, however we can define a simple feedback-based algorithm like how some of the systems such as Cisco CCX based clients & servers use. Here is a simple implementation of such an algorithm –??
Example of a TX power negotiation algorithm for Star Network scenario?
2. Reduce power by 1db, repeat step 1.
3. Further reduce, continue to repeat step 1-2 until all ACKs (from each device) are not received.
4. Confirm (lets’ say 3 times) by repeating step 3 with increased power and ensure all ACKs are received (total number of ACKs to be same as noted in step 1).?
5. Set this as the final power.?
6. If during the negotiation, a node loses power then observation may be abnormal, therefore go back to step 1.??
Consider the example of a sensor node in a Bluetooth mesh network. The sensor node can follow above algorithm to know the required TX power needed to communicate with all its interested clients or group members.?
DFS?
Dynamic frequency selection (DFS) is another method to reduce power consumption by selecting less congestion channel of operation. This technique is defined by the standard IEEE 802.11h. This reduces retransmissions in the wireless communication and hence reduces power consumption for same amount of data transaction. But this is applicable only to access point (AP) devices in case of Wi-Fi where AP is in charge to set the channel of operation. However, the technique could be adopted in other ad-hoc wireless networks as well.
CPU Processing?
DVFS (Dynamic Voltage and Frequency Scaling)?and DVS (Dynamic voltage scaling)
For less CPU intensive operations such as sensors or simple data collection devices, the SoC (System on Chips) can be configured to operate at a lower CPU frequency. An important thing to note here is that the transition across frequency levels also is time consuming, therefore it should be considered that device is meant to sleep for longer duration and tasks are not CPU intensive. If the tasks are CPU bound (intensive processing) such as multimedia streaming etc, then it does not provide desired results as with lower frequency, execution time for the same amount of computation will also increase. Voltage and frequency scaling are used mostly together.
The standalone DVS (Dynamic Voltage Scaling) is used in some of the peripherals that allow low voltage operations in power savings mode. For example, some low power mmc or SD cards can run at 1.8V as well as 3.3 volts.?Main processor hosted driver can automatically detect the availability of these modes in the peripherals and activate lower voltage as required.
Power modes like sleep, deep sleep etc., that are available with various SOCs (System on Chips) utilize this by controlling clock frequency and turning off some of the hardware power domain blocks on the SOC. An application driven approach could be taken to control these modes and make the device to be in sleep (highest possible savings mode) for longer duration and hence save more power.
Wake locks
To allow some applications or peripherals such as SPI, I2C buses etc., there is a provision of wake locks which could be utilized by these operations to restrict the scaling down of voltage and frequency for their efficient operations. Once the application releases these wake locks, this restriction is lifted. Software should efficiently utilize the usage of wake locks.?
Other ideas based on efficient software design could be adopted to reduce frequent peripheral writes (e.g., data logging etc.) such as non-volatile memory writes for persistent storage of data to reduce processing requirements of the application. Typically, peripherals are custom designed and more efficient than the main CPU or the controller, therefore an optimum software design should off load maximum processing responsibilities to peripherals wherever possible. The use of hardware accelerators for crypto operations or TCP checksum calculation of incoming packets by the Wi-Fi chipsets are few such scenarios where it is utilized in most devices.
Conclusion
The proposed technique in the article gives a comprehensive list of ideas that could be applied to implementation. The article mainly focused on reducing power consumption due to CPU processing and radio communication. Techniques like DVFS, DVS, DFS, TPC (802.11h) etc. are discussed. Some ideas are applicable for only point to point topology; some are useful for star network topologies while some are node specific. Since one size cannot fit all so it may not be possible to apply all of these in one go on a particular device. Idea here is to discuss the options available and then based on the applicability and affordability with respect to the trade off, same should be adopted in the respective application. The existing IEEE standards are cited wherever applicable and same could be referred for further reference.
??? Engineer & Manufacturer ?? | Internet Bonding routers to Video Servers | Network equipment production | ISP Independent IP address provider | Customized Packet level Encryption & Security ?? | On-premises Cloud ?
1 年That's a great post! You mentioned a lot of important technologies that make up #IoT. #BLE, #WiFi, and #Bluetooth are each useful, but they all come with their own power and range restrictions. Have you considered using multiple technologies in a mesh network to get the best of all worlds? You talked about wireless technology in your post - if you need to cover a large area with many devices, how would you technically use these technologies for a reliable connection?
Senior Staff Engineer | Senior Technical Leader | Android Health Solutions | Digital Health @ Samsung Research Institute, Noida
2 年Good Share Rahul Yadav ..Informative article.
R&D Engineer at Havells India Ltd
2 年Informative, nicely explained.
Architect | Mentor | Trainer ( Embedded & AI Systems)
2 年Great Rahul..
5G/Cloud Kubernetes-Docker/C/Golang
2 年Excellent article