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

nRF52840 Thread Stack Data Throughput

I have an application that will have up to 20 devices communicating with a gateway.  Each device will need to send around 2MB of data every 5 minutes. We would like to use Thread for this for several reasons.  My question is has anyone has done any throughput tests on a Thread network to verify if it can handle this data throughput? 

The devices will not be time synchronized, so they won't all be hitting the gateway at the same time.  I also expect that most deployments will have the devices close enough to the gateway to communicate directly rather than have to hop through nodes.  So more of a star network or extended star than a mesh.

I have found studies of large numbers of nodes with small data payloads, but no studies with relatively few nodes with large data payloads.

Parents
  • Hello,

    So you are looking at a throughput of about:

    20nodes * 2*1024*1024Bytes / (60 * 5 sec) * 8bit/Byte = 1 118 481 bps ≈ 1Mbps. 

    Typical throughput for a Thread network depends on the number of hops. You can see some charts here.

    As far as I am aware of, we have not conducted any similar tests, but I guess the numbers from the charts will be sufficient in this case. The best case for throughput is 1 hop, and a large payload size (512B), which you can see here. It shows a throughput of about 100Kbps. 

    So the short answer is that the throughput in a Thread network si not sufficient for your use case. 

    I don't know anything about your application. Have you considered BLE? Based on your description it sounds like a better alternative. You say that all the nodes are within range of the gateway, so perhaps a network is not necessary.

    By default, it is possible to support 20 links in BLE using the softdevice in the nRF5 SDKs. However, if it is possible to save the data and transfer every 5 minutes, I suspect that it may be a better option to stay disconnected, and connect whenever a node has data to send (every 5 min). This will also allow you to not stick to the hard limit of 20 devices. 

    The throughput of BLE is maximum 1.3Mbps, under ideal conditions, using 2MBPS PHY, and a long connection interval. Even in this case, it may be pushing the limit. Under ideal conditions it will take 12 seconds to transfer the 2MB. This means it will take 4min 6sec to transfer 2MB from 20 nodes. If you need to use the standard 1MBPS, it will take 7min 50 seconds to transfer 20*2MB. 

    So to summarize. This may be possible if you use BLE, and the range is short enough to use 2MBPS. If not, not even BLE can handle this throughput. Openthread can not handle this throughput. 

    I am sorry. It is probably not the answer you are hoping to get, but perhaps it works in case of BLE, but you would need to test it under the conditions that the devices will operate. 

    BR,

    Edvin

Reply
  • Hello,

    So you are looking at a throughput of about:

    20nodes * 2*1024*1024Bytes / (60 * 5 sec) * 8bit/Byte = 1 118 481 bps ≈ 1Mbps. 

    Typical throughput for a Thread network depends on the number of hops. You can see some charts here.

    As far as I am aware of, we have not conducted any similar tests, but I guess the numbers from the charts will be sufficient in this case. The best case for throughput is 1 hop, and a large payload size (512B), which you can see here. It shows a throughput of about 100Kbps. 

    So the short answer is that the throughput in a Thread network si not sufficient for your use case. 

    I don't know anything about your application. Have you considered BLE? Based on your description it sounds like a better alternative. You say that all the nodes are within range of the gateway, so perhaps a network is not necessary.

    By default, it is possible to support 20 links in BLE using the softdevice in the nRF5 SDKs. However, if it is possible to save the data and transfer every 5 minutes, I suspect that it may be a better option to stay disconnected, and connect whenever a node has data to send (every 5 min). This will also allow you to not stick to the hard limit of 20 devices. 

    The throughput of BLE is maximum 1.3Mbps, under ideal conditions, using 2MBPS PHY, and a long connection interval. Even in this case, it may be pushing the limit. Under ideal conditions it will take 12 seconds to transfer the 2MB. This means it will take 4min 6sec to transfer 2MB from 20 nodes. If you need to use the standard 1MBPS, it will take 7min 50 seconds to transfer 20*2MB. 

    So to summarize. This may be possible if you use BLE, and the range is short enough to use 2MBPS. If not, not even BLE can handle this throughput. Openthread can not handle this throughput. 

    I am sorry. It is probably not the answer you are hoping to get, but perhaps it works in case of BLE, but you would need to test it under the conditions that the devices will operate. 

    BR,

    Edvin

Children
No Data
Related