# Platform
Source: [https://docs.qualcomm.com/doc/80-70014-7/topic/platform.html](https://docs.qualcomm.com/doc/80-70014-7/topic/platform.html)
The Qualcomm® RB3 Gen 2 development kit includes an application processor and the Hexagon
DSP also called as the low-power processor. The QSH resides on the low-power processor
that runs with Qualcomm real time (QuRT™) OS. The QSH client API resides on the
application processor that runs with Linux OS. The QuRT OS is designed for the Qualcomm
Hexagon™ processor.
Note: The information on this page is applicable to both QCS6490 and QCS5430.
### RB3 Gen 2 development kit
The RB3 Gen 2 development kit includes the following hardware, sensor parts, and
connectivity configurations.
**Hardware specification for low-power processor**
- CPU clock up to 1.4 GHz Turbo
- Low-power island
- 2 MB local memory
- 1 MB reserved for QSH and relevant CoreBSP dependencies
- 1 MB reserved for audio and relevant CoreBSP dependencies
- Five dedicated buses for sensors: one I^3^C, one SPI, one
I^2^C, and two UARTs
- Twelve dedicated GPIOs with local memory for sensors
For more information on the low-power processor, see [RB3 Gen 2 development kit](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-251).
**Sensors on the platform**
The following table lists the sensors supported on the RB3 Gen 2 development kit:
Table : Core kit sensor
| **Placement** | **Sensor part** | **Sensor type** |
| --- | --- | --- |
| Mainboard | ICM42688 | Accelerometer and gyroscope |
| **Placement** | **Sensor part** | **Sensor type** |
| --- | --- | --- |
| Mainboard | ICM42688 | Accelerometer and gyroscope |
| Vision mezzanine | ICM42688 | Accelerometer and gyroscope |
| Vision mezzanine | ICP-10111 | Pressure/barometer |
| Vision mezzanine | AK09915 | Magnetometer |
| | | |
| | | |
Note: On the Vision kit only one
accelerometer and gyroscope sensor part can be enabled at a time.
**Sensors and serial bus configuration**
The following table lists the GPIO numbers, serial bus, QSH registry configuration,
and interrupts for different sensors on the RB3 Gen 2 development kit:
| GPIOs | Interface | Interface | Sensors connected | QSH registry parameters | Interrupts | Interrupts |
| --- | --- | --- | --- | --- | --- | --- |
| GPIO\_159 | I^2^C | I^2^C | Magnetometer (AK09915) Pressure (ICP-10111) | `bus_type: 0 (SNS_BUS_I2C) `
`bus_instance: 1`
`max_bus_speed_khz: 400`
`slave_config: `: I^2^C slave address | Polling Note: Pressure and magnetometer sensors are configured in the Polling mode in the RB3 Gen 2 development kit. | Polling Note: Pressure and magnetometer sensors are configured in the Polling mode in the RB3 Gen 2 development kit. |
| GPIO\_160 | I^2^C | I^2^C | Magnetometer (AK09915) Pressure (ICP-10111) | `bus_type: 0 (SNS_BUS_I2C) `
`bus_instance: 1`
`max_bus_speed_khz: 400`
`slave_config: `: I^2^C slave address | Polling Note: Pressure and magnetometer sensors are configured in the Polling mode in the RB3 Gen 2 development kit. | Polling Note: Pressure and magnetometer sensors are configured in the Polling mode in the RB3 Gen 2 development kit. |
| GPIO\_161 | I^3^C | I^3^C | Not connected | `bus_type: 3 (SNS_BUS_I3C_SDR) ` `bus_instance: 2`
`slave_config: 0 `: For SPI, this indicates the chip-select line for the slave. | GPIO\_103 | GPIO\_103 |
| GPIO\_164 | SPI | SPI | Accelerometer and gyroscope (ICM42688) | `bus_type: 1 (SNS_BUS_SPI)`
` bus_instance: 3`
`max_bus_speed_khz: 9600 `
`slave_config: 0 `: For SPI, this indicates the chip-select line for the slave. | GPIO\_103 | GPIO\_103 |
| GPIO\_165 | SPI | SPI | Accelerometer and gyroscope (ICM42688) | `bus_type: 1 (SNS_BUS_SPI)`
` bus_instance: 3`
`max_bus_speed_khz: 9600 `
`slave_config: 0 `: For SPI, this indicates the chip-select line for the slave. | GPIO\_103 | GPIO\_103 |
| GPIO\_166 | SPI | SPI | Accelerometer and gyroscope (ICM42688) | `bus_type: 1 (SNS_BUS_SPI)`
` bus_instance: 3`
`max_bus_speed_khz: 9600 `
`slave_config: 0 `: For SPI, this indicates the chip-select line for the slave. | GPIO\_103 | GPIO\_103 |
| GPIO\_171 | UART | UART | BTLE | `bus_type: 2 (SNS_BUS_UART)` ` bus_instance: 36` | N.A. | N.A. |
| GPIO\_172 | UART | UART | BTLE | `bus_type: 2 (SNS_BUS_UART)` ` bus_instance: 36` | N.A. | N.A. |
| GPIO\_173 | UART | UART | Debug | `bus_type: 2 (SNS_BUS_UART)` ` bus_instance: 7` | N.A. | N.A. |
| GPIO\_174 | UART | UART | Debug | `bus_type: 2 (SNS_BUS_UART)` ` bus_instance: 7` | N.A. | N.A. |
| | | | | | | |
| | | | | | | |
| | | | | | | |
## Set up sensors
Source: [https://docs.qualcomm.com/doc/80-70014-7/topic/platform.html](https://docs.qualcomm.com/doc/80-70014-7/topic/platform.html)
Use the following resources to set up and validate the sensors based on either the Core
kit or the Vision kit.
Figure : Setup sensors
### Core kit
**Hardware set up**: The following resources cover the hardware set up to enable
the sensor on the main board.
Table : Main board DIP switch (DIP_SW_0) setting
| DIP switch number | State | Purpose |
| --- | --- | --- |
| 5 | OFF | Enable the sensor on the main board. |
Figure : DIP switch setting to enable accelerometer and gyroscope sensor on main
board

**Software set up**: No software change is required to enable the accelerometer
and gyroscope sensor on the Core kit.
### Vision kit
**Hardware set up**: The following resources cover the hardware set up to enable
sensors on the vision mezzanine board.
Table : Main board DIP switch (DIP_SW_0) setting
| DIP switch number | State | Purpose |
| --- | --- | --- |
| 5 | ON | Disable the sensor on the main board. |
Figure : DIP switch setting to disable accelerometer and gyroscope sensor on main
board

Table : Vision mezzanine DIP switch (DIP1) setting
| DIP switch number | State | Purpose |
| --- | --- | --- |
| 1 | ON | Enable the accelerometer and gyroscope sensor. |
| 4 | ON | Enable the pressure sensor. |
| 5 | ON | Enable the magnetometer sensor. |
Table : Vision mezzanine DIP switch (DIP2) setting
| DIP switch number | State | Purpose |
| --- | --- | --- |
| 5 | ON | Enable the accelerometer and gyroscope sensor. |
Figure : DIP switch setting to enable all sensors on vision mezzanine
board

**Software set up**: No software change is required to enable the sensors on the
Vision kit.
**Use an accelerometer and gyroscope on the Vision kit main board (optional)**
If you are using the accelerometer and gyroscope sensor on the main board instead of
the accelerometer and gyroscope sensor on the vision mezzanine board, then do the
following:
1. Set up the hardware DIP switches as mentioned in the following table to
enable the accelerometer and gyroscope sensor on the main board and disable
the accelerometer and gyroscope sensor on the vision mezzanine board.
Table : Main board DIP switch (DIP_SW_0) setting
| DIP switch number | State | Purpose |
| --- | --- | --- |
| 5 | OFF | Enable the sensor on the main board. |
Table : Vision mezzanine DIP switch (DIP1) setting
| DIP switch number | State | Purpose |
| --- | --- | --- |
| 1 | OFF | Disable the accelerometer and gyroscope sensor. |
Table : Vision mezzanine DIP switch (DIP2) setting
| DIP switch number | State | Purpose |
| --- | --- | --- |
| 5 | OFF | Disable the accelerometer and gyroscope sensor. |
2. Open the `json.lst` file, remove the
`qcm6490_rbx_navmez_icm4x6xx_0.json` entry (if present),
and save the `json.lst` file.
vi /etc/sensors/config/json.lstCopy to clipboard
3. Open the `qcm6490_rbx_icm4x6xx_0.json` file.
vi /etc/sensors/config/qcm6490_rbx_icm4x6xx_0.jsonCopy to clipboard
Add
the value 2 into the existing `platform_subtype_id` field
as shown below, and save the
`qcm6490_rbx_icm4x6xx_0.json`
file.
"platform_subtype_id": ["5", "2"]Copy to clipboard
4. To remove the existing parsed registry files, run the following
command:
rm -rf /var/cache/sensors/registry/registry/*Copy to clipboard
5. To reboot the device, run the following
command:
rebootCopy to clipboard
6. To verify if the registry files are parsed or not, run the following command
and look for the files that are parsed:
ls /var/cache/sensors/registry/registryCopy to clipboard
- In case of the main board, you get the following
output:
qcm6490_rbx_icm4x6xx_0.json.icm4x6xx_0_platform.accel
qcm6490_rbx_icm4x6xx_0.json.icm4x6xx_0_platform.accel.fac_cal.bias
qcm6490_rbx_icm4x6xx_0.json.icm4x6xx_0_platform.gyro
qcm6490_rbx_icm4x6xx_0.json.icm4x6xx_0_platform.orientCopy to clipboard
- In case of the vision mezzanine board, you get the following
output:
qcm6490_rbx_navmez_icm4x6xx_0.json.icm4x6xx_0_platform.accel
qcm6490_rbx_navmez_icm4x6xx_0.json.icm4x6xx_0_platform.accel.fac_cal.bias
qcm6490_rbx_navmez_icm4x6xx_0.json.icm4x6xx_0_platform.gyro
qcm6490_rbx_navmez_icm4x6xx_0.json.icm4x6xx_0_platform.orientCopy to clipboard
Note: If the accelerometer and
gyroscope sensor on the main board is enabled and again the accelerometer and
gyroscope sensor on the vision mezzanine board must be enabled, then revert or
undo all the previous steps. After the reboot, on the next bootup verify that
multiple files with the `qcm6490_rbx_navmez_icm4x6xx_0` prefix
are present under the `/var/cache/sensors/registry/registry/`
path (as described in the step 6).
## Test sensors
Source: [https://docs.qualcomm.com/doc/80-70014-7/topic/platform.html](https://docs.qualcomm.com/doc/80-70014-7/topic/platform.html)
Use the sensor test application to validate the accelerometer, gyroscope, magnetometer,
and pressure sensor streaming. The `ssc_drva_test` tool is built by
default and located in `/usr/bin/`folder on the device.
- **Test the accelerometer and gyroscope sensor on the Core kit and the Vision kit**
The following is an example command for the accelerometer sensor:
ssc_drva_test -sensor=accel -duration=5 -sample_rate=500Copy to clipboard
The following snippet shows an example command that enables the accelerometer
sensor for 5 seconds at 500 Hz sample rate in the Streaming mode.
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
The following is the output of the test example:
- The `accel` sensor is enabled at 500 Hz. The sensor
hardware runs only at certain sample rates described in the sensor
hardware data sheet. For example, if the command is modified to request
`accel` data at 480 Hz, the `accel`
sensor still operates at 500 Hz.
- A total of 2513 acceleration samples are received during the test.
The following is an example command for the gyroscope
sensor:
ssc_drva_test -sensor=gyro -duration=5 -sample_rate=500Copy to clipboard
- **Test the magnetometer and pressure sensor on the Vision kit**
The following is an example command for the magnetometer sensor:
ssc_drva_test -sensor=mag -duration=5 -sample_rate=100Copy to clipboard
The following is an example command for the pressure sensor:
ssc_drva_test -sensor=pressure -duration=5 -sample_rate=25Copy to clipboard
Last Published: Jul 12, 2024
[Previous Topic
Verify](https://docs.qualcomm.com/bundle/publicresource/80-70014-7/topics/verify.md) [Next Topic
References](https://docs.qualcomm.com/bundle/publicresource/80-70014-7/topics/references.md)