Showing results for 
Search instead for 
Did you mean: 

Zephyr B_U585I_IOT02A BLE examples timeout and crash


I'm trying to run a few of Zephyr's BLE examples on the B_U585I_IOT02A development board.   
I have tried the beacon, peripheral, and peripheral_csc examples.   

  • These BLE examples all work properly on a Nordic nRF52840 dev board.
  • Zephyr's blinky example runs fine on the B_U585I_IOT02A 

On the  B_U585I_IOT02A dev board, the BLE examples build/run, but I never see the BLE device on a scanner and I get this error on the tty monitor:




ASSERTION FAIL [err == 0] @ WEST_TOPDIR/zephyr/subsys/bluetooth/host/hci_core.c:331
        command opcode 0x0c03 timeout with err -11
[00:00:10.145,000] <err> os: r0/a1:  0x00000003  r1/a2:  0x00000000  r2/a3:  0x00000002
[00:00:10.145,000] <err> os: r3/a4:  0x200008f0 r12/ip:  0x000027a1 r14/lr:  0x0800465b
[00:00:10.145,000] <err> os:  xpsr:  0x41000000
[00:00:10.145,000] <err> os: Faulting instruction address (r15/pc): 0x08004666
[00:00:10.145,000] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
[00:00:10.145,000] <err> os: Current thread: 0x20001420 (unknown)
[00:00:10.201,000] <err> os: Halting system





I have the switches on the dev board set to the default settings.   
I am using whatever firmware was programmed into the STM32WB5MMG out of the box (the Zephyr doc for the B_U585I_IOT02A does not mention needing any specific firmware in the BLE controller.)  

  • If I need specific firmware in the STM32WB5MMG could you send me a link to the firmware, and a link to the instructions for how to program it?   (preferably without having to use an external STLink)
  • Or maybe there is some other problem?







I tried programming the STM32WB5MMG with firmware from STM32CubeWB package.  This is not documented on the Zephyr B_U585I_IOT02A page ... it's somewhat documented on the Zephyr STM32WB5MM-DK page, but that doesn't tell you how to program the STM32WB5MMG on the B_U585I_IOT02A.   

Contact ST for questions on the programming procedure, my hints are below, YMMV.

  • Use an STLink connected to CN5 (you need to solder in the header in first)   I used an old Disco board for this.   Pinout of the lower 4 pins on the 6 pin connector on the Disco board matches CN5's 4 pins
  • Switch SW3 to USB
  • Power board off the USB CN12 connector (bottom of board)
  • Use STM32CubeProgrammer to program the STM32WB5MMG


Zephyr STM32WB5MM-DK page seems to indicate you need HCI firmware.  

I tried stm32wb5x_BLE_HCILayer_fw.bin, stm32wb5x_BLE_HCILayer_fw_extended.bin, and stm32wb5x_BLE_HCI_AdvScan_fw.bin.   

In all three cases, result was the same timeout crash as in the original post.