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

Consumption reduction with slave latency

I've got SLAVE_LATENCY set to 40 in hope that only every 40th request from the master would be responded to since there's no data to read or write, resulting in lowered current consumption. I'm not seeing any changes in current profile, however - there's still a current peak every 30ms (connection interval on iOS).

image description

Where am I mistaken?

EDIT:

I've changed my connection parameters to:

Interval Min = 25 ms
Interval Max = 45 ms
Slave Latency = 4
connSupervisionTimeout = 4 seconds

They pass all the iOS conditions:

Interval Max * (Slave Latency + 1) ≤ 2 seconds <=> 45 * (4 + 1) ≤ 2000 <=> true
Interval Min ≥ 20 ms <=> 25 ≥ 20 <=> true
Interval Min + 20 ms ≤ Interval Max <=> 25 + 20 ≤ 45 <=> true
Slave Latency ≤ 4 <=> 4 ≤ 4 <=> true
connSupervisionTimeout ≤ 6 seconds <=> 4 ≤ 6 <=> true
Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout <=> 45 * (4 + 1) * 3 < 4000 <=> true

They are set with ble_conn_params_change_conn_params(), which is called more than FIRST_CONN_PARAMS_UPDATE_DELAY after starting a connection with central. The function call returns NRF_SUCCESS and since no disconnect follows even though ble_conn_params_init_t.disconnect_on_fail is true I assume the central must have accepted the parameters, but nothing has changed in the power profile.

Parents
  • correct, but your initial call to the update function still returns NRF_SUCCESS.

    Also, Nordic would need to confirm, but the Central could in effect ignore your update settings and not cause a disconnect. Since the phones default settings still satisfy your current settings with a 30ms Internal. Hence please try the settings I suggested to see if you see a proper update.

Reply
  • correct, but your initial call to the update function still returns NRF_SUCCESS.

    Also, Nordic would need to confirm, but the Central could in effect ignore your update settings and not cause a disconnect. Since the phones default settings still satisfy your current settings with a 30ms Internal. Hence please try the settings I suggested to see if you see a proper update.

Children
No Data
Related