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

Optimizing throughput

Hello,

I am currently optimizing the throughput for my mesh network and I am wondering whether I've hit the limit of what's currently possible. I have two methods for sending data, reliable (write_req) and unreliable (write_cmd).

  1. As far as I remember, the current S130 implementation does not support multiple packets per connection event. Are there any news on when this will be implemented?

reliable writes from one side

  1. I'm curious if it's possible to receive the package acknowledgement in the same connection event. Because currently, the softdevice takes until the next connection event to acknowledge the packet. I've found this blog post: devzone.nordicsemi.com/.../ which states that this behaviour is indeed correct, but I am wondering whether that would be possible. I haven't found anything in the BLE speq. It's not a big timeframe, but there's still some CPU cycles inbetween.

unreliable writes from slave to master

  1. After some testing, I've got this sniffer output. The slave does clearly say that it has more data after sending one block, but he does not send it to the master immediately. Why would that be?

Some explanation: The Master is connected to two devices. Both slaves are only connected to this master. Sometimes, this delayed transmission happens but at other times, everything is fine and every connection event is used. It appears to me that when I send a few reliable packets, the issue is fixed for some time. Afterwards, packets are sent at every connection event.

  1. Oh, and one more question: If I fill the WRITE_REQ buffer and the WRITE_CMD at the same time, is there any priority. Are they sent in the order that I've queued them?

Marius

Parents
  • Hi Marius,

    1. We are working on flexible solution where you can choose to reduce the max number of concurrent connection to have more packet per connection event. It will be available most likely in the next release of the S130.

    2)If you can send more than 1 packet per connection event, the master can ACK to the last packet from Slave to Master. However, it's not the case with current S130.

    3)It's about the MD bit in the link layer packet, please have a look at section 2.4 Vol 6 Part B in Bluetooth Spec v4.2. The slave can request to send more packet (MD=1), but if the master won't support more packet, there will be no more packet in that connection event.

    4)It's on first come first served base, no priority. But next packet (any type) can only start when earlier write request has been confirmed.

  • Thanks, that covers my questions :-) Now I'll only have to wait until the next release of the SoftDevice. Any rough timeframe on a beta release? weeks, months or years?

Reply Children
No Data
Related