STM32WB BLE Hardware Setup

Revision as of 15:30, 8 November 2021 by Registered User (→‎FUS Update)
Under construction.png Coming soon

Click here for BLE overview

1. Introduction

The STM32WB combines a well-know ARM Cortex-M4 for the application, plus, a 2.4 GHz radio subsystem and a ARM Cortex-M0+ core for the wireless stack processor.

STM32WB Dual Core

The ARM Cortex-M0+ can be considered in most cases as "black box" and it is necessary to upgrade the wireless stack before developing a project on the application side.
This wiki page contains information to help users to bring up their hardware setups.

  • Boards connection
  • Firmware Upgrade Service upgrade
  • BLE Wireless Stack upgrade

2. P-NUCLEO-WB55

2.1. Boards and ST-LINK USB cable connections

Nucleo platform connection

The USB cable from the PC is used to power and interact with the STM32.

3. STM32WB5MM-DK Discovery kit

3.1. Boards and ST-LINK USB cable connections

Discovery kit platform connection

The USB cable from the PC is used to power and interact with the STM32.

4. FUS and Wireless Stack Update

Firmware Upgade Services (FUS) and Bluetooth® Low Energy Stack can be updated using STM32CubeProgrammer software[1].

4.1. FUS Update

FUS (firmware upgrade services) is a firmware running on STM32WB Cortex®-M0+ and offering following features:

  1. Install, upgrade or delete STM32WB Cortex®-M0+ wireless stack
  2. FUS self-upgrade
  3. Customer authentication key management
  4. User key management
  5. Communication with Cortex®-M4 (user code or bootloader)

More information can be found on [Wireless:Wireless| FUS dedicated page] or in Firmware Upgrade Services for STM32WB series Application Note[2].


Below are described the different steps to Update the FUS of P-NUCLEO-WB55 and STM32WB5MM-DK Discovery platforms.
Connect your platform using STM32Cubeprogrammer[1].

CubeProgrammer: connection

4.1.1. Start FUS

Once connected, go to Firmware Upgrade Services interface, and start the actual FUS, clicking on the associated button.

CubeProgrammer: start FUS

An error may occur while starting the FUS.

CubeProgrammer: FUS error

If it is the case, press OK on appearing popups and re-start the FUS.

CubeProgrammer: FUS started logs

4.1.2. Read FUS

Once the FUS is started read its value.

CubeProgrammer: read FUS

4.1.3. Update FUS

Update FUS with latest version.
The latest version of the FUS can be found in STM32CubeWB package.

Check the Releases Notes to know what is the latest FUS version and the FUS Start Address.

FUS information


If the FUS version of your platform is different than the version specified in Release Notes, proceed to FUS update by following the below steps:

- If the platform FUS version is 0.5.3, use the binary dedicated:
STM32Cube_FW_WB_V[...]\Projects\STM32WB_Copro_Wireless_Binaries\STM32WB5x\stm32wb5x_FUS_fw_for_fus_0_5_3.bin
.

CubeProgrammer: FUS 0.5.3

- If the platform FUS version is different from 0.5.3, then use the other binary: STM32Cube_FW_WB_V[...]\Projects\STM32WB_Copro_Wireless_Binaries\STM32WB5x\stm32wb5x_FUS_fw.bin
.

Click on Firmware Upgrade.

CubeProgrammer: update FUS

A popup occurs to confirm the correct upgrade.

4.1.4. Check new FUS version

Check the new FUS version by clicking on Read FUS info button.

CubeProgrammer: read new FUS

4.2. BLE Stack Update

The BLE Stack can be updated on the same way as the FUS.

Firstly, check the start address of the stack in the Release Notes.

Stack start address

Select the type of stack in STM32CubeWB package.
For P-NUCLEO-WB55 and STM32WB5MM-DK Discovery platforms, the BLE stack is: STM32Cube_FW_WB_V[...]\Projects\STM32WB_Copro_Wireless_Binaries\STM32WB5x\stm32wb5x_BLE_Stack_full_fw.bin.

Check First Install checkbox if it is the first time you install the stack on your platform.

CubeProgrammer: stack installation

4.3. Application installation

To ensure FUS and BLE stask are fully fonctional, install a first ST BLE application on the platform.
Example project binaries are provided in STM32CubeWBpackage for Nucleo board:
STM32Cube_FW_WB_V[...]\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\[...].

Below lines explain how to install and launch BLE_p2pServer project on Nucleo board.

Go to Erasing & programming interface.
Select the path to the application binary, for example:
STM32Cube_FW_WB_V[...]\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_p2pServer\Binary\BLE_p2pServer_reference.hex.
Then, click on Start Programming button.

CubeProgrammer: install application

One the application correctly flashed on the platform, open a terminal (see [UART Interface setup]) and reset the platform.

At this point the FUS and BLE Stack are correctly installed on your platforms, BLE application as should display the FUS and BLE stack version on terminal logs:

application startup logs

5. Related Video

Further information can be found on the following videos: Lionel : https://www.youtube.com/watch?v=wheGvdXsi4o&list=PLnMKNibPkDnG9JRe2fbOOpVpWY7E4WbJ-&index=10

pc videol.png

Getting Started: STM32WB USB Dongle

pc videol.png

Stack and FUS Update over USB bootloader TODO STILL VALABLE?

6. Going Further

ST BLE examples : TODO LINK
Create your own BLE example Using CubeMX : TODO: LINK
Build and Flash an existing example : Build&Flash
ST BLE Smartphone applications : BLE Smartphone Applications

7. References