← index #11025PR #5212
Related · high · value 0.466
QUERY · ISSUE

Firmware 1.19.1 on NUCLEO-WB55 is failing on BLE functions

openby Yannick-Mariettiopened 2023-03-13updated 2024-09-03
bugport-stm32needs-info

Hello

MicroPython Firmware : 1.19.1
Board : STMicrolectronics NUCLEO-WB55

Since recent STMicroelectronics releases of stm32wb5x_BLE_HCILayer_fw.bin, available here :

https://github.com/STMicroelectronics/STM32CubeWB/tree/master/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x

all BLE scripts run on NUCLEO-WB55 boards are failing with message :

tl_ble_wait_resp: timeout.

Please help !
I did not found any way to restore BLE functions, even while downgrading stm32wb5x_BLE_HCILayer_fw.bin to rev 1.13 which was the one used for MicroPython firmware developement.

Best regards

Yannick

CANDIDATE · PULL REQUEST

stm32: support for BLE on STM32WB55 MCUs

mergedby dpgeorgeopened 2019-10-14updated 2019-11-01
port-stm32

This is a WIP to add support for the RF coprocessor on STM32WB55 MCUs, in BLE mode.

It requires that the stm32wb5x_BLE_HCILayer_fw.bin wireless stack be already programmed to the device in the secure flash area. See ST docs (STM32Cube_FW_WB_V1.1.0, directory Projects/STM32WB_Copro_Wireless_Binaries) for how to do this. (It may work with stm32wb5x_BLE_Stack_fw.bin but that's untested at this point.)

The implementation here provides an IPCC shared memory communication layer to talk with the coprocessor and exposes it as a BT HCI device to the Nimble stack, the latter which runs on the main processor. From the user's point of view the API is the standard bluetooth module and should behave the same as other BLE ports/boards (currently stm32 PYBD, and esp32).

gap_scan and gap_advertise are working. Supported boards are NUCLEO_WB55 and USBDONGLE_WB55.

Known limitations/problems:

  • requires BLE_HCILayer WS firmware to be already programmed (edit: or BLE_Stack also works)
  • after doing DFU programming of main FW device requires a reset to work
  • gap_scan with finite timeout somehow stops event processing at end of timeout, and typing any key at the REPL will restart processing (edit: now fixed)
  • gap_advertise requires a properly formed advertising packet to work
  • connecting to the device does not yet work (edit: now working)
  • connecting from the device to another peripheral is not yet tested (edit: tested and working)
  • IPCC IRQs are not yet implemented

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied