Ant+ certification requires main page 0 to be decoded

I have created my first datafield that uses Ant+ for communication.

It is pairing with heart rate sensors and works as expected when side loaded in physical devices.

Now, I am waiting for getting the ant+ certification required for the app is approved in the store. I have receive following request:

Your CIQ app has been tested and an issue has been identified:
the main data page 0 is not decoded and displayed on the tested device.

To pass the certification, this issue should be corrected.

I am not sure about what to do, as I have based the app in the example for Moxy sensor and I cannot identify a solution for this.

In addition, I am not aware of receiving data page 0 from sensor. See below payload for initial messages received from sensor.

Any suggestion to manage connection with HR sensor and solve this request?

[110, 0, 0, 0, 0, 0, 0, 0]

[65, 0, 0, 0, 0, 0, 0, 0]

[66, 0, 0, 0, 0, 0, 0, 0]

[81, 0, 0, 0, 0, 0, 0, 0]

[69, 0, 0, 0, 0, 0, 0, 0]

[67, 0, 0, 0, 0, 0, 0, 0]

[99, 0, 0, 0, 0, 0, 0, 0]

[68, 0, 0, 0, 0, 0, 0, 0]

[113, 0, 0, 0, 0, 0, 0, 0]

[75, 0, 0, 0, 0, 0, 0, 0]

[132, 0, 34, 45, 78, 48, 71, 78]

[132, 0, 34, 45, 78, 48, 71, 78]

[4, 0, 34, 45, 78, 48, 71, 78]

[4, 0, 78, 48, 125, 51, 72, 78]

[4, 0, 78, 48, 125, 51, 72, 78]

[4, 0, 78, 48, 125, 51, 72, 78]

[132, 0, 78, 48, 125, 51, 72, 78]

[132, 0, 125, 51, 178, 54, 73, 78]

...

  • THANKS! I'll check that out. I didn't know about that. Sounds like just what I need.

  • Quickly browsed through the specs about the pages for shifting and power.

    For shifting, the common page 82 (0x52) is required, and update should be sent at minimum every 65 seconds.

    For power, the common page 82 (0x52) is optional. But if implemented at all, update should be sent at minimum every 15.25 seconds

  • Thanks. I did find that neither shifting nor power profiles support the “sendPageRequest”. Bummer. And those dual sensor (multi component) systems do send onMessage battery updates per spec but only for the primary component. LEFT power pedal and FRONT shifter. The other components seem random if ever. getBatteryStatus(component) seems to just return the saved onMessage status and voltage - so if an onMessage page was not sent, that doesn’t help.

  • Spec also says the battery status should be sent for each component, not just main one. But this is up to manufacturer.

    I guess you are decoding the Battery Identifier field to know to which component the 0x52 page applies to?

    Spec also says something about in multi-component systems, the lowest battery level is normally reported. And then one could request battery levels for other components if needed. This I guess can be for battery savings purposes. In your case, is the battery level of the lowest component reported most frequently? Or is the most frequent always the main component, regardless of level?

    sendPageRequest seems a little dodgy, not sure if it works at all, or is it really that it cannot be used in this case. If you have time, for testing purposes you could implement test SW using Ant API directly, and there use common page 70 (0x46) to send page requests for each component. At least with that you should be able to verify how your sensors behave and what they support.