is there something happening such that info.currentPower is no more available for Power Meters (like Stryd) when on the running profile?
is there something happening such that info.currentPower is no more available for Power Meters (like Stryd) when on the running profile?
Yeah this has been discussed elsewhere, but the latest firmware on current watches has fixed an old loophole. Stryd appears as a standard cycling power meter, and ActivityInfo.currentPower (and the other power-related fields) would reflect cycling power in a running activity, even though cycling power has never been available as a native field in running mode.
(Note that there is no standard running power ANT+ profile.)
Now Garmin has changed this behavior so that ActivityInfo.currentPower (and the other power-related fields) reflects Garmin running power, in running mode. Arguably this makes a lot more sense, given that native Garmin running power is now a thing (but ofc it wasn't when Connect IQ was first launched.)
If you have a CIQ data field which needs to support Stryd in running mode, your only option is to make a direct ANT+ connection from the app itself. Ofc the user will have to disconnect the Stryd as a cycling power meter in the built-in sensor menu.
I think there's quite a few CIQ data fields whose stryd functionality is now broken, due to this change.
Thanks for the link. It's a great 7 pages of read of the status and options moving forward. Perhaps it's time to drop support for Stryd since their data field is finally up to snuff.
Having said that, I, like you have also done ANT+ connections to Stryd to support those FR255/245 types which doesn't support Cycling Power natively. I won't be trivial to add the code back in and since the newer watches has ample memory anyways. The concern here would be having a "stable" connection, similar to what you said in the other thread. Many thanks for your comment and the link.
things to think about....
The concern here would be having a "stable" connection, similar to what you said in the other thread
Yeah. For reference, the workaround to use when you lose the ANT+ connection is to delete the Ant.GenericChannel-derived class instance entirely and instantiate a new one. Otherwise the connection may not be restablished.
e.g.
Unfortunately, the workaround of re-instantiating the class object causes a memory spike, as opposed to simply calling GenericChannel.open[]. In my app, I can't use this workaround for devices with very low memory (like FR235), as the memory spike is acceptable at app startup, but not afterwards. (It's a data field which uses memory to track things like lap data.)
What do you mean "cycling power". It is just power. My Forerunner 955 generates running power natively. No need for a Running Power profile. It is just watts. That is like saying we need different Heart Rate profiles for each Sport type, There is no excuse for Garmin not to make power available to CIQ from Garmin devices that provide power when running. In fact, in CIQ I do see Average Power when running, they just dropped the ball and forgot to also provide Current Power.
There is no excuse for Garmin not to make power available to CIQ from Garmin devices that provide power when running. In fact, in CIQ I do see Average Power when running, they just dropped the ball and forgot to also provide Current Power.
You have mentioned this bug before, and while I think it sounds like an annoying bug, I don't think it's the same thing that's mentioned here.
What's specifically mentioned here (and elsewhere) is that in run mode, ActivityInfo.currentPower (and other power-related fields) used to come from an external (cycling) power sensor, but now it only comes from native running power, in the latest firmware for currently supported watches (like FR955, FR965 and Fenix 7). This is the case even if you completely disable Garmin native running power.
I confirmed this change myself, on my FR955. And I'm sure it used to work the other way, in the past.
Note that during a cycling activity, power from external power meters is still used for ActivityInfo.currentPower.
What do you mean "cycling power". It is just power.
Cycling power and running power aren't the same thing.
- Cycling power is directly measured via cycling power meters. (Or the power meters measure torque and speed, and use that calculate power).
- Running power is estimated, not measured (either directly or indirectly). I think it should be plainly obvious that it's impossible for a device worn on your wrist, your chest, your waist, or even on your shoe to measure running power.
- The various vendors that support running power (Garmin, Coros, Polar, Apple) don't even agree on a single definition of running power, and their algorithms don't produce the same numbers. Studies on running power have also noted that there is not one single definition of running power.
- Garmin's RD-Pod (and chest straps which provide running power) don't even calculate power themselves. They send other data to the Garmin device (running dynamics) and power is calculated on the device itself (which is likely why the ANT+ Running Dynamics profile doesn't include power). This is in contrast to how bike power meters directly or indirectly measure power and how Stryd calculates power on the sensor (which is why you don't necessarily need the Stryd app to get the power value).
To reiterate: running power does not have a standard ANT+ profile, estimation algorithm, or even scientific definition.
Can you use the same power meter sensor to measure both cycling power and running power?
Did you notice that prior to the introduction of native running power, Power was not available as a native field for running activities, but only cycling activities? Again, it's because the ANT+ power sensors that you see in the Sensor menu are meant to be cycling power sensors.
You will also note that in run mode, Garmins will *not* automatically connect to an external sensor that presents itself as a cycling power meter (such as a Stryd or a real cycling power meter), because cycling power is not meant for running.
That's why all the 3rd party apps which support Stryd power via an ANT+ connection in the Sensor menu ask the user to manually make the connection, as it won't be made automatically.
My Forerunner 955 generates running power natively
No need for a Running Power profile. It is just watts
To be clear, I am talking about an ANT+ device profile. The topic here is external power meters which communicate with Garmin devices using ANT+.
It is not just watts. For example, Stryd records several other metrics besides power in watts, such form power and leg spring stiffness.
The Stryd app/website used to accept power from 3rd party data fields (such as one of my own), but they discontinued that practice for 2 reasons:
- they didn't want to possibly accept bad power data from untrusted sources
- the stryd app/website wants more metrics than just power, in order to feed their various training algorithms
That is like saying we need different Heart Rate profiles for each Sport type
It's not like that at all, because regardless of the sport, you can use the same sensor to measure your heart rate, and the same information is recorded in all cases. (inb4 not all sensors work underwater, so you may need a different strap for swimming. that's not what I'm referring to.)
As a matter of fact, the ANT+ device profiles page specifically refers to "Bicycle Power", and the bicycle power profile description refers to things that are specific to...wait for it...bicycles.
Bike power sensors vary in two ways: in the method used to measure power and in the conditions and interval used to update and broadcast power information.
The ANT+ message definition currently supports power sensors that use different measurements to determine power:
1. measure power directly
2. measure torque and rotational velocity at the crank
3. measure torque and rotational velocity at the wheel
[https://www.thisisant.com/developer/ant-plus/device-profiles#521_tab]
> Torque and speed data (optional)
> Torque and Cadence data (optional)
> Torque Effectiveness and Pedal Smoothness (optional)
It's not "just watts" for bicycling power, either.
The simple explanation here is:
- Garmin wants CIQ apps to be able to display Garmin running power in run mode (which makes sense)
- Garmin doesn't care about 3rd party apps which display running power from 3rd party running power meters (which present themselves as cycling power meters), via ActivityInfo.currentPower. These apps can always "directly" make the connection themselves (by initiating the ANT+ connection in code.)
Also note that the native Garmin running power feature will not accept data from 3rd party sensors, only Garmin sensors (like RD-POD and supported chest straps.) Since these Garmin sensors transmit "running dynamics" (and not running power), Garmin obviously didn't feel the need to add running power as a supported ANT+ standard. (Since they have no reason to support 3rd party running power sensors.)
I still think it should be obvious that info.currentPower should provide running power. the CIQ app will understand the context based on sports type. I get that some sensors also provide addition metrics. GREAT. Then an ANT+ profile for those devices make sense. Garmin watches present native running power. They stick that into info.averagePower, but not info.currentPower. Just a glaring bug. OP said: "is there something happening such that info.currentPower is no more available for Power Meters (like Stryd) when on the running profile?" That is my point... my Garmin Watch generates running Power (it is essentially a Power Meter for running just like Stryd), but fails to provide that data. I use a bike power meter on all my bikes. I get that running power is calculated differently. some bike power meters do that as well, like Wahoo Trainers that do not use a strain gauge but rather model it using different inputs... like running power is generated using a physics model.
I still think it should be obvious that info.currentPower should provide running power.
Yes and now it does [for the case of native Garmin running power]. [In the latest firmware for current devices like FR955, FR965 and Fenix 7].
I just tried it on my FR955 by adding a CIQ field to the run activity that's configured to show ActivityInfo.currentPower. When native running power is disabled, it displays "--" [reflecting a null value]. When native running power is enabled, it shows 0 when I'm standing still. I'm fairly sure if I go outdoors, get a GPS fix, and start running for real, it will show a non-zero number. I should probably try it the next time go for a run.
This thread is actually complaining about a different problem that's caused by this change: that data from an external power meter such as Stryd will no longer be used to populate ActivityInfo.currentPower.
Again, this is because external power meters are actually cycling power meters.
For example, if i connect a stryd as a power meter through the sensor menu, my CIQ field won't show data from the stryd (although I'm sure it did in the past.)
Many people are complaining about this change because it breaks any CIQ app which uses ActivityInfo.currentPower [and other power-related fields in ActivityInfo] to display power from Stryd. That's the discussion that's being had in the thread I linked earlier.
I get that running power is calculated differently. some bike power meters do that as well, like Wahoo Trainers that do not use a strain gauge but rather model it using different inputs... like running power is generated using a physics model.
That's fair. Tbh I don't know a lot about bike power as I'm not a cyclist. (Only what I need to know wrt ANT+, Stryd and Garmin).
I still don't think running power and bike power are the same thing, especially when it comes to external power meters [which is the topic of discussion of the thread]. The point is that the cycling power meter standard [and related Garmin features] existed long before running power was a thing. Even if you could have a single ANT+ standard to communicate both running power and bike power, no such standard exists afaik.
Garmin watches present native running power. They stick that into info.averagePower, but not info.currentPower.
Again that sounds like an annoying bug, but it's not what's being discussed here.
OP said: "is there something happening such that info.currentPower is no more available for Power Meters (like Stryd) when on the running profile?" That is my point... my Garmin Watch generates running Power (it is essentially a Power Meter for running just like Stryd), but fails to provide that data.
The difference is that OP is concerned about external power meters like Stryd [which presents itself as a cycling power meter] and you are concerned about native running power. Garmin has actually made the change that you want. You may need to be on the latest firmware to see it though.
SERIOUSLY!!?? I'll try right now. I wrote a little field a couple years ago waiting for this day!! :-) Checking