Showing results for 
Search instead for 
Did you mean: 

BLE HID of STM32WB55 works well on Windows and Android but doesn't work on IOS



I'm developing a project on chip STM32WB55. I have referenced the demo about

BLE-HID of ST's "STM32Cube_FW_WB_V1.14.0" folder. Base on it, I configured my board become a hid keyboard Bluetooth LE. It worked well on laptop Windows and smartphone Android, Windows and Android can received data from MCU and print them on excel, text file or notepad,... However, on IOS, it can't work as I hope. My MCU still can connect with my Iphone, but my Iphone can't receive data from MCU and after connected I can't forget MCU device on Iphone. Clearly, Bluetooth feature on IOS has somethings difference from Bluetooth feature on Windows and Android. I tried many ways to fix this issue but I still can't find the true way. I hope I can get answers or help from everyone. I will so happy if this happen! Please help me!

This is ST's demo project that I base on it to make my project:


ST Employee


On iOS and probably MAC OS, applications have no way to ask the OS to initiate a bond or know if a device is bonded. Only the connected device can initiate bonding — this is typically done by having the application attempt to read an encrypted characteristic to trigger an insufficient authentication scenario.

So by modifying a characteristic attribute permission as "ATTR_PERMISSION_ENCRY_READ", for example for the Report Map characteristic, the pairing and bonding processes are triggered on iOS side.

With this attribute permission modification, you should be able to pair and bond the HID device and have automatic reconnection after HID device reset or power disconnection.

Best Regards