The latest entry in the Building Windows 8 blog is called “Supporting Sensors in Windows 8,” and it comes from Gavin Gear, one of the Microsoft Product Managers on the Windows 8 Device Connectivity team. It tells a fascinating story of how (and why) the basic Windows 8 hardware requirements include so many sensors (an accelerometer, a magnetometer, and a gyroscope, among others) so that application and service developers can count on basic system capabilities when building next generation software of all kinds. The following diagram helps to illustrate how combining such hardware devices together can support smoother and more capable physical functions, not just for the usual purposes (screen rotation and orientation) but also to support lots of other interesting capabilities as well (including game controllers, smart remotes, measurement and data acquisition, and so forth):
Mr. Gear follows up his explanation and discussion with some data traces from an accelerometer to depict why straightforward use of such data doesn’t always produce the best user experience. From there he goes on to explain how MS has worked with hardware manufacturers and device makers to create a single Microsoft driver that can “…work with all Windows-compatible connected over USB and even lower power busses…” The upshot is that any sensor company can construct a Windows 8 compatible package by adhering to “…public standard USB-IF specifications for compliant device firmware.”
Pretty slick already, but MS also worked to control power consumption and sensor performance as well by enabling sensor processing to occur at the hardware level without involving the CPU, and by building filtering mechanisms to restrict data flow (and event rates) to speeds that won’t exceed the processing stack’s handling capacity (this also helps reduce consumption of CPU cycles).
The blog concludes with a discussion of how sensors can play into Windows 8’s new “Metro-style” apps, using a new sensor API included as part of the Windows 8 runtime environment (aka WinRT). Code examples show the APIs to be simple and straightforward, making them easy for developers to put to work. It should be interesting to see how easy access to sensors and location data helps raise the bar for Windows 8 apps over the years and months ahead. There’s even a product reference to a specialty sensor part built into last year’s Windows 8 Developer Preview slate PC from Samsung, now that developers can purchase such parts on the open market, to help get this phenomenon rolling.