Skip to main content
SSong.3
Visitor II
May 25, 2022
Solved

Cannot generate BLE single tone on STM32WB55CGU using STM32CubeMonitor-RF

  • May 25, 2022
  • 3 replies
  • 1636 views

I would like to migrate the BLE_TransparentMode example to STM32WB55CGU and run it on the board I make.

I am using STM32CubeIDE 1.9.0, with STM32Cube_FW_WB_V1.13.3.

STM32CubeMonitor-RF version 2.8.1

Step 1: generate single tone with stm32wb5x_BLE_Stack_full_fw.bin

The BLE_TransparentMode example was successfully migrated to STM32WB55CGU and it works with STM32CubeMonitor-RF. I can do BLE advertising and scanning with it.

But when trying to generate the single tone, I get the error message as shown in the picture, the ACI_HAL_TON_START command is an "unknown HCI command" according to the error message.

The Readme.txt file in BLE_TransparentMode example requires to install stm32wb5x_BLE_Stack_full_fw.bin on the MCU, but apparently the ACI_HAL_TON_START command is not supported by this binary.

I checked the coprocessor wireless binary Release Notes in:

/STM32Cube_FW_WB_V1.13.3/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x/Release_Notes.htm

It mentions that a couple of functions are removed from stm32wb5x_BLE_Stack_full_fw.bin:

  • Following features are removed:
    • Direct test mode
    • L2Cap Connection - oriented channels support (IP over BLE enabler)
    • Channel selection #2 (under application flag selection)
    • Some HCI interface features (won’t be able to process through HCI interface)

So maybe the single tone command is not supported because of these removed features?

Step 2: generate single tone with stm32wb5x_BLE_Stack_full_extended_fw.bin

the same release note mentions that stm32wb5x_BLE_Stack_full_extended_fw.bin has more features, and gives the below instructions: to use this binary:

  • Warning: To use this binary, it is necessary to adapt the scatter file in the BLE applications as:
    • The RAM_A shared range shall be reduced to memory range [0x20030000:0x200307FF]
    • The Mail-box buffers(MB_MEM1, MB_MEM2) shall be located in RAM_B shared defined in memory range [0x20038000:0x2003A7FF]
    • The RAM_B shared shall be added to Total_RAM_region

I followed the above instruction, modified the link script of BLE_TransparentMode project, and made sure it runs without any hard fault or other issues. and then with this program running, STM32CubeMonitor-RF cannot recognize this board any more. it says "Device Under test node responding".

So far i cannot generate the single tone on BLE using either stm32wb5x_BLE_Stack_full_fw.bin or stm32wb5x_BLE_Stack_full_extended_fw.bin. Could anyone get this to work or have some recommendations on how to do this?

Thanks for your suggestions!

This topic has been closed for replies.
Best answer by Remy ISSALYS

Hello,

Finally, the ACI_HAL_TONE_START and ACI_HAL_TONE_STOP commands will be available in BLE Full and Light stack in the next release v1.14.0 available soon.

Best Regards

3 replies

Remy ISSALYS
Technical Moderator
June 1, 2022

Hello,

According to STM32WB_BLE_Wireless_Interface.html documentation, ACI_HAL_TONE_START command is available only in stm32wb5x_BLE_HCILayer_fw.bin. Of course, the command is also supported in stm32wb5x_BLE_Stack_full_extended_fw.bin (support all commands).

So, in order to use ACI_HAL_TONE_START command, you can use stm32wb5x_BLE_HCILayer_fw.bin and BLE_TransparentMode project. You can also use stm32wb5x_BLE_Stack_full_extended_fw.bin and BLE_TransparentMode project with modification in scatter file (see my second comment).

Best Regards

Remy ISSALYS
Technical Moderator
June 2, 2022

Hello,

I made a mistake, so I have edit my previous comment. You can use also stm32wb5x_BLE_Stack_full_extended_fw.bin and BLE_TransparentMode project with below modifications in the scatter file:

Replace the following line:

define symbol __ICFEDIT_region_RAM_SHARED_end__ = 0x200327FF;

by:

define symbol __ICFEDIT_region_RAM_SHARED_end__ = 0x200307FF;

Add this:

define symbol __ICFEDIT_region_RAM_B_SHARED_start__ = 0x20038000;
define symbol __ICFEDIT_region_RAM_B_SHARED_end__ = 0x2003A7FF;
define region RAM_B_SHARED_region = mem:[from __ICFEDIT_region_RAM_B_SHARED_start__ to __ICFEDIT_region_RAM_B_SHARED_end__];
 

Replace the following line:

define region Total_RAM_region = RAM_region | RAM_SHARED_region ;

By:

define region Total_RAM_region = RAM_region | RAM_SHARED_region | RAM_B_SHARED_region;

Replace the following lines:

place in RAM_SHARED_region { section MB_MEM1};
place in RAM_SHARED_region { section MB_MEM2};

By:

place in RAM_B_SHARED_region { section MB_MEM1};
place in RAM_B_SHARED_region { section MB_MEM2};

I have try with STM32CubeMonitor-RF v2.8.1 and there is no problem using ACI_HAL_TONE_START command.

Best Regards

Remy ISSALYS
Remy ISSALYSBest answer
Technical Moderator
June 3, 2022

Hello,

Finally, the ACI_HAL_TONE_START and ACI_HAL_TONE_STOP commands will be available in BLE Full and Light stack in the next release v1.14.0 available soon.

Best Regards