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

nRF51 IoT UDP transfer speed

Hi All,

I use iot_ipv6_udp_client example on nRF51 DK. I modified it and send data in one direction only (not receiving back). Testing has shown that the maximum packet rate for short packets (20 - 30 bytes of payload) is about 13 packets per second. For packets of 140 bytes payload maximum packets rate is 10 packets per second. That means that the data rate approximately is 1400 bytes per second. When I tested the BLE UART example, I watched the transmission speed about 2300 bytes per second. Regarding the information about BLE 4.2 (IoT), I expect that the data rate should rise about 2.5 times. But the real data transfer rate was much lower.

Q: How can I increase the speed of data transmission via UDP and what speed (in one direction) the maximum I can expect?

Thanks in advance.

  • How are you testing this? Are you talking about transfer speed over the BLE link or something else? What central device (BLE dongle) are you using? With 7.5 ms connection interval, 6 packets per connection interval and 20 B in each packet the nRF5 can achieve a throughput of 16 kB/s, please see this for more information.

  • Petter, thank you very much for your reply.

    I'm using nRF51 IoT SDK and an iot_ipv6_udp_client example for the implementation of data transfer via UDP connection. I use as a central device the ASUS USB-BT400 usb dongle and PC with Ubuntu with 6lowpan support. I'm trying to evaluate the maximum possible speed of data transmission over the Internet via UDP connection. To receive data on the PC I'm using Python script based on examples from the Nordic. I not found in the iot_ipv6_udp_client example the ability to change connection interval. I also tried to add my own code for that. But this is to no avail.

  • It is the central device that dictates the connection parameters. I don't think you need to change anything in the IoT example. The change should be done on the central side. We need to figure out what connection interval that is used, and how many packets that are actually transferred in each connection interval. The first you may be able to find by using using the HCI interface, the other is a bit more difficult. I'll talk to some developers and see if we have done any throughput tests. Let me know if you have any new information.

Related