Getting started with osxmotiongc gyroscope calibration library for X-CUBE-MEMS1 expansion for STM32Cube

Similar documents
Getting started with osxmotionmc magnetometer calibration library for X-CUBE-MEMS1 expansion for STM32Cube

Getting started with MotionPM real-time pedometer library in X CUBE-MEMS1 expansion for STM32Cube

Getting started with MotionMC magnetometer calibration library in X-CUBE-MEMS1 expansion for STM32Cube

Getting started with MotionPM real-time pedometer library in X-CUBE-MEMS1 expansion for STM32Cube

UM2350. Getting started with MotionPW real-time pedometer for wrist library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

UM2216 User manual. Getting started with MotionFA fitness activity library in X CUBE MEMS1 expansion for STM32Cube. Introduction

UM2194. Getting started with MotionAW activity recognition for wrist library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

Getting started with MotionAR activity recognition library in X-CUBE-MEMS1 expansion for STM32Cube

UM2276. Getting started with MotionSD standing vs sitting desk detection library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

UM2192. Getting started with MotionMC magnetometer calibration library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

Getting started with MotionAR activity recognition library in X-CUBE-MEMS1 expansion for STM32Cube

Getting started with the FP-SNS-ALLMEMS1 Bluetooth low energy and sensors software expansion for STM32Cube

Getting started with the X-CUBE-IKA02A1 multifunctional software expansion for STM32Cube

UM2220. Getting started with MotionFX sensor fusion library in X-CUBE-MEMS1 expansion for STM32Cube. User manual. Introduction

Getting started with X-CUBE-LED channel LED driver software expansion based on LED1642GW for STM32Cube

Getting started with osxmotionar activity recognition library for X-CUBE-MEMS1 expansion for STM32Cube

Getting started with the FP-NET-6LPBLE1 function pack for 6LoWPAN IoT node connection to a smartphone via BLE interface

UM2045 User manual. Getting started with the X-CUBE-NFC3 near field communication transceiver software expansion for STM32Cube.

Getting started with the X-CUBE-NFC5 high performance HF reader / NFC initiator IC software expansion for STM32Cube

Getting started with the X-CUBE-MEMS1 motion MEMS and environmental sensor software expansion for STM32Cube

Bluetooth low energy profiles for the X-CUBE-BLE1 expansion for STM32Cube. Description

IoT node with BLE connectivity, digital microphone, environmental and motion sensors, motion and audio middleware libraries.

AN4624 Application note

Getting started with the FP-IND-PLCWIFI1 function pack for PLC management via Wi-Fi

Getting started with STEVAL-IDB007V1 and STEVAL-IDB008V1 evaluation boards

Getting started with FP-SNS-6LPNODE1 software for IoT sensor node connection to 6LoWPAN networks using sub-1ghz RF

Getting started with the X-CUBE-53L1A1 Time-of-Flight long distance ranging sensor software expansion for STM32Cube

NUCLEO-L433RC-P NUCLEO-L452RE-P

Running a simple 6LowPAN network consisting of one receiver node and one or more sensor nodes in a Sub-1GHz RF band

Getting started with the STSW-BCNKT01 software package for STEVAL-BCNKT01V1 based on STM32Cube

P-NUCLEO-USB001. STM32 Nucleo pack for USB Type-C and Power Delivery. Features. Description

Getting started with the software package for STEVAL-STLKT01V1 based on STM32Cube

Getting started with the digital MEMS microphone expansion board based on MP34DT01-M for STM32 Nucleo

Getting started with osxacousticsl real-time sound source localization software expansion for STM32Cube

STSW-BLUENRG1-DK. BlueNRG-1, BlueNRG-2 DK SW package

P-NUCLEO-USB001. STM32 Nucleo pack for USB Type-C and Power Delivery Data brief. Features. Description

UM1853 User manual. STM32CubeF1 Nucleo demonstration firmware. Introduction

This design tip applies to all accelerometers, ecompass modules, and inemo inertial IMUs from STMicroelectronics.

Main components MEMS motion sensor: low power high g 3-axis digital accelerometer inemo inertial module: 3D accelerometer and 3D gyroscope

32L476GDISCOVERY. Discovery kit with STM32L476VG MCU. Features. Description

UM1727 User manual. Getting started with STM32 Nucleo board software development tools. Introduction

NUCLEO-L496ZG. STM32 Nucleo-144 board. Features. Description

P-NUCLEO-IKA02A1. STM32 Nucleo pack: electrochemical toxic gas sensor expansion board with CO sensor. Description. Features

Getting started with VL53L0X ranging and gesture detection sensor software expansion for STM32Cube

X-NUCLEO-53L1A1. Long distance ranging Time-of-Flight sensor expansion board based on VL53L1X for STM32 Nucleo. Description.

UM1641 User manual. Sampling rate conversion SRC236 library software expansion for STM32Cube. Introduction

USB Type-C and Power Delivery Nucleo pack with NUCLEO-F072RB expansion board based on STUSB1602. Description

DT0095 Design tip. Datalogging the SensorTile through a PC. Purpose and benefits. Description

Getting started with the STM32 Nucleo pack for USB Type-C and Power Delivery with the Nucleo-F072RB board and the STUSB1602

Getting started with the FP-CLD-AWS1 software package for IoT node with Wi-Fi and sensors, connected to Amazon AWS IoT cloud

Getting started with the X-CUBE-SPN3 high power stepper motor driver software expansion for STM32Cube

AN4515 Application note

Quick Start Guide. Long distance ranging ToF sensor expansion board based on VL53L1X for STM32 Nucleo (X-NUCLEO-53L1A1) Version (February 20, 2018)

STSW-BNRG-Mesh. Mesh over Bluetooth low energy. Features. Description. Applications

USB Type-C and Power Delivery Nucleo pack with NUCLEO-F072RB expansion board based on the STUSB1602

32F412GDISCOVERY. Discovery kit with STM32F412ZG MCU. Features. Description

Getting started with the P-NUCLEO-IKA02A1 STM32 Nucleo pack for electrochemical toxic gas sensor expansion board with CO sensor

UM2084 User manual. Getting started with the ultra-low-power STM32 and LoRa Nucleo pack. Introduction

Getting started with the software package for digital MEMS microphones in X-CUBE-MEMSMIC1 expansion for STM32Cube

Motor control power board based on the SLLIMM-nano 2 nd series

32F469IDISCOVERY. Discovery kit with STM32F469NI MCU. Features. Description

UM2051 User manual. Getting started with the STM32 Nucleo pack for USB Type-C and Power Delivery. Introduction

Main components MEMS digital output motion sensor: high-performance ultra-low-power 3-axis "femto" accelerometer

STSW-BNRGUI. BlueNRG GUI SW package. Data brief. Features. Description

Getting started with the X-CUBE-SPN2 two-axis stepper motor driver software expansion for STM32Cube

L9958 Evaluation board for high current (8.6A) DC and Stepper Motors. Description

X-NUCLEO-53L0A1. Ranging and gesture detection sensor expansion board based on VL53L0X for STM32 Nucleo. Description. Features

How to configure the BlueNRG-1 and BlueNRG-2 devices in network coprocessor mode. Main components Bluetooth Low Energy wireless system-on-chip

STM32H7x3I-EVAL. Evaluation board with STM32H7x3XI MCUs. Data brief. Features

Using the GPIOs and interrupt controller to drive LEDs on STM8 Nucleo-64 boards

Getting started with the software package for L6474 stepper motor driver X-CUBE-SPN1 expansion for STM32Cube

ST Payment Secure Solution Java Card platform with up to 100 Kbytes of user NVM for AMEX payment applications

P-NUCLEO-53L1A1. VL53L1X nucleo pack with X-NUCLEO-53L1A1 expansion board and STM32F401RE nucleo board. Description. Features

UM2232. Getting started with the IO-Link demonstration kit firmware. User manual. Introduction

Getting started with the ultra-low-power STM32 and LoRa Nucleo pack

UM2167 User manual. OrCAD PSpice model usage instructions

How to upgrade the firmware on the STEVAL-USBC2DP USB Type-C to DisplayPort adapter

STEVAL-STLKT01V1. SensorTile development kit. Description. Features

UM2092 User manual. Basic metrology firmware for the STM32F103RD and the STPM32 devices. Introduction

Computing tilt measurement and tilt-compensated e-compass

P-NUCLEO-53L0A1. VL53L0X Nucleo pack with ranging, gesture detection sensor expansion board and STM32F401RE. Description. Features

Getting started with X-NUCLEO-IHM06A1 low voltage stepper motor driver expansion board based on STSPIN220 for STM32 Nucleo

STM32L4R9I-EVAL. Evaluation board with STM32L4R9AI MCU. Features

AN3281 Application note

Software GUI user guide for STEVAL-ISV021V1, STEVAL- IDS002V1 and STEVAL-IDS003V1 evaluation boards

UM2361. Getting started with the ST BlueNRG-Mesh ios application. User manual. Introduction

AN4045 Application note

ASM330LHH. Automotive 6-axis inertial module: 3D accelerometer and 3D gyroscope. Data brief. Features. Applications. Description

32F746GDISCOVERY. Discovery kit with STM32F746NG MCU. Features. Description

UM2495. High performance HF reader / NFC initiator IC software expansion for NUCLEO-8S208RB. User manual. Introduction

Quick Start Guide. High power stepper motor driver expansion board based on powerstep01 for STM32 Nucleo (X-NUCLEO-IHM03A1)

Quick Start Guide. Bipolar stepper motor driver expansion board based on L6208 for STM32 Nucleo (X-NUCLEO-IHM05A1) Version 1.1.

P-NUCLEO-6180X2. Proximity, gesture, ambient light sensor expansion board based on VL6180X for STM32L053R8. Description. Features

Version (Apr 28, 2016)

Getting started with X-NUCLEO-53L1A1 long distance ranging ToF sensor expansion board based on VL53L1X for STM32 Nucleo

STEVAL-BCNKT01V1. BlueCoin Starter kit. Features. Description

AN3980 Application note

Dynamic Electro-Thermal simulator for VIPower products. Description

STEVAL-STLKT01V1. SensorTile development kit. Description. Features

AN4782 Application note

Transcription:

UM2162 User manual Getting started with osxmotiongc gyroscope calibration library for X-CUBE-MEMS1 expansion for STM32Cube Introduction The osxmotiongc add-on software package for X-CUBE-MEMS1 software runs on STM32 Nucleo and includes drivers for recognizing inertial sensors. It provides real-time gyroscope calibration through angular zero-rate level coefficients (offset) used to correct gyroscope data. The algorithm is provided in static library format and is designed to be used on STM32 microcontrollers based on the ARM Cortex-M3 or ARM Cortex-M4 architecture. It is built on top of STM32Cube software technology that ease portability across different STM32 microcontrollers. The software comes with sample implementation running on X-NUCLEO-IKS01A1 (with optional STEVAL-MKI160V1) or X-NUCLEO-IKS01A2 expansion board on a NUCLEO-F401RE or NUCLEO-L476RG development board. January 2017 DocID030216 Rev 1 1/18 www.st.com

Contents Contents UM2162 1 Acronyms and abbreviations... 5 2 osxmotiongc library add-on to X-CUBE-MEMS1 software expansion for STM32Cube... 6 2.1 osxmotiongc overview... 6 2.2 osxmotiongc architecture... 6 2.3 osxmotiongc folder structure... 7 2.4 osxmotiongc library... 7 2.4.1 osxmotiongc library description... 8 2.4.2 osxmotiongc APIs... 8 2.4.3 API flow chart... 11 2.4.4 Demo code... 11 2.4.5 The calibration process... 13 2.5 Sample application... 13 2.5.1 Unicleo-GUI application... 13 3 References... 16 4 Revision history... 17 2/18 DocID030216 Rev 1

UM2162 List of tables List of tables Table 1: List of acronyms... 5 Table 2: Document revision history... 17 DocID030216 Rev 1 3/18

List of figures List of figures UM2162 Figure 1: osxmotiongc plus X-CUBE-MEMS1 software architecture... 7 Figure 2: osxmotiongc package folder structure... 7 Figure 3: API flow chart diagram... 11 Figure 4: Sensor expansion board and adapter connected to an STM32 Nucleo... 13 Figure 5: Unicleo main window... 14 Figure 6: User Messages tab... 14 Figure 7: Gyroscope calibration window... 15 Figure 8: Datalog window... 15 4/18 DocID030216 Rev 1

UM2162 Acronyms and abbreviations 1 Acronyms and abbreviations Table 1: List of acronyms Acronym Description API Application programming interface BSP Board support package GUI Graphical user interface HAL Hardware abstraction layer IDE Integrated development environments DocID030216 Rev 1 5/18

osxmotiongc library add-on to X-CUBE-MEMS1 UM2162 2 osxmotiongc library add-on to X-CUBE-MEMS1 2.1 osxmotiongc overview This software is based on the STM32CubeHAL hardware abstraction layer for the STM32 microcontroller. The package extends STM32Cube by providing a board support package (BSP) for the sensor expansion board and some middleware components for serial communication with a PC. The drivers abstract low-level details of the hardware and allow the middleware components and applications to access sensor data in a hardware independent fashion. The osxmotiongc real-time software acquires data from the accelerometer and gyroscope and counts the angular zero-rate level coefficient (offset) for each axis. The angular zerorate level coefficients are then used to compensate raw data coming from gyroscope. The osxmotiongc package also includes a sample application that the developers can use to start experimenting with code that enables sensor data logging on a PC. The key package features include: Real-time gyroscope calibration algorithm (under OPEN.MEMS license) based on gyroscope and accelerometer data Complete middleware to build applications on top of X-CUBE-MEMS1 Sample application for transmitting real-time sensor data to a PC Easy portability across different MCU families thanks to STM32Cube PC-based Windows application to log sensor data Free user-friendly license terms Sample implementation available on X-NUCLEO-IKS01A2 and X-NUCLEO-IKS01A1 (with optional STEVAL-MKI160V1) expansion boards, mounted on a NUCLEO-F401RE or NUCLEO-L476RG development board For further details on system setup, installation and hardware components, please refer to Section 3: "References". 2.2 osxmotiongc architecture The following software layers are used by the application to access and use the sensor expansion board: STM32Cube HAL layer: the HAL driver layer provides a generic, multi-instance, simple set of APIs (application programming interfaces) to interact with the upper layers (application, libraries and stacks). It is composed of generic and extension APIs. It is directly built around a generic architecture and allows overlying layers like middleware to implement functions without depending on the specific hardware configuration for a given microcontroller unit (MCU). This structure improves library code reusability and guarantees easy portability across devices. Board support package (BSP) layer: the software package supports all the available peripherals on the STM32 Nucleo board, except the MCU. A limited set of APIs provides a programming interface for specific peripherals (LED, user button, etc.), which helps to identify the specific board version. If the sensor expansion board is used, it provides the programming interface for various inertial and environmental sensors and supports sensor data initialization and reading. 6/18 DocID030216 Rev 1

UM2162 osxmotiongc library add-on to X-CUBE-MEMS1 Figure 1: osxmotiongc plus X-CUBE-MEMS1 software architecture 2.3 osxmotiongc folder structure Figure 2: osxmotiongc package folder structure The folders included in the package are: Documentation: contains a compiled HTML file generated from the source code and detailing the software components and APIs (doxygen). Middlewares: contains the osxmotiongc static library binary code, the library header file, documentation, license information and the header file for node-locked license validation. Projects: contains a sample application used to access sensor data and calibration coefficients, provided for the NUCLEO-F401RE and NUCLEO-L476RG platforms according to IDE (Integrated Development Environments) proprietary formats (IAR Embedded Workbench for ARM, µvision (MDK-ARM) toolchain, System Workbench for STM32 Nucleo). 2.4 osxmotiongc library Technical information fully describing the functions and parameters of the osxmotiongc APIs can be found in the osxmotiongc_package.chm compiled HTML file located in the Documentation folder. The osxmotionac is provided as a node-locked library which allows derivative firmware images to run on a specific STM32 Nucleo device only. License activation codes must be DocID030216 Rev 1 7/18

osxmotiongc library add-on to X-CUBE-MEMS1 UM2162 requested from ST and included in the project (and become part of the build process) prior to usage. The resulting firmware binary image is therefore node-locked. For complete information about the open.mems license agreement, refer to the license file located in the Middlewares/ST/STM32_OSX_MotionGC_Library folder. 2.4.1 osxmotiongc library description The osxmotiongc gyroscope calibration library manages data acquired from accelerometer and gyroscope; it features: the angular zero-rate level (offset) compensation adjustable thresholds to detect device in still state adjustable maximum angular zero-rate level to be compensated possibility to set previously saved coefficients as the initial values fast start-up option able to run with multiple sample rate from 25 Hz to 200 Hz. occupies 2.8kByte of code memory and 0.2kByte of data memory Real size might differ for different IDE (toolchain) library versions available for Cortex-M3 and Cortex-M4 architectures. 2.4.2 osxmotiongc APIs The osxmotiongc library APIs are: uint8_t osx_motiongc_getlibversion(char *version) retrieves the version of the library *version is a pointer to an array of 35 characters returns the number of characters in the version string uint8_t osx_motiongc_initialize(float freq) performs osxmotiongc library initialization and setup of the internal mechanism used for node-locking (see Section 3: "References") This function must be called before using the gyroscope calibration library. freq parameter indicates the sampling frequency returns 1 for correct initialization or 0 otherwise (e.g., 0 is returned for license errors) void osx_motiongc_setknobs(osx_mgc_knobs_t *knobs) sets the library knobs *knobs parameter is a pointer to a structure with settings the parameters for structure type osx_mgc_knobs_t are the following: acc_thr_mg is the accelerometer threshold to detect steady state in mgs. The default value is 10 mg. The input range is 3 to 50 mg. For higher accuracy, set the value low; for vibration or noisy sensor platforms, set the value high. 8/18 DocID030216 Rev 1

UM2162 osxmotiongc library add-on to X-CUBE-MEMS1 gyro_thr_mdps is the gyroscope threshold to detect steady state in mdps. The default value is 200 mdps. The input range is 8 to 400 mdps. For higher accuracy, set the value low. k is the decay constant for the internal filter (from 0 to1). Setting a higher value can cause a variation in the gyro offset but allows a quick convergence. The default value is 0.002. fast_start set to 1 immediately starts computing the gyro offset and quickly converges to gyro offset. By setting the value to 1, it is possible that the initial gyro offset value is not accurate but converges over a period of time. max_gyro_mdsp is the maximum expected angular zero-rate level when still in mdps. The default value is 15 mdps max_acc_mg is the maximum acceleration module when still in mg. The default value is 1.3 mg. void osx_motiongc_getknobs(osx_mgc_knobs_t *knobs): gets the library knob setting *knobs is a pointer to the setting structure This function needs to be called before making changes in the settings void osx_motiongc_update(int *acc_mg, int *gyro_mdps, int *gyro_bias_mdps, int* bias_update): runs the gyroscope calibration algorithm and returns compensation parameters *acc_mg is a pointer to the array of accelerometer sensor value is in mg *gyro_mdps is a pointer to the the array of gyroscope sensor value in mdps *gyro_bias_mdps ia a pointer to the array of actual gyroscope offset value in mdps *bias_update is a pointer to an integer set to 1 if the device is in stable state and the gyroscope bias is updated (0 otherwise) This function has to be called periodically as indicated in the initialization function. void osx_motiongc_getcalparams(int *gyro_bias_mdps): retrieves the gyroscope compensation parameters *gyro_bias_mdps is a pointer to an array of three elements containing the offset for each axis in mdps void osx_motiongc_setcalparams(int *gyro_bias_mdps) sets the initial gyroscope compensation parameters, helping to quickly converge to the gyro offset right value *gyro_bias_mdps is a pointer to an array of three elements containing the offset for each axis in mdps DocID030216 Rev 1 9/18

osxmotiongc library add-on to X-CUBE-MEMS1 This function should be called just after osx_motiongc_initialize UM2162 void osx_motiongc_setfrequency(float freq) applies the new sample frequency to the library without resetting freq indicates the new sample frequency in Hertz 10/18 DocID030216 Rev 1

UM2162 2.4.3 API flow chart osxmotiongc library add-on to X-CUBE-MEMS1 Figure 3: API flow chart diagram 2.4.4 Demo code The following is an example of the demonstration code that reads data from the gyroscope sensor in mdps (gyr_raw[3]) and from the accelerometer sensor in mg DocID030216 Rev 1 11/18

osxmotiongc library add-on to X-CUBE-MEMS1 UM2162 (acc_raw[3])and calculates compensated data in mdps (gyr_cal_x, gyr_cal_y, gyro_cal_z). [ ] #define VERSION_STR_LENG 35 #define SAMPLE_FREQUENCY 50.0f [ ] /*** Initialization ***/ char strversion[version_str_leng]; osx_lm_result_t lic_res; osx_mgc_knobs_t knobs; int gyro_init_offset[3]; float sample_freq; /* Gyroscope calibration API initialization function */ lic_res = osx_motiongc_initialize(sample_frequency); /* Optional: Get version */ osx_motiongc_getlibversion(strversion); /* Optional: Get knobs settings */ osx_motiongc_getknobs(&knobs); /* Optional: Adjust knobs settings */ knobs.acc_trh_mg = 8; knobs.gyro_thr_mdps = 150; osxmotiongc_set_knobs(&knobs); /* Optional: Set initial gyroscope offset */ gyro_init_offset[0] = 0; gyro_init_offset[1] = 0; gyro_init_offset[2] = 0; osxmotiongc_setcalparams(gyro_init_offset); /* Optional: Set sample frequency */ sample_freq = SAMPLE_FREQUENCY; osxmotiongc_setfrequency(sample_freq); [ ] /*** Using gyroscope calibration algorithm ***/ { Timer_OR_DataRate_Interrupt_Handler() int acc_raw[3]; int gyr_raw[3]; int cal_raw_x, cal_raw_y, cal_raw_z; } int gyro_bias[3]; /* Offset */ int bias_update; /* Update flag */ /* Get acceleration X/Y/Z in mg */ MEMS_Read_AccValue(acc_raw[0], acc_raw[1], acc_raw[2]); /* Get angular rate X/Y/Z in mdps */ MEMS_Read_GyroValue(gyr_raw[0], gyr_raw[1], gyr_raw[2]); /* Gyroscope calibration algorithm update */ osx_motiongc_update(acc_raw, gyro_raw, gyro_bias, &bias_update); /* Apply correction */ gyr_cal_x = (int)((gyr_raw[0] - gyro_bias[0]); gyr_cal_y = (int)((gyr_raw[1] - gyro_bias[1]); gyr_cal_z = (int)((gyr_raw[2] - gyro_bias[2]); 12/18 DocID030216 Rev 1

UM2162 2.4.5 osxmotiongc library add-on to X-CUBE-MEMS1 The calibration process The calibration process does not need any sensor motion as the offset coefficient is calculated and updated when the sensor is still. 2.5 Sample application The osxmotiongc middleware can be easily manipulated to build user applications; a sample application is provided in the Projects folder. It is designed to run on a NUCLEO-F401RE or a NUCLEO-L476RG development boards connected to an X-NUCLEO-IKS01A1 (based on LSM6DS0) or an X-NUCLEO-IKS01A2 (based on LSM6DSL) expansion board, with optional STEVAL-MKI160V1 board (based on LSM6DS3). Figure 4: Sensor expansion board and adapter connected to an STM32 Nucleo The accelerometer algorithm output data may be displayed in real-time through a specific GUI. 2.5.1 Unicleo-GUI application The osxmotiongc software package for STM32Cube uses the Windows Unicleo-GUI utility, which can be downloaded from www.st.com. 1 Ensure that the necessary drivers are installed and the STM32 Nucleo board with the appropriate expansion board is connected to the PC. 2 Launch the Unicleo-GUI application to open the main application window. If an STM32 Nucleo board with the supported firmware is connected to the PC, it is automatically detected and the appropriate COM port is opened. DocID030216 Rev 1 13/18

osxmotiongc library add-on to X-CUBE-MEMS1 Figure 5: Unicleo main window UM2162 3 Start and stop data streaming by using the appropriate buttons on the vertical toolbar. The data coming from the connected sensor can be viewed in the User Messages tab. Figure 6: User Messages tab 14/18 DocID030216 Rev 1

UM2162 osxmotiongc library add-on to X-CUBE-MEMS1 4 Click on the Gyroscope Calibration icon in the vertical toolbar to open the dedicated application window. The window is split in three sections: the first one containing uncalibrated data, the second one containing calibrated data and the last one containing offset and stable flag information. Figure 7: Gyroscope calibration window 5 Click on the Datalog icon in the vertical toolbar to open the datalog configuration window: you can select the sensor and activity data to be saved in the files. You can start or stop saving by clicking on the corresponding button. Figure 8: Datalog window DocID030216 Rev 1 15/18

References UM2162 3 References 1. UM1859: Getting started with the X-CUBE-MEMS1 motion MEMS and environmental sensor 2. DB3168: Real-time gyroscope calibration 3. UM2012: osxmotionxx system setup 4. UM1724: STM32 Nucleo-64 board 5. UM2128: Getting started with Unicleo-GUI for motion MEMS and environmental sensor 16/18 DocID030216 Rev 1

UM2162 Revision history 4 Revision history Table 2: Document revision history Date Version Changes 16-Jan-2017 1 Initial release. DocID030216 Rev 1 17/18

UM2162 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. 2017 STMicroelectronics All rights reserved 18/18 DocID030216 Rev 1