41
Introduction The FP-SNS-FLIGHT1 is an STM32Cube function pack which lets your IoT node connect to a smartphone via BLE and uses a suitable Android™ or iOS™ application like the STBLESensor app to view real-time object distance data read by the Time-of-Flight sensor. The package also enables advanced functions, such as presence detection inside a fixed range distance. If the X-NUCLEO-NFC04A1 expansion board is present, it uses the NDEF standard for simple and secure Bluetooth pairing, storing the necessary information on the NFC tag, thus simplifying the device configuration. This package, together with the suggested combination of the STM32 and ST devices, can be used to develop wearable applications or smart thing applications in general. The software runs on the STM32 microcontroller and includes all the necessary drivers to recognize the devices on the STM32 Nucleo development board. Getting started with the STM32Cube function pack for IoT node with NFC, BLE connectivity and time-of-flight sensors UM2026 User manual UM2026 - Rev 7 -November 2020 For further information contact your local STMicroelectronics sales office. www.st.com

User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

  • Upload
    others

  • View
    25

  • Download
    0

Embed Size (px)

Citation preview

Page 1: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

IntroductionThe FP-SNS-FLIGHT1 is an STM32Cube function pack which lets your IoT node connect to a smartphone via BLE anduses a suitable Android™ or iOS™ application like the STBLESensor app to view real-time object distance data read by theTime-of-Flight sensor.

The package also enables advanced functions, such as presence detection inside a fixed range distance.

If the X-NUCLEO-NFC04A1 expansion board is present, it uses the NDEF standard for simple and secure Bluetooth pairing,storing the necessary information on the NFC tag, thus simplifying the device configuration.

This package, together with the suggested combination of the STM32 and ST devices, can be used to develop wearableapplications or smart thing applications in general.

The software runs on the STM32 microcontroller and includes all the necessary drivers to recognize the devices on the STM32Nucleo development board.

Getting started with the STM32Cube function pack for IoT node with NFC, BLE connectivity and time-of-flight sensors

UM2026

User manual

UM2026 - Rev 7 -November 2020For further information contact your local STMicroelectronics sales office.

www.st.com

Page 2: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

1 Acronyms and abbreviations

Table 1. Acronyms and abbreviations

Acronym Description

BLE Bluetooth low energy

NFC Near field communication

NDEF NFC data exchange format

UM2026Acronyms and abbreviations

UM2026 - Rev 7 page 2/41

Page 3: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

2 FP-SNS-FLIGHT1 software description

2.1 Overview

The key features of the FP-SNS-FLIGHT1 package are:• Complete firmware to develop an IoT node with NFC, BLE connectivity and Time-of-Flight sensors• Compatible with STBLESensor application for Android/iOS to perform distance data reading and firmware

update (FOTA)• Multi-target ranging sensor application based on the VL53L1 Time-of-Flight (ToF) sensor• Sample implementation available for X-NUCLEO-NFC04A1 (optional), X-NUCLEO-53L1A2 and X-NUCLEO-

IDB05A2 connected to a NUCLEO-F401RE or NUCLEO-L476RG• Easy portability across different MCU families, thanks to STM32Cube• Free, user-friendly license terms

This software creates the following Bluetooth services:• the first service exposes all the hardware features and contains the following characteristics:

– LED on/off– object distances (up to 4 objects) or presence

• the second is the Console service that includes two characteristics:– stdin/stdout with bi-directional communication between client and server– stderr for a mono-directional channel from the STM32 Nucleo board to an Android/iOS device

• the last service is used for configuration purpose

This software gathers the LED status and distance for the VL53L1 device for STM32 Nucleo expansion boardswith X-NUCLEO-53L1A2.This package is compatible with the STBLESensor Android/iOS (ver. 4.8.0 or higher) application, available at therespective Google Play/iTunes stores, which can be used to display information sent via the BLEThe STBLESensor application allows Over-The-Air firmware updates.

2.2 Architecture

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 BlueNRG-M0sensor expansion board, object distance and the dynamic NFC tag expansion boards, and some middlewarecomponents for communication with other Bluetooth low energy devices: it also enables data exchange with anNFC-ready device using the NDEF standard.BlueNRG is a very low power Bluetooth low energy (BLE) single-mode network processor.The drivers abstract low-level hardware details and allow the middleware components and applications to accessthe Dynamic NFC tag and all the other sensors in a hardware-independent manner.The package includes a sample application that the developer can use to start experimenting with the code.The sample application enables NFC pairing with a Bluetooth device (only if the X-NUCLEO-NFC04A1 expansionboard is present) and transmits the values read from the time-of-flight sensors to a Bluetooth low energy-enableddevice such as an Android™ or iOS™ based smartphone.You can use the STBLESensor Android/iOS application (version 4.8.0 or higher), from the respective GooglePlay™ and iTunes™ stores, to display the values read from the time-of-flight sensors.The STBLESensor Android/iOS application was developed to enable NFC pairing prior to sensor datatransmission.The software layers used by the application software to access and use the Sensor expansion boards are:• STM32Cube HAL driver layer: provides a simple, generic, multi-instance set of APIs (application

programming interfaces) to interact with the upper layers (application, libraries and stacks). It is composedof generic and extension APIs and is directly built around a generic architecture and allows the layersbuilt on top of it, such as the middleware layer, to implement their functions without dependending on thespecific hardware configuration for a given microcontroller unit (MCU). This structure improves library codereusability and guarantees an easy portability across other devices.

UM2026FP-SNS-FLIGHT1 software description

UM2026 - Rev 7 page 3/41

Page 4: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

• Board Support Package (BSP) layer: provides support for the peripherals (excluding the MCU) on theSTM32 Nucleo board through the board support package (BSP). The BSP is a limited set of APIs whichprovides a programming interface for certain board-specific peripherals like the LED, the user button, etc.

Figure 1. FP-SNS-FLIGHT1 software architecture

FP-SNS-FLIGHT1Application

BLE NDEFMiddleware

STM32Cube Hardware Abstraction Layer (HAL)HardwareAbstraction

Hardware

STM32 Nucleo development board

STM32 Nucleo expansion boardsX-NUCLEO-IDB05A2 (Connect)X-NUCLEO-NFC04A1 (Connect)

X-NUCLEO-53L1A2 (Sense)

Meta Data Manager

2.3 Folder structure

Figure 2. FP-SNS-FLIGHT1 package folder structure

The following folders are included in the software package:• Documentation: contains a compiled HTML file generated from the source code, detailing 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 theCortex-M processor series.

UM2026Folder structure

UM2026 - Rev 7 page 4/41

Page 5: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

• Middlewares: contains libraries and protocols for BlueNRG-M0 Bluetooth low energy module, NDEFdevices and the Meta Data Manager.

• Projects: contains a sample application used to transmit the time-of-flight sensor data via the Bluetoothlow energy protocol provided for the NUCLEO-F401RE/NUCLEO-L476RG through the IAR EmbeddedWorkbench for ARM, RealView Microcontroller Development Kit (MDK-ARM) and STM32CubeIDEdevelopment environments.

• Utilities: contains the boot loader binary ready to be flashed for the NUCLEO-F401RE/NUCLEO-L476RGdevelopment boards.

2.4 Flash organization

Apart from storing its code, FP-SNS-FLIGHT1 uses the Flash memory to allow the Firmware-Over-The-Airupdate.To enable this feature the Flash memory is divided into three different regions (see Figure 3. FP-SNS-FLIGHT1Flash structure):1. the first region contains a custom boot loader2. the second region contains the FP-SNS-FLIGHT1 firmware3. the third region is used to store the FOTA before the updateEven if the STM32F401RE (512 KB) and the STM32L476RG (1024 KB) cache sizes and arrangements differ, thesame Flash arrangement has been used for both.For further information, refer to:• (RM0368) Reference manual STM32F401xB/C and STM32F401xD/E advanced ARM®-based 32-bit MCUs• (RM0351) Reference manual STM32L4x6 advanced ARM®-based 32-bit MCUs

UM2026Flash organization

UM2026 - Rev 7 page 5/41

Page 6: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 3. FP-SNS-FLIGHT1 Flash structure

2.5 The boot process

The FP-SNS-FLIGHT1 cannot be flashed at the beginning of the Flash memory (address 0x08000000); thereforeit is compiled to run from the beginning of the second Flash region (0x08004000).To enable this behavior, the vector table offset has been set in Src/system_stm32f4xx.c (for STM32F401) andSrc/system_stm32l4xx.c (for STM32L476) thus: #define VECT_TAB_OFFSET 0x4000.The linker script has also been changed.For example, the linker script for SP-SNS-FLIGHT1 running on STM32F401RE and compiled using IAREmbedded Workbench for ARM is:

define symbol __ICFEDIT_intvec_start__ = 0x08004000; /*-Memory Regions-*/ define symbol __ICFEDIT_region_ROM_start__ = 0x08004000; define symbol __ICFEDIT_region_ROM_end__ = 0x0803FFFF; define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; define symbol __ICFEDIT_region_RAM_end__ = 0x20017FFF; /*-Sizes-*/ define symbol __ICFEDIT_size_cstack__ = 0x8000; define symbol __ICFEDIT_size_heap__ = 0x800;

Using the above linker script, the maximum usable code size is fixed at 240 KB.You must flash the appropriate bootloader binary for STM32F401RE or STM32L476RG , found in theUtilities\BootLoader folder, to the first Flash region (address 0x08000000).

UM2026The boot process

UM2026 - Rev 7 page 6/41

Page 7: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 4. Bootloader folder content

At any board reset:• if there is a FOTA in the third Flash region, the bootloader overwrites the second Flash region (with

FP-SNS-FLIGHT1 firmware) and replaces its content with the FOTA restarting the board;• if there is no FOTA, the bootloader jumps to the FP-SNS-FLIGHT1 firmware.

Figure 5. FP-SNS-FLIGHT1 Flash structure

2.6 The installation process

The package Binary directory contains an image (in .bin format) for each platform (NUCLEO-F401RE, NUCLEO-L476RG, including:• pre-compiled FLIGHT1 firmware that may be flashed with ST-LINK to the correct memory address

(0x08004000) of a supported STM32 Nucleo development board

Note: Note that this pre-compiled binary is compatible with the FOTA update procedure• pre-compiled FLIGHT1 plus BootLoader firmware that may be directly flashed to a supported STM32 Nucleo

development board with the ST-LINK or via a Drag & Drop operation (STM32 Nucleo boards only)

Note: Note that this pre-compiled binary is not compatible with the FOTA update procedure

Figure 6. Binary folder content

UM2026The installation process

UM2026 - Rev 7 page 7/41

Page 8: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

To flash modified FLIGHT1 firmware, simply flash the compiled FP-SNS-FLIGHT1 firmware to the correct address(0x08004000).A batch script has been provided to simplify this operation by saving the firmware and the BootLoader on the rightposition; it is available for each platform (NUCLEO-F401RE, NUCLEO-L476RG) and for each IDE (IAR/RealView/STM32CubeIDE):• IAR toolchain Embedded Workbench version 8.50.5:

– For NUCLEO-F401RE: CleanFLIGHT1_IAR_F401.bat– For NUCLEO-L476RG: CleanFLIGHT1_IAR_L476.bat

• µVision toolchain - MDK-ARM Professional version: 5.31.1:– For NUCLEO-F401RE: CleanFLIGHT1_MDK_ARM_F401.bat– For NUCLEO-L476RG: CleanFLIGHT1_MDK_ARM_L476.bat

• STM32CubeIDE version 4.2.0:– For NUCLEO-F401RE: CleanFLIGHT1_STM32CubeIDE_F401.bat– For NUCLEO-L476RG: CleanFLIGHT1_STM32CubeIDE_L476.bat

Figure 7. Content of a project folder

This script:• performs a full Flash erase to start from a clean system• flashes the BootLoader to the correct position 0x08000000• flashes the firmware to the correct position 0x08004000

UM2026The installation process

UM2026 - Rev 7 page 8/41

Page 9: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 8. BootLoader and FP-SNS-FLIGHT1 installation

UM2026The installation process

UM2026 - Rev 7 page 9/41

Page 10: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

The script also dumps an image containing the BootLoader and the firmware. This image file can be directlyflashed to the beginning of the Flash memory like in the same way as the image provided in the Binary folder.

Figure 9. FP-SNS-FLIGHT1 dump process

For the Linux or iOS operating systems, there is a similar script that uses OpenOCD instead of the ST-LINKcommand line. The script is available for each platform, but is only included in the STM32CubeIDE:• CleanFLIGHT1_STM32CubeIDE_F401.sh• CleanFLIGHT1_STM32CubeIDE_L476.sh

To function, the script must be modified with:• the installation path for OpenOCD• the installation path for STM32 OpenOCD scritps• the Library path for OpenOCD

TheOpenOCD script section to be edited is:

UM2026The installation process

UM2026 - Rev 7 page 10/41

Page 11: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

# 1) Set the Installation path for OpenOCD# example:#OpenOCD_DIR="C:/ST/STM32CubeIDE_1.4.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.openocd.win32_1.4.0.202007081208/tools"OpenOCD_DIR=""

# 2) Set the installation path for stm32 OpenOCD scritps# example:#OpenOCD_CFC="C:/ST/STM32CubeIDE_1.4.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.debug.openocd_1.4.2.202008061104/resources/openocd/st_scripts"OpenOCD_CFC=""

# 3) Only for Linux/iOS add openocd library path to _LIBRARY_PATH:# For iOS example:#export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:${OpenOCD_DIR}"lib/"

# For Linux example:#export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${OpenOCD_DIR}"lib/"

2.7 Firmware-over-the-air (FOTA) update

The FP-SNS-FLIGHT1 firmware can be updated over-the-air (FOTA) through the connected Android/iOS devicevia Bluetooth using the STBLESensor application (ver. 4.8.0 and above) available at the respective web stores.The application sends the update and associated CRC (cyclic-redundancy-check) value that the FP-SNS-FLIGHT1 checks against the hardware cyclic redundancy check calculation unit on the STM32F401/STM32L476processor to ensure update integrity.If the CRC calculation matches the STBLESensor CRC value, the new firmware is written from the beginning ofthe third Flash region.A “magic number” prompts the boot loader that a firmware update has been received, checked and is ready toreplace the current FP-SNS-FLIGHT1 firmware (see Section 2.11 Firmware over-the-air (FOTA) update withSTBLESensor).

2.8 APIs

Detailed technical information regarding the APIs available to the user can be found in a compiled HTML filelocated inside the “Documentation” folder of the software package, where all the functions and parameters arefully described.

2.9 Sample application description

The available sample application uses the X-NUCLEO-NFC04A1 (optional), X-NUCLEO-53L1A2 and X-NUCLEO-IDB05A2 expansion boards with the NUCLEO-F401RE or NUCLEO-L476RG development boards.Ready to be built projects are available for multiple IDEs.You can set up a terminal window for the appropriate UART communication port to control the initialization phase.

UM2026Firmware-over-the-air (FOTA) update

UM2026 - Rev 7 page 11/41

Page 12: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 10. Terminal setting

When pressing the reset button, if the X-NUCLEO-NFC04A1 expansion board is present, the application:1. starts initializing the UART interface2. writes the STM32ODE URI into the M24SR dynamic NFC tag embedded in the X-NUCLEO-NFC04A1

expansion board3. initializes the X-NUCLEO-53L1A2 expansion board4. tests the BootLoaderCompliance

Figure 11. Initialization phase

When reading the NFC tag content through an Android device, the browser automatically starts trying to connectto the URI.

UM2026Sample application description

UM2026 - Rev 7 page 12/41

Page 13: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

When you press the user blue button (see Figure 12. UART console output when the BLE services are initialized),the program:1. determines if the X-NUCLEO-IDB05A2 BlueNRG expansion board is connected to the STM32 Nucleo board

and identifies the hardware and firmware version information2. shows the board name and the BLE MAC address3. creates and shows the security PIN necessary for the connection4. initializes the BLE hardware service5. initializes the BLE console service adding the stdin/stdout and stderr characteristics6. initializes the BLE configuration service7. changes the content of the ST25DV04K dynamic NFC tag (using NDEF) to write all the information

necessary to automatically launch the STBLESensor Android application (name of application, BLEadvertising data, BLE MAC address and BLE connection PIN).

Figure 12. UART console output when the BLE services are initialized

When reading the above NFC content on an Android device with the STBLESensor application installed, it ispossible to automatically launch the STBLESensor application to connect the device with the STM32 Nucleoboard, without scanning for the board or manually inserting the PIN.

Note: iOS does not allow the use of NFC for this purpose, so you must run the application manually, scan for theSTM32 Nucleo board and enter the connection PIN.

UM2026Sample application description

UM2026 - Rev 7 page 13/41

Page 14: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

The FLIGHT1_SECURE_CONNECTION define in "Applications\FLIGHT1\Inc\FLIGHT1_config.h" controls whetherthe STM32 Nucleo development board accepts secure connections (default) only or any connection (define iscommented), so you do not have to enter the BLE connection PIN for a device to connect to the developmentboard.The connection of an Android/iOS device to the STM32 Nucleo board starts with the secure pairing procedure,sending the ping information to the stdout console BLE characteristic.If the X-NUCLEO-NFC04A1 expansion board is not present, the application:1. starts initializing the UART interface2. writes NFC TAG not present3. initializes the X-NUCLEO-53L1A2 expansion board4. tests the BootLoaderCompliance5. determines if the X-NUCLEO-IDB05A2 BlueNRG expansion board is connected to the STM32 Nucleo board

and identifies the hardware and firmware version information6. shows the board name and the BLE MAC address7. initializes the BLE hardware service8. initializes the BLE console service adding the stdin/stdout and stderr characteristics9. initializes the BLE configuration service

Figure 13. UART console output when the X-NUCLEO-NFC04A1 is not present

UM2026Sample application description

UM2026 - Rev 7 page 14/41

Page 15: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 14. UART console output when a device connects to the board for the first time

The application has a white list of one element, so subsequent connections with the last trusted device areautomatically authenticated.

UM2026Sample application description

UM2026 - Rev 7 page 15/41

Page 16: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 15. UART console output when a device is already trusted

2.10 Android and iOS sample client application

The FP-SNS-FLIGHT1 software for STM32Cube is compatible with the STBLESensor Android/iOS applications(version 4.8.0 and above), available at the respective Google Play/iOS stores.The application allows Over-The-Air firmware update.The Android version is used here to show how the application works.After connection, STBLESensor starts with the page shown below,where the ToF distance plot is displayed whenpressing the [Play] button.

UM2026Android and iOS sample client application

UM2026 - Rev 7 page 16/41

Page 17: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 16. STBLESensor (Android version) ToF distance plot

UM2026Android and iOS sample client application

UM2026 - Rev 7 page 17/41

Page 18: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 17. STBLESensor (Android version) menu selection

If the Debug console is enabled, stdin is displayed and any message written triggers a reply with the samemessage if the command line is not recognized, as shown below.

UM2026Android and iOS sample client application

UM2026 - Rev 7 page 18/41

Page 19: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 18. STBLESensor (Android version) Debug console (stdin/stdout/stderr)

The [help] command shows a list of the recognized commands.

UM2026Android and iOS sample client application

UM2026 - Rev 7 page 19/41

Page 20: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 19. STBLESensor (Android version) Debug console - help command

[ToF Objects Detection] shows the distances of the detected objects (up to 4 objects) or the person presence.

UM2026Android and iOS sample client application

UM2026 - Rev 7 page 20/41

Page 21: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 20. STBLESensor (Android version) ToF Objects Detection - distance

UM2026Android and iOS sample client application

UM2026 - Rev 7 page 21/41

Page 22: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 21. STBLESensor (Android version) ToF Objects Detection - presence

The presence is identified inside a fixed range distance that can be modified by the following defines:• #define PRESENCE_MIN_DISTANCE_RANGE 300• #define PRESENCE_MAX_DISTANCE_RANGE 800in Applications\FLIGHT1\Inc\FLIGHT1_config.h.

The status of the STM32Nucleo on-board LED can be switched in the following app page.

UM2026Android and iOS sample client application

UM2026 - Rev 7 page 22/41

Page 23: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 22. STBLESensor (Android version) LED switch page

2.11 Firmware over-the-air (FOTA) update with STBLESensor

If the Firmware upgrade option menu is selected in the STBLESensor main application page, the following pageappears.

UM2026Firmware over-the-air (FOTA) update with STBLESensor

UM2026 - Rev 7 page 23/41

Page 24: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 23. STBLESensor (Android version) firmware upgrade page

The STBLESensor application shows which version of the FP-SNS-FLIGHT1 software is running and the boardtype. To apply an update, select the appropriate update file and press the red button.

UM2026Firmware over-the-air (FOTA) update with STBLESensor

UM2026 - Rev 7 page 24/41

Page 25: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 24. STBLESensor (Android version) firmware update file selection

STBLESensor sends an update of a certain byte size and corresponding CRC value to FP-SNS-FLIGHT1.The figure below shows the terminal window with the debug information returned during FOTA for the STM32Nucleo platform (NUCLEO-F401RE/NUCLEO-L476RG) when FP-SNS-FLIGHT1 is controlled via UART.

UM2026Firmware over-the-air (FOTA) update with STBLESensor

UM2026 - Rev 7 page 25/41

Page 26: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 25. Terminal window information during FOTA

During the FOTA procedure, the STBLESensor application shows the remaining packets to be sent and the totalupdate time when the procedure ends.

UM2026Firmware over-the-air (FOTA) update with STBLESensor

UM2026 - Rev 7 page 26/41

Page 27: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 26. STBLESensor (Android version) application page during FOTA and on completion

UM2026Firmware over-the-air (FOTA) update with STBLESensor

UM2026 - Rev 7 page 27/41

Page 28: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

3 System setup guide

3.1 Hardware description

This section describes the hardware components needed for sensor-based application development.

3.1.1 STM32 NucleoSTM32 Nucleo development boards provide an affordable and flexible way for users to test solutions and buildprototypes with any STM32 microcontroller line.The Arduino™ connectivity support and ST morpho connectors make it easy to expand the functionality of theSTM32 Nucleo open development platform with a wide range of specialized expansion boards to choose from.The STM32 Nucleo board does not require separate probes as it integrates the ST-LINK/V2-1 debugger/programmer.The STM32 Nucleo board comes with the comprehensive STM32 software HAL library together with variouspackaged software examples for different IDEs (IAR EWARM, Keil MDK-ARM, STM32CubeIDE, mbed and GCC/LLVM).All STM32 Nucleo users have free access to the mbed online resources (compiler, C/C++ SDK and developercommunity) at www.mbed.org to easily build complete applications.

Figure 27. STM32 Nucleo board

Information regarding the STM32 Nucleo board is available at www.st.com/stm32nucleo

UM2026System setup guide

UM2026 - Rev 7 page 28/41

Page 29: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

3.1.2 X-NUCLEO-NFC04A1 expansion boardThe X-NUCLEO-NFC04A1 dynamic NFC/RFID tag IC expansion board is based on the ST25DV04K NFC TypeV/RFID tag IC with a dual interface 4 Kbits EEPROM that also features an I²C interface. It can be powered by thepin of Arduino connector or directly by the received carrier electromagnetic field.The X-NUCLEO-NFC04A1 expansion board is compatible with the Arduino™ UNO R3 connector pin assignmentand can easily be plugged onto any STM32 Nucleo board. Various expansion boards can also be stacked toevaluate different devices operating together with the dynamic NFC tag. The board also features an antenna witha 54 mm ISO 24.2 diameter, single layer, copper etched on PCB.

Figure 28. X-NUCLEO-NFC04A1 expansion board

UM2026Hardware description

UM2026 - Rev 7 page 29/41

Page 30: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

3.1.3 X-NUCLEO-IDB05A2 expansion boardThe X-NUCLEO-IDB05A2 Bluetooth low energy expansion board is based on the BlueNRG-M0 BLE networkprocessor module.The BlueNRG-M0 is Bluetooth v4.2 compliant, FCC and IC certified (FCC ID: S9NBNRGM0AL; IC: 8976C-BNRGM0AL). It supports simultaneous master/slave roles and can behave as a Bluetooth low energy sensor andhub device at the same time.The BlueNRG-M0 provides a complete RF platform in a tiny form factor, with integrated radio, antenna, highfrequency and LPO oscillators.The X-NUCLEO-IDB05A2 is compatible with the ST morpho (not mounted) and Arduino UNO R3 connectorlayout.The X-NUCLEO-IDB05A2 interfaces with the STM32 microcontroller via the SPI pin and allows changing thedefault SPI clock, SPI chip select and SPI IRQ by replacing a resistor on the expansion board.

Figure 29. X-NUCLEO-IDB05A2 expansion board

UM2026Hardware description

UM2026 - Rev 7 page 30/41

Page 31: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

3.1.4 X-NUCLEO-53L1A2 expansion boardThe X-NUCLEO-53L1A2 is an expansion board for the NUCLEO-F401RE and NUCLEO-L476RG developmentboards. It allows evaluating and developing your own application using the VL53L1 ToF ranging sensor withadvanced multi-object detection and FoV programming.The X-NUCLEO-53L1A2 expansion board package contains a cover glass holder that can host three differentspacers of 0.25, 0.5, and 1 mm to simulate various air gaps.The expansion board is compatible with the STM32 Nucleo board family and with the Arduino UNO R3 connectorlayout.Several ST expansion boards can be stacked through the Arduino connectors for the development of VL53L1applications via Bluetooth or Wi-Fi.

Figure 30. X-NUCLEO-53L1A2 expansion board

3.2 Software description

The following software components are required to create a suitable development environment for applicationsbased on the STM32 Nucleo equipped with the NFC (optional), sensors, time-of-flight and BlueNRG expansionboards:• FP-SNS-FLIGHT1: a Bluetooth low energy, sensors and NFC tag (optional) software for STM32Cube. The

FP-SNS-FLIGHT1 firmware and related documentation is available on www.st.com.

UM2026Software description

UM2026 - Rev 7 page 31/41

Page 32: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

• Development tool-chain and Compiler: The STM32Cube expansion software supports the followingenvironments:– IAR Embedded Workbench for ARM® (EWARM) toolchain + ST-LINK– RealView Microcontroller Development Kit (MDK-ARM) toolchain + ST-LINK– STM32CubeIDE + ST-LINK

3.3 Hardware setup

The following hardware components are needed:• for STM32 Nucleo expansion boards:

– one STM32 Nucleo Development platform (order code: NUCLEO-F401RE or NUCLEO-L476RG)– optional - one NFC expansion board (order code: X-NUCLEO-NFC04A1)– one VL53L1 ToF ranging sensor expansion board (order code: X-NUCLEO-53L1A2)– one BlueNRG Bluetooth low energy expansion board (order code: X-NUCLEO-IDB05A2)– one USB type A to Mini-B USB cable to connect the STM32 Nucleo to the PC

3.4 System setup guide

3.4.1 STM32 Nucleo and sensor expansion board setupThe STM32 Nucleo development board integrates the ST-LINK/V2-1 debugger/programmer. You can downloadthe relevant version of the ST-LINK/V2-1 USB driver by searching STSW-LINK008 or STSW-LINK009 onwww.st.com (based on your version of Microsoft Windows).

UM2026Hardware setup

UM2026 - Rev 7 page 32/41

Page 33: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Connect the expansion boards through the Arduino UNO R3 extension connector as shown in the followingpictures.

Figure 31. STM32 Nucleo development board plus X-NUCLEO-NFC04A1 expansion board (optional)

UM2026System setup guide

UM2026 - Rev 7 page 33/41

Page 34: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 32. STM32 Nucleo development board plus X-NUCLEO-NFC04A1 (optional) and X-NUCLEO-IDB05A2 expansion boards

UM2026System setup guide

UM2026 - Rev 7 page 34/41

Page 35: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Figure 33. STM32 Nucleo development board plus X-NUCLEO-NFC04A1 (optional), X-NUCLEO-IDB05A2and X-NUCLEO-53L1A2 expansion boards

Figure 34. STM32 Nucleo development board plus X-NUCLEO-IDB05A2 and X-NUCLEO-53L1A2 expansionboards

Note: You must connect the boards in the sequence shown above to optimize the performance of the BlueNRG-M0module on the X-NUCLEO-IDB05A2 expansion board and to reduce interference from its antenna.

UM2026System setup guide

UM2026 - Rev 7 page 35/41

Page 36: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

3.4.2 Important additional hardware informationBefore connecting the X-NUCLEO-NFC04A1 expansion board through the Arduino UNO R3 extension connector,to avoid hardware conflict with the X-NUCLEO-IDB05A2 expansion board, remove R1 and R11 resistors(highlighted in the following picture) from the X-NUCLEO-NFC04A1.

Figure 35. X-NUCLEO-NFC04A1 configuration

3.4.3 Important additional software informationThe 53L1A2 BSP has been treated as an exception in this package since its version is not compatible with theother BSPs used in this firmware.A patch (53L1A2_Patch.c), located in the user space (\Applications\FLIGHT1\Patch), replaces the original BSPfile which has been disabled, allowing the whole software structure to work flawlessly.

UM2026System setup guide

UM2026 - Rev 7 page 36/41

Page 37: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Revision history

Table 2. Document revision history

Date Version Changes

25-Feb-2016 1 Initial release.

05-Dec-2016 2

Updated Section "Introduction", Section 2.1: "Overview ", Figure 4: "Initialization phase", Figure 5:"UART console output when the BLE services are started", Figure 6: "UART console output whena device first connects with the board", Figure 15: "BlueMS (android version) initial page after BLEconnection", Figure 1: "FP-SNS-FLIGHT1 software architecture" and Figure 18: "BlueMS (androidversion) Serial console (stdout/stderr)"; Added Section 2.6: "Flash organization", Section 2.7: "Theboot process", Section 2.8: "Firmware-Over-The-Air (FOTA) update" and Section 2.9: "Firmware OverThe Air (FOTA) update with BlueMS"

20-Feb-2017 3

Throughout document:

- minor text and formatting changes.- added IKS01A2 expansion board compatibility information

Added Section 2.6: " The installation process"

Updated Section 2.9: "Sample application description", Section 2.10:

" Android and iOS sample client application" and Section 2.11:

"Firmware-over-the-air (FOTA) update with BlueMS"

31-Mar-2017 4

Updated title, Introduction, Section 2.1: "Overview ", Section 2.2: "Architecture", Section 2.3: "Folderstructure", Section 2.6: "The installation process", Section 2.9: "Sample application description",Section 2.10: "Android and iOS sample client application", Section 2.11: "Firmware over-the-air(FOTA) update with BlueMS".

Added X-NUCLEO-53L0A1 expansion board compatibility information.

Added Section 3.1.8: "X-NUCLEO-53L0A1 expansion board".

03-Sep-2018 5

Updated Introduction, Section 2.1 Overview, Figure 2. FP-SNS-FLIGHT1 software architecture,

Section 2.6 The installation process, Section 2.9 Sample application description, Figure 16. BlueMS(android version) main page (after BLE connection), Figure 21. BlueMS (android version) Serialconsole (stdout/stderr), Section 3.3.1 Hardware setup and Section 3.3.3.1 STM32 Nucleo and sensorexpansion board setup.

Added Section 3.1.4 X-NUCLEO-NFC04A1 expansion board, Section 3.3.3.2 STEVAL-BCNKT01V1setup and Section 3.3.3.3 Important additional hardware information.

01-Oct-2020 6

Updated Introduction, Section 2.1 Overview, Section 2.2 Architecture, Section 2.3 Folder structure,Section 2.6 The installation process, Section 2.7 Firmware-over-the-air (FOTA) update, Section 2.9Sample application description, Section 2.10 Android and iOS sample client application, Section 2.11Firmware over-the-air (FOTA) update with STBLESensor, Section 3.2 Software description, Section3.3 Hardware setup, Section 3.4.1 STM32 Nucleo and sensor expansion board setup and Section3.4.2 Important additional hardware information.

Added Section 3.1.3 X-NUCLEO-IDB05A2 expansion board and Section 3.1.4 X-NUCLEO-53L1A2expansion board.

02-Nov-2020 7 Updated title.

UM2026

UM2026 - Rev 7 page 37/41

Page 38: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

Contents

1 Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

2 FP-SNS-FLIGHT1 software description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Folder structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.4 Flash organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.5 The boot process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.6 The installation process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.7 Firmware-over-the-air (FOTA) update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.8 APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.9 Sample application description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.10 Android and iOS sample client application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.11 Firmware over-the-air (FOTA) update with STBLESensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3 System setup guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28

3.1 Hardware description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1.1 STM32 Nucleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1.2 X-NUCLEO-NFC04A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1.3 X-NUCLEO-IDB05A2 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.1.4 X-NUCLEO-53L1A2 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2 Software description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3 Hardware setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.4 System setup guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.4.1 STM32 Nucleo and sensor expansion board setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.4.2 Important additional hardware information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.4.3 Important additional software information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37

UM2026Contents

UM2026 - Rev 7 page 38/41

Page 39: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

List of tablesTable 1. Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Table 2. Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

UM2026List of tables

UM2026 - Rev 7 page 39/41

Page 40: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

List of figuresFigure 1. FP-SNS-FLIGHT1 software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Figure 2. FP-SNS-FLIGHT1 package folder structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Figure 3. FP-SNS-FLIGHT1 Flash structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Figure 4. Bootloader folder content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Figure 5. FP-SNS-FLIGHT1 Flash structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Figure 6. Binary folder content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Figure 7. Content of a project folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Figure 8. BootLoader and FP-SNS-FLIGHT1 installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Figure 9. FP-SNS-FLIGHT1 dump process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Figure 10. Terminal setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Figure 11. Initialization phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Figure 12. UART console output when the BLE services are initialized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Figure 13. UART console output when the X-NUCLEO-NFC04A1 is not present . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Figure 14. UART console output when a device connects to the board for the first time . . . . . . . . . . . . . . . . . . . . . . . . . 15Figure 15. UART console output when a device is already trusted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Figure 16. STBLESensor (Android version) ToF distance plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Figure 17. STBLESensor (Android version) menu selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Figure 18. STBLESensor (Android version) Debug console (stdin/stdout/stderr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Figure 19. STBLESensor (Android version) Debug console - help command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Figure 20. STBLESensor (Android version) ToF Objects Detection - distance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Figure 21. STBLESensor (Android version) ToF Objects Detection - presence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Figure 22. STBLESensor (Android version) LED switch page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Figure 23. STBLESensor (Android version) firmware upgrade page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Figure 24. STBLESensor (Android version) firmware update file selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Figure 25. Terminal window information during FOTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Figure 26. STBLESensor (Android version) application page during FOTA and on completion . . . . . . . . . . . . . . . . . . . . 27Figure 27. STM32 Nucleo board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Figure 28. X-NUCLEO-NFC04A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Figure 29. X-NUCLEO-IDB05A2 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Figure 30. X-NUCLEO-53L1A2 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Figure 31. STM32 Nucleo development board plus X-NUCLEO-NFC04A1 expansion board (optional) . . . . . . . . . . . . . . 33Figure 32. STM32 Nucleo development board plus X-NUCLEO-NFC04A1 (optional) and X-NUCLEO-IDB05A2 expansion

boards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Figure 33. STM32 Nucleo development board plus X-NUCLEO-NFC04A1 (optional), X-NUCLEO-IDB05A2 and X-

NUCLEO-53L1A2 expansion boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Figure 34. STM32 Nucleo development board plus X-NUCLEO-IDB05A2 and X-NUCLEO-53L1A2 expansion boards . . . 35Figure 35. X-NUCLEO-NFC04A1 configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

UM2026List of figures

UM2026 - Rev 7 page 40/41

Page 41: User manual - UM2026 - Getting started with the STM32Cube ......The gesture detect software library uses the X-NUCLEO-53L0A1 (or X-NUCLEO-6180XA10) on-board sensor plus two additional

IMPORTANT NOTICE – PLEASE READ CAREFULLY

STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to STproducts and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. STproducts 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 ofPurchasers’ 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. For additional information about ST trademarks, please refer to www.st.com/trademarks. All other product or servicenames are the property of their respective owners.

Information in this document supersedes and replaces information previously supplied in any prior versions of this document.

© 2020 STMicroelectronics – All rights reserved

UM2026

UM2026 - Rev 7 page 41/41