How to improve data rate in curie Arduino 101 BLE

Hi MugiChan!

I have the same issue with you, and figured out that after the value of max, min is adjusted, their resolution values are required to adjust accordingly. In other words, when you call MSEC_TO_UNITS method, there is one constrain for TIME and RESOLUTION as TIME/ RESOLUTION must be a interger. You might want to try the code below.

enum {
UNIT_0_200_MS = 200, /< Number of microseconds in 0.200 milliseconds. */
UNIT_0_625_MS = 625, /
< Number of microseconds in 0.625 milliseconds. */
UNIT_1_MS = 1000, /< Number of microseconds in 1 milliseconds. */
UNIT_1_25_MS = 1250, /
< Number of microseconds in 1.25 milliseconds. */
UNIT_10_MS = 10000 /**< Number of microseconds in 10 milliseconds. */
};

#define MSEC_TO_UNITS(TIME, RESOLUTION) (((TIME) * 1000) / (RESOLUTION))

/* Connection parameters used for Peripheral Preferred Connection Parameterss (PPCP) and update request */
#define DEFAULT_MIN_CONN_INTERVAL MSEC_TO_UNITS(5, UNIT_0_625_MS)
#define DEFAULT_MAX_CONN_INTERVAL MSEC_TO_UNITS(10, UNIT_0_625_MS)

#define MIN_CONN_INTERVAL 0x0005
#define MAX_CONN_INTERVAL 0x000a