1.. _x-nucleo-iks4a1: 2 3X-NUCLEO-IKS4A1: MEMS Inertial and Environmental Multi sensor shield 4#################################################################### 5 6Overview 7******** 8The X-NUCLEO-IKS4A1 is a motion MEMS and environmental sensor expansion board 9for the STM32 Nucleo. It is equipped with Arduino UNO R3 connector layout, and 10allows application development with features like sensor HUB (LSM6DSO16IS and 11LSM6DSV16X), camera module integration and Qvar touch/swipe gestures (thanks to 12the equipped electrode). 13 14.. image:: img/x-nucleo-iks4a1.jpg 15 :align: center 16 :alt: X-NUCLEO-IKS4A1 17 18More general information about the board can be found at the 19`X-NUCLEO-IKS4A1 website`_. 20 21Hardware Description 22******************** 23 24X-NUCLEO-IKS4A1 provides the following key features: 25 26 - LSM6DSO16IS: MEMS 3D accelerometer (±2/±4/±8/±16 g) + 3D gyroscope 27 (±125/±250/±500/±1000/±2000 dps) with ISPU (Intelligent Processing Unit) 28 - LIS2MDL: MEMS 3D magnetometer (±50 gauss) 29 - LIS2DUXS12: Ultra low-power MEMS 3D accelerometer (±2/±4/±8/±16 g) with 30 Qvar, AI, & anti-aliasing 31 - LPS22DF: Low-power and high-precision MEMS pressure sensor, 260-1260 hPa 32 absolute digital output barometer 33 - SHT40AD1B: High-accuracy, ultra-low-power relative humidity and temperature 34 sensor (by Sensirion) 35 - STTS22H: Low-voltage, ultralow-power, 0.5 °C accuracy temperature sensor 36 (–40 °C to +125 °C) 37 - LSM6DSV16X: MEMS 3D accelerometer (±2/±4/±8/±16 g) + 3D gyroscope 38 (±125/±250/±500/±1000/±2000/±4000 dps) with embedded sensor fusion, AI, Qvar 39 - DIL 24-pin socket available for additional MEMS adapters and other sensors 40 - Free comprehensive development firmware library and example for all sensors 41 compatible with STM32Cube firmware 42 - Equipped with Qvar touch/swipe electrode 43 - I²C sensor hub features on LSM6DSO and LSM6DSV16X available 44 - MIPI I3C® compatibility for communication with LIS2DUXS12, LSM6DSV16X and 45 LPS22DF 46 - Compatible with STM32 Nucleo boards 47 - Equipped with Arduino UNO R3 connector 48 - Equipped with industrial connector for IR sensor (STHS34PF80) application 49 development. It can be connected at the same time of external MEMS through 50 DIL24 adapter 51 - Available interface for external camera module applications coupled with 52 LSM6DSV16X through aux SPI (3/4 w) 53 - RoHS compliant 54 - WEEE compliant 55 - UKCA compliant 56 57Hardware Configuration 58********************** 59 60X-NUCLEO-IKS4A1 board can be configured in five different modes, which can be 61selected through J4 and J5 jumpers. Additional information about X-NUCLEO-IKS4A1 62configuration modes and how sensors are connected together can be found in the 63`X-NUCLEO-IKS4A1 user manual`_ 64 65.. _x-nucleo-iks4a1-mode-1: 66 67Mode 1: Standard Mode 68===================== 69 70In standard I2C mode, all devices are connected to an external main board via the 71same I2C bus. 72 73The board configuration is: 74 75 - J4: 1-2, 11-12 (STM_SDA = SENS_SDA, HUB_SDx = GND) 76 - J5: 1-2, 11-12 (STM_SCL = SENS_SCL, HUB_SCx = GND) 77 78.. _x-nucleo-iks4a1-mode-2: 79 80Mode 2: LSM6DSO16IS SensorHub Mode (SHUB2) 81========================================== 82 83In this sensor hub I2C mode, it is possible to power-up the 6-axes IMU 84(Inertial Measurement Unit) functionalities by collecting external data 85through a direct control of the on-board environmental sensors (temperature, 86pressure and magnetometer) and external sensor (DIL24) through the auxiliary 87I2Cz bus "SENS_I2C". LSM6DSV16X, LIS2DUXS12 and SHT40AD1B remains connected 88to the main bus "uC_I2C" coming from the external board. 89 90The board configuration is: 91 92 - J4: 7-8 (HUB2_SDx = SENS_SDA) 93 - J5: 7-8 (HUB2_SCx = SENS_SCL) 94 95.. _x-nucleo-iks4a1-mode-3: 96 97Mode 3: LSM6DSV16X SensorHub Mode (SHUB1) 98========================================= 99 100In this sensor hub, it is possible to power-up the 6-axes IMU (Inertial 101Measurement Unit) functionalities by collecting external data through 102a direct control of the on-board environmental sensors (temperature, 103pressure and magnetometer) and external sensor (DIL24) through the auxiliary 104I2C bus "SENS_I2C". LSM6DSO16IS, LIS2DUXS12 and SHT40AD1B remains connected 105to the main bus "uC_I2C" coming from the external board. 106 107The board configuration is: 108 109 - J4: 5-6 (HUB1_SDx = SENS_SDA) 110 - J5: 5-6 (HUB1_SDx = SENS_SDA) 111 112Mode 4: DIL24 SensorHub Mode 113============================ 114 115In case a sensor with sensor hub embedded functionality is mounted to the 116board through DIL24 adapter, it is possible to exploit this functionality 117as for LSM6DSO16IS and the LSM6DSV16X. In this configuration, may be necessary 118to connect the DIL24 to the external board through SPI lines in order to 119avoid an address conflict on I2C bus with the LSM6DSO16IS and the LSM6DSV16X. 120This is done by changing the SBx configuration. 121 122The board configuration is: 123 124 - J4: 9-10 (DIL_SDx = SENS_SDA) 125 - J5: 9-10 (DIL_SDx = SENS_SDA) 126 127Mode 5: LSM6DSO16IS as Qvar controller 128====================================== 129 130In this configuration, it is possible to use the equipped Qvar swipe electrode 131(by plugging it on JP6 and JP7 connectors) through the LSM6DSO16IS. 132 133The board configuration is: 134 135 - J4: 3-4 (HUB1_SDx = QVAR1) 136 - J5: 3-4 (HUB1_Scx = QVAR2) 137 138Devicetree Overlays 139******************* 140 141There are three predefined DT overlays in the board: 142 143- :zephyr_file:`boards/shields/x_nucleo_iks4a1/x_nucleo_iks4a1.overlay` 144 This overlay describes sensor connections (and matching h/w configuration to be done) 145 as explained in Standard Mode (:ref:`x-nucleo-iks4a1-mode-1`) 146- :zephyr_file:`boards/shields/x_nucleo_iks4a1/x_nucleo_iks4a1_shub1.overlay` 147 This overlay describes sensor connections (and matching h/w configuration to be done) 148 as explained in SHUB1 Mode (:ref:`x-nucleo-iks4a1-mode-3`) 149- :zephyr_file:`boards/shields/x_nucleo_iks4a1/x_nucleo_iks4a1_shub2.overlay` 150 This overlay describes sensor connections (and matching h/w configuration to be done) 151 as explained in SHUB2 Mode (:ref:`x-nucleo-iks4a1-mode-2`) 152 153Examples 154******** 155 156Three samples are provided as examples for ``x-nucleo-iks4a1`` shield, each one associated 157with one of the overlays described above: 158 159- :ref:`x-nucleo-iks4a1-std-sample` application, to be used when the shield is configured 160 in Standard Mode (Mode 1) 161- :ref:`x-nucleo-iks4a1-shub1-sample` application, to be used when the shield is configured 162 in SHUB1 Mode (Mode 3) 163- :ref:`x-nucleo-iks4a1-shub2-sample` application, to be used when the shield is configured 164 in SHUB2 Mode (Mode 2) 165 166See also :ref:`shields` for more details. 167 168.. _X-NUCLEO-IKS4A1 website: 169 http://www.st.com/en/ecosystems/x-nucleo-iks4a1.html 170 171.. _X-NUCLEO-IKS4A1 user manual: 172 https://www.st.com/resource/en/user_manual/um3239-getting-started-with-the-xnucleoiks4a1-motion-mems-and-environmental-sensor-expansion-board-for-stm32-nucleo-stmicroelectronics.pdf 173