This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2541 connection param update failed

Hi , I tried to update the connection param to ios ,but it didn't work ! I tried to capture the packet ,and never find the packet like "SIG_Connection_Param_Update_Req" , My source code as below , thanks a lot !

// What is the advertising interval when device is discoverable (units of 625us, 1600=1000ms)
#define DEFAULT_ADVERTISING_INTERVAL 1600

// Limited discoverable mode advertises for 30.72s, and then stops
// General discoverable mode advertises indefinitely

#define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_GENERAL

// Minimum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 100

// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 800

// Slave latency to use if automatic parameter update request is enabled
#define DEFAULT_DESIRED_SLAVE_LATENCY 1

// Supervision timeout value (units of 10ms, 1000=10s) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_CONN_TIMEOUT 600

// Whether to enable automatic parameter update request when a connection is formed
#define DEFAULT_ENABLE_UPDATE_REQUEST TRUE

  • Hi,
    When requesting connection param updates with an iOS device (Central), you need to request parameters within Apple's published guidelines, otherwise they will reject the request. Refer to the Apple Bluetooth Design Guidelines document, available from Apple.

    It looks like you are violating:
    Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout

    Try using DEFAULT_DESIRED_MAX_CONN_INTERVAL 799 or no slave latency.

    Best wishes
  • Thank you ! I will have a try .
  • Hi,

    i had the same issue with connection param update request from peripheral. I couldn't capture this packet with a sniffer until i set max. connection interval to 799.

    I read in the documentation that max. connection interval is 3200. Is there a bug in BLE stack or am i missing something? We're using BLE stack version 1.4.2.2