System 8 sensor pairing for ANT

I started to get reports from users who participate in beta program and have already upgraded their device to system8 that my datafield stopped working. My datafield uses ANT with GenericChannel (see code below).

I wonder if anyone managed to do whatever changes we need to do in our apps? If yes, can you share the insights?

The only information I found regarding this is from the announcement: https://forums.garmin.com/developer/connect-iq/b/news-announcements/posts/system-8-beta-now-available :

Sensor Pairing

If your device application or data field communicates wirelessly with a sensor or peripheral using ANT, ANT plus, or Bluetooth Low Energy (BLE), then you will need to implement a pairing process. Connect IQ allows you to implement a Sensors.SensorDelegate that allows you to have your device pair as part of the device’s sensor paring UI flow. See the SensorDelegate 

In my datafield I specifically ask the users not to pair or at least disconnect their ANT HR band from the device's Sensors menu, and I connect to it from the datafield using Ant.GenericChannel:

Ant.GenericChannel.initialize(method(:onMessage), new Ant.ChannelAssignment(
    Ant.CHANNEL_TYPE_RX_NOT_TX, // Bidirectional Receive (Slave)
    Ant.NETWORK_PLUS)
);

var devCfg = new Ant.DeviceConfig( {
    :deviceNumber => 0,                    // Set to 0 to use wildcard search
    :deviceType => 0x78,                   // Heart Rate Sensors: 0x78 = 120
    :transmissionType => 0,                // Set to 0 to use wildcard search
    :messagePeriod => 32280,               // 4Hz: 8070, 2Hz: 16140, 1Hz: 32280
    :radioFrequency => 57,                 // ANT+ Frequency 2.457GHz
    :searchTimeoutLowPriority => 10,       // Timeout in 25s
    :searchThreshold => 0} );              // Pair to all transmitting sensors
GenericChannel.setDeviceConfig(devCfg);

GenericChannel.open();
  • so the only way you can see 5.1.0 is that you installed the beta, am I correct?

    Yes, I‘m on the latest beta software 12.14 and on the system menu info - about, it displays CIQ Version 5.1.0.

  • This thread is about System 8 functionality.

    Have you verified your app, built with the 7.4.3 SDK that's trying to use a System 8 feature, that the feature is attempted on a device with System 8 FW?  That would be step one in solving this for me.

    The 7.4.3 compiler/build process could be removing something it doesn't understand.

  • As I wrote (I know you didn't read it) I don't have a system 8 device at the moment. And no, this thread is not about system 8, it's about System 8 and ANT.

    Had you read my post with the example code, you would also know that my code doesn't have any system 8 features yet (partly because I am just trying to figure out how it's supposed to be coded)

  • Actually I wonder: will anyone even be able to reproduce / test this system 8 sensor pairing feature? Is upgrading a device (watch / edge) to system 8 enough? Maybe all of us who use any old ANT device will never be able to test it because the ANT sensor also needs to have a newer firmware that supports it? 

  • ANT is kind of dying. Did you see DCR's post?  https://www.dcrainmaker.com/2025/01/the-begining-of-the-end-for-ant-wireless.html

    The EU-RED stuff.  That's why I'm more focused on the BLE side.

  • I saw his video, but what does it have to do whit this thread?

    THIS THREAD IS ABOUT ANT!

    ANT may be dying, but I'm sure the 200k+ users of my datafield will happily continue to use it for some more years redardless of what DCR or you think. Had you really read his post you'd know that at the end he tells people not to worry, because ANT devices will continue to work.

    I'd like to get advice / insights from other developers who have an app that uses ANT with GenericChannel.

    People who are not developers, can't read, don't have an app with ANT, only use BLE, don't speak English, have red hair, have a shoe size less than 31 or your zip code is a prime number, please don't comment on this thread, thanks!

  • Did you see this?

    From the 8.0.0 beta core topics doc.  See the section with:

    Pairing with Your Data Field or Application

    If you add support for the native pairing flow, users will be prompted to pair with your sensor when the data field is installed. Applications typically want to pair devices as part of a setup flow. You can use System.exitTo(new Intent("system://pairing", {})) to exit the user to the native sensor scanning process.

  • After the BT spam, some ANT and system 8 related observations (simulator + USB ANT stick + different ANT HR sensors):

    1. I see no difference between SDK 7.4.3 and 8.0.0 for old devices

    2. system8preview device (obviously with SDK 8) works exactly like any other device

    3. there's no difference in how system8preview device behaves whether I pair my ANT HR sensor in the simulator Settings > Manage Sensors window

    4. I noticed also that when I run my DF and inside the DF I pair to an ANT HR sensor then that ANT sensor is not found by the Sensors manager window. Only after I stop the app it finds it.

      can you write some clarification (maybe even sample code in the SDK) to the sentence cited in the thread opener post? Please also clarify if there are differences between ANT and BLE in this regard.

  • Yes I saw this, but some things are unclear. Based on the sentence I cited: "If your device application or data field communicates wirelessly with a sensor or peripheral using ANT, ANT plus, or Bluetooth Low Energy (BLE), then you will need to implement a pairing process."

    However in the sentence you cited: "If you add support"

    From the announcement it sounds like we'll have to add pairing, but from the SDK changelog it sounds like it's an optional thing.

    Regardless, even if it's optional it would be useful to get a working example code (but then I wouldn't rush to implement it ASAP, as I do now, because of the report I got that my app stopped working on beta firmware).

  • I think it could be a bit ambiguous. It's clear that you need to implement a pairing process. In fact you are doing it before System 8. I guess Garmin is providing an optional second method for system 8 devices, but not deprecating current procedure Fingers crossed

    By the way I am using several of my data fields that use both ANT and BLE to connect with different sensors. All worked fine in an Edge 1040 (beta firmware 26.24 CIQ5.1). DFs built with SDK7.4.3