cancel
Showing results for 
Search instead for 
Did you mean: 

Problem cloning STM32WB55 BLE_p2pServer example

I have a custom board running the STM32WB55. My medium term goal is to use BLE to perform OTA updates for my firmware. I'm trying to leverage the BLE_p2pServer BLE_p2pServer_ota examples from the as a starting point, but I'm getting stuck at one of the first steps.

To start with, I'm just trying to copy (clone) the BLE_p2pServer example from the STM32Cube_FW_WB_V1.15.0 repository into my own working directory. I started by generating a new project from the BLE_p2pServer .ioc file using CubeMX, and then I copied all the source code files from the STM32Cube_FW_WB_V1.15.0 repository into my own file area. The new project compiled fine after I copied the stm32wbxx_nucleo.c file into my area. The problem is that the new app does not properly advertise.

I checked the debugger text, and both applications have identical debugger output, ending with

==>> Success: Start Fast Advertising

but the copied version of the project keeps the green LED2 on constantly rather than flashing it, and the board does not show up in the ST BLE Sensor phone app.

I have replaced the Cube-generated linker script and startup scripts with the one from the repository, with no change in behavior.

I have verified that the files in the following folders are identical:

Core/Inc

Core/Src

Startup

STM32_WPAN/App

STM32_WPAN/Target

Any ideas for where else I should look? Should I just start stepping through the code for the two projects to see where they diverge in behavior?

1 REPLY 1

To collect more data I copied the BLE_p2pServer folder within the V1.15.0 repository into a new project called BLE_p2pServerR15, changed the .ioc file name to BLE_p2pServerR15, and manually edited the project name to BLE_p2pServerR15 so that I could import it into CubeIDE alongside other versions. This version compiles and functions as one would expect.

My problem is that I want to clone this project into my own Egit-controlled repository. When i do it by copying the .ioc file, using it to generate a new project and then copying all the source code I can find from the original example, the project compiles and runs but doesn't function. It gets all the way through the code to where the debug statements say that it is advertising, but there's not evidence it's advertising. I'm still stumped as to what the difference is between my project that is locally copied within the V1.15.0 repository folder, and one that is copied into in another directory and uses CubeMX and the copied .ioc file to copy V1.15.0 repository drivers, utilities, etc. into the new project. Every file I'm aware of that the project uses is identical.