HRM 600 Running Dynamics not readable from a Connect IQ data field (AntPlus returns null) — FR965

Hi all,

I'm writing a data field (Monkey C, SDK 9.1, Forerunner 965) that streams live activity data over BLE. I'm unable to read Running Dynamics from a HRM 600 strap, even though the watch's native Running Dynamics screen displays them correctly during the run.

What I tried:

  1. Toybox.AntPlus.RunningDynamics in polling mode — getRunningDynamics() always returns null.
  2. Push mode with AntPlus.RunningDynamicsListener.onRunningDynamicsUpdate — the callback never fires; getSensorPosition() also returns null.
  3. Confirmed the AntPlus.RunningDynamics instance is non-null (constructed in onStart), the activity timer is running, and Activity.Info shows valid cadence/speed while running.
  4. Manifest has the Ant permission (the only one required by Toybox.AntPlus / Toybox.Ant).
  5. Tried pairing the HRM 600 as ANT+ on the FR965 — it only ever connects as BLE Secure; there's no option to choose ANT+ (open) anymore.

My understanding from other threads is that the HRM 600 broadcasts only HR over ANT+ and sends Running Dynamics only over BLE Secure, while Connect IQ has no API to read RD over BLE. If that's the case, AntPlus.RunningDynamics (and a generic Ant.GenericChannel on NETWORK_PLUS) can't work because there are no RD pages on ANT+ to read.

Questions:

  1. Can someone confirm HRM 600 Running Dynamics are simply not accessible to Connect IQ on current firmware (platform limitation, not a code error)?
  2. Is there any supported way to read them in real time from a data field with the HRM 600?
  3. If not, do HRM-Pro / HRM-Pro Plus / HRM-Run / HRM-Tri expose RD over ANT+ such that AntPlus.RunningDynamics works with them unchanged?

Device: Forerunner 965 · SDK 9.1.0 · Strap: HRM 600 · App type: data field.

Thanks!