This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

streaming data over BLE (nRF8001) high throughput / bandwidth solution

I want to stream data continuously from a sensor to a host, using BLE.

Using the nRF8001, I have defined a GATT server, with notification. From an Android phone, I open the pipe, and start receiving the information.

However, with this method, the nRF8001 goes really slow, and I am losing data...

  1. what is the recommended profile to do data streaming on real time over BLE?

I have found some information here: stackoverflow.com/.../bluetooth-low-energy-ble-protocols-other-than-gatt

Perhaps the solution involves using another thing, different from GATT.

  1. Can you provide me a sample project for that?

  2. Would the bandwidth increase if I define the GATT server in the Android phone and, from the nRF8001 I just "write without notification"?

  • Profiles are built on top of GATT. Which is built on top of GAP. Changing profiles won't affect anything -- they're all intrinsically using the same mechanisms.

    You mention "high throughput/bandwitdh" and real-time streaming. While BLE is low latency, it is not oriented towards high throughput or real-time (i.e. synchronous) communication. There is, however, another standard that is called Bluetooth Classic ;)

    Maybe provide some more definition and constraints around what you're trying to achieve?

    -m

  • By continous stream of data, I mean around 100Kbits/sec.

    I have read the documentation of BT 4.0 and, apparently, the limit is higher than that... but in forums people say that it also depends on the particular implementation of the stack of each manufacturer.

    Given my bandwidth requirements... what BLE mode should I use? or... I am forced to switch to bluetooth classic?

    Is there any reference design?

    Thanks for your reply, Marc.

  • The nRF8001 isn't able to transmit more than one packet of 20 bytes per connection interval. It is capable of receiving some more, probably 3-4 such packets, but anyway, the bandwidth will be way lower than your requirement.

    The nRF51822 with the S110 will be able to transmit more, up to 128 kbit per second both ways, but this is most definitely stretching it. This is for example dependent on the Central being able to do 6 packets per connection interval with an interval of 7.5 ms, and not all Centrals can or will do that (for example iOS, which limits the interval to 30 ms).

    As Marc says, BLE isn't a high-throughput or real-time protocol, so you might be better of considering other protocols. If you can live with having a dongle, using Gazell, our proprietary protocol, could be an option. This should at least give you 300-400 kbit/s.

  • OK, very clear now. Dongle is not an option in our case. Perhaps the best move for us it to fall back to Classic Bluetooth.

    Thank you !

  • Good that it's clear! If you found the answer useful, I'd be happy if you could click the "Accept as answer" button below it. :-)

Related