ST Microelectronics S R L STILE01 RF BT4.1 User Manual 1

ST Microelectronics S.R.L. RF BT4.1 1

User Manual

May 2016
DocID029208 Rev 2
1/37
www.st.com
User manual
Getting started with the software package for Bluetooth low
energy and sensors in BLUEMICROSYSTEM2
Introduction
The BLUEMICROSYSTEM2 expansion software package for STM32Cube lets you read and display
real-time environmental sensor data, digital microphone levels and acoustic source localization
information with a dedicated Android™/iOS™ application.
The package implements application level functions based on the Bluetooth low energy protocol and
enables communication with Android/iOS devices. Developers can use it to prototype applications with
Android/iOS services, and transmit real-time sensor data with ease.
The software runs on the STM32 microcontroller and includes drivers that recognize the Bluetooth low
energy (BlueNRG) hardware, the four sensor devices and 2 MEMS microphones. The expansion is built
on the STM32Cube framework for STM32 microcontrollers and comes with a sample implementation to
kick-start development.
STEVAL-STLKT01V1
Contents
STEVAL-STLKT01V1
2/37
DocID029208 Rev 2
Contents
1 BLUEMICROSYSTEM2 software description ................................ 5
1.1 Overview ........................................................................................... 5
1.2 Architecture ....................................................................................... 6
1.3 Folder structure ................................................................................. 7
1.4 APIs .................................................................................................. 8
1.5 Sample application description .......................................................... 8
1.6 Android and iOS sample client application ...................................... 11
2 System setup guide ....................................................................... 26
2.1 Hardware description ...................................................................... 26
2.1.1 STM32 Nucleo platform .................................................................... 26
2.1.2 X-NUCLEO-CCA02M1 expansion board ......................................... 26
2.1.3 X-NUCLEO-IDB04A1 expansion board............................................ 27
2.1.4 X-NUCLEO-IDB05A1 expansion board............................................ 28
2.1.5 X-NUCLEO-IKS01A1 expansion board ............................................ 29
2.2 Software description ........................................................................ 30
2.3 Hardware and software setup ......................................................... 31
2.3.1 Hardware setup ................................................................................ 31
2.3.2 Software setup .................................................................................. 31
2.3.3 System setup guide .......................................................................... 31
3 Revision history ............................................................................ 36
STDK-STILECS01V1
List of tables
DocID029208 Rev 2
3/37
List of tables
Table 1: Document revision history .......................................................................................................... 36
List of figures
STEVAL-STLKT01V1
4/37
DocID029208 Rev 2
List of figures
Figure 1: BLUEMICROSYSTEM2 software architecture ............................................................................ 7
Figure 2: BLUEMICROSYSTEM2 package folder structure ....................................................................... 7
Figure 3: Terminal setting ........................................................................................................................... 8
Figure 4: Initialization phase ....................................................................................................................... 9
Figure 5: UART console output when one device is connected to the board........................................... 11
Figure 6: BlueMS (Android version) initial page after BLE connection ..................................................... 12
Figure 7: BlueMS (Android version) osxMotionFX sensor fusion page .................................................... 13
Figure 8: BlueMS (Android version) popup windows ................................................................................ 14
Figure 9: BlueMS (Android version) mic level plot .................................................................................... 15
Figure 10: BlueMS (Android version) accelerometer plot ......................................................................... 16
Figure 11: BlueMS (Android version) menu selection .............................................................................. 17
Figure 12: BlueMS (Android version) Serial console (stdout/stderr) ........................................................ 18
Figure 13: BlueMS (Android version) Debug console (stdin/stdout/stderr) .............................................. 19
Figure 14: BlueMS (Android version) LSM6DS3 DIL24 hardware features ............................................. 20
Figure 15: BlueMS (Android version) LSM6DS3 DIL24 examples: pedometer, wake up, orientation,
double tap. ................................................................................................................................................ 21
Figure 16: BlueMS (Android version) osxMotionAR activity recognition page ......................................... 22
Figure 17: BlueMS (Android version) osxMotionCP carry position recognition page ............................... 23
Figure 18: BlueMS (Android version) osxMotionGR gesture recognition page ........................................ 24
Figure 19: BlueMS (Android version) example of audio source localization plot value ............................ 25
Figure 20: STM32 Nucleo board ............................................................................................................... 26
Figure 21: X-NUCLEO-CCA02M1 board .................................................................................................. 27
Figure 22: X-NUCLEO-IDB04A1 expansion board ................................................................................... 28
Figure 23: X-NUCLEO-IDB05A1 expansion board ................................................................................... 29
Figure 24: X-NUCLEO-IKS01A1 board .................................................................................................... 30
Figure 25: LSM6DS3 DIL24 adapter board .............................................................................................. 30
Figure 26: STM32 Nucleo plus X-NUCLEO-CCA02M1 boards ............................................................... 32
Figure 27: STM32 Nucleo plus X-NUCLEO-CCA02M1 plus X-NUCLEO-IDB04A1 boards .................... 32
Figure 28: STM32 Nucleo plus X-NUCLEO-CCA02M1 plus X-NUCLEO-IDB04A1 plus X-NUCLEO-
IKS01A1 plus LSM6DS3 DIL24 boards .................................................................................................... 33
Figure 29: Resistors to remove from X-NUCLEO-IKS01A1 board ........................................................... 34
Figure 30: Solder bridges to close on X-NUCLEO-CCA02M1 board (when using NUCLEO-L476RG
board) ........................................................................................................................................................ 35
STEVAL-STLKT01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
5/37
1 BLUEMICROSYSTEM2 software description
1.1 Overview
The key features of the BLUEMICROSYSTEM2 package are:
Complete middleware to build applications using temperature and humidity sensors
(HTS221), pressure sensor (LPS25HB), motion sensors (LIS3MDL and LSM6DS0)
and microphone sensor (2x MP34DT01-M)
Compatible with the motion sensor LSM6DS3 DIL24 expansion component
Very low power Bluetooth low energy (BlueNRG) single-mode network processor for
transmitting information to one client.
osxMotionFX (iNEMOEngine PRO) real-time motion sensor data fusion (under
OPEN.MEMS license) to combine the output from multiple MEMS sensors.
Accelerometer-only algorithms:
osxMotionAR (iNEMOEngine PRO) real- time activity-recognition algorithm
(under OPEN.MEMS license)
osxMotionCP (iNEMOEngine PRO) real-time carry-position recognition algorithm
(under OPEN.MEMS license)
osxMotionGR (iNEMOEngine PRO) real- time gesture recognition algorithm
(under OPEN.MEMS license)
osxAcousticSL Real-time sound source localization software expansion (under
OpenSoftwareX license) based on two or four digital microphone audio signals.
Based on common STM32Cube framework
BlueMS compatible application for Android/iOS (version 2.0.0 or above) for visualizing
information sent via Bluetooth.
Free, user-friendly license terms
Sample implementation available on X-NUCLEO-CCA02M1, X-NUCLEO-IKS01A1
and X-NUCLEO-IDB04A1 or X-NUCLEO-IDB05A1 boards when connected to a
NUCLEO-F401RE or NUCLEO-L476RG board.
This software creates the following Bluetooth services:
1. The first service exposes all the hardware features with the following characteristics:
Temperature
Pressure
Humidity
3D gyroscope, 3D magnetometer, 3D accelerometer
Microphones dB noise level.
2. The second service exposes the software characteristics:
the quaternions generated by the osXMotionFX library in short precision
the activity recognized using the osxMotionAR algorithm
the carry position recognized using the osxMotionCP algorithm
the gesture recognized using the osxMotionGR algorithm
the audio source localization (for only F4 STM32 Nucleo motherboard) using the
osxAcousticSL algorithm
3. The third service exposes the Console service with:
stdin/stdout for bi-directional communication between client and server
stderr for a mono-directional channel from the STM32 Nucleo board to an
Android/iOS device
4. The last service is for transmitting/resetting the calibration status and enabling the
following LSM6DS3 DIL24 expansion hardware features when it is mounted:
Pedometer
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
6/37
DocID029208 Rev 2
Free Fall detection
Single tap detection
Double tap detection
Wake up detection
Tilt detection
3D orientation
This software gathers the temperature, humidity, pressure, audio and motion sensors
drivers for the HTS221, LPS25H, MP34DT01-M, LSM6DS0 (or LSM6DS3) and LIS3MDL
devices, running on STM32.
This package is compatible with the BlueMS Android/iOS (Version 2.0.0 or higher)
application available at respective Play/iTunes stores, which can be used for displaying
information sent via the Bluetooth low energy protocol. To use the hardware features of the
LSM6DS3 DIL24 device, use BlueMS Android/iOS application version 2.2.0 or higher.
1.2 Architecture
The software is based on the STM32CubeHAL hardware abstraction layer for the STM32
microcontroller.
The package provides a Board Support Package (BSP) for the sensors expansion board
and middleware components for serial communication with a PC.
To access and use the sensor expansion board, the application software uses:
STM32Cube HAL layer: provides a simple, generic and multi-instance set of generic
and extension APIs (application programming interfaces) to interact with the upper
layer application, libraries and stacks. It is directly based on a generic architecture and
allows the layers that are built on it, such as the middleware layer, to implement their
functions without requiring the specific hardware configuration for a given
microcontroller unit (MCU). This structure improves library code reusability and
guarantees easy portability across other devices.
Board support package (BSP) layer: supports the peripherals on the STM32 Nucleo
board (except the MCU) with a limited set of APIs providing a programming interface
for certain board-specific peripherals like the LED, the user button, etc., and helps
determine the specific board version. For the sensor expansion board, it provides the
programming interface for various inertial and environmental sensors and support for
initializing and reading sensor data.
STEVAL-STLKT01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
7/37
Figure 1: BLUEMICROSYSTEM2 software architecture
1.3 Folder structure
This section provides an overview of the package folders structure.
The next figure outlines the architecture of the package
Figure 2: BLUEMICROSYSTEM2 package folder structure
The following folders are included in the software package:
Documentation: contains a compiled HTML file generated from the source code,
which details the software components and APIs.
Drivers: contains the HAL drivers, the board-specific drivers for each supported board
or hardware platform, including the on-board components, and the CMSIS vendor-
independent hardware abstraction layer for the Cortex-M processor series.
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
8/37
DocID029208 Rev 2
Middlewares: contains libraries and protocols for BlueNRG Bluetooth low energy,
osx.MotionFX (iNEMOEngine PRO) sensors fusion library, osx.MotionAR
(iNEMOEngine PRO) activity-recognition library, osx.MotionCP (iNEMOEngine PRO)
carry-position recognition library, osx.MotionGR (iNEMOEngine PRO) gesture
recognition library and osx.AcousticSL sound source localization library.
Projects: contains a sample application used for transmitting the output of the sensor
data and of the osx.MotionFX sensor fusion, osx.MotionAR activity-recognition,
osx.MotionCP carry-position, osx.MotionGR gesture recognition and osx.AcousticSL
sound source localization libraries by using the Bluetooth low energy protocol provided
for the NUCLEO-F401RE/NUCLEO-L476RG platforms through the IAR Embedded
Workbench for ARM, RealView Microcontroller Development Kit (MDK-ARM) and
System Workbench for STM32 development environments.
1.4 APIs
Detailed user-API technical information with full function and parameter descriptions is
available in a compiled HTML file in the package “Documentation” folder.
1.5 Sample application description
A sample application using the X-NUCLEO-IKS01A1, X-NUCLEO-CCA02M1 and X-
NUCLEO-IDB04A1 or X-NUCLEO-IDB05A1 expansion boards with the NUCLEO-F401RE
or NUCLEO-L476RG board is provided in the “Projects” directory. Ready to build projects
are available for multiple IDEs.
Application behavior can be controlled via UART with a terminal application and the
following settings for the appropriate port.
Figure 3: Terminal setting
When you first press the reset button, the application:
starts initializing the UART, I²C and SPI interfaces
creates a random BLE MAC address and a random connection PIN necessary for
making the connection
initializes the BLE hardware service adding the temperature, humidity, pressure, 3D
gyroscope, 3D magnetometer, 3D accelerometer and microphone characteristics
STDK-STILECS01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
9/37
initializes the BLE SW service adding the osx.MotionFX, osx.MotionAR,
osx.MotionCP, osx.MotionGR and osx.AcousticSL libraries.
initializes the BLE console service adding the stdin/stdout and stderr characteristics
initializes the BLE config service transmitting/resetting the calibration status and
enabling the LSM6DS3 DIL24 hardware features (if present).
checks whether the LSM6DS3 DIL24 extension is present.
Checks whether all the sensors are present and working.
controls whether the osxMotionFX, osxMotionAR, osxMotionCP, osxMotionGR and
osxAcousticSL libraries have been initialized properly with valid licenses.
determines which BlueNRG expansion board is connected to the STM32 Nucleo
board (X-NUCLEO-IDB04A1 or X-NUCLEO-IDB05A1) and hardware and firmware
version information.
If the LSM6DS3 DIL24 extension is present, the system is able also to understand a free
fall situation because the DS3 generates one interrupts when there is free fall situation.
This situations is transmitted over Bluetooth to the attached Android™/iOS™ device.
Figure 4: Initialization phase
As shown in the console output above, the application sends:
3 short precision quaternions every 30ms
Temperature/Humidity/Pressure data every 500ms
3D Accelerometer, 3D Gyroscope and 3D Magnetometer data every 50ms
signal noise microphone levels every 50ms
This application reads the accelerometer, magnetometer and gyroscope values at 100
samples/second. The osxMotionFX (iNEMOEngine PRO) library combines these sensor
values to produce and transmit 100 quaternions/second to the client connected via
Bluetooth low energy to reflect real motion using a vendor-specific BLE service.
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
10/37
DocID029208 Rev 2
These definitions in osx_bms_config.h control how many quaternions the application sends
to the Bluetooth client:
QUAT_UPDATE_MUL_10MS: defines the transmission rate for each set of quaternions
by multiple of 10 ms.
SEND_N_QUATERNIONS: defines how many quaternions are sent on each Bluetooth
package.
By default, the application sends 3 quaternions every 30 ms.
The same osx_bms_config.h file also defines:
ENV_UPDATE_MUL_10MS the transmission rate for Temperature/Pressure and
Humidity/Lux
ACC_GYRO_MAG_UPDATE_MUL_10MS the transmission rate for Acc/Gyro and
Magneto values
OSX_BMS_DEBUG_CONNECTION and OSX_BMS_DEBUG_NOTIFY_TRAMISSION to
enable some debugging information for BLE communication
OSX_BMS_MOTIONAR to enable the osxMotionAR activity recognition algorithm
OSX_BMS_MOTIONCP to enable the osxMotionCP carry position recognition algorithm
OSX_BMS_MOTIONGR to enable the osxMotionGR gesture recognition algorithm
OSX_BMS_ACOUSTIC_MIC_ANGLE to enable the osxAcousticSL audio source
localization algorithm (only NUCLEO-F401R Nucleo board)
The osxMotionFX (INEMOEngine PRO) library has an autocalibrating procedure and the
calibration status is transmitted via BLE to the client. By pressing the user button on the
NUCLEO-F401RE (or NUCLEO-L476RG) board, it is possible to reset the library
calibration status, thereby forcing a new autocalibration procedure.
The osxMotionAR (INEMOEngine PRO) library is able to recognize the following activities:
Stationary
Walking
fast walking
jogging
biking
driving
The osxMotionAR can be enabled via the OSX_BMS_MOTIONAR define in
osx_bms_config.h.
The osxMotionCP (INEMOEngine PRO) library recognizes and provides real-time
information about how the user is carrying the board, which equates to the phone carry
position:
on desk
in hand
near head
shirt pocket
trouser pocket
arm swing
The osxMotionCP can be enabled via the OSX_BMS_MOTIONCP define in
osx_bms_config.h.
The osxMotionGR (INEMOEngine PRO) library is able to recognize gestures like:
pick up
glance
wake up in hand
STEVAL-STLKT01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
11/37
The osxMotionGR can be enabled via the OSX_BMS_MOTIONGR define in
osx_bms_config.h.
The osxAcousticSL library is able to localize the audio sound source using the data
acquired from the microphones. It can be enabled via the
OSX_BMS_ACOUSTIC_MIC_ANGLE define in osx_bms_config.h.
When an Android/iOS device is connected to the board, it is possible to control what the
board transmit (see the following figure).
Figure 5: UART console output when one device is connected to the board
1.6 Android and iOS sample client application
The BLUEMICROSYSTEM2 software for STM32Cube is compatible with the BlueMS
Android/iOS applications (Version 2.0.0 or higher) available at the respective Play/iOS
stores. The LSM6DS3 DIL24 hardware features are only visible with BlueMS Android/iOS
version 2.2.0 or higher.
We will use Android application to demonstrate how it works.
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
12/37
DocID029208 Rev 2
Following connection, BlueMS starts with the main page shown below, where the values of
temperature, pressure and humidity are displayed.
Figure 6: BlueMS (Android version) initial page after BLE connection
STEVAL-STLKT01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
13/37
As shown below, the next page depicts the osxMotionFX sensor fusion library output with a
cube that rotates with board movement.
Figure 7: BlueMS (Android version) osxMotionFX sensor fusion page
On this page there are two buttons along the bottom:
the left is for resetting the cube position.
the right shows the calibration status of the osxMotionFX Library (black for not
calibrated, green for calibrated). Clicking it forces a magneto calibration.
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
14/37
DocID029208 Rev 2
When either button is pressed, the application pops up a window describing how to position
the board for correct cube rotation and how to move the board to facilitate calibration (see
below)
Figure 8: BlueMS (Android version) popup windows
STEVAL-STLKT01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
15/37
On the next left page, you can plot sensor data from the sensors expansion boards, as
shown in the following figures.
Figure 9: BlueMS (Android version) mic level plot
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
16/37
DocID029208 Rev 2
Figure 10: BlueMS (Android version) accelerometer plot
STDK-STILECS01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
17/37
In the option menu below, you can enable the Serial or Debug (with stdin) console.
Figure 11: BlueMS (Android version) menu selection
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
18/37
DocID029208 Rev 2
If the Serial console is enabled, stdout/stderr is displayed, as shown below.
Figure 12: BlueMS (Android version) Serial console (stdout/stderr)
STEVAL-STLKT01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
19/37
If the Debug console is enabled, stdin is displayed and any message written in the Debug
console triggers a relpy with the same message, as shown below.
Figure 13: BlueMS (Android version) Debug console (stdin/stdout/stderr)
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
20/37
DocID029208 Rev 2
If the LSM6DS3 DIL24 is present, there is another page where you can choose which
hardware feature to enable (one at the time) and view the events from the LSM6DS3 DIL24
(see following figures) on the same page.
Figure 14: BlueMS (Android version) LSM6DS3 DIL24 hardware features
STEVAL-STLKT01V1 BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
21/37
Figure 15: BlueMS (Android version) LSM6DS3 DIL24 examples: pedometer, wake up,
orientation, double tap.
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
22/37
DocID029208 Rev 2
If the osxMotionAR algorithm is enabled, the page shown below is available, signaling one
of the following recognized activities:
Stationary
Walking
Fast walking
Jogging
Biking
Driving
Figure 16: BlueMS (Android version) osxMotionAR activity recognition page
STEVAL-STLKT01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
23/37
If the osxMotionCP algorithm is enabled, the page shown below is available, with
information about how the user is carrying the board, which equates to phone carry
positions:
on desk
in hand
near head
shirt pocket
trousers pocket
arm swing
Figure 17: BlueMS (Android version) osxMotionCP carry position recognition page
BLUEMICROSYSTEM2 software description
STEVAL-STLKT01V1
24/37
DocID029208 Rev 2
If the osxMotionGR algorithm is the page shown below is available, with gesture
recognition information like:
pick up
glance
wake up in hand
Figure 18: BlueMS (Android version) osxMotionGR gesture recognition page
STEVAL-STLKT01V1
BLUEMICROSYSTEM2 software description
DocID029208 Rev 2
25/37
If the osxAcousticSL algorithm is enabled, the page shown below is available, with audio
sound source localization.
Figure 19: BlueMS (Android version) example of audio source localization plot value
System setup guide
STEVAL-STLKT01V1
26/37
DocID029208 Rev 2
2 System setup guide
2.1 Hardware description
This section describes the hardware components needed for developing a sensors based
application.
2.1.1 STM32 Nucleo platform
The STM32 Nucleo boards provide an affordable and flexible way for users to try out new
ideas and build prototypes with any STM32 microcontroller lines. The Arduino™
connectivity support and ST morpho headers make it easy to expand the functionality of
the STM32 Nucleo open development platform with a wide range of specialized expansion
boards to choose from. The STM32 Nucleo board does not require any separate probe as
it integrates the ST-LINK/V2-1 debugger/programmer. The STM32 Nucleo board comes
with the comprehensive STM32 software HAL library together with various packaged
software examples.
Information regarding the STM32 Nucleo board is available on www.st.com at
http://www.st.com/stm32nucleo
Figure 20: STM32 Nucleo board
2.1.2 X-NUCLEO-CCA02M1 expansion board
The X-NUCLEO-CCA02M1 is an evaluation board based on digital MEMS microphones. It
is compatible with the morpho connector layout, and is designed around
STMicroelectronics’ MP34DT01-M digital microphones. There are two microphones
STEVAL-STLKT01V1
System setup guide
DocID029208 Rev 2
27/37
soldered onto board and it offers the possibility to plug in additional microphones using
MP32DT01-based coupon evaluation boards (e.g. STEVAL-MKI129V3).
The X-NUCLEO-CCA02M1 allows the acquisition of up to two microphones using the I²S
bus and up to four coupon microphones using I²S and SPI together. In addition, it offers a
USB output for the STM32 Nucleo board. It represents a fast and easy solution for the
development of microphone-based applications as well as a starting point for audio
algorithm implementation.
Figure 21: X-NUCLEO-CCA02M1 board
Information regarding the X-NUCLEO-CCA02M1 expansion board is available on st.com at
http://www.st.com/x-nucleo.
2.1.3 X-NUCLEO-IDB04A1 expansion board
The X-NUCLEO-IDB04A1 is a Bluetooth BlueNRG expansion board usable with the
STM32 Nucleo system. The BlueNRG is a very low power Bluetooth low energy (BLE)
single-mode network processor, compliant with Bluetooth specifications core 4.0.
System setup guide
STEVAL-STLKT01V1
28/37
DocID029208 Rev 2
Figure 22: X-NUCLEO-IDB04A1 expansion board
Information regarding the X-NUCLEO-IDB04A1 expansion board is available on
www.st.com at http://www.st.com/x-nucleo.
2.1.4 X-NUCLEO-IDB05A1 expansion board
The X-NUCLEO-IDB05A1 is a Bluetooth low energy evaluation board based on the
SPBTLE-RF BlueNRG-MS RF module to allow expansion of the STM32 Nucleo boards.
The SPBTLE-RF module is FCC (FCC ID: S9NSPBTLERF) and IC certified (IC: 8976C-
SPBTLERF). The BlueNRG-MS is a very low power Bluetooth low energy (BLE) single-
mode network processor, compliant with Bluetooth specification v4.2. X-NUCLEO-IDB05A1
is compatible with the ST morpho and Arduino™ UNO R3 connector layout. This expansion
board can be plugged into the Arduino UNO R3 connectors of any STM32 Nucleo board.
STEVAL-STLKT01V1
System setup guide
DocID029208 Rev 2
29/37
Figure 23: X-NUCLEO-IDB05A1 expansion board
Information about the X-NUCLEO-IDB05A1 expansion board is available on www.st.com at
http://www.st.com/x-nucleo
2.1.5 X-NUCLEO-IKS01A1 expansion board
The X-NUCLEO-IKS01A1 figured below is a sensor expansion board for use with the
STM32 Nucleo system. It is also compatible with the Arduino UNO R3 connector layout,
and is designed around the STMicroelectronics humidity (HTS221), pressure (LPS25HB)
and motion sensors (LIS3MDL and LSM6DS0). The X-NUCLEO-IKS01A1 interfaces with
the STM32 MCU via an I²C pin, and the user can change the default I²C address and the
device IRQ by changing one resistor on the evaluation board.
System setup guide
STEVAL-STLKT01V1
30/37
DocID029208 Rev 2
Figure 24: X-NUCLEO-IKS01A1 board
Information about the X-NUCLEO-IKS01A1 expansion board is available on www.st.com
at: http://www.st.com/x-nucleo.
The LSM6DS3 DIL24 adapter board in the figure below can be plugged on top of the X-
NUCLEO-IKS01A1 expansion board.
Figure 25: LSM6DS3 DIL24 adapter board
2.2 Software description
The following software components are needed in order to set up a suitable development
environment for creating applications for the STM32 Nucleo equipped with the sensors,
microphones and Bluetooth low energy expansion boards:
STEVAL-STLKT01V1
System setup guide
DocID029208 Rev 2
31/37
BLUEMICROSYSTEM2: Bluetooth low energy and sensors software for STM32Cube.
BLUEMICROSYSTEM2 firmware and related documentation is available on
www.st.com.
Development tool-chain and Compiler. The STM32Cube expansion software supports
the three following environments:
IAR Embedded Workbench for ARM® (EWARM) toolchain + ST-LINK
RealView Microcontroller Development Kit (MDK-ARM) toolchain + ST-LINK
System Workbench for STM32 + ST-LINK
2.3 Hardware and software setup
This section describes the hardware and software setup procedures. It also describes the
system setup needed for the above.
2.3.1 Hardware setup
The following hardware components are needed:
One STM32 Nucleo development platform (order code: NUCLEO-F401RE or NUCLEO-
L476RG)
One microphone expansion board (order code: X-NUCLEO-CCA02M1)
One sensor expansion board (order code: X-NUCLEO-IKS01A1)
One BlueNRG Bluetooth low energy expansion board (order code: X-NUCLEO-IDB04A1 or
X-NUCLEO-IDB05A1)
One USB type A to Mini-B USB cable to connect the STM32 Nucleo to the PC
2.3.2 Software setup
This section lists the minimum requirements necessary to set up the SDK, run the sample
testing scenario based on the GUI utility and customize applications.
2.3.2.1 Development tool-chains and compilers
Select one of the Integrated Development Environments supported by the STM32Cube
expansion software and follow the system requirements and setup information provided by
the selected IDE provider.
2.3.3 System setup guide
This section describes how to setup different hardware parts before writing and executing
an application on the STM32 Nucleo board with the expansion boards.
2.3.3.1 STM32 Nucleo and expansion boards setup
The STM32 Nucleo board integrates the ST-LINK/V2-1 debugger/programmer. The
developer can download the relevant version of the ST-LINK/V2-1 USB driver by searching
STSW-LINK008 or STSW-LINK009 on www.st.com.
The X-NUCLEO-CCA02M1 sensor board is easily connected to the STM32 Nucleo board
through the morpho connector, as shown below.
System setup guide
STEVAL-STLKT01V1
32/37
DocID029208 Rev 2
Figure 26: STM32 Nucleo plus X-NUCLEO-CCA02M1 boards
The X-NUCLEO-IDB04A1 or X-NUCLEO-IDB05A1 BlueNRG BLE expansion board is
easily connected to the X-NUCLEO-CCA02M1 board through the Arduino UNO R3
extension connector, as shown below.
Figure 27: STM32 Nucleo plus X-NUCLEO-CCA02M1 plus X-NUCLEO-IDB04A1 boards
Finally, the X-NUCLEO-IKS01A1 sensors board is easily connected to the X-NUCLEO-
IDB04A1 or X-NUCLEO-IDB05A1 expansion board through the Arduino UNO R3 extension
connector, as shown below.
STEVAL-STLKT01V1 System setup guide
DocID029208 Rev 2
33/37
Figure 28: STM32 Nucleo plus X-NUCLEO-CCA02M1 plus X-NUCLEO-IDB04A1 plus X-
NUCLEO-IKS01A1 plus LSM6DS3 DIL24 boards
The stacking sequence shown above is necessary to optimize the performance of
the SPBTLE-RF module on the X-NUCLEO-IDB05A1 expansion board, and to
reduce interference from its antenna
System setup guide
STEVAL-STLKT01V1
34/37
DocID029208 Rev 2
2.3.3.2 Important additional hardware information
For either STM32 Nucleo board: before connecting the X-NUCLEO-IKS01A1 board to the
X-NUCLEO-IDB04A1 or X-NUCLEO-IDB05A1 expansion board through the Arduino UNO
R3 extension connector, remove these 0-ohm resistors:
SB25
SB26
SB27
Figure 29: Resistors to remove from X-NUCLEO-IKS01A1 board
STEVAL-STLKT01V1 System setup guide
DocID029208 Rev 2
35/37
For the NUCLEO-L476RG board only: before connecting the X-NUCLEO-CCA02M1
board to the STM32 Nucleo board morpho connectors, close these solder bridges:
SB12
SB16
SB17 (if additional microphones are connected)
Figure 30: Solder bridges to close on X-NUCLEO-CCA02M1 board (when using NUCLEO-
L476RG board)
Revision history
STEVAL-STLKT01V1
36/37
DocID029208 Rev 2
3 Revision history
Table 1: Document revision history
Date
Version
Changes
12-Apr-2016
1
Initial release.
06-May-2016
2
Minor text edits.
STEVAL-STLKT01V1
DocID029208 Rev 2
37/37
IMPORTANT NOTICE PLEASE READ CAREFULLY
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and
improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST
products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order
acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the
design of Purchasers’ products.
No license, express or implied, to any intellectual property right is granted by ST herein.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.
ST and the ST logo are trademarks of ST. All other product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.
© 2016 STMicroelectronics All rights reserved
FCC ID:S9NSTILE01
This device complies with part 15 of the FCC Rules.
Operation is subject to the following two conditions:
(1) This device may not cause harmful interference, and
(2) this device must accept any interference received, including interference that may cause
undesired operation.
Notice:
Any changes or modifications not expressly approved by the party responsible for
compliance could void your authority to operate the equipment.
NOTE: This equipment has been tested and found to comply with the limits for a
Class
B digital device, pursuant to part 15 of the FCC Rules. These limits are designed
to
provide reasonable protection against harmful interference in a residential
installation.
This equipment generates, uses and can radiate radio frequency energy and, if not
installed and used in accordance with the instructions, may cause harmful
interference to radio communications. However, there is no guarantee that
interference will not occur in a particular installation. If this equipment does cause
harmful interference to radio or television reception, which can be determined by
turning the equipment off and on, the user is encouraged to try to correct the
interference by one or more of the following measures:
- Reorient or relocate the receiving antenna.
- Increase the separation between the equipment and receiver.
- Connect the equipment into an outlet on a circuit different from that to which the
receiver is connected.
- Consult the dealer or an experienced radio/ TV technician for help.
Modular information form OEM Information to Be Supplied to the End User
by the OEM or Integrator.
The following regulatory and safety notices must be published in
documentation supplied to the end user of the product or system
incorporating an adapter in compliance with local regulations.
Host system must be labeled with " Contains transmitter module
FCC ID: S9NSTILE01 ", FCC ID displayed on label.
IC: 8976C-STILE01
This device complies with Industry Canada licence-exempt RSS
standard(s).
Operation is subject to the following two conditions:
(1) this device may not cause interference, and
(2) this device must accept any interference, including interference
that may cause undesired operation of the device.
This Class B digital apparatus complies with Canadian ICES-0003.
Le présent appareil est conforme aux CNR d'Industrie Canada
applicables aux appareils radio exempts de licence.
L'exploitation est autorisée aux deux conditions suivantes :
(1) l'appareil ne doit pas produire de brouillage, et
(2) l'utilisateur de l'appareil doit accepter tout brouillage
radioélectrique subi, même si le brouillage est susceptible d'en
compromettre le fonctionnement.
by the OEM or Integrator.
The following regulatory and safety notices must be published in
documentation supplied to the end user of the product or system
incorporating an adapter in compliance with local regulations.
Host system must be labeled with " Contains transmitter module
IC: 8976C-STILE01", IC ID displayed on label.

Navigation menu