1.. _x-nucleo-iks01a3:
2
3X-NUCLEO-IKS01A3: MEMS Inertial and Environmental Multi sensor shield
4#####################################################################
5
6Overview
7********
8The X-NUCLEO-IKS01A3 is a motion MEMS and environmental sensor expansion board
9for the STM32 Nucleo. It is equipped with Arduino UNO R3 connector layout, and
10is designed around the LSM6DSO 3D accelerometer and 3D gyroscope, the LIS2MDL
113-axis magnetometer, the LIS2DW12 3-axis accelerometer, the HTS221 humidity and
12temperature sensor, the LPS22HH pressure sensor, and the STTS751 temperature sensor.
13
14The X-NUCLEO-IKS01A3 interfaces with the STM32 microcontroller via the I2C pin,
15and it is possible to change the default I2C port.
16
17.. image:: img/x-nucleo-iks01a3.jpg
18     :align: center
19     :alt: X-NUCLEO-IKS01A3
20
21More information about the board can be found at the
22`X-NUCLEO-IKS01A3 website`_.
23
24Hardware Description
25********************
26
27X-NUCLEO-IKS01A3 provides the following key features:
28
29 - LSM6DO MEMS 3D accelerometer (±2/±4/±8/±16 g) and
30   3D gyroscope (±125/±250/±500/±1000/±2000 dps)
31 - LIS2MDL MEMS 3D magnetometer (±50 gauss)
32 - LIS2DW12 MEMS 3D accelerometer (±2/±4/±8/±16 g)
33 - LPS22HH MEMS pressure sensor, 260-1260 hPa absolute digital output barometer
34 - HTS221 capacitive digital relative humidity and temperature
35 - STTS751 Temperature sensor (-40 °C to +125 °C)
36 - DIL24 socket for additional MEMS adapters and other sensors (configurable in I2C or SPI)
37 - I2C sensor hub features on LSM6DSO available
38 - Compatible with STM32 Nucleo boards
39 - Equipped with Arduino UNO R3 connector
40 - RoHS compliant
41 - WEEE compliant
42
43Hardware Configuration
44**********************
45
46X-NUCLEO-IKS01A3 board connects the various devices on two separate I2C bus:
47
48- LIS2DW12 and LSM6DO are on I2C2
49- LIS2MDL, LPS22HH, HTS221 are STTS751 are on I2C1
50
51X-NUCLEO-IKS01A3 board can be configured in two different ways: Mode 1 and Mode 2
52
53
54Mode 1: Standard Mode
55=====================
56
57In standard I2C mode the two buses are connected together. As a consequence, all devices on the shield
58reside on the same I2C bus and are accessible from the main board through I2C bus.
59
60The jumper configuration to activate this mode is:
61
62- JP7 => 1-2, 3-4 (I2C1 = I2C2, I2Cx=GND)
63- JP8 => 1-2, 3-4 (I2C1 = I2C2, I2Cx=GND)
64
65
66Mode 2: SensorHub Mode
67======================
68
69In SensorHub mode LSM6DSO and LIS2DW12 are connected to I2C2 and are accessible from the main board.
70All the other devices are connected to LSM6DSO master through I2C1.
71
72The jumper configuration to activate this mode is:
73
74- JP7 => 2-3 (I2C1 = I2Cx)
75- JP8 => 2-3 (I2C1 = I2Cx)
76
77More information about X-NUCLEO-IKS01A3 configuration modes can be found in the
78`X-NUCLEO-IKS01A3 user manual`_
79
80Programming
81***********
82
83Two samples are provided as examples for ``x-nucleo-iks01a3`` shield:
84
85- :zephyr:code-sample:`x-nucleo-iks01a3-std` sample application, to be used when the shield is configured
86  in Standard Mode
87- :zephyr:code-sample:`x-nucleo-iks01a3-shub` sample application, to be used when the shield is configured
88  in SensorHub Mode
89
90See also :ref:`shields` for more details.
91
92References
93**********
94
95.. target-notes::
96
97.. _X-NUCLEO-IKS01A3 website:
98   https://www.st.com/en/ecosystems/x-nucleo-iks01a3.html
99
100.. _X-NUCLEO-IKS01A3 user manual:
101   https://www.st.com/resource/en/user_manual/dm00601501.pdf
102