ANT+ Problem on Edge 520

I'm having an issue with ANT+ dropping out on the Edge 520. The Edge has Firmware version 5.20 and I'm using the Moxy Data Field version 0.2.

To replicate the problem:
- Create a data page with a Moxy Data Field and a native Cadence Data field.
- Pair the Edge to a Cadence sensor that is streaming data continuously.
- Leave the Moxy Sensor Turned Off so the data field keeps displaying the sensor number that it's looking for.
- Go to the view where you can see the data fields live.

Problem:
Every 30 seconds, the Cadence sensor will read 0 and then --- for about 4 seconds, then return to reading cadence.

It appears that something is going on with the Generic ANT channel when it times out and resets for not getting connected that is interfering with the Native ANT connection.

This was tested on a Fenix 3 and the problem did NOT occur there.
  • The Edge 1000 does the same thing.

    The problem occurs every 30 seconds exactly and lasts for exactly 3 seconds.

    As a bonus, I've noticed that the problem does not always occur. I was able to make it start happening again by re-adding the data field to the data page.

    When the problem is happening, it affects both the ANT+ Speed and ANT+ Cadence readings at the same time. It also affected HR one time, but not another.
  • Hi Shannon,

    It turns out that changing the High Priority Timeout to 0 seconds eliminates this problem. Apparently the High Priority search shuts down the other ANT channels causing the drop-out.

    This code causes drop-outs.

    var deviceConfig = new Ant.DeviceConfig({
    :deviceNumber => deviceNumber,
    :deviceType => 31,
    :transmissionType => 0,
    :messagePeriod => 8192,
    :radioFrequency => 57,
    :searchTimeoutLowPriority => 10,
    :searchTimeoutHighPriority => 2,
    :searchThreshold => searchThreshold
    });


    This code fixes the dropouts.

    var deviceConfig = new Ant.DeviceConfig({
    :deviceNumber => deviceNumber,
    :deviceType => 31,
    :transmissionType => 0,
    :messagePeriod => 8192,
    :radioFrequency => 57,
    :searchTimeoutLowPriority => 10,
    :searchTimeoutHighPriority => 0,
    :searchThreshold => searchThreshold
    });
  • Roger, if I understand what's posted here, it sounds like using "2" works on the F3, but not on the Edge(s). Sounds like a you narrowed down the bug on the Edge devices! I'm not that familiar with the Ant+ interface, but is this something other's using generic Ant would likely run into? If so, it might be something that needs to be noted in the SDK notes as a device specific thing until it's resolved. (I know I'd forget about it if I try to use Generic ANT :o )
  • Roger, if I understand what's posted here, it sounds like using "2" works on the F3, but not on the Edge(s). Sounds like a you narrowed down the bug on the Edge devices! I'm not that familiar with the Ant+ interface, but is this something other's using generic Ant would likely run into? If so, it might be something that needs to be noted in the SDK notes as a device specific thing until it's resolved. (I know I'd forget about it if I try to use Generic ANT :o )


    The Garmin guys actually found this issue. As far as I know, it only affects Edge devices right now, but it's probably a good idea to always set the high priority search timeout to 0 when you expect to use native ANT devices along with Generic ANT channel devices that might not get paired.

    I think the root of the issue is that when the High Priority search timeout is set to 2 (which is 5 seconds), the Generic ANT channel essentially takes over the entire ANT radio for 5 seconds to listen for the sensor it's trying to pair to. This causes the native ANT channels to drop out for those 5 seconds. The low priority search was set to 10 which is 25 seconds. That's why the whole thing repeated every 30 seconds.

    The Garmin guys can correct me if I'm wrong here, but I think the implementation on devices prior to the Edge simply did not ever allow the Generic ANT channel to do a High Priority search no matter what you set the time out to.

    So I'm not sure what the "correct" behavior should be. As far as I can tell, the Edge was actually doing what the ANT+ document says it should.

    So now, it does a low priority search for 25 seconds and then times out. There's a section of the code that then resets the ANT channel so essentially, it searches in low priority mode continuously.

    It used to not let you set the timeouts to any longer than 10 and 2 for low and high but I haven't tried this on the Edge. Here's a thread from way back on that.

    This document covers all of the details on high priority and low priority searching. However, this is not always exactly how it's implemented in ConnectIQ.