Maximizing number of connections with CYW20706

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

I am using a CYBT-343026-EVAL board to connect to many BLE sensors and to read data from them via GATT. My code is based on the example snip/ble/gatt_db. I would like to connect to as many sensors as possible, in the ideal case up to 16 sensors should be connected.

Every sensor sends 100 GATT notifications per second with a small payload. When I am connected to multiple sensors the throughput of some sensors drops below 100 notifications per second, sometimes as low as 25 notifications per second. I have tried to fiddle around with the parameters conn_min_interval and conn_max_interval. See the table below for my results. max_simultaneous_links was set to 8 for these tests.

conn_min_intervalconn_max_intervalResult
66I can connect to 6 sensors with no problems. After the sixth sensor is connected I can no longer scan for new sensors.
88I can connect to 8 sensors, but sometimes the throughput of a sensor drops. This issue is fixed by reconnecting the sensor that was last connected.
1616I can't connect more that 4 sensors without getting throughput losses for at least one sensor.
3232I can't connect more that 4 sensors without getting throughput losses for at least one sensor.
6464

I can't connect more that 4 sensors without getting throughput losses for at least one sensor.

I suspect that the problem is an overlapping transmit window that causes some notifications to be lost. Reconnecting one sensor (and therefore setting a new transmit window) sometimes fixes the problem. Setting a fixed transmit window length may fix the problem.

I have multiple questions:

  • Is there a fixed limit to the number of connections the CYW20706 chip can set up to BLE devices?
  • Is there a way to set a fixed transmit window length?
  • Do you have any other suggestions which parameters in wiced_bt_cfg_settings_t may affect the number of connected devices?
1 Solution
Anonymous
Not applicable
  • Is there a fixed limit to the number of connections the CYW20706 chip can set up to BLE devices?

     A) Yes there will be. Memory and phy will be the constraints beyond a particular value. We do not have that "value". However, you can surely be connected to 8 but there might be packet drops and reduction in throughput because of collision of connection intervals.

  • Is there a way to set a fixed transmit window length?

     A) No, there is no way. When you invoker the gatt_le_connect() API, it invokers the LL_Create_connection HCI command with CE length set to 0. 0 is interpreted as max in the controller.

  • Do you have any other suggestions which parameters in wiced_bt_cfg_settings_t may affect the number of connected devices?

     A) I think what you are trying to achieve, 100 notifications from more than 4 servers is a hard task. You could try one thing but I don't know if it will truly help. Change the connection intervals for each slave. This way there will be an irregularity in the overlap and might reduce the number of collisions of connection events between connections.

View solution in original post

3 Replies
Anonymous
Not applicable

Hi,

The max limit is application specific. Can you please increase themax_simultaneous_links  parameter (say 10 or 12) and see if there is any difference in your observation. (Note:Just increase the parameter. Don't increase the number of sensors for our testing scenario)

Regards,

-Madhu

lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Thank you for your answer. I have tried your suggestion but I did not have any success, there is still high packet loss when I connect 4 or more sensors. I have set max_simultaneous_links to 32 and also all other parameters that define a number of connections, for example gatt_cfg.client_max_links and l2cap_application.max_links.

I have attached my wiced_app_cfg.c file below, maybe someone can spot an error or has any other suggestions how to improve connection reliability.

0 Likes
Anonymous
Not applicable
  • Is there a fixed limit to the number of connections the CYW20706 chip can set up to BLE devices?

     A) Yes there will be. Memory and phy will be the constraints beyond a particular value. We do not have that "value". However, you can surely be connected to 8 but there might be packet drops and reduction in throughput because of collision of connection intervals.

  • Is there a way to set a fixed transmit window length?

     A) No, there is no way. When you invoker the gatt_le_connect() API, it invokers the LL_Create_connection HCI command with CE length set to 0. 0 is interpreted as max in the controller.

  • Do you have any other suggestions which parameters in wiced_bt_cfg_settings_t may affect the number of connected devices?

     A) I think what you are trying to achieve, 100 notifications from more than 4 servers is a hard task. You could try one thing but I don't know if it will truly help. Change the connection intervals for each slave. This way there will be an irregularity in the overlap and might reduce the number of collisions of connection events between connections.