| Absolute motion detector | amd | sns_amd.proto | - Reports a stationary state event when the device is at absolute rest. For example, the device is placed on a stationary object, such as desk or table.
- Reports a moving state event when the device transitions from absolute rest to moving state. For example, the device is lifted from a desk or table.
- Uses the accelerometer motion detect interrupt to reduce the power.
|
| Relative motion detector | rmd | sns_rmd.proto | Reports a stationary state when the device isn’t moving significantly with respect to gravity. |
| Significant motion detector (SMD) | sig_motion | sns_sig_motion.proto | - Triggers when detecting a significant motion that might lead to a change in the user location. For example, walking, biking, or sitting in a moving car, coach, or train.
- The following examples don’t trigger a significant motion: The device is in a pocket and the person remains stationary. The device is on a table and the table shakes a bit.
- Reporting mode: Single response, after the notification sensor automatically disables itself.
|
| Pedometer | pedometer | sns_pedometer.proto | Reports the number of step counts to the client. |
| Step detector | step_detect | sns_step_detect.proto | Detects steps and generates an event for each step. |
| Tilt detector | tilt | sns_tilt.proto | Generates an event each time there is a tilt. The direction of the 2-second window, with average gravity changing by at least 35 degrees since the activation or the last event generated by the sensor, defines a tilt event. |
| Tilt to wake | tilt_to_wake | sns_tilt_to_wake.proto | Detects the substantial device rotation gesture event when the picked device is in a specific range of the pitch and roll angles. |
| Gyroscope calibration | gyro_cal | sns_gyro_cal.proto | - A low-power dynamic calibration algorithm for gyroscopes.
- Validated across multiple gyroscope parts from different vendors.
|
| Magnetometer calibration | mag_cal | sns_mag_cal.proto | - A low-power dynamic calibration algorithm for the magnetometer sensor.
- Validated across multiple magnetometer parts from different vendors.
|
| Game rotation vector (GRV) | game_rv | sns_game_rv.proto | - Reports the orientation of the device that is relative to an unspecified coordinate frame.
- Obtains the orientation through integration of accelerometer and gyroscope readings. Therefore, the y-axis points to an arbitrary reference rather than north.
|
| Gravity/linear acceleration | gravity | sns_gravity.proto | - Provides a three-dimensional vector indicating the direction and magnitude of gravity.
- Determines the relative orientation of the device in space.
|
| Persistent stationary detector | persist_stationary_detect | sns_persist_stationary_detect.proto | Reports an event when the device is stationary for at least 5 seconds. |
| Persistent motion detector | persist_motion_detect | sns_persist_motion_detect.proto | Reports an event when the device is in motion for at least 5 seconds. |
| Device orientation | device_orient | sns_device_orient.proto | Reports whether the device is in portrait mode or landscape mode. |
| Geomagnetic rotation vector | geomag_rv | sns_geomag_rv.proto | Reports the orientation of the device relative to the east, north, up (ENU) coordinates frame; obtained through integration of accelerometer and magnetometer readings. |
| Rotation vector (RV) | rotv | sns_rotv.proto | - Reports the orientation of the device relative to the ENU coordinates frame.
- Unlike geomagnetic rotation vector, this sensor uses gyroscope.
- Obtains orientation through the integration of accelerometer, gyroscope, and magnetometer readings.
|
| Device position classifier | device_position_classifier | sns_dpc.proto | Provides the device position information specifying if the device is in flat position or is at an angle with respect to the horizontal plane. |
| Activity recognition algorithm | activity_recognition | sns_activity_recognition.proto | Determines relative stationary states and classifications, for example walk, run, bike, car, nonmotorized vehicle, and motorized vehicle. |
| Distance bound | distance_bound | sns_distance_bound.proto | - Tracks the distance in meters, and reports to the client when the device covers the requested distance.
- The client can query the accumulated distance any time before the device reaches the final distance.
|