# Test and troubleshoot sensors

## Tools

Use the following tools to perform functional testing, set up the build environment, and functional diagnosis.

### Sensor functional test tools

The test tools ensure the accuracy, reliability, and optimal performance
of both the hardware-based and software-based sensors in your
applications. The following tools facilitates comprehensive testing of the sensor functionalities.

- The sensor info test provides detailed information about the sensor.
- The driver acceptance test ensures that the sensor drivers are
functioning correctly and are compatible with Qualcomm sensing hub (QSH).
- The sensor workhorse is a tool to stress-test the sensors under
various conditions.

#### Use sensor info test to list supported sensors

The sensor info test `ssc_sensor_info` is an application within the
QSH test suite. It lists the QSH supported sensors and their attributes.
You can run the following query at high-level operating system (HLOS) to get the attributes of a specified data type.

ssc_sensor_info [-sensor=<sensor_type>] [-delay=<time_in_seconds>][-duration=<time_in_seconds>][-default_only=<1|0>][-log=<1|0>][-help]
    Copy to clipboard

The following table describes the parameters used by the `ssc_sensor_info` test application.

Table : Parameters of ssc_sensor_info

| **Flags** | **Type** | **Value** | **Units** | **Notes** |
| --- | --- | --- | --- | --- |
| Sensor | `string` | Any valid sensor type, such as *accel* and *gyro*. | – | Queries attribute information for the specified sensor type. |
| Log | `int` | 0 | 1 | – | Enables or disables diagnostic (API) logs. |
| help(h) | `int` | – | – | Displays command usage help. |
| Duration | `int` | Positive values | seconds | Specifies the wait time for the sensor attribute updates. |
| Delay | `int` | Positive values | seconds | Specifies the time delay before sending the sensor requests. |
| default\_only | `int` | 0 | 1 | – | If the `default_only` flag is set to `False`, UIDs of all the available sensors that support the specified data type are sent. If the `default_only` flag is set to `True`, only the UID of the default sensor availability is sent. |

**Sensor info test examples**

- Query the sensor attributes and generate diagnostic logs.

ssc_sensor_info
        Copy to clipboard

[root@qcm6490](mailto:root&#37;&#52;&#48;qcm6490):~# ssc\_sensor\_info
ssc\_sensor\_info v1.86

SUID           = 0xebd5604d09d379bca54dcf30ec041e0f
NAME           = ak0991x
VENDOR         = akm
TYPE           = mag
AVAILABLE      = true
VERSION        = 2.62.47
API            = sns\_mag.proto
RATES          = [1.000000, 10.000000, 20.000000, 50.000000, 100.000000]
RESOLUTIONS    = 0.150000
RANGES         = [-4912.000000,4912.000000]
DRI            = false
FIFO\_SIZE      = 0
STREAM\_TYPE    = streaming
STREAM\_SYNC    = false
DYNAMIC        = false
EVENT\_SIZE     = 16
OP\_MODES       = [LOW\_POWER, LOW\_NOISE]
ACTIVE\_CURRENT = 900
SLEEP\_CURRENT  = 3
HW\_ID          = 0
RIGID\_BODY     = display
PHYSICAL\_SENSOR       = true
PHYSICAL\_SENSOR\_TESTS = [3, 1]
SELECTED\_RESOLUTION   = 0.150000
SELECTED\_RANGE        = [-4912.000000,4912.000000]

SUID           = 0xaddeaddeaddeaddeaddeaddeaddeadde
NAME           = da\_test
VENDOR         = QTI
TYPE           = da\_test
AVAILABLE      = true
VERSION        = 0.51.0
API            = sns\_da\_test.proto
STREAM\_TYPE    = on\_change

SUID           = 0x69def905fea2fbac6a43ca273221a2eb
NAME           = aont
VENDOR         = QTI
TYPE           = aont
AVAILABLE      = true
VERSION        = 0.0.1
API            = sns\_aont.proto
STREAM\_TYPE    = on\_change

SUID           = 0xabababababababababababababababab
NAME           = suid
VENDOR         = QTI
TYPE           = suid
AVAILABLE      = true
VERSION        = 0.0.1
API            = sns\_suid.proto
STREAM\_TYPE    = single\_output

SUID           = 0xe12754a7007f27595e2541b4701e2275
NAME           = registry
VENDOR         = QTI
TYPE           = registry
AVAILABLE      = true
VERSION        = 0.0.1
API            = sns\_registry.proto
STREAM\_TYPE    = single\_output

SUID           = 0xadfeadfeadfeadfeadfeadfeadfeadfe
NAME           = da\_test\_big\_image
VENDOR         = QTI
TYPE           = da\_test
AVAILABLE      = true
VERSION        = 0.49.0
API            = sns\_da\_test.proto
STREAM\_TYPE    = on\_change

SUID           = 0x61ab5376b4a5c9aa58442ede47acd316
NAME           = icm4x6xx
VENDOR         = TDK-InvenSense
TYPE           = accel
AVAILABLE      = true
VERSION        = 1.65.2
API            = sns\_accel.proto
RATES          = [12.500000, 25.000000, 50.000000, 100.000000, 200.000000, 500.000000]
RESOLUTIONS    = [0.000019, 0.000037, 0.000075, 0.000150, 0.000299]
RANGES         = [[-9.806650,9.806650], [-19.613300,19.613300], [-39.226601,39.226601], [-78.453201,78.453201], [-156.906403,156.906403]]
DRI            = true
FIFO\_SIZE      = 200
STREAM\_TYPE    = streaming
STREAM\_SYNC    = false
DYNAMIC        = false
EVENT\_SIZE     = 16
OP\_MODES       = [LPM, NORMAL, HIGH\_PERF]
ACTIVE\_CURRENT = [50, 240, 240]
SLEEP\_CURRENT  = 6
HW\_ID          = 0
RIGID\_BODY     = display
PHYSICAL\_SENSOR       = true
PHYSICAL\_SENSOR\_TESTS = [3, 2, 1]
SELECTED\_RESOLUTION   = 0.000299
SELECTED\_RANGE        = [-156.906403,156.906403]
LOW\_LATENCY\_RATES     = 1000.000000
PASSIVE\_REQUEST       = true
- Query all *accel* sensor attributes.

ssc_sensor_info -sensor=accel
        Copy to clipboard

[root@qcm6490](mailto:root&#37;&#52;&#48;qcm6490):~# ssc\_sensor\_info -sensor=accel
ssc\_sensor\_info v1.86

SUID           = 0x61ab5376b4a5c9aa58442ede47acd316
NAME           = icm4x6xx
VENDOR         = TDK-InvenSense
TYPE           = accel
AVAILABLE      = true
VERSION        = 1.65.2
API            = sns\_accel.proto
RATES          = [12.500000, 25.000000, 50.000000, 100.000000, 200.000000, 500.000000]
RESOLUTIONS    = [0.000019, 0.000037, 0.000075, 0.000150, 0.000299]
RANGES         = [[-9.806650,9.806650], [-19.613300,19.613300], [-39.226601,39.226601], [-78.453201,78.453201], [-156.906403,156.906403]]
DRI            = true
FIFO\_SIZE      = 80
STREAM\_TYPE    = streaming
STREAM\_SYNC    = false
DYNAMIC        = false
EVENT\_SIZE     = 16
OP\_MODES       = [LPM, NORMAL, HIGH\_PERF]
ACTIVE\_CURRENT = [50, 240, 240]
SLEEP\_CURRENT  = 6
HW\_ID          = 0
RIGID\_BODY     = display
PHYSICAL\_SENSOR       = true
PHYSICAL\_SENSOR\_TESTS = [3, 2, 1]
SELECTED\_RESOLUTION   = 0.000299
SELECTED\_RANGE        = [-156.906403,156.906403]
LOW\_LATENCY\_RATES     = [1000.000000, 2000.000000]
PASSIVE\_REQUEST       = true

**Output**

The test application generates the following output:

- Standard output on console
- Result file

#### Use the driver acceptance test to validate sensor drivers

The `ssc_drva_test` driver acceptance test tool does the following:

- Performs sensor driver validation and operates at the QSH sensor API layer.
- Executes a range of sensor use cases, such as streaming the sensor data and batching a sensor at a selected sampling frequency.
- Accepts the parameters directly from the command line and eliminates the need for compile-time options.

This approach makes it a convenient and efficient tool to
perform basic driver-level tests or validations at HLOS.

ssc_drva_test [-sensor=<sensor_type>] [-duration=<time_in_seconds>] [-sample_rate=<value_in_Hz>] [-batch_period=<value_in_seconds>] [-iterations=<value>] [-num_samples=<value>] [-factory_test=<value>]
    Copy to clipboard

The following table describes the parameters used by the `ssc_drva_test` test application.

Table : Parameters of ssc_drva_test

| **Flag** | **Type** | **Value** | **Unit** | **Notes** |
| --- | --- | --- | --- | --- |
| `sensor` | `string` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">accel</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">gyro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">sensor_temperature</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">pressure</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">mag</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">humidity</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">ambient_temperature</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">ultra_violet</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">proximity</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">ambient_light</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">rgb</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">hall</span></code></p></li><br><li><p>Any custom sensor added</p></li><br></ul> | – | Mandatory argument: limited to the available sensor types. |
| `duration` | `float` | Positive values only | Sec | Mandatory argument: sensor test duration in seconds. |
| `sample_rate` | `float` | Positive floating point number values:<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>-1: Maximum sampling rate</p></li><br>> <li><p>-2: Minimum sampling rate</p></li><br>> </ul> | Hz | Mandatory for streaming sensors, optional for on-change sensors. |
| `batch_period` | `float` | Positive floating point numbers | Sec | This period is the same as the report period and indicates how long to buffer the samples and report outside of the low-power processor. |
| `iterations` | `int` | Positive values only | N.A. | Provides the number of times the test must be repeated. |
| `num_samples` | `int` | Positive values only | N.A. | Indicates the minimum number of samples intended to be collected. If a `num_samples` parameter is specified and the test does not collect enough samples during the test, the test sensor generates FAIL.<br><br><br>The `num_samples` parameter forces the test to run for a maximum duration between a specified duration or duration calculated by the following:<br><ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">num_samples*</span></code> expected sample rate, where the expected sample rate is the rate at which the sensor is expected to serve.</p></li><br></ul> |
| `factory_test` | `int` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre">(SNS_PHYSICAL_SENSOR_TEST_TYPE_SW)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">1</span> <span class="pre">(SNS_PHYSICAL_SENSOR_TEST_TYPE_HW)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">2</span> <span class="pre">(SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY)</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">3</span> <span class="pre">(SNS_PHYSICAL_SENSOR_TEST_TYPE_COM)</span></code></p></li><br></ul> | N.A. | Selects the type of factory test (from the value column) that you want to run. |

**Driver acceptance test examples**

- Stream a single sensor at a selected sampling frequency for a known
duration:

ssc_drva_test -sensor=accel -duration=5 -sample_rate=500
        Copy to clipboard

[root@qcm6490](mailto:root&#37;&#52;&#48;qcm6490):~# ssc\_drva\_test -sensor=accel -duration=5 -sample\_rate=500
6 ssc\_drva\_test version 1.27k
6 ssc\_drva\_test -sensor=accel -duration=5 -sample\_rate=500
diag: Diag\_LSM\_Init: invoked for pid: 1141 with init\_count: 0
diag:successfully connected to socket 3
diag: Diag\_LSM\_Init: done for pid: 1141 with init\_count: 1
6 event\_cb attribute event for da\_test
6 event\_cb attribute event for da\_test
6 using da\_test name=da\_test, suid = [high addeaddeaddeadde, low addeaddeaddeadde
6 enter send\_memory\_log\_req cookie: 6
6 exit send\_memory\_log\_req
6 enter da\_test runner. -rumifact=1
6 -time\_to\_first\_event=233206
6 -time\_to\_last\_event=-20008
6 -sample\_ts=50267544823
6 -total\_samples=2528
6 -avg\_delta=37875
6 -recvd\_phy\_config\_sample\_rate=500
6 -random\_seed\_used=2926886043
6 -num\_request\_sent=2
6 -first\_sample\_timestamp=50171775915
6 received event: PASS
6 enter send\_memory\_log\_req cookie: 6
6 exit send\_memory\_log\_req
6 PASS
- Batch a single sensor at a selected sampling frequency and report
period for a known duration:

ssc_drva_test -sensor=accel -duration=30.0 -sample_rate=100 -batch_period=2.0
        Copy to clipboard

[root@qcm6490](mailto:root&#37;&#52;&#48;qcm6490):~# ssc\_drva\_test -sensor=accel -duration=30.0 -sample\_rate=100 -batch\_period=2.0
3 ssc\_drva\_test version 1.27k
3 ssc\_drva\_test -sensor=accel -duration=30.0 -sample\_rate=100 -batch\_period=2.0
diag: Diag\_LSM\_Init: invoked for pid: 1413 with init\_count: 0
diag:successfully connected to socket 3
diag: Diag\_LSM\_Init: done for pid: 1413 with init\_count: 1
3 event\_cb attribute event for da\_test
3 event\_cb attribute event for da\_test
3 using da\_test name=da\_test, suid = [high addeaddeaddeadde, low addeaddeaddeadde
3 enter send\_memory\_log\_req cookie: 3
3 exit send\_memory\_log\_req
3 enter da\_test runner. -rumifact=1
3 -time\_to\_first\_event=15321140
3 -time\_to\_last\_event=-13606286
3 -sample\_ts=8591389823
3 -total\_samples=2960
3 -avg\_delta=184826
3 -recvd\_phy\_config\_sample\_rate=100.000000
3 -random\_seed\_used=3720387971
3 -num\_request\_sent=2
3 -first\_sample\_timestamp=8030694123
3 received event: PASS
3 enter send\_memory\_log\_req cookie: 3
3 exit send\_memory\_log\_req
3 PASS
- Self-test for accelerometer (hardware self-test), which checks the health and basic functionality of the accelerometer sensor by running the built-in diagnostic routines:

ssc_drva_test -sensor=accel -factory_test=1 -duration=10
        Copy to clipboard

[root@qcm6490](mailto:root&#37;&#52;&#48;qcm6490):~# ssc\_drva\_test -sensor=accel -factory\_test=1 -duration=10
4 ssc\_drva\_test version 1.27k
4 ssc\_drva\_test -sensor=accel -factory\_test=1 -duration=10
diag: Diag\_LSM\_Init: invoked for pid: 1439 with init\_count: 0
diag:successfully connected to socket 3
diag: Diag\_LSM\_Init: done for pid: 1439 with init\_count: 1
4 event\_cb attribute event for da\_test
4 event\_cb attribute event for da\_test
4 using da\_test name=da\_test, suid = [high addeaddeaddeadde, low addeaddeaddeadde
4 enter send\_memory\_log\_req cookie: 4
4 exit send\_memory\_log\_req
4 enter da\_test runner. -rumifact=1
4 -time\_to\_first\_event=0
4 -time\_to\_last\_event=-2032137957
4 -sample\_ts=10622073335
4 -total\_samples=0
4 -avg\_delta=0
4 -recvd\_phy\_config\_sample\_rate=0.000000
4 -random\_seed\_used=1840104635
4 -num\_request\_sent=2
4 -first\_sample\_timestamp=0
4 received event: PASS
4 enter send\_memory\_log\_req cookie: 4
4 exit send\_memory\_log\_req
4 PASS

**Output**

On the console command line, this test outputs `PASS` or `FAIL`,
which indicates only the test execution status.

#### Use the sensor workhorse test to perform stress test of sensors

see_workhorse [-sensor=<sensor_type>][-sample_rate=<min | max | number>] [-batch_period=<seconds>] [-calibrated=<0 | 1>] [-wakeup=<0 | 1>]
    Copy to clipboard

Table : Parameters of see_workhorse

| Flags | Type | Value range | Units | Notes |
| --- | --- | --- | --- | --- |
| `sensor` | `string` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">accel</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">gyro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">sensor_temperature</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">pressure</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">mag</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">humidity</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">ambient_temperature</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">ultra_violet</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">proximity</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">ambient_light</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">rgb</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">hall</span></code></p></li><br><li><p>Any custom sensor added</p></li><br></ul> | N.A. | Mandatory argument: Limited to the available sensor types. |
| `on_change` | `int` | 0 | 1 | N.A. | <ul class="simple"><br><li><p>0 selects using <code class="docutils literal notranslate"><span class="pre">SNS_STD_SENSOR_STREAM_TYPE_STREAMING</span></code>.</p></li><br><li><p>1 selects using <code class="docutils literal notranslate"><span class="pre">SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE</span></code>.</p></li><br></ul> |
| `sample_rate` | `float` | Positive floating point number values:<br><ul class="simple"><br><li><p>-1: Maximum sampling rate</p></li><br><li><p>-2: Minimum sampling rate</p></li><br></ul> | Hz | Mandatory for streaming sensors, optional for on-change sensors. |
| `batch_period` | `float` | Positive floating point numbers | Seconds | Same as the batch period or report period. |
| `calibrated` | `int` | 0 | 1 | N.A. | <ul class="simple"><br><li><p>0: nop (default).</p></li><br><li><p>1: if the <code class="docutils literal notranslate"><span class="pre">sensor_type</span></code> is gyro or mag, then also activate <code class="docutils literal notranslate"><span class="pre">gyro_cal</span></code> or <code class="docutils literal notranslate"><span class="pre">/mag_cal</span></code>, respectively.</p></li><br></ul> |
| `wakeup` | `int` | 0 | 1 | NA | <ul class="simple"><br><li><p>0: sets <code class="docutils literal notranslate"><span class="pre">suspend_config</span></code> wake-up to <code class="docutils literal notranslate"><span class="pre">SEE_CLIENT_DELIVERY_NO_WAKEUP</span></code>.</p></li><br><li><p>1: sets <code class="docutils literal notranslate"><span class="pre">suspend_config</span></code> wake-up to <code class="docutils literal notranslate"><span class="pre">SEE_CLIENT_DELIVERY_WAKEUP</span></code> (default).</p></li><br></ul> |
| `display_events` | `int` | 0 | 1 | N.A. | Display sensor events in JSON format, using the event callbacks. |

**Sensor workhorse examples**

For instance, use the following command to stream the accelerometer data
at the maximum rate for 30 sec:

see_workhorse -sensor=accel -sample_rate=max -duration=30 -display_events=1
    Copy to clipboard

root@qcm6490:~# see_workhorse -sensor=accel -sample_rate=max -duration=30 -display_events=1
    see_workhorse version 2.04
    20:22:15.406 see_workhorse -sensor=accel -sample_rate=max -duration=30 -display_events=1
    begin usta_get_sensor_list
    Copy to clipboard

20:22:15.731 stream_sensor( accel)
    20:22:15.731 + sample_rate: 500.000000 hz
    20:22:15.838 config_stream_sensor() complete rc 0
    20:22:15.838 sleep(30) seconds
    
    "sns_client_event_msg" : {
     "suid" : {
      "suid_low" : "0x58442ede47acd316",
      "suid_high" : "0x61ab5376b4a5c9aa"
     },
     "events" : [
      {
       "msg_id" : 768,
       "timestamp" : 78497742089,
       "payload" : {
        "sample_rate" : 500.000000,
        "water_mark" : 1,
    Copy to clipboard

### Sensing hub simulator (SHS)

SHS enables you to build algorithms for QSH using a x86 Linux platform. See [Sensing Hub Simulator](https://docs.qualcomm.com/bundle/resource/topics/80-P9361-25/user_guide.html), for more information.

### Miscellaneous tools

Use the following tools for the build environment and functional diagnosis:

- Qualcomm® Hexagon™ DSP toolchain: Hexagon 8.4.07 toolchain for the build environment.
- QXDM Professional™ Tool: It’s a diagnostic client.

    - The QSH framework can call the macros and APIs directly to send
the debug information to print strings and log packets.
    - The QXDM logs are primarily used for the aDSP side debugging. For
more information, see
[Troubleshoot sensors](https://docs.qualcomm.com/bundle/resource/topics/80-70022-7A/debugging.html).

    - QXDM Professional requires a USB connection. The
application processors have direct connectivity to a USB port,
whereas the aDSP doesn’t have such connectivity. For more information, see [User Guide - Qualcomm® Package Manager 3 Documentation](https://qpm.qualcomm.com/assets/userguide/external/book/0.UserGuide/UserGuide.html).

## Verify sensors

You can determine whether the configured QSH functionalities are operating properly or require attention for any discrepancies using the tools available for verifying these functionalities. You can use the test tool or the QXDM Professional tool to examine the configured settings and take the necessary action.

**Use test tool to display sensor attributes**

The `ssc_sensor_info` test tool verifies the QSH
functionality and lists the supported sensors with their
capabilities. This test tool runs on the HLOS.

ssc_sensor_info
    Copy to clipboard

The following shell output lists all the supported sensors and their
attributes:

[root@qcm6490](mailto:root&#37;&#52;&#48;qcm6490):~# ssc\_sensor\_info
ssc\_sensor\_info v1.86

SUID           = 0xebd5604d09d379bca54dcf30ec041e0f
NAME           = ak0991x
VENDOR         = akm
TYPE           = mag
AVAILABLE      = true
VERSION        = 2.62.47
API            = sns\_mag.proto
RATES          = [1.000000, 10.000000, 20.000000, 50.000000, 100.000000]
RESOLUTIONS    = 0.150000
RANGES         = [-4912.000000,4912.000000]
DRI            = false
FIFO\_SIZE      = 0
STREAM\_TYPE    = streaming
STREAM\_SYNC    = false
DYNAMIC        = false
EVENT\_SIZE     = 16
OP\_MODES       = [LOW\_POWER, LOW\_NOISE]
ACTIVE\_CURRENT = 900
SLEEP\_CURRENT  = 3
HW\_ID          = 0
RIGID\_BODY     = display
PHYSICAL\_SENSOR       = true
PHYSICAL\_SENSOR\_TESTS = [3, 1]
SELECTED\_RESOLUTION   = 0.150000
SELECTED\_RANGE        = [-4912.000000,4912.000000]

SUID           = 0xaddeaddeaddeaddeaddeaddeaddeadde
NAME           = da\_test
VENDOR         = QTI
TYPE           = da\_test
AVAILABLE      = true
VERSION        = 0.51.0
API            = sns\_da\_test.proto
STREAM\_TYPE    = on\_change

SUID           = 0x69def905fea2fbac6a43ca273221a2eb
NAME           = aont
VENDOR         = QTI
TYPE           = aont
AVAILABLE      = true
VERSION        = 0.0.1
API            = sns\_aont.proto
STREAM\_TYPE    = on\_change

SUID           = 0xabababababababababababababababab
NAME           = suid
VENDOR         = QTI
TYPE           = suid
AVAILABLE      = true
VERSION        = 0.0.1
API            = sns\_suid.proto
STREAM\_TYPE    = single\_output

SUID           = 0xe12754a7007f27595e2541b4701e2275
NAME           = registry
VENDOR         = QTI
TYPE           = registry
AVAILABLE      = true
VERSION        = 0.0.1
API            = sns\_registry.proto
STREAM\_TYPE    = single\_output

SUID           = 0xadfeadfeadfeadfeadfeadfeadfeadfe
NAME           = da\_test\_big\_image
VENDOR         = QTI
TYPE           = da\_test
AVAILABLE      = true
VERSION        = 0.49.0
API            = sns\_da\_test.proto
STREAM\_TYPE    = on\_change

SUID           = 0x61ab5376b4a5c9aa58442ede47acd316
NAME           = icm4x6xx
VENDOR         = TDK-Invensense
TYPE           = accel
AVAILABLE      = true
VERSION        = 1.65.2
API            = sns\_accel.proto
RATES          = [12.500000, 25.000000, 50.000000, 100.000000, 200.000000, 500.000000]
RESOLUTIONS    = [0.000019, 0.000037, 0.000075, 0.000150, 0.000299]
RANGES         = [[-9.806650,9.806650], [-19.613300,19.613300], [-39.226601,39.226601], [-78.453201,78.453201], [-156.906403,156.906403]]
DRI            = true
FIFO\_SIZE      = 200
STREAM\_TYPE    = streaming
STREAM\_SYNC    = false
DYNAMIC        = false
EVENT\_SIZE     = 16
OP\_MODES       = [LPM, NORMAL, HIGH\_PERF]
ACTIVE\_CURRENT = [50, 240, 240]
SLEEP\_CURRENT  = 6
HW\_ID          = 0
RIGID\_BODY     = display
PHYSICAL\_SENSOR       = true
PHYSICAL\_SENSOR\_TESTS = [3, 2, 1]
SELECTED\_RESOLUTION   = 0.000299

For troubleshooting common issues, see [Troubleshoot sensors](https://docs.qualcomm.com/doc/80-70022-7/topic/debug.html#debug).

**Use QXDM Professional to display sensor logs**

The following QXDM output shows the verification/confirmation logs for all the supported sensors and their attributes in a low-power processor:

[ 123/   2]   MSG    18:47:22.898750     SNS PLATFORM/High          [sns\_registry\_parser.c   2099] REG INIT DONE… ts=63248955
[ 122/   1]   MSG    18:47:22.925000     SNS FRAMEWORK/Medium       [  sns\_diag\_service.c   1072] Sensor registry Vendor:QTI SSID:53 registered with diag
[ 122/   1]   MSG    18:47:22.925000     SNS FRAMEWORK/Medium       [        sns\_sensor.c    769] Populating sensor b2926130 in island: 2, with SUID e12754a7 007f2759 5e2541b4 701e2275
[ 122/   2]   MSG    18:47:22.925000     SNS FRAMEWORK/High         [sns\_attribute\_service.c    584] Sensor : registry, suid\_populated : 1, available : 1
[ 122/   2]   MSG    18:47:22.925000     SNS FRAMEWORK/High         [sns\_attribute\_service.c    594] Avail:    B2926130  registry
[ 123/   2]   MSG    18:47:22.925000     SNS PLATFORM/High          [sns\_registry\_sensor.c    284] Successfully initialized registry
[ 122/   1]   MSG    18:47:22.925000     SNS FRAMEWORK/Medium       [sns\_stream\_service.c    150] Created data stream to Sensor ‘registry’ (b2926130) from Sensor ‘suid’ (b2922018): b296fd28
[ 122/   1]   MSG    18:47:22.925000     SNS FRAMEWORK/Medium       [sns\_stream\_service.c    686] Add request b296fdc0 on stream b296fd28 (length 20; ID 512)
[ 122/   0]   MSG    18:47:22.926250     SNS FRAMEWORK/Low          [sns\_stream\_service.c    548] Process request for Sensor b2926130 on b296fd28
[ 122/   0]   MSG    18:47:22.926250     SNS FRAMEWORK/Low          [   sns\_suid\_sensor.c   1050] send\_suid\_event dt=registry, default=1
[ 123/   2]   MSG    18:47:22.926250     SNS PLATFORM/High          [         sns\_q6\_pm.c    365] Deregister\_client: B2927B30
[ 123/   2]   MSG    18:47:22.926250     SNS PLATFORM/High          [sns\_registry\_sensor.c    366] Processed : SSCRPCD UP Signal
[ 122/   0]   MSG    18:47:22.926250     SNS FRAMEWORK/Low          [   sns\_suid\_sensor.c   1050] send\_suid\_event dt=registry, default=1
[ 122/   1]   MSG    18:47:22.926250     SNS FRAMEWORK/Medium       [   sns\_data\_stream.c    551] sns\_data\_stream\_deinit b29231d0 removing=0
[ 122/   1]   MSG    18:47:22.926250     SNS FRAMEWORK/Medium       [sns\_stream\_service.c    686] Add request b2927b30 on stream b29231d0 (length 0; ID 120)
[ 122/   0]   MSG    18:47:22.926250     SNS FRAMEWORK/Low          [   sns\_suid\_sensor.c   1050] send\_suid\_event dt=registry, default=1
[ 123/   2]   MSG    18:47:22.926250     SNS PLATFORM/High          [   sns\_gdsc\_island.c    109] gdsc\_client\_cnt(2), sns\_gdsc\_mode(1)
[ 122/   1]   MSG    18:47:22.926250     SNS FRAMEWORK/Medium       [sns\_stream\_service.c    150] Created data stream to Sensor ‘timer’ (b2118e08) from Sensor ‘power\_sensor’ (b2922c78): b2931c48
[ 122/   0]   MSG    18:47:22.926250     SNS FRAMEWORK/Low          [   sns\_suid\_sensor.c   1050] send\_suid\_event dt=registry, default=1
[ 122/   1]   MSG    18:47:22.926250     SNS FRAMEWORK/Medium       [sns\_stream\_service.c    686] Add request b2123580 on stream b2931c48 (length 16; ID 512)
[ 122/   0]   MSG    18:47:22.926250     SNS FRAMEWORK/Low          [sns\_stream\_service.c    548] Process request for Sensor b2118e08 on b2931c48
[ 122/   0]   MSG    18:47:22.926250     SNS FRAMEWORK/Low          [   sns\_suid\_sensor.c   1050] send\_suid\_event dt=registry, default=1

For more information about an individual sensor level verification, see
[Tools](https://docs.qualcomm.com/doc/80-70022-7/topic/test_troubleshoot.html#test-tools).

## Test sensors on platform

To use a sensor test application, see [Test sensors on the Dragonwing RB3 Gen 2 Development Kit](https://docs.qualcomm.com/doc/80-70022-7/topic/test_sensors.html#test-sensors).

Next steps

- [Troubleshoot sensors](https://docs.qualcomm.com/doc/80-70022-7/topic/debug.html)

Last Published: Oct 08, 2025

[Previous Topic
Calibrate sensors](https://docs.qualcomm.com/bundle/publicresource/80-70022-7/topics/calibrate.md) [Next Topic
Troubleshoot sensors](https://docs.qualcomm.com/bundle/publicresource/80-70022-7/topics/debug.md)