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

Bottleneck?

I'm trying to figure where the BLE bottlenecks are to figure if I should use BLE or maybe Gazell for my product. I've just started to use the BLE stack, so I guess that there's a lot of pitfalls that I havent experienced yet. Anyway, I've tweaked the HTS example to send out more data, and are now getting the figures below:


Columns
1. Payload Bytes
2. MCP Interval ms
3. nRF Interval ms
4. nRF Timer ms
5. Packets per sec
6. Payload per sec
1	20	7,5	10	24	24
1	7,5	7,5	10	59	59
20	20	7,5	10	25	500
20	7,5	7,5	10	59	1180
20	7,5	7,5	3	64	1280

I'm making a product that will use two sensors that are each sending 12 bytes 50 times pr. second. I do have a buffer, so it's not important that they arrive "on time". Anyway, this adds up to 600 bytes per second for each sensor. Now the questions are:

  1. Is it safe to expect that each device can send 1180 bytes per second 2, Isn't there a bottleneck somewhere (MCP maybe) - 1180 bytes per second is nowhere near 120kpbs
  2. Should I send data by using "long data" services - will it bring down the indication overhead
  3. Should I drop indication and live with packet dropouts

With the figures above, I think I'm already too close to the limits, as I might get need for more sensors in the future.

Parents
  • Since you are allowed to have only one Indication pending confirmation at any time, this will limit your throughput significantly. If there isn't any particular reason for your use of indications, I'd strongly recommend you to instead use notifications. The packets are still ACK-ed on the link layer, so you should not have any data loss, the only difference is whether or not the packet is received and acknowledged by the application on the other end.

    With notifications, you will be able to transmit up to 6 packets per connection interval, and hence you will see a much higher data throughput. The softdevice keeps a buffer of packets, so you need to find a way to manage this buffer. Two suggestions are given in the "Introduction to S110 SoftDevice" document, available in the SDK documentation folder or online here.

    However, be aware that MCP won't be able to keep up with 6 packets per interval, so you will still not see 128 kbps with this. To get maximum throughput you have to use a Central device which allows both 7.5 ms connection interval and can do 6 packets per interval. You should also note that this high throughput will severely limit the application processing time available on the nRF51822, as given in table 11 in the S110 SoftDevice Specification.

  • May we know how many packets can the PCA10000 dongle with MCP as central support per connection interval.

    thank you

Reply Children
No Data
Related