KB:How to request an update of the connection parameters on the peripheral side

Question

The SIG BLE standard says that the central devices decides the specific value of connection parameters, such as connection interval, time out, and peripheral latency. But most low power applications on the peripheral side need to keep the connection and save themselves power, so they don’t want frequent high-power wakeups. I’ll explain how to achieve this on the peripheral side.

Recommendation

Referring to chapter 6.4.2.4.5 Update Connection Parameters in the RSL10 Firmware Reference, you will find there is a command named GAPC_ParamUpdateCmd. Next I’ll lead you through how to implement this with our peripheral_server sample code.

First, in the ble_std.h file, add this definition:

extern void GAPC_ParamUpdateCmd (uint8_t conidx, uint16_t intv_min, uint16_t intv_max, uint16_t latency, uint16_t time_out, uint16_t ce_len_min, uint16_t ce_len_max);

second, in the ble_std.c file, add the function below:

image
the last step, you just call the function in what you want. for example I call it when connection built.

image

Verification

Connect with the BLE dongle, and you will find the parameter changes.

hello ,

this is very useful for me to implement in my code . thing is I am not understanding how to do testing ?

I followed your process but parameters are updating its showing default parameters , i am using peripheral_server_uart sample code ?
what will be the wrong ?

I think your first perameter is wrong, the first one is device index you should send the device index to the function, usually is 0. I attached my project you can run and refer it. hope can help with you.
peripheral_server_updateParam.rar (756.6 KB)