Hi all,
I'm working on a project using the nrf52832 with SDK 15.3.0. Our device is battery powered and in peripheral mode. When a central connects it sends +- 300 bytes and disconnects. Then the device goes back to sleep and advertises itself at a slow rate. We are currently working on a bridge that is permanently connected to our device. This means our device is able to sleep less and we should reduce the impact on the battery life by tweaking the connection parameters. However, if no bridge is present we still want a fast connection speed for those small "burst" interactions.
To achieve this I created a "power management characteristic". As soon as the central (our bridge) enables notifications on this characteristic, the device calls sd_ble_gap_conn_param_update and sets new connection parameters that reduce power usage. You can see in Wireshark how the new connection parameters are accepted by the central:

However, they do not seem to be actually applied. Our target payload is transmitted in ~0.2 seconds, like when using our default parameters.
When we boot with the parameters shown in the wireshark dump (so instead of setting them dynamically) our target payload is transmitted in ~1.9 seconds.
How is it possible that despite both devices seem to agree on the new settings they do not seem to be applied?
Thanks a lot
