2025-05-09 7:00 AM
Hi everyone,
I’ve been working with the STM32WB1MMC module and I’m running into several issues related to HCI command support over UART.
I started by flashing the binary found here:
STM32CubeWB/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB1x
Unfortunately, the module doesn’t respond to any HCI commands over UART.
Is this binary supposed to work standalone, or does it require an application to map the UART interface?
I’ve tried several UART ports but haven’t received any response so far.
To explore alternatives, I looked into the Transparent Mode example from ST:
STM32CubeWB/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_TransparentMode
According to the documentation, this application should allow controlling the MCU directly via HCI commands when used with the XX-BLE_Stack_full_fw.bin binary.
Since the project is only available for the Nucleo-WB55RG (not for the WB1MMC module), I ran tests on the WB55RG instead, which I had on hand.
Using CubeMonitorRF over USB, I managed to send and receive some HCI commands like RESET and HCI_READ_LOCAL_VERSION_INFORMATION. However, other basic commands — such as HCI_READ_LOCAL_SUPPORTED_FEATURES — return "unknown command".
The HCI_READ_LOCAL_SUPPORTED_FEATURES command is required by Zephyr during Bluetooth stack initialization.
I tested with Zephyr running on a Nucleo-H563ZI (STM32H5) as HCI master, and the WB55RG as the HCI slave via UART. The WB55RG still responded with "unknown command", which causes Zephyr to crash at startup.
I also noticed that several other HCI commands fail in the same way.
I followed ST’s suggestion to try the BLE_Stack_full_extended_fw.bin binary, which supposedly includes broader HCI support.
However, when I pair it with the Transparent Mode application, I get no response at all over UART.
Here’s the flashing process I followed:
Full flash erase
Flash the BLE stack at the correct address
Start the stack
Flash the Transparent Mode application
Still, no success.
Is the stm32wbxx_BLE_HCILayer_fw.bin binary usable without a specific application to map UART?
Is the Transparent Mode example expected to support a complete set of HCI commands?
Are there known limitations to the available HCI command set in the BLE full or extended stacks?
What is the recommended combination of stack + application to get a fully functional HCI interface over UART, compatible with Zephyr?
Thanks in advance for your help !
Solved! Go to Solution.
2025-05-12 6:01 AM
Thank you very much for your detailed answer !
I assume it's some sort of minimal application or configuration required for basic HCI operation.
2 & 3. Thanks for the clarification regarding the stack variants and their support for HCI commands.
4. The issue I had with the stm32wb5x_BLE_Stack_full_extended_fw.bin stack was that I couldn't get any UART responses. I know it requires a modified linker file, but since I'm using the example provided by ST (Transparent Mode), I assumed the linker configuration would already be correct.
Interestingly, shortly after reading your message, I tested the stm32wb1x_BLE_HCILayer_fw.bin stack together with the Transparent Mode example, and it finally worked perfectly — all the HCI commands are supported and functional. stm32wb1x_BLE_HCILayer_extended_fw.bin is also functional.
That being said, I do want to highlight that the documentation is quite confusing. For example, in the release notes for the "full" stack, it says:
"HCI interface (full, like stm32wb5x_BLE_HCILayer_fw.bin)"
which is misleading, because this stack does not support all HCI commands.
Further down it also says:
"Some HCI interface features (won’t be able to process through HCI interface)"
which adds to the confusion.
In the end, what worked for me was:
Transparent Mode example + stm32wb5x_BLE_HCILayer_fw.bin
Just for reference, this also works on the STM32WB1MMC (stm32wb1x_BLE_HCILayer_fw.bin), after a quick configuration in CubeMX (.ioc) to enable Transparent Mode and map the correct UART.
2025-05-12 2:06 AM - edited 2025-05-12 7:35 AM
Hello @Seris and welcome to the ST Community.
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2025-05-12 6:01 AM
Thank you very much for your detailed answer !
I assume it's some sort of minimal application or configuration required for basic HCI operation.
2 & 3. Thanks for the clarification regarding the stack variants and their support for HCI commands.
4. The issue I had with the stm32wb5x_BLE_Stack_full_extended_fw.bin stack was that I couldn't get any UART responses. I know it requires a modified linker file, but since I'm using the example provided by ST (Transparent Mode), I assumed the linker configuration would already be correct.
Interestingly, shortly after reading your message, I tested the stm32wb1x_BLE_HCILayer_fw.bin stack together with the Transparent Mode example, and it finally worked perfectly — all the HCI commands are supported and functional. stm32wb1x_BLE_HCILayer_extended_fw.bin is also functional.
That being said, I do want to highlight that the documentation is quite confusing. For example, in the release notes for the "full" stack, it says:
"HCI interface (full, like stm32wb5x_BLE_HCILayer_fw.bin)"
which is misleading, because this stack does not support all HCI commands.
Further down it also says:
"Some HCI interface features (won’t be able to process through HCI interface)"
which adds to the confusion.
In the end, what worked for me was:
Transparent Mode example + stm32wb5x_BLE_HCILayer_fw.bin
Just for reference, this also works on the STM32WB1MMC (stm32wb1x_BLE_HCILayer_fw.bin), after a quick configuration in CubeMX (.ioc) to enable Transparent Mode and map the correct UART.