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

ble_uart_example LED2 is blinking when maximum connection interval > 1999ms

Also it seems not to advertise. What may cause this problem?

All I could found in the ble_gap.h is:

If both conn_sup_timeout and max_conn_interval are specified, then the following constraint applies: *
conn_sup_timeout * 4 > (1 + slave_latency) * max_conn_interval

According to this (imagine max_conn_interval would be 4000):

#define MAX_CONN_INTERVAL               MSEC_TO_UNITS(75, UNIT_1_25_MS)             /**< Maximum acceptable connection interval (75 ms), Connection interval uses 1.25 ms units. */
#define SLAVE_LATENCY                   0                                           /**< Slave latency. */
#define CONN_SUP_TIMEOUT                MSEC_TO_UNITS(4000, UNIT_10_MS)             /**< Connection supervisory timeout (4 seconds), Supervision Timeout uses 10 ms units. */

It would be 4000*4 > (1+0) * 4000. Looks true to me.

Edit: Seems like it works till 1999 and bugs if >2000. It should go all the way up to 4000. Shouldn't it? Also it says in the nRF Master Control Panel: 1998,75ms. (1998 -> 1997,50ms) I thought maybe the MSEC_TO_UNITS could cause the problem. But nope, just 3200 also doesn't work.

Related