I am working on a nRF52 device as a peripheral that is communicating with an Android tablet central, and have been doing some experiments with the connection interval parameters.
Currently our minimum is 100ms and our max is 200ms. I've tried lowering the minimum and maximum and the negotiated results are in the table below.
The Negotiated column includes the initial 'connected' event parameter, and the following 'update' event parameters respectively. I've assumed that the last updated parameter is the one that is used.
| Min | Max | Negotiated |
| 100 | 200 | 48.75, 7.5, 48.75, 198.75 |
| 7.5 | 200 | 48.75, 7.5, 48.75 |
| 7.5 | 20 | 48.75, 7.5, 48.75, 18.75 |
| 7.5 | 12 | 48.75, 7.5, 48.75, 11.25 |
| 7.5 | 7.5 | 48.75, 7.5, 48.75, 11.25 |
Questions:
- Firstly, why are the maximums of 20, 12, and 7.5 ignored for the first few values, and why is it entirely ignored for 7.5? I thought that the connection would be rejected if the parameters could not be agreed upon.
- What impact does decreasing the maximum connection interval have? Are there any downsides, edge-cases I should be aware of?
- Does setting too small of a range make it more likely that a connection will fail?
- Does Android limit the number of packets that can be sent over each connection interval? If this is the case I could calculate an ideal maximum connection interval.