Generic ANT Proximity Pairing on Fenix3

The generic ANT proximity pairing does not seem to be working on the Fenix3

In the code below, when searchThreshold is set to 1, the Fenix3 will never find the sensor. It does work properly on the simulator, Vivoactive, and 920XT.

The Fenix3 does find the sensor if I set searchThreshold to 0. I would prefer to use the proximity pairing feature to help avoid pairing to the wrong sensor in a multi-sensor environment.

// Set the configuration
mDeviceConfig = new Ant.DeviceConfig({
:deviceNumber => mPersist.GetSn(), // Sensor Number if known, otherwise 0
:deviceType => CONFIG_DEVICE_TYPE,
:transmissionType => CONFIG_TRANSMISSION_TYPE,
:messagePeriod => CONFIG_MESSAGE_PERIOD,
:radioFrequency => CONFIG_RADIO_FREQUENCY, // Ant+ Frequency
:searchTimeoutLowPriority => CONFIG_SEARCH_TIMEOUT_LOW_PRIO, // Timeout in 25s
:searchTimeoutHighPriority => CONFIG_SEARCH_TIMEOUT_HIGH_PRIO, // Timeout in 5s
:searchThreshold => searchThreshold // 0 if Sensor Number is known, otherwise 1
});
  • The ConnectIQ documentation relating to searchThreshold is pretty minimal. It simply indicates that searchThreshold is the proximity threshold bin, but it doesn't describe exactly what that is or what reasonable values would be.

    I took a look at the ANT+ Proximity Search document, and and it looks like a proximity search bin is essentially a way to filter out ANT devices by proximity. Bin 0 is a sentinel value for any device that can be found. For non-zero bin values, they correlate to an increasing sensor search radius with 1 being the smallest. The document indicates that developers should choose an initial value of 1 unless the use case requires a larger value. Even that document doesn't indicate what the maximum bin value is. :(

    I wonder if the right behavior here would be to start out with a searchThreshold value of 1, and then grow the search radius periodically until a sensor is detected, limiting the value to some reasonable maximum. Maybe search for 10 seconds w/ threshold 1, 10 seconds w/ 2, 10 seconds w/ 3, then just try to find any sensor by setting the threshold to 0. Another option would be to allow the user to specify the sensor search threshold value via a menu (Very Close, Close, Far, Any).

    Travis
  • Thanks for the insight Travis. It does look like a range issue.

    Here's a very rough study of threshold values and approximate pairing range

    [table="width: 500, class: grid, align: left"]
    [tr]
    [td]Threshold[/td]
    [td]920XT[/td]
    [td]Fenix3[/td]
    [/tr]
    [tr]
    [td]1[/td]
    [td]4 inches[/td]
    [td]won't pair[/td]
    [/tr]
    [tr]
    [td]2[/td]
    [td]4 inches[/td]
    [td]0.5 inch[/td]
    [/tr]
    [tr]
    [td]3[/td]
    [td]6 inches[/td]
    [td]2 inches[/td]
    [/tr]
    [tr]
    [td]4[/td]
    [td]18 inches[/td]
    [td]4 inches[/td]
    [/tr]
    [tr]
    [td]5[/td]
    [td]30 inches[/td]
    [td]10 inches[/td]
    [/tr]
    [tr]
    [td]10[/td]
    [td]>80 inches[/td]
    [td]>80 inches[/td]
    [/tr]
    [/table]

    I think I will just hard code the threshold to 4.
  • Former Member
    Former Member over 10 years ago
    I set proximity to 0. Anything else and I find pairing will eventually connect, but it takes too long.
  • I've filed a ticket to have this clarified.

    This actually caused some issues with one of our own apps that was set to use proximity pairing, and the ANT+ proximity search documentation's lack of clarity made it difficult for us to understand exactly how the app should work. I believe that the vague nature of the ANT+ proximity search documentation is intentional since there are a lot of factors that may affect the proximity ranges (particularly hardware configuration).