Just as an FYI (and sorry to be pedantic): The connection interval is the time between connection events. That is what itvl_min and itvl_max are referring to. The controller can pick a connection interval within those bounds and as Mark states the range is 7.5msecs to 4 secs. The length of each connection event is basically determined by the controller. The min_ce_len and max_ce_len are merely “hints” to the controller and the controller does not have to honor them. I dont know why the spec allows them to be greater than the connection interval itself (although I do see why it could be 0).
The nimble controller basically ignores the min_ce_len and max_ce_len. What it does is the following: the controller knows when the next “event” is going to occur (this could be an advertising event or another connection event). As long as either the master or the slave has packets to send, the connection event continues until there is either an error, no more packets to send, or another event will occur. Obviously, the connection event will never exceed the connection interval. And yes, you are correct in saying that typically a connection event is just a few msecs long (unless you are queuing up a bunch of packets or sending large data packets). Unfortunately I dont know what to say regarding your results. I will let our host expert chime in but I am sure we can figure out what is going on. > On Aug 30, 2016, at 9:17 AM, Mike Ryan <[email protected]> wrote: > > On Tue, Aug 30, 2016 at 04:10:58PM +0100, Tim Hutt wrote: >> .max_ce_len = 10, // Units: 0.625 ms; min: 0; max 0xFFFF (40.9s) >> // I really have no idea what to put in min/max_ce_len. I thought a >> connection event was sending a few packets, so should take a couple of >> milliseconds. >> // Why would you ever have a 40s one? > > The legal min/max connection intervals are 7.5 ms and 4.0 s. Reference: > Bluetooth Core Specification v4.2 Vol 6 Part B Sec 4.5.1 (PDF page > 2619). > > Very long connection intervals and long supervision timeouts allow > devices to remain connected while consuming extremely small amounts of > power. I've used 4 second intervals with a temperature sensor running > off a CR2032 for months.
