Simultaneous connection in LE CODED PHY

Hi, 

we are using nrf52840 and nrf SDK-16.0. we have achieved simultaneous connection and data transmission for 4 devices in Ble 4 (i.e. 1 Mbps PHY).

Now we are trying to connect 4 devices simultaneously in LE CODED PHY. but we are not able to achieve this.
On Ble connect we are transmitting the data for every 3.2 minutes. for the below connection parameters we are able to connect and receive data from 3 devices simultaneously but 4th device connects and disconnects immediately. out of 4 devices we are not able to achieve the connection for one of the device.

we have used connection parameters as below,

#define MIN_CONN_INTERVAL MSEC_TO_UNITS(8, UNIT_1_25_MS) /**< Minimum acceptable connection interval (20 ms), Connection interval uses 1.25 ms units. */
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(24, UNIT_1_25_MS) /**< Maximum acceptable connection interval (75 ms), Connection interval uses 1.25 ms units. */
#define SLAVE_LATENCY 20 /**< Slave latency. */
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(4000, UNIT_10_MS) /**< Connection supervisory timeout (4 seconds), Supervision Timeout uses 10 ms units. */

we tried collecting the sniffer logs. but from that logs we were not able to find the reason for disconnect.

we tried changing the connection parameter, we have increased maximum connection parameters to 200ms,400ms, 600ms. even for these configurations we are facing the same issue.(i.e able to connect to 3 devices only).

can we achieve this simultaneous connection for 4 devices or more? please suggest us what needs to be changed to achieve this.

Thank you,

Shreya

Parents
  • Hi Shreya,

    Coded PHY achieve long range by resending the data payload multiple times, and as such, each connection event is longer than 1M or 2M PHY; roughly 2x as long with S=2, or 8x with S=8.

    Therefore, when you have too tight connection interval, it might be difficult to schedule events for all the connections in Coded PHY.

    I recommend you retry with longer connection interval.

    Aside from that, I notice you are using the nRF5 SDK. If you are at the early stage of your project, please consider using the nRF Connect SDK instead, as the nRF5 SDK is in maintenance mode and the last release is quite old by now.

    Regards,

    Hieu

Reply
  • Hi Shreya,

    Coded PHY achieve long range by resending the data payload multiple times, and as such, each connection event is longer than 1M or 2M PHY; roughly 2x as long with S=2, or 8x with S=8.

    Therefore, when you have too tight connection interval, it might be difficult to schedule events for all the connections in Coded PHY.

    I recommend you retry with longer connection interval.

    Aside from that, I notice you are using the nRF5 SDK. If you are at the early stage of your project, please consider using the nRF Connect SDK instead, as the nRF5 SDK is in maintenance mode and the last release is quite old by now.

    Regards,

    Hieu

Children
  • Hi Hieu,

    Coded PHY achieve long range by resending the data payload multiple times, and as such, each connection event is longer than 1M or 2M PHY; roughly 2x as long with S=2, or 8x with S=8.

    Thank you for the information.

    Therefore, when you have too tight connection interval, it might be difficult to schedule events for all the connections in Coded PHY.

    we tried increasing the connection interval till its maximum. i.e.

    #define MIN_CONN_INTERVAL MSEC_TO_UNITS(8, UNIT_1_25_MS) /**< Minimum acceptable connection interval (20 ms), Connection interval uses 1.25 ms units. */
    #define MAX_CONN_INTERVAL MSEC_TO_UNITS(700, UNIT_1_25_MS) /**< Maximum acceptable connection interval (75 ms), Connection interval uses 1.25 ms units. */
    #define SLAVE_LATENCY 20 /**< Slave latency. */
    #define CONN_SUP_TIMEOUT MSEC_TO_UNITS(32*1000, UNIT_10_MS) /**< Connection supervisory timeout (4 seconds), Supervision Timeout uses 10 ms units. */

    still it is not working. Is it not possible to achieve simultaneous connection for 4 sensors?

    Aside from that, I notice you are using the nRF5 SDK. If you are at the early stage of your project, please consider using the nRF Connect SDK instead, as the nRF5 SDK is in maintenance mode and the last release is quite old by now

    Our product is already in market. we wont be able to switch to nRF Connect SDK. Is it necessary to change the SDK? do we need to switch to latest nRF5 sdk?

    Thank you

    Shreya

  • Hi Shreya,

    I see that your minimal acceptable connection interval is still 20ms. Try increasing it.

    What Coded configuration are you using? S2 or S8? It should be possible with S2. With S8, it might be harder, and more dependent on how long your data packets are. We will need to do some calculations to be sure.

    Furthermore, please know that this is just what the peripheral "proposes" to the central device. It is still the central device that decides the actual connection interval. To debug what the actual connection interval is, please check the GAP events.

    At the beginning of a connection, BLE_GAP_EVT_CONNECTED is received, and the connection parameters can be found in ble_evt_t.ble_gap_evt_t.connected.

    After that, the connection parameters may be updated, BLE_GAP_EVT_CONN_PARAM_UPDATE is received, and the connection parameters can be found in ble_evt_t.ble_gap_evt_t.conn_param_update.

    You can read more about the events in ble_gap_evt_t docs and the SoftDevice Data Structure docs.

    Regards,

    Hieu


    Please be informed that due to a short holiday, there will be some delays in our responses in the coming days. Our apologies for the inconvenience.

  • Hi Hieu,

    I see that your minimal acceptable connection interval is still 20ms. Try increasing it.

    I tried Increasing it. but even then we are not able to connect and collect data from 4 devices.

    we tried increasing and decreasing of Ble GAP connection parameters. not able to connect then too.

    What Coded configuration are you using? S2 or S8?

    we are using S8.

    To debug what the actual connection interval is, please check the GAP events

    we tried debugging the actual connection interval. Does slave and master should have same connection intervals to achieve maximum connections?

    Thank you

    Shreya

  • Hi Shreya,

    Shreya J B said:
    we tried debugging the actual connection interval. Does slave and master should have same connection intervals to achieve maximum connections?

    It should. What numbers are you seeing now?

    Hieu

Related