# 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. | <ul class="ul" id="Supported_features_2__ul_jxh_l22_q1c_monicapa_03-04-24-1315-33-649"><br>                  <li class="li">Development is easy</li><br><br>                  <li class="li">Plug and play of QSH-compliant sensors across the targets </li><br><br>                </ul> | <ul class="ul" id="Supported_features_2__ul_em4_m2z_xbc_rajearor_07-03-24-1018-5-172"><br>                  <li class="li">QSH drivers or algorithms are compliant across Snapdragon platforms.</li><br><br>                  <li class="li">APIs are generic and abstract the underlying OS.</li><br><br>                </ul> |
| Sensors in local memory | This feature can be enabled or disabled. | <ul class="ul" id="Supported_features_2__ul_g52_5tf_q1c_monicapa_03-04-24-1830-25-742"><br>                  <li class="li">Saves power by enabling the local memory</li><br><br>                  <li class="li">Due to the limited local memory, only finite sensors can be fitted in<br>                    here</li><br><br>                </ul> | <ul class="ul" id="Supported_features_2__ul_h4y_mtf_q1c_monicapa_03-04-24-1828-18-499"><br>                  <li class="li">Enables QSH to operate in ultralow power mode, meeting the low-power<br>                    requirements of the industry.</li><br><br>                  <li class="li">Suitable for background use cases.</li><br><br>                </ul> |
| Sensors in Normal mode | Sensors can be configured to use either local or main memory. | <ul class="ul" id="Supported_features_2__ul_uws_txf_q1c_monicapa_03-04-24-1900-45-600"><br>                  <li class="li">More memory and more on-chip resources are available.</li><br><br>                  <li class="li">Higher power consumption due to more on-chip resources being active.</li><br><br>                </ul> | <ul class="ul" id="Supported_features_2__ul_pxh_l22_q1c_monicapa_03-04-24-1315-33-649"><br>                  <li class="li">Access to the larger main memory allowing integration of more sensors.</li><br><br>                  <li class="li">Supports cycle intensive operations.</li><br><br>                </ul> |
| Factory calibration | Sensor calibration is enabled using available test tools. | Improved sensor accuracy | <ul class="ul" id="Supported_features_2__ul_ovw_h3t_q1c_monicapa_03-06-24-1515-21-984"><br>                  <li class="li">QSH supports calibration for hardware-based sensors.</li><br><br>                  <li class="li">Calibration standardizes equipment for precise results, which ensures that the<br>                    sensor values matches the baseline.</li><br><br>                  <li class="li">Recalibration maintains sensor accuracy and adjusts for sensitivity changes<br>                    over time.</li><br><br>                  <li class="li">For more information, see <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-7/calibrate.html" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-7/calibrate.html')">Calibrate</a>.</li><br><br>                </ul> |

### 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` | <ul class="ul" id="Supported_features_2__ul_vdm_f5w_r1c_monicapa_03-10-24-1628-43-227"><br>                  <li class="li">Reports a stationary state when the device is at absolute rest. For example,<br>                    on a desk or a table.</li><br><br>                  <li class="li">Uses the accelerometer motion detect interrupts to reduce the power.</li><br><br>                </ul> |
| Relative motion detector | `rmd` | `sns_rmd.proto` | Reports a stationary state when the device is not moving significantly with<br>                respect to gravity. |
| Significant motion detector | `sig_motion` | `sns_sig_motion.proto` | <ul class="ul" id="Supported_features_2__ul_ojx_pyf_q1c_monicapa_03-04-24-1907-15-308"><br>                  <li class="li">Triggers when detecting a <em class="ph i">significant motion</em> - a motion that might lead<br>                    to a change in the user location. For example, walking, biking, or sitting in a<br>                    moving car, coach, or train. </li><br><br>                  <li class="li">The following examples do not trigger a significant motion:<ul class="ul" id="Supported_features_2__ul_wxf_mzf_q1c_monicapa_03-04-24-1913-47-760"><br>                      <li class="li">Phone is in the pocket and the person is not moving. </li><br><br>                      <li class="li">Phone is on a table and the table shakes a bit due to nearby traffic or<br>                        washing machine. </li><br><br>                    </ul><br></li><br><br>                  <li class="li">Reporting mode: Single response, after the notification sensor automatically<br>                    disables itself.</li><br><br>                </ul> |
| 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<br>                direction of the 2-second window, average gravity changing by at least 35 degrees<br>                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<br>                in a specific range of the pitch and roll angles. |
| Gyroscope calibration | `gyro_cal` | `sns_gyro_cal.proto` | <ul class="ul" id="Supported_features_2__ul_e3k_drb_51c_monicapa_03-18-24-1212-34-340"><br>                  <li class="li">A low-power dynamic calibration algorithm for gyroscopes.</li><br><br>                  <li class="li">Validated across multiple gyroscope parts from different vendors.</li><br><br>                </ul> |
| Magnetometer calibration | `mag_cal` | `sns_mag_cal.proto` | <ul class="ul" id="Supported_features_2__ul_ewk_grb_51c_monicapa_03-18-24-1213-27-432"><br>                  <li class="li">A low-power dynamic calibration algorithm for magnetometers.</li><br><br>                  <li class="li">Validated across multiple magnetometer parts from different vendors.</li><br><br>                </ul> |
| Game rotation vector | `game_rv` | `sns_game_rv.proto` | <ul class="ul" id="Supported_features_2__ul_vqr_xgb_s1c_monicapa_03-11-24-717-32-529"><br>                  <li class="li">A game rotation vector sensor reports the orientation of the device relative<br>                    to an unspecified coordinate frame. </li><br><br>                  <li class="li">It obtains the orientation through integration of accelerometer and gyroscope<br>                    readings. Therefore, the Y-axis does not point north but instead to an arbitrary<br>                    reference.</li><br><br>                </ul> |
| Gravity/linear acceleration | `gravity` | `sns_gravity.proto` | Provides a three-dimensional vector indicating the direction and magnitude of<br>                gravity. Typically, this sensor determines the relative orientation of the device in<br>                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<br>                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<br>                frame; obtained through the integration of accelerometer and magnetometer<br>                readings. |
| Rotation vector | `rotv` | `sns_rotv.proto` | Reports the orientation of the device relative to the East-North-Up coordinates<br>                frame; obtained through the integration of accelerometer, gyroscope, and<br>                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<br>                vehicle, and motorized vehicle states and classifications. |
| Distance bound | `distance_bound` | `sns_distance_bound.proto` | <ul class="ul" id="Supported_features_2__ul_lnw_4n1_ybc_rajearor_07-03-24-1445-19-926"><br>                  <li class="li">Tracks the distance in meters, and reports the client when the requested<br>                    distance is covered.</li><br><br>                  <li class="li">Client can query the accumulated distance any time before the final distance<br>                    is reached.</li><br><br>                </ul> |

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)