cancel
Showing results for 
Search instead for 
Did you mean: 

aci_gatt_update_char_value() returns success but no notification is sent.

Louis Loving
Senior

I am using an STM32WB55CG in a slightly challenging environment. aci_gatt_update_char_value() works great most of the time and returns BLE_STATUS_SUCCESS and transmits data. Occasionally the STM32WB55CG will disconnect and then reconnect. Our application continues to call aci_gatt_update_char_value() which still will return BLE_STATUS_SUCCESS but no data is transmitted. If our unit disconnects and reconnects again, the STM32WB55CG will once again start transmitting data.

If aci_gatt_update_char_value() returns BLE_STATUS_SUCCESS is there some other way for us to know if the transmission was successful?

When we are in this mode, this is the only packet that the STM32WB55CG sends.

0693W00000AMn8rQAD.png

1 REPLY 1
Louis Loving
Senior

The problem is not that our unit occasionally disconnects. The problem is that it does not reconnect smoothly every time. When this disconnect/reconnect occurs we recover without issue most of the time (the vast majority of the time). But, when we get into this mode, all indications are that we have reconnected without issue except no data gets transmitted. In our unit with the STM32WB55CG we are still calling aci_gatt_update_char_value() and getting BLE_STATUS_SUCCESS returned but no data is transmitted.

"our unit" or Unit1, is the device with the STM32WB55CG. Unit1 advertises and acts as a peripheral. Unit1 waits for another device, unit2, acting as a central and does not contain an ST device in it, to connect to it. Once the connection is made we use notifications to stream data from the unit1 to unit2.

Is there way for the STM32WB55CG to tell if BLE transmission is unsuccessful?