AnsweredAssumed Answered

BlueNRG Maximum Realized Payload data rate?

Question asked by Scott Lohr on Dec 18, 2014
Latest reply on Jul 22, 2015 by garcia.sal
We are evaluating the BlueNRG module as a candidate for our next generation h/w and need to verify the actual payload data rate that can be achieved as a BLE Peripheral using Notification (i.e. unacknowledged server packets) with the maximum user payload size of 20 bytes. Our current h/w solution succeeds in sending Notifications to our proprietary iOS application, using our proprietary 128-bit profile, at > 250-Hz.

I recently attended the ST seminar deomonstrating the Nucleo M0-to-BlueNRG solution, and a very ambitious data throughput was quoted, but I did not write it down. Nevertheless, the seminar and the demo boards attracted this evaluation by our company and I have implemented out proprietary profile on the Nucleo M0 host of the BlueNRG using the sample project from the seminar as a template:

This implementation can only achieve ~10-Hz (i.e. sending a 20-byte Notification every 100-msec). At 20-Hz the call to aci_gatt_update_char_value() fails more than 1 out of 4, and at 100-Hz, it fails more than 1 out of 2 calls.

I noted that the implementation of modules like hci.c seem more mature in the code in
BlueNRG DK 1.6.0

So I ported all of that infrastructure to the sample app from the seminar, and still the same throughput.

I also note that this sensor sample app in the BlueNRG DK 1.6.0
BlueNRG DK 1.6.0\Projects\Project\SensorDemo\EWARM

In the above example, the Accel data is only sent at 5-Hz.

So is the BlueNRG only capable of sending a Notification at only 5-10-Hz? If not, then where can I find an example that proves the maximum payload data rate? In the current demo that I am using, the Nucleo M0-to-BlueNRG, where should I look for the choke point? Is there a faster way to drive the SPI link for example?

Note that not only does our current h/w achieve > 250-Hz success sending Notification to the same iOS App using the same proprietary profile being attempted on the Nucleo, but many articles on BTLE payload throughput indicate that it should be possible to achieve 100-Kbps --> 12.5-KBps --> 640 20-byte Notifications per second.

Please advise with any input or suggestions...