Can KW40Z BLE send more than one notification per time slot?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Can KW40Z BLE send more than one notification per time slot?

Jump to solution
3,077 Views
vitomarolda
Contributor I

I have read that it is possible for a BLE peripheral to send more than one characteristic notification per time slot, thus increasing the bandwidth (e.g. see https://bluegiga.zendesk.com/entries/24646818-Throughput-with-Bluetooth-Smart-technology​ and https://punchthrough.com/blog/posts/maximizing-ble-throughput-on-ios-and-android ):

"When using the non-acknowledged data transmission operation, the Bluetooth Smart technology supports a "bulk transmission of data." This means that multiple packets can be sent in a single connection interval, since there is no need to wait for the acknowledgements to be received. This can enable higher throughput if the Bluetooth Smart radio is able to send multiple packets within a single connection interval".

SinglePacketPerconnectionInterval.jpg?sha=801051243d3abbc6

MultiplePacketPerConnectionInterval.jpg?sha=f6da9126d2ba6aee

Is this possible with KW40Z? How many messages can it enqueue and send in a single connection interval?

Thank you in advance,

Vito.

1 Solution
2,034 Views
alexandruandree
NXP Employee
NXP Employee

Hello,

On the KW40Z, one can send at least 4 notification packets inside a single connection event. You have to ensure that these packets are sent to the controller as fast as the it can know that are still pending frames and will not postpone the data for the next event. One good starting point for this kind of example is the Wireless UART application. It send 4 Write commands at the same time, as long as it has the data to fill the packets.

BR,

Alex

View solution in original post

2 Replies
2,034 Views
rickdickerson
Contributor III

Is there any way to know how may notification packets have many notification packets are waiting to be sent on the next connection interval? I sometimes have a need to send more than four packets, but I have found that I will I lose packets if I call GattServer_SendInstantValueNotification or GattServer_SendNotification more than four times per interval. I am looking for a way to know when it is safe to send the next notification and knowing how many pending notifications there are will help me with that. For example, if I know there are four notifications pending, I can just hold off on sending any more until the pending count drops back to zero.

An alternative approach would be to keep track of how many notifications have been sent since the last connection event and, after four packets have been sent, don't send any more until after the next connection event. However, I have not been able to find a way to know when the connection event occurs or what the connection interval is once the connection has been established. Is there any way to get that information?

2,035 Views
alexandruandree
NXP Employee
NXP Employee

Hello,

On the KW40Z, one can send at least 4 notification packets inside a single connection event. You have to ensure that these packets are sent to the controller as fast as the it can know that are still pending frames and will not postpone the data for the next event. One good starting point for this kind of example is the Wireless UART application. It send 4 Write commands at the same time, as long as it has the data to fill the packets.

BR,

Alex