Optimizing non-volatile data-logging for energy harvesting IoT sensor nodes

Wireless IoT sensor nodes will be the eyes and ears of tomorrow’s smart factories and industrial applications. Remote wireless nodes will enable the sensing and measurement of real-time machine and environmental parameters – tasks that are both difficult and impractical in current industrial systems. Data acquisition at the IoT node enables better decision-making at the edge and smart integration to the rest of the network. Additionally, data-aggregation, coupled with local processing in sensor nodes at the edge of the network, will optimize the smart factories of tomorrow.

Optimizing use of available power is one of the key challenges when deploying wireless IoT sensors. These devices are typically powered by batteries or by energy harvested from solar, vibration, or heat sources. Energy harvesting is desirable as it eliminates the need for battery maintenance and replacement. It is particularly well‑suited to these applications since IoT sensor nodes are often placed in remote or otherwise difficult to access locations.

While some IoT sensor nodes acquire and transmit data in real-time without local storage, IoT nodes powered by harvested energy benefit from storing data locally to reduce risk from fluctuations in the energy source. Additionally, since uploading data to a central aggregator or the cloud is the most power-intensive task an IoT sensor node must perform, using local storage enables a smart IoT sensor to selectively perform power-hungry uploads based on the quantity and nature of the accumulated data. This enables energy harvesting IoT sensor nodes to consume lower total power and to be more resilient to energy fluctuations.

The typical duty cycle (Figure 1) of a wireless IoT node can be summarized as follows:

  1. System wake-up – Normally, the system is in its lowest power mode (sleep/hibernate/shutdown) to save power.

  2. Read sensor data – Serial or analog, depending on the sensor interface.

  3. Process/Store sensor data – Increasingly have local processing capability to minimize latency in decision-making and to reduce the wireless bandwidth.

  4. Transmit sensor data – Transmit upload data to aggregator or cloud

  5. Return to low power mode (sleep/hibernate/shutdown).

click for larger image

Figure 1. Typical duty cycle of wireless IoT Node (Source: Cypress Semiconductor)

A typical IoT sensor node comprises sensors, processing power, a data logging feature and the capability to communicate wirelessly (Figure 2). Each module needs to support low power modes to enable the overall system to function at its lowest power consumption level. Additionally, each module should have ultra-small form factors suitable for space-constrained applications. A nonvolatile memory is the preferred option for data logging and local storage in sensor nodes. The nonvolatile memory does not require power backup on power loss and improves data reliability by ensuring retention of data if an IoT node loses power or fails. Therefore, IoT nodes require ultra-small foot print nonvolatile memories that can continuously log real‑time system data over the lifetime of the sensor node, while minimizing power consumption.


Figure 2. Typical Wireless IoT Node Architecture (Source: Cypress Semiconductor)

There are multiple nonvolatile memory technologies available, including Flash, EEPROM, and F-RAM. For many applications, it is more energy efficient to use local storage in the IoT node using Ferroelectric RAM (F-RAM). Consider a solar-powered temperature and humidity sensor node in three different configurations:

  1. Without memory

  2. With F-RAM

  3. With EEPROM

In each of these configurations, the sensor node accumulates data and transmits it periodically to the same central aggregator (Figure 3). All three configurations are powered by solar panels of the same capacity and all the have the same data sampling rate. The number of samples collected by each configuration and the energy consumption of each configuration are measured through this experiment to evaluate which solution is superior with regards to power consumption and, therefore, reliability.


Figure 3. Memory configuration test setup (Source: Cypress Semiconductor)

A unique challenge when harvesting energy is the uncertain availability of natural energy. The IoT node can lose power and hence, collected sensor data may be at risk due to fluctuations in energy. Therefore, an IoT node with no local memory must transmit every time data is sampled. In this test, the node with local F-RAM or EEPROM memory transmits data after accumulating 16 samples. There are specific challenges to solve when using a local memory. The local memory storage uses an index to point to the current memory address where data should be stored. Since availability of energy is uncertain in an energy harvesting IoT node, after storing every sample, the index should also be stored in the nonvolatile memory.

To implement this approach, we need to understand an important difference between F-RAM and EEPROM. EEPROMs have limited write endurance of 106 and hence have limited number of write cycles per cell. To overcome this limitation, EEPROM implementations employ wear-leveling algorithms to manage endurance limitations. F-RAM, on the other hand requires no special firmware and has 1014 cycles of read/write endurance, which is practically unlimited for many applications.

In this application, when using EEPROM, a part of the memory is allocated for storing the memory index and a different part stores the sensor data. After transmitting the data over BLE, the sensor data can be overwritten again and again in the same buffer. In this implementation, a 6-byte index is used in the EEPROM to point to the latest page where sensor data is located. Using an incremental method, the page with highest index has the latest sensor data. Another two bytes are used in EEPROM to store the offset within the page for the current address. Every time sensor data must be logged, special firmware needs to run in the EEPROM to find the current page, current offset and the page boundaries so that the page index can be managed. This overhead consumes extra power making EEPROM less suitable than F-RAM for power-constrained nodes.


Figure 4. IoT datalogging with wireless IoT node remote-sensor monitors using different memory options (Source: Cypress Semiconductor)

The graph in Figure 4 shows the number of samples transmitted by the three different IoT nodes in a given amount of time (100 sec), with identical power supplies. Extrapolating this to a day, we get the following table.

Table 1. Number of samples received per day from different IoT nodes

IoT Node Samples received / day
with F-RAM 124416
without Memory 41472
with EEPROM 13824 (data corruption)

The graph shows that in a given time period (100 seconds in this experiment), the F-RAM IoT node transmits 144 samples and the No-Mem node transmits 48 samples. The EEPROM IoT node transmits 16 samples but the last few samples transmitted by the EEPROM IoT node are corrupted. The F-RAM IoT node transmitted more samples in a given time and consumed less power per transaction than EEPROM.

Although this application doesn’t use a battery, the lower power consumption of F-RAM is advantageous for battery-powered IoT sensor nodes as well. As evidenced from the data corruption, EEPROM fails to log data reliably in energy harvesting IoT nodes due to the abrupt loss of power and the lack of a power management system such as back-up capacitors. While we have not evaluated the performance of an IoT sensor node with Flash as the nonvolatile local storage, it is easy to estimate its performance. Higher write currents and longer erase/program times make Flash technology inherently less energy efficient when compared to EEPROM. In general, Flash consumes ~200X more energy than an EEPROM and ~3,000X more energy than F-RAM.

F-RAM devices such as Cypress’ Excelon LP (low power) F-RAM are specifically optimized for low-power and small form-factor applications including IoT sensor nodes. It comes in a small ~10mm2 GQFN package option and provides multiple power saving modes, including hibernate, deep power-down, and standby. To further accommodate tiny form factors, F-RAM can be used for code storage in addition to data-logging, eliminating the need for a separate chip for code storage. The F-RAM enables code storage by offering a ‘block protect’ feature through which a portion of the memory can be allocated for static code storage. The end result is that F-RAM operates with less power than other nonvolatile memories, enabling IoT sensor nodes with local storage to achieve higher sustained sampling rates.


Harsha Medu is Principal Applications Engineer working at Cypress Semiconductor. He has worked on design and application aspects of various non-volatile memory products, defined system solutions based on new products. He holds Bachelor of Engineering in Electronics and Communication and Master of Business Administration from IIM, Bangalore.

Vijay Ramakrishnan is a product management and marketing professional currently managing strategic products built for the Internet of Things (IoT) space, spanning automotive, Edge AI and industrial automation. Vijay is a Georgia Tech and NITK, Surathkal alumnus and has co-invented two granted US patents.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.