This project arose from my Master’s Thesis, which I will hopefully finish soon. I will present my results in a few weeks then. While working on the thesis, I realized which great potential lies in sensors and how software could use them. So this site is dedicated to sharing how sensors work, which of them are available in your phone and what can be done with them. A secondary goal is to motivate developers (maybe you?) to use those capabilities to improve the experience of your app or even assemble totally new concepts.

Learn

Every Windows Phone has quite a few sensors

An ambient light sensor adapts the display brightness to the current environment, while a proximity sensor makes sure you don’t accidentally hang up with your cheek during a phone call. Your phones camera (and the font facing one) is a sensor, too, as it provides an interface to sense the outside world. To find your geographic location, the phone can use the mobile network and the WiFi antennas as ‘triangulation sensors’, as well as satellite positioning systems like GPS or GLONASS.

All this happens magically in the background, without users even knowing most of the time. The more the phone knows about its environment, the more it can use this information to make life easy and convenient. A lot of services are even only possible by having this kind of data from sensors.

Sensing Motion and Attitude

Apart from all these already, there are several additional sensors, that enable the phone to find out how it is aligned and being moved in 3D space:

Accelerometer

The accelerometer senses accelerations/forces in all 3 axes. This enables your phone to find out two things: The orientation of the phone when it lies still and the motion if it is being moved around. The reason is, there is one force that is always present: the gravitational force. Since you know where this vector points to when using an accelerometer, you can infer the orientation of the device.

In case the device is being moved or shaked, the measured acceleration is a composition of the gravitational force and the rotational and linear motions of the device. In this case, the gravitiy component and therefore the orientation of the phone can only be estimated, based on previous measurements. Unless you intelligently combine it with other sensors (see Compound sensor).

Compass

Actually, this is a 3-axis magnetometer, measuring magnetic field strengths. However, if no culprits are disturbing the sensor, some intelligent algorithms can calculate the angular offset to the earth’s magnetic north pole, based on the raw magnetic field vector. Other sensors can support this process and make the results more accurate. In the end, you can use it like a conventional compass.

Gyroscope

Don’t mix this one up with a full-fledged mechanical gyroscope. This sensor, that is built-in in many Windows Phone 7.5 Mango devices, doesn’t measure the actual (absolute) orientation. Just like every gyroscope in smartphones today, it is a miniaturized MEMS-component and can only sense (relative) angular rates, i.e. rotational speed. Those values alone are not particularly valuable. However, in combination with other sensors, the gyroscope can be extremely useful to stabilize measurements and get more accurate results.

Compound

The compound sensor is no real physical sensor, but a virtual one. It is the logical combination of all three other sensors. At first, the accelerometer lets infer the current attitude of the device. This, however, still leaves one degree of freedom: the yaw axis. This can be gathered from the compass then. The gyroscope, in turn, stabilizes those measurement results in all 3 axes of rotation. The final result is the devices (absolute) orientation in 3D space.

But the compound sensor can do even more: Having a relatively exact measurement of the attitude allows for estimating the gravity vector. Together with the gyroscopes rotation measurements, all irrelevant forces can be substracted from the accelerometer results, leaving nothing but the pure linear acceleration forces as a result.

Where does all this lead to?

The Compound sensor is composed by the Motion API, built into the Windows Phone OS, and enables for a lot of cool stuff. Whether using the phone as a precise game controller, enabling augmented reality applications or for much more other purposes, knowing the true orientation and motion is opening up a whole new world of possibilities.

In theory, if both attitude and linear acceleration is known, it is possible to track the device in 3D space relative to some known starting position. This allows, for example, for indoor navigation, where some starting position outside the building is known from a satellite navigation system. This mechanism is also known as ‘Inertial Navigation System’. Unfortunately, current smartphone sensors are not accurate enough for such applications, and have a huge drift after a short period of time. However, this shows to tell which great new opportunities are possible with even more accurate sensors in the future.

So let’s combine even more sensors together!

This is exactly the intention of this app. As seen above, intelligent combination of measurement data from different sources can lead to great new applications and services. As the number of sensors in our phones is quite large but nonetheless limited to those discribed above, I wanted to make use of sensors attached to my PC to explore new opportunities. Of course, for combining the phones sensors with those of the PC, I need to connect both and transfer a live stream of sensor data. And so, ‘Sensor emitter’ was born.