Showing results for 
Search instead for 
Did you mean: 

How to flash Wireless Coprocessor Binaries with STM32CubeProgrammer? Trying to flash the STM32WB5MMG Bluetooth module on a B-U585I-IOT02A (STM32U585AI) board.

Associate II


I'm currently trying to get two B-U585I-IOT02A (STM32U585AI) boards to communicate with UART over BLE. I'm using the BLE_CableReplacement example project (STM32Cube_FW_WB_V1.13.3/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_CableReplacement) as a starting point, as these boards are essentially supposed to replace physical communication wires. The STM32U585AI boards have a STM32WB5MMG Bluetooth module on-board, but I have not been able to find a way to flash the wireless coprocessor binaries onto it. The release notes do not include procedures for flashing the STM32U585AI boards. I'm also missing the Firmware Upgrade Services button on the left-hand menu of the STM32CubeProgrammer GUI despite being updated to the latest STM32CubeProgrammer version. I apologize in advance if these are novice-level questions - I've only just started using the STM32 ecosystem (~1-2 weeks at this point), so thank you for bearing with me!

To summarize, here are the questions I have:

  • How do I flash the Wireless Coprocessor Binaries using STM32CubeProgrammer to the B-U585I-IOT02A boards?
  • Is there a prerequisite to make the Firmware Upgrade Services button appear on the STM32CubeProgrammer GUI?
  • Can I use the Bluetooth USB connector on the B-U585I-IOT02A boards to flash the binaries? If not, how would I connect my PC to the board to flash it?

These are all the questions I have for now (just to get the FUS option to show up for the board I'm using).

Here is some information regarding my situation:

  • Board: B-U585I-IOT02A (STM32U585AI w/ STM32WB5MMG module)
  • Firmware (STM32U5): STM32Cube_FW_U5_V1.0.2
  • Firmware (STM32WB): STM32Cube_FW_WB_V1.13.3
  • Software to flash coprocessor binaries: STM32CubeProgrammer V2.9.0
  • If there is any other information that I should provide, please let me know!
ST Employee

Hi @juyec​ ,

the WB module uses different interface and not the STLink v3 that is exclusive to the U585.

The update procedure is described in the UM2839. Easiest way to update the WB module firmware is to use an external ST-link and CN5 header on the DK PCB.



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.


Thank you for the quick response - I see the UM2839 datasheet says the pads should be connected to certain debug signals. Would you recommend I use CN8 or CN9 to connect these? If so, would that still require a USB connection by the ST-Link (CN8) port or would I use the USB_BT (CN12) port?

I also have the issue of the STM32CubeProgrammer not showing the FUS menu. Should that appear when the board is discovered, or is there a software feature I need to enable in order for that option to show up?

I apologize again for all the questions!

Thank you,

Jake U.

Hi, I believe both power options are possible, that's the purpose of the SW3 switch. Using CN12 for power is probably easier.

CN8 is ST-link probably only usable with STM32U585, and the CN9 is also only connected to U585. You need a second, external, ST-link to program the WB module.



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.

Scott Löhr
Senior II

I have been unsuccessful trying to use an external ST-Link to program the WB module. It would be helpful to know a few more details that are not covered in either of the manuals (U585, STMCubeProgrammer).

How should the board be powered when trying to program the WB with the second STLink. (Via the system USB, or via the USB by the BLE port, should the power selector be set to USB or System?).

Scott Löhr
Senior II

I guess that this is as good of a place as any to share my latest experience wrt programming or just connecting to the STM32WB5MMG: I programmed my "release" code which attempts to be very power saving which includes re-configuring debugger lines as Analog inputs (lowest power configuration) and entering PM2 until wakeup from U5 master by the GPIO line between the two processors. This basically locked me out of being able to connect to the dang MMG - I couldn't again download and debug from IAR for example or even connect by the CubeProgrammer. I got lucky by rapidly pressing the B1 BLE reset button while trying to download and debug from IAR - I guess that that gives the ST-Link a momentary window to break in before the programmed firmware runs and re-configures the two SWD debugger lines.

Scott Löhr
Senior II

I have a deterministic order of steps to be able to download and debug from IAR:

  • in Project-->Options-->Debugger-->ST-LINK-->"Always prompt for probe selection" is checked
  • when prompted for probe, select the one connected to the MMG (obviously), press OK
  • then immediately momentary press of B1 on bottom of IOT02A board and download proceeds every time

On a side note, with basically identical code on the STM32WB5G on the STM Nucleo dev board, I have never had this problem / need to time this manual CPU reset button press.

Associate III

Has there been a resolution to this @Bubbles or @juyec? I am having the same problem. It sounds like I need an additional connector to update the Bluetooth module's firmware. How do I do this? I am a beginner at programming STM software/hardware, so a detailed, step-by-step tutorial would be immensely helpful. Thank you in advance!