Integrating sensors into mobile devices
Sensors have been an important addition to smartphones ever since accelerometers were first used to determine screen orientation. Now a wide variety of sensors, including magnetometers, barometers, and gyroscopes, are found in many other devices, such as watches, glasses, headsets, and shoes. This proliferation of sensors has created many rich use-cases, which can be enabled with their proper integration into devices of all kinds.
Sensor selection and drivers
When designing devices with sensors, price and performance often dictate sensor selection. However, configuration and power considerations are just as important. For example, most smartphones have 12-bit accelerometers configured with a measurement range of ±2g. However, it is easy to saturate this limit with normal daily activity. A higher fidelity signal can be obtained by increasing the headroom to 4g. This does not sacrifice precision because, for hand-held use-cases, the biometric noise floor is still higher than the quantization limit.
As another example, the main criterion for magnetometer selection is large measurement range. Indeed, improper magnetometer layout could lead to excess noise or even a very large offset, such as 1000uT (over ten times Earth field). However, more critical effects such as hysteresis or repeatability issues are often overlooked. This leads to poor sensor performance as a trade-off for less constraint on a proper system layout.
Some magnetometers are noisy, and often a low-pass filter is applied to compensate. However, this creates the misconception that magnetometers are slow. When fast motion is needed, many think a gyroscope is required. This adds cost and power when, for many use-cases, it might not be necessary. Instead, software to properly interpret the noisy signal is sufficient.
Sensor APIs and algorithms
The mobile operating system sets a convention for how sensors should report results, and defines the application-programming interface (API) required to access that data. Sometimes these specifications are incomplete or not enforced, leading to confusing interfaces and inconsistent behavior from platform to platform. A standard generalized API for all use-cases is desired to properly address this fragmentation.
Even after arriving at a well-tuned system of raw sensor data, the mobile environment has challenges such as magnetic anomalies, calibration changes, and severe dynamic movement. Proper algorithms are necessary to make sensor data meaningful.
A natural extension for algorithms is to make sensor data even more useful to developers by creating appropriate virtual sensors; that is, sensor data interpreted in quantities that directly address specific use-cases. For example, detecting that the user is holding the phone in-hand, or has entered an elevator, is more useful to developers than simply detecting the raw acceleration or magnetic field. This form of interpreted sensing enables the mobile device to be more contextual. Interesting context-aware apps are enabled on platforms that provide a rich sensor API to developers.
Enabling an always-on context-aware platform
Context-aware devices, by their nature, will require some sensors to be always on. But low power is an important requirement in mobile systems. This dichotomy needs to be properly addressed to enable a context-aware platform.
A simple step in this direction is to aggregate sensors in an embedded core. Many mobile devices access sensor data directly from the main application processor (AP). The AP is a multi-purpose processor which runs the mobile operating system, such as Android. To keep power under control, it utilizes sophisticated wakelocks to run efficiently in a mobile environment. Constant sensor sampling disrupts this scheme and causes significant battery drain. Offloading sensor sampling to an embedded core, or sensor hub, ensures accurate timestamping, as well as allowing the AP to manage power better. Figure 1 shows an example of how this can be applied.
Judicious use of sensors in an always-on environment is also useful to keep power under control. For example, gyroscopes use up to 100 times more power than accelerometers, and hence should only turn on when needed. In general, sensor aggregation and embedded timestamping can greatly improve the reliability and power expenditure of mobile systems.
Overall, inertial sensors are power efficient and could be used to throttle higher powered peripherals to reduce overall system power. For example, sensors can determine that a user has not moved beyond a 10-foot radius from an initial position and so there is no need to waste battery life to get a new GPS fix or refresh the Wi-Fi profile for a mobile device.
Context-aware devices represent a new frontier in smarter personal devices. While the smartphone may remain the most prevalent "body-worn sensor," sensors will find applications in devices ranging from watches, to mobile headsets, to exercise and sports equipment. Such wearable devices are more specialized and even more resource constrained. Embedded algorithms that can interpret sensor data for these target use-cases are important.
Key to enabling the next generation of sensor applications involves many aspects: selection, layout, configuration, adoption of standard interfaces, and implementation of rich APIs. Addressing these aspects of sensor integration enables developers to add a distinctive experience to mobile devices.