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

BLE real time data transmission nrf51 DK code

Hi Guys,

I need to implement real time streaming of accelerometer and gyro values from the nrf51 DK to either a desktop or android system. Could someone please help me on how to go about with this and if there are any desktop clients JAVA for reading data from the nrf51 board over BLE? Basically, I need to concentrate on data streaming and I need a data rate of 50kbps or so, is that achievable with nrf51? Also, are there any GATT profiles for accelrometer data because I couldnt find any

Thanks and Regards, Neil

Parents
  • Hi

    Here is a list of the official BLE profiles.

    For the requirement of 50kbps, it is on the limit of what BLE can do. The maximum theoretical throughput is 128kbps with transmission of 6 packets per second (maximum for nRF51) and the minimum connection interval of 7.5ms. Throughput of Android phones is different from phone to phone. Some phones support 4 packets per connection interval while other only support 1 packet per connection interval. Some phones support 7.5ms connection interval while others support minimum 20ms or 30ms.

    You could connect with a nRF51 dongle to connect via BLE to a PC. We currently offer S120 BLE central softdevice for this but it supports only one packet per connection interval, so it will not be able to transmit/receive 50kbps. More on the throughput is here and here

    BLE is not very good on throughput, primarily because it was designed for low power.

    Another option would be to use proprietary protocol with the nRF51, like the Gazell, to obtain higher througput, but then you will lose connectivity with phones.

Reply
  • Hi

    Here is a list of the official BLE profiles.

    For the requirement of 50kbps, it is on the limit of what BLE can do. The maximum theoretical throughput is 128kbps with transmission of 6 packets per second (maximum for nRF51) and the minimum connection interval of 7.5ms. Throughput of Android phones is different from phone to phone. Some phones support 4 packets per connection interval while other only support 1 packet per connection interval. Some phones support 7.5ms connection interval while others support minimum 20ms or 30ms.

    You could connect with a nRF51 dongle to connect via BLE to a PC. We currently offer S120 BLE central softdevice for this but it supports only one packet per connection interval, so it will not be able to transmit/receive 50kbps. More on the throughput is here and here

    BLE is not very good on throughput, primarily because it was designed for low power.

    Another option would be to use proprietary protocol with the nRF51, like the Gazell, to obtain higher througput, but then you will lose connectivity with phones.

Children
  • Thanks for your answer.

    Nick Pelis above suggested to use HID over GATT. Would that be better in terms of the useful data I would able to send to the desktop?

    I have a XPS 15 so I think it should support 6 packets/7.5ms intervals? I need to actually get 9DOG values and send it to my desktop/mobile . I am thinking about the best way to do this. What about ANT? Does Gazell have desktop codes to receive the signals?

    Thanks and Regards, Neil

Related