# Features
Source: [https://docs.qualcomm.com/doc/80-70014-7/topic/supported_features.html](https://docs.qualcomm.com/doc/80-70014-7/topic/supported_features.html)
The following table lists the QSH features and their impact on the QSH:
Table : QSH features
| Feature | Enable or disable? | Impact | Description |
| --- | --- | --- | --- |
| OS and hardware independent | This feature is for information purposes only. |
- Development is easy
- Plug and play of QSH-compliant sensors across the targets
|
- QSH drivers or algorithms are compliant across Snapdragon platforms.
- APIs are generic and abstract the underlying OS.
|
| Sensors in local memory | This feature can be enabled or disabled. |
- Saves power by enabling the local memory
- Due to the limited local memory, only finite sensors can be fitted in
here
|
- Enables QSH to operate in ultralow power mode, meeting the low-power
requirements of the industry.
- Suitable for background use cases.
|
| Sensors in Normal mode | Sensors can be configured to use either local or main memory. |
- More memory and more on-chip resources are available.
- Higher power consumption due to more on-chip resources being active.
|
- Access to the larger main memory allowing integration of more sensors.
- Supports cycle intensive operations.
|
| Factory calibration | Sensor calibration is enabled using available test tools. | Improved sensor accuracy |
- QSH supports calibration for hardware-based sensors.
- Calibration standardizes equipment for precise results, which ensures that the
sensor values matches the baseline.
- Recalibration maintains sensor accuracy and adjusts for sensitivity changes
over time.
- For more information, see Calibrate.
|
### Software-based sensors
The following table lists the software-based sensors supported by the QSH framework:
Table : Software-based sensors
| Sensor name | Sensor type | Proto API | Description |
| --- | --- | --- | --- |
| Absolute motion detector | `amd` | `sns_amd.proto` |
- Reports a stationary state when the device is at absolute rest. For example,
on a desk or a table.
- Uses the accelerometer motion detect interrupts to reduce the power.
|
| Relative motion detector | `rmd` | `sns_rmd.proto` | Reports a stationary state when the device is not moving significantly with
respect to gravity. |
| Significant motion detector | `sig_motion` | `sns_sig_motion.proto` |
- Triggers when detecting a significant motion - a 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 do not trigger a significant motion:
- Phone is in the pocket and the person is not moving.
- Phone is on a table and the table shakes a bit due to nearby traffic or
washing machine.
- 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 event on each step. |
| Tilt detector | `tilt` | `sns_tilt.proto` | Generates an event, each time there is a tilt. A tilt event is defined by the
direction of the 2-second window, average gravity changing by at least 35 degrees
since the activation or the last event generated by the sensor. |
| Tilt to wake | `tilt_to_wake` | `sns_tilt_to_wake.proto` | Detects the substantial phone 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 magnetometers.
- Validated across multiple magnetometer parts from different vendors.
|
| Game rotation vector | `game_rv` | `sns_game_rv.proto` |
- A game rotation vector sensor reports the orientation of the device relative
to an unspecified coordinate frame.
- It obtains the orientation through integration of accelerometer and gyroscope
readings. Therefore, the Y-axis does not point north but instead to an arbitrary
reference.
|
| Gravity/linear acceleration | `gravity` | `sns_gravity.proto` | Provides a three-dimensional vector indicating the direction and magnitude of
gravity. Typically, this sensor 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` | Provides information about whether the device is in a portrait mode or
landscape mode. |
| Geo-mag rotation vector (RV) | `geomag_rv` | `sns_geomag_rv.proto` | Reports the orientation of the device relative to the East-North-Up coordinates
frame; obtained through the integration of accelerometer and magnetometer
readings. |
| Rotation vector | `rotv` | `sns_rotv.proto` | Reports the orientation of the device relative to the East-North-Up coordinates
frame; obtained through the integration of accelerometer, gyroscope, and
magnetometer readings. |
| Device position classifier | `device_position_classi fier` | `sns_dpc.proto` | Provides the device position information. |
| Activity recognition algorithm | `activity_recognition` | `sns_activity_recognition.proto` | Determines relative stationary, such as walk, run, bike, car, nonmotorized
vehicle, and motorized vehicle states and classifications. |
| Distance bound | `distance_bound` | `sns_distance_bound.proto` |
- Tracks the distance in meters, and reports the client when the requested
distance is covered.
- Client can query the accumulated distance any time before the final distance
is reached.
|
Last Published: Jul 12, 2024
[Previous Topic
Getting Started](https://docs.qualcomm.com/bundle/publicresource/80-70014-7/topics/get_started.md) [Next Topic
Architecture](https://docs.qualcomm.com/bundle/publicresource/80-70014-7/topics/architecture.md)