cancel
Showing results for 
Search instead for 
Did you mean: 

Large Delay before receiving Tx Pool Available Event

nick239955_stm1_st
Associate II
Posted on December 01, 2017 at 06:26

I am using aci_gatt_update_char_value() on a BlueNRG-MS to send notifications to a master device. The first number of times this function is called it returns BLE_STATUS_SUCCESS but then it returns BLE_STATUS_INSUFFICIENT_RESOURCES. After this I wait for the EVT_BLUE_GATT_TX_POOL_AVAILABLE before attempting to call aci_gatt_update_char_value()  and I am able to send more notifications. The problem is that it takes 4 to 5 seconds to get the Tx pool available event but I am using a connection interval of 100ms so this delay seems way to big. I am using the latest BlueNRG firmware (v7.2c) and using Stack Mode 4.

#bluenrg-ms
2 REPLIES 2
Antonio Vilei
Senior III
Posted on December 06, 2017 at 11:36

Hi Nick,

how many characteristics do you have in your application?

If you have many and update all of them during a connection interval, maybe you could try aggregating multiple characteristics into a minor number to mitigate this issue.

I don't know if your application requirements allow this, but if you could do it, as a side benefit, you would also improve the power consumption by reducing the protocol overhead.

Best regards,

Antonio

Posted on December 15, 2017 at 01:31

I only have 2 characteristics and am just updating one of these. I have a large amount of data to send so am just calling aci_gatt_update_char_value() continuously in a loop with new data while it returns BLE_STATUS_SUCCESS but when it returns BLE_STATUS_INSUFFICIENT_RESOURCES I wait for the EVT_BLUE_GATT_TX_POOL_AVAILABLE event before trying again. Is there any reason why it should take so long (4 to 5 seconds) to receive this event when the connection interval is around 100ms?