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

DFU timeouts when slowing down connection interval

I am working on slowing down the connection interval in the secure_bootloader_ble example to reduce the average power usage. I've successfully slowed the interval down to 1 rx/tx every 1 second, but if I increase the min_conn_interval any further the DFU operation through NRF Connect BLE will fail due to a timeout about 20% to 40% of the way through the OTA DFU. Specifically, the error log says: "DFU failed with error: When writing 'CREATE' command to Control Point Characteristic of DFU Target: Characteristic value write failed: Could not get characteristic with id [DEVICE MAC].0.7.13"

My sdk_config.h has the following differences from the default:

#define NRF_DFU_BLE_MIN_CONN_INTERVAL 1200
...
#define NRF_DFU_BLE_MAX_CONN_INTERVAL 3200
...
#define NRF_DFU_BLE_CONN_SUP_TIMEOUT_MS 30000
...
#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 80

nrf_dfu_ble.c:

#define APP_ADV_INTERVAL    MSEC_TO_UNITES(1600, UNIT_0_625_MS)

Otherwise, all other defines/configuration are the same, and no other code has been modified.

I believe NRF_DFU_BLE_MAX_CONN_INTERVAL and NRF_DFU_BLE_CONN_SUP_TIMEOUT_MS are near if not at their max values.

I am using soft device 132 version 6.0.0, and using SEGGER studio as the SDK.

I'm thinking I may be missing a configuration on the BLE device side. It's also possible that the NRF Connect BLE's timeout parameter is set to a maximum, in which case I'd be interested in increasing the timeout period.

Thanks in advance.

Parents Reply Children
Related