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

S120 throughput

Hi to all!

I have few questions about throughput when using s120:

  1. What is the max number of packets that could be send/received in one connection interval when using S120? (s120 specification, chapter 13 says 1tx/1rx, Hung Bui in post says 2tx/1rx, other definitions i didn't find...)
  2. A bit more tricky... In my project, my device connects up to 5 devices, some of them are smart devices. Now I'm wondering what is the best way of setting up connection interval?

Considering that smart devices have different limitations e.g. if I set min connection interval to 20 ms and max to 50ms then some of "smart" devices will set connection interval to 37.5ms. There is no problem until some other device can't communicate at such interval (Is this possible?). Who or what gurantee to me that devices will have a common factor? If not probably there will occure some collisions and connections could get dropped if supervision timeout is not realy long long.

If i refer to equation in s120 specs, chapter 11.4 where is written that connection interval should be >= "Number of devices" * Teeo + scanWindow + Tscan_reserved... During testing with 20ms connection interval some of devices get disconnected. Increasing it up to 50ms helps and connections get stable, but now is throughput 400KBps (1 packet per interval * 20 * 1/0.05) and it's to low... Is there something i can do (maybe more sophisticated way to set connection intervals) or this is the max what can i reach with s120?

Thank you!

BR Matej

  • @Matej:

    1. On S120 we do have 2 buffer for TX but the scheduler limited it to only one packet per connection interval. So in general it's correct to say that it only support 1 packet per conection event both TX and RX. I will update the case. Thanks for reporting.

    2. Could you let me know how many devices have you connected ? and the configuration for scan window you have ? It's pretty strange that you got your devices disconnected. The scheduller is designed so that if the connection going to have timeout, it will have the highest priority and will preempt other connection event. Futhermore, if they all 20ms they should not cause packet drop. As shown in Figure 15 in the S120 spec.

    I would suggest you to record a sniffer trace to see what happens over the air. I suspect high rate of packet drop due to interference.

  • Hi Hung Bui!

    1. Thank you for explanation about number of packets on connection interval...
    2. I would like to know details about setting those paramaters - that i can achive max throughput. I have 5 devices connected and i want to have max throughput for each device e.g. if i have connected just one device, then i assume that i can use min possible connection interval 7.5ms and min scan window 2.5ms... after that i would like connect to second device -> so i need to increase/update existing connection intervals, after that i'am able to create new connection. According to connection interval changes also scanning interval should be changed...
  • Could you please give me an example of needed parameters for 1,2, 3,... etc. connected devices. In multilink example projects are some params, but using those can occure dropped packets (because given scan interval can't be factored with min connection interval)

    Thank you!

  • @Matej: There could be dropped packet, but that doesn't mean the data will me missing. The dropped packet will be retransmitted (until timeout) and it's transparent to the application. What you may experience is the data throughput may be lower. The connection that may have timeout will have highest priority and it's packet won't be dropped.

    Regarding the suggested connection interval, you can have a look at section 11.4 in the S120 specification. I think 20ms connection interval is recommended.

  • Hung Bui, thank you for additional explanation... Yes, this is true - in section 11.4 in the S120 specs 20ms connection interval is recommended. Everything works just fine with 50ms connection interval... but i would like to optimize my system that i can get the max throughput that is possible - without or at least minimizing the number of retransmitted packets.

    E.g. if I have one device connected - I think that there should not be any problem to have connection interval 7.5ms and scan window 2.5ms as ble core specs defines. Considering to equations in s120 specs is minimal possible configuration 10ms for connection interval and 2.5ms for scan window or am I wrong? If I connect to second device I need to update connection parameters for 1st device and when creating a new connection use new/higher values e.g connection interval: 12.5ms and 2.5ms for scan windows.

    Thank you!

Related