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

nRF51822(peripheral role): How to Update connection parameter?

My test: PCA10000+Master Control Panel(3.4.0.8098) as central role, conninterval=20ms nRF51822+softdevice(5.0) as peripheral role, conninterval=10ms then sd_ble_gap_conn_param_update(), conninterval=50ms

Master Control Panel Display: First: [10:26:30.4] ConnectToDevice() [10:26:30.8] ---------------------------- [10:26:30.8] Connected to device [10:26:30.8] Role: 0 [10:26:30.8] PeerAddressType: 1 [10:26:30.8] PeerAddress (MSB): F7D7A095897E [10:26:30.8] Connection Interval: 20.0ms [10:26:30.8] Connection Latency: 0 [10:26:30.8] Supervision Timeout: 3000ms [10:26:30.8] Clock Accuracy: (1) [10:26:30.8] ---------------------------- [10:26:30.8] Connected to 7E8995A0D7F7

sd_ble_gap_conn_param_update(): [10:28:38.3] Received Connection Parameter Update Request [10:28:38.3] ConnectionParameterUpdateResponse sent with ACCEPTED response [10:28:38.3] Connection Parameters Update sent. ConnInterval:50.0ms, SlaveLatency:0, SupervisionTimeout:3000.0ms [10:28:38.4] PacketQueueSearch skipped event code 0x0D then [10:28:58.8] Received Connection Parameter Update Request [10:28:58.8] ConnectionParameterUpdateResponse sent with ACCEPTED response [10:28:58.8] Connection Parameters Update sent. ConnInterval:10.0ms, SlaveLatency:0, SupervisionTimeout:3000.0ms [10:28:58.9] PacketQueueSearch skipped event code 0x0D

why?

Parents
  • This obviously shows that your application is sending another connection parameter update request. Most of the SDK examples include the ble_conn_params module, that can handle such update requests for you. I therefore suspect that it's this module that sends the second request.

    To solve it, you can either make ble_conn_params request the parameters you actually want by modifying the parameters passed to ble_conn_params_init(), or just remove the entire module and handle it yourself.

Reply
  • This obviously shows that your application is sending another connection parameter update request. Most of the SDK examples include the ble_conn_params module, that can handle such update requests for you. I therefore suspect that it's this module that sends the second request.

    To solve it, you can either make ble_conn_params request the parameters you actually want by modifying the parameters passed to ble_conn_params_init(), or just remove the entire module and handle it yourself.

Children
No Data
Related