1.. _x-nucleo-iks01a2:
2
3X-NUCLEO-IKS01A2: MEMS Inertial and Environmental Multi sensor shield
4#####################################################################
5
6Overview
7********
8The X-NUCLEO-IKS01A2 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 LSM6DSL 3D accelerometer and 3D gyroscope, the LSM303AGR
113D accelerometer and 3D magnetometer, the HTS221 humidity and temperature sensor
12and the LPS22HB pressure sensor.
13
14The X-NUCLEO-IKS01A2 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-iks01a2.jpg
18     :align: center
19     :alt: X-NUCLEO-IKS01A2
20
21More information about the board can be found at the
22`X-NUCLEO-IKS01A2 website`_.
23
24Hardware
25********
26
27X-NUCLEO-IKS01A2 provides the following key features:
28
29
30 - LSM6DSL MEMS 3D accelerometer (±2/±4/±8/±16 g) and
31   3D gyroscope (±125/±245/±500/±1000/±2000 dps)
32 - LM303AGR MEMS 3D accelerometer (±2/±4/±8/±16 g) and
33   MEMS3D magnetometer (±50 gauss)
34 - LPS22HB MEMS pressure sensor, 260-1260 hPa absolute digital output barometer
35 - HTS221: capacitive digital relative humidity and temperature
36 - DIL24 socket for additional MEMS adapters and other sensors
37 - I²C sensor hub features on LSM6DSL available
38 - Equipped with Arduino UNO R3 connector
39 - RoHS compliant
40
41
42More information about X-NUCLEO-IKS01A2 can be found here:
43       - `X-NUCLEO-IKS01A2 databrief`_
44
45Hardware Configuration
46**********************
47
48X-NUCLEO-IKS01A2 board connects the various devices on two separate I2C bus:
49
50- LSM6DL is on I2C2
51- LSM303AGR, LPS22HB, HTS221 are on I2C1
52
53X-NUCLEO-IKS01A2 board can be configured in two different ways: Mode 1 and Mode 2
54
55
56Mode 1: Standard Mode
57=====================
58
59In standard I2C mode the two buses are connected together. As a consequence, all devices on the shield
60reside on the same I2C bus and are accessible from the main board through I2C bus.
61
62The jumper configuration to activate this mode is:
63
64- JP7 => 1-2, 3-4 (I2C1 = I2C2, I2Cx=GND)
65- JP8 => 1-2, 3-4 (I2C1 = I2C2, I2Cx=GND)
66
67
68Mode 2: SensorHub Mode
69======================
70
71In SensorHub mode LSM6DSL is connected to I2C2 and is accessible from the main board.
72All the other devices are connected to LSM6DSL master through I2C1.
73
74The jumper configuration to activate this mode is:
75
76- JP7 => 2-3 (I2C1 = I2Cx)
77- JP8 => 2-3 (I2C1 = I2Cx)
78
79More information about X-NUCLEO-IKS01A2 configuration modes can be found in the
80`X-NUCLEO-IKS01A2 databrief`_
81
82
83Programming
84***********
85
86Two samples are provided as examples for ``x-nucleo-iks01a2`` shield:
87
88- :zephyr:code-sample:`x-nucleo-iks01a2-std` sample application, to be used when the shield is configured
89  in Standard Mode
90- :zephyr:code-sample:`x-nucleo-iks01a2-shub` sample application, to be used when the shield is configured
91  in SensorHub Mode
92
93See also :ref:`shields` for more details.
94
95References
96**********
97
98.. target-notes::
99
100.. _X-NUCLEO-IKS01A2 website:
101   https://www.st.com/en/ecosystems/x-nucleo-iks01a2.html
102
103.. _X-NUCLEO-IKS01A2 databrief:
104   https://www.st.com/resource/en/data_brief/x-nucleo-iks01a2.pdf
105