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

nRF51 Dongle as a standard Bluetooth Smart 4.2 Dongle

I have 2 nRF51 Development kits and a nRF51 dongle that I am using for proof of concepts. I am mainly using the nRF51 IoT SDK because we are looking at using IPv6 with 6LoWPAN. I have a standard Bluetooth 4.0 dongle that is connected to my Linux box and I have done several client/server experiments between the linux box and the development kits. The next item that I want to do is to do a speed test to show the difference between a connection that has two 4.2 devices however I can not find a standard bluetooth 4.2 compliant dongle (4.2 is suppose to be 10X faster than 4.0) for sale therefore I thought I could configure the nRF51 development dongle as a standard dongle that I could connect to my Linux box. I may be totally missing something obvious (would not be the first time) but is there a way I can configure (soft device + application) to make the nRF51 development dongle act as a standard Bluetooth 4.2 compliant dongle that I can use with my Linux box?

  • "Bluetooth" is just the over-the-air standard - the bit you'd need to emulate is the interface over the USB to the Linux driver ...

  • What kind of throughput are you seeing? There are no mandatory features in 4.2 that increase throughput, so even though a dongle supports 4.2, it doesn't necessary mean an increase in throughput. And actually, the nRF51/nRF51 SoftDevices doesn't support the optional features that could increase throughput compared to 4.0/4.1. So even if you had a dongle that supports the features, the throughput wouldn't increase. Currently, this is also true for the nRF52, but we are working on implementing more features on it.

  • I modified the TCP example from the nRF51 IoT SDK to send large packets (1600 bytes) and I am able to send around one and a half packets per second. The feature that I was looking at to increase the throughput is data length extension that increased the packet size from 27 bytes to 251 bytes. Is that supported with the nRF51 dongle or DK? Our goal is to have two devices communicate via web services, over a Bluetooth connection. Where our embedded devices, acting as the central, will have a web server running and an external device, acting as a peripheral, will call the web services to retrieve information or perform actions. The throughput could be an issue with the overhead of the HTTP protocol especially if we end up wanting to serve up web pages well (we are know how requirements grow and want to have answers before anyone asks the question) Thanks any help is appreciated

  • Throughput depends mainly on three parameters, amount of data in each packet, connection interval, and the number of packets in each connection interval.

    The nRF51/IoT SoftDevice should support a minimum connection interval of 7.5 ms and 6 packets in each connection interval. The on-air maximum packet length is 31 bytes, and then you need to subract the BLE headers and the IPv6 headers to get the actual data that is sent. Let's just say it is 20 bytes of data, or a bit less, in each packet.

    Pushing the limits a throughput close to 20 bytes * 6 / 0.0075 = 16kB/s should be achieveable. However, the throughput also depends on the central device, or the dongle you have connected to your Linux box. I know that for example BCM43340 only supports 1 packet per connection interval. Then the throughput would be 20 bytes * 1 / 0.0075 = 2667 B/s, which is closer to what you are experiencing. This could be a coincidence, and you are actually using a bigger connection interval. I'm not sure.

    Data packet length extension is currently not supported by any of our SoftDevices, for nRF51 or nRF52. It will not be supported on nRF51, but of course this is something we are interested in implementing on nRF52. As you may know the latest release of the IoT SDK/SoftDevice was for the nRF52, and future releases will only be for the nRF52. So that it will not be supported for the nRF51 doesn't really matter for IoT.

    If you are interested in if and when data packet length extension will be supported by the IoT SoftDevice for the nRF52 I suggest you contact the regional sales manager for your area. If you don't know who it is, send me a PM with your location and I'll let you know.

Related