It’s summer, and sensors are proliferating faster than weeds. Smart phones and tablets have built-in sensors such as accelerometers and magnetometers. Some mobile devices incorporate GPS receivers to provide even more sensor information to applications.

Dealing with raw data from these sensors can be a nightmare given their wide range of capabilities and performance levels. It’s one reason why operating systems like iOS, Android, and Windows provide a standard interface for many sensors.

Unfortunately, sensor technology is progressing faster than the software can keep up. Technology demonstrations at trade shows seem impressive, but they typically bypass the operating systems by using a device driver. Applications need to be written specifically to take advantage of new features.

Sensors Going Digital

Handling a single sensor can be a challenge all by itself since sensors usually are analog devices. Digital versions of these analog sensors normally incorporate a microcontroller. The digital interface is easier to utilize, and there are significant advantages to adding intelligence to a sensor.

The first benefit is the ability to provide data in digital form. The second is the ability to scale the results or provide them in more than one format. For example, the data may be the raw results from an analog-to-digital converter (ADC) or a digital value that may be scaled. Future devices then can provide results consistent with older chips. Third, a micro can compensate for issues such as calibration and drift. Finally, sensors use power, and a micro can handle power management.

Micros Make MEMS Manageable

Adding a micro to the mix brings up a host of other possibilities including sensor fusion. A single micro can easily handle multiple sensors. Interfacing is simplified because there’s a single digital device to work with and it’s possible to provide sensor fusion at the subsystem level.

Sensor fusion allows sensors to work together, possibly improving calibration and handling drift. It’s also possible to generate virtual sensors that provide data that’s more usable to an application but sourced from information generated by multiple sensors. And, it’s possible to simulate a sensor like a gyro using an accelerometer, albeit with less accuracy.

Sensor fusion can be done on the host. Companies like Sensor Platforms provide software to handle sensor fusion (see “FreeMotion Provides Sensor Fusion For Smart Phone”).The software can run on the host or on a microcontroller servicing the sensors. It also offers advanced sensor management, power management, and virtual peripherals.

Sensor Platforms can drive standard operating systems with sensor data. The company also offers its own application programming interface (API), which is more robust.

Freescale’s Windows 8 Xtrinsic Sensor is designed to plug into a tablet as a development tool (Fig. 1). The small USB dongle has a ColdFire micro that provides sensor fusion and delivers data in a fashion that is compatible with the forthcoming Windows 8 (Fig. 2).


1. Freescale’s Windows 8 Xtrinsic Sensor platform plugs into a standard USB port to provide a demo platform for developers.


2. The Windows 8 Xtrinsic Sensor integrates a ColdFire microcontroller and MEMS sensors into a single package.

The device is a 12-axis sensor that includes a 3D accelerometer, 3D magnetometer, and 3D gyro, plus an ambient light sensor and a barometer/thermometer. Most systems employ the magnetometer to provide a compass heading, but Freescale utilizes the other sensors as well to improve the compass results instead of using raw data from a single sensor.

Windows 8 defines a standard USB interface and queues for data provided by sensors (Fig. 3). Applications then can deal with sensors that are already defined and using data within the specified range and format in a standard fashion.


3. The USB-based Windows 8 Xtrinsic Sensor platform delivers data into standard Windows 8 peripheral queues.

Sensors and their capabilities will continue to grow. Hopefully sensor fusion won’t grow into confusion.