Running through the ble uart example, connecting to the nRF connect app on my android phone. If I'm not actively sending data the bluetooth connection will time out on the nRF52 side within ~20s. None of the timeout values I've looked at seem to change the timeout period. The ble_blinkey examples, meanwhile, will stay connected indefinitely even without data.
I haven't noticed any differences in the ble setup or handlers that would account for the behaviour difference, and I'm not getting any error information on the RTT at logging level DEBUG.
0> <info> app: Connected 0> <debug> nrf_ble_gatt: ATT MTU updated to 247 bytes on connection 0x0 (response). 0> <info> app: Data len is set to 0xF4(244) 0> <debug> app: ATT MTU exchange completed. central 0xF7 peripheral 0xF7 0> <info> app: Disconnected
Checking the logs on nRF Connect (and bluetooth packet capture) shows that as far as the phone is concerned, it's a GATT CONN timeout.