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

Can the connection parameters be updated by the central during a connection?

I'm trying to understand latency between simple events (like a button press) and transmissions to show that event on the nRF Toolbox iOS app. In some trials, my updates are nearly instant. In other trials, with the same firmware, it can take ~3-5s to see the update on the iOS device.

Can my connection parameters be dynamically updated by the central (iOS device) depending on the frequency of events?

My connection parameters adhere to Section 3.6 of the Apple guidelines:

#define MIN_CONN_INTERVAL                   (MSEC_TO_UNITS(50, UNIT_1_25_MS))
#define MAX_CONN_INTERVAL                   (MSEC_TO_UNITS(100, UNIT_1_25_MS))
#define SLAVE_LATENCY                       (0)
#define CONN_SUP_TIMEOUT                    (MSEC_TO_UNITS(4000, UNIT_10_MS))

But I should also monitor what the actual connection parameters end up being after they're mandated back from the iOS device.

Parents
  • The central controls the connection interval and can change it without the device requesting a change. I modified the python ble_dfu_send_hex tool to do this. Initially the connection interval >100ms (otherwise the erase takes forever) and then once it is ready to send the data it drops it down to 7.5ms for the fastest transfer. I wanted to do this on the device side, but the ble_dfu_send_hex script was ignoring gap_conn_param_update message.

Reply
  • The central controls the connection interval and can change it without the device requesting a change. I modified the python ble_dfu_send_hex tool to do this. Initially the connection interval >100ms (otherwise the erase takes forever) and then once it is ready to send the data it drops it down to 7.5ms for the fastest transfer. I wanted to do this on the device side, but the ble_dfu_send_hex script was ignoring gap_conn_param_update message.

Children
No Data
Related