# Sensor testing 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 facilitate 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`. | N.A. | Queries attribute information for the specified sensor type. |
| Log | `int` | 0 | 1 | N.A. | Enables or disables diagnostic (API) logs. |
| help(h) | `int` | N.A. | N.A. | 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 | N.A. | 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:~# 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
        Copy to clipboard
- Query all *accel* sensor attributes.

ssc_sensor_info -sensor=accel
        Copy to clipboard

root@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
        Copy to clipboard

**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> | N.A. | Mandatory argument: limited to the available sensor types. |
| `duration` | `float` | Positive values only | Seconds | 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 | Seconds | 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:~# 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
        Copy to clipboard
- 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:~# 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
        Copy to clipboard
- 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:~# 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
        Copy to clipboard

**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

The `see_workhorse` sensor workhorse tool does the following:

> 
> 
> - Operates specific sensors based on the command-line arguments.
> - Streamlines sensor testing and data collection in various configurations.

see_workhorse [-sensor=<sensor_type>][-sample_rate=<max | min | positive integer value>] [-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` | <ul class="simple"><br><li><p>Positive floating point number values</p></li><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 | N.A. | <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 10 sec:

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

root@rb3gen2-core-kit:~# see_workhorse -sensor=accel -sample_rate=-1 -duration=10 -display_events=1
    see_workhorse version 2.21
    06:47:56.554 see_workhorse -sensor=accel -sample_rate=-1 -duration=10 -display_events=1
    begin usta_get_sensor_list
    diag: Diag_LSM_Init: invoked for pid: 3119 with init_count: 0
    diag:failed to connect to diag socket
      Diag_LSM_Init: Failed to open handle to diag driver, error = 111end   usta_get_sensor_list
    por file: /etc/sensors/por_spec.txt not found.
    06:47:57.922 psalt->begin() took 1367 milliseconds
    06:47:57.922 get_sensor_suid( diag_sensor)
    06:47:57.922 get_sensor_suid( delta_angle)
    06:47:57.923 lookup: accel
    06:47:57.923 suid = [high 61ab5376b4a5c9aa, low 58442ede47acd316]
    06:47:57.923 -sensor=accel -rigid_body=[display]  found suid = 0x61ab5376b4a5c9aa58442ede47acd316
    06:47:57.923 is NOT POR.
    06:47:57.923 has max_rate: 500 hz
    06:47:57.924 begin iteration: 1
    06:47:57.924 stream_sensor( accel)
    06:47:57.924 + sample_rate: -1.000000 hz
    diag: Diag_LSM_Init: invoked for pid: 3119 with init_count: 0
    diag:failed to connect to diag socket
      Diag_LSM_Init: Failed to open handle to diag driver, error = 11106:47:58.000 config_stream_sensor() complete rc 0
    06:47:58.001 sleep(10) seconds
    
    "sns_client_event_msg" : {
      "suid" :
    
    {   "suid_low" : "0x58442ede47acd316",   "suid_high" : "0x61ab5376b4a5c9aa"  }
    
    ,
      "events" : [
      {
        "msg_id" : 130,
        "timestamp" : 28628090051,
        "payload" :
    
    {     "unknown_fields" : 1,     "field_1" : 5    }
    
      }
      ]
    },
      "Event Counter" : 1,
    "Time Elapsed" : 0
    }
    
    "sns_client_event_msg" : {
      "suid" :
    
     {   "suid_low" : "0x58442ede47acd316",   "suid_high" : "0x61ab5376b4a5c9aa"  }
    
    ,
      "events" : [
      {
        "msg_id" : 130,
        "timestamp" : 28628114513,
        "payload" :
    
    {     "unknown_fields" : 1,     "field_1" : 2    }
    
      }
      ]
    },
      "Event Counter" : 2,
    "Time Elapsed" : 0
    }
    06:48:08.001 awoke
    06:48:08.001 disable_sensor( accel)
    06:48:08.024 disable_sensor() complete rc 0
    06:48:08.024 end iteration: 1
    06:48:08.024 msg_id: 130, num_events: 2, first_ts: 28628090051, last_ts: 28628114513, avg_delta: 24462.000
    06:48:08.024 sleep(1.000) seconds
    06:48:09.025 awoke
    06:48:09.025 PASS see_workhorse -sensor=accel -sample_rate=-1 -duration=10 -display_events=1
    PASS see_workhorse -sensor=accel -sample_rate=-1 -duration=10 -display_events=1
    06:48:09.025 begin delete psalt
    06:48:09.038 end delete psalt
    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/doc/80-P9361-25), 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: A diagnostic client used for functional diagnosis and aDSP-side debugging.

    - 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/doc/80-80022-7A/topic/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 [Qualcomm® Package Manager 3 Documentation](https://qpm.qualcomm.com/assets/userguide/external/book/0.UserGuide/UserGuide.html).

Last Published: May 07, 2026

[Previous Topic
Troubleshoot sensors](https://docs.qualcomm.com/bundle/publicresource/80-80022-7/topics/debug.md) [Next Topic
Supported platforms](https://docs.qualcomm.com/bundle/publicresource/80-80022-7/topics/platform_setup.md)