Many aspects come together to make an effective wearable device for the internet of things (IoT). Form factor, design and power efficiency are vital in making devices that not only do their job but are comfortable, attractive and easy to use. A natural temptation is to assume that greater processing will result in more functionality. But the reverse can be true. The impact on battery life can make the apparently more powerful device less useful in the real world.
The ARM Cortex-M4, for example, delivers floating-point and digital signal processing (DSP) instructions that should suit sensor-oriented wearables similar IoT devices. However, the increased performance comes at the cost of higher average power consumption – the M4 offers around 30 per cent faster processing for handling digitized sensor data but at double the energy consumption of a device based on the more streamlined M0. For a system that spends much of its time processing signals, this tradeoff makes sense. But IoT and wearable sensor devices do not often have these requirements.
Comparison of ARM’s Cortex-M Processors (Source: ARM)
For much of its life, a wearable device does not need to be fully active. Even when you are moving, the motion sensors will pick up very little that is unexpected. It is when some sudden change occurs that their inputs need further work. This sudden change may be expected – such as the change from breathing in to breathing out on an accelerometer close to the chest – and simply trigger an event to calculate the breathing rate. Or it may be the sign of something more fundamental happening that needs further attention and comparison with other sensor inputs.
The key question is one of what deliver the best performance per joule that can process the data quickly enough to satisfy the requirements of the application. If it takes 1.5ms to process the input data rather than 1ms this is highly unlikely to result in performance issues in a system that may spend hundreds of milliseconds sleeping between each sample-capture period. The simpler M0 can therefore be more energy efficient than the M4 with no loss of apparent performance.
Dialog Semiconductor’s DA14680 single-chip solution for wearables featuring the ARM Cortex-M0
Optimized software can further improve overall system energy performance and speed. A key component of data processing for wearables is sensor fusion, in which the data values captured from multiple sensor channels are combined and analyzed to derive a result that provides the system with more detailed information about what is happening around the wearable so that it can perform accurate classification.
DSP and floating-point instructions can improve the throughput of sensor-fusion algorithms, particularly when porting the algorithms from a prototyping environment such as MatLab. But the core algorithms can be adapted to run on an integer-focused CPU such as that in the Cortex-M0 and so take full advantage of its overall lower power consumption. An example is Dialog’s SmartFusion library available for its silicon platforms – it is a sensor-fusion software package that merges the data from the accelerometer, gyro and magneto sensors to produce a variety of vectors that can then be classified to determine specific motion patterns. The smart fusion algorithms ensures the wearable always starts up in the right orientation and adapts to changes in sensor sensitivity so that, if one of the sensors saturates for a brief period through sudden motion the software can favor input from other sensors temporarily. Optimized for the M0, the software helps maintain the most energy-efficient option for motion-detection wearables.
More advanced wearables may need to support a built-in user interface or perform significant post processing, and these factors may demand a higher-throughput processor pipeline. But for many applications, with the right software support the M0 offers a highly efficient engine for accurate and responsive wearables with a long battery lifetime.