Obtaining the heart rate from an external sensor (chest strap)

I'm trying to get the heart rate value from an external sensor (chest strap) so that I can display an indicator on my watch face when the heart rate is coming from that source.  When I try to use the Sensor module in my watch face code, I get this error message:

Error: Permission Required

Details: Module 'Toybox.Sensor' not available to 'Watch Face'

I have the "Sensor" item selected in the permissions manifest, but that does not appear to help.  Any advice would be appreciated.

  • My guess is that when the switch happens and the HR of the optical sensor is used, then you won't see respiratory rate for those seconds. It wouldn't make sense to decide that the strap's HR reading is bad quality, so we switch to the optical sensor, while still using the strap's HR to calculate the respiratory rate.

    I don't necessarily agree, but I would interested to find out whether this is actually the case.

    The page on dynamic source switching makes no mention of respiratory rate, and most ppl aren't laser-focused on their respiratory rate during training in the same way that some obsess over their HR. So I don't think Garmin would go to all the trouble to invalidate respiratory rate data at the same time as they switch over to the wrist HR as a source for HR data.

    I do find it ironic that the dynamic source switching page says this:

    > A heart rate strap is usually the most accurate source of heart rate data for running but occasionally there can be inaccurate heart rate at the beginning of runs, often referred to as start-up noise

    Be that as it may, it's also fairly well known optical HR data is *usually* bad at the start of runs, as it takes a minute or so to "catch up" to the user's elevated heart rate, when their HR was low at the beginning of the run. I've noticed this consistently, when I bother to wear a chest strap and compare optical vs external HR. (It's also fairly noticeable without wearing a chest strap, when I start running without warming up, and my HR seems to be way too low for the first minute or so).

    So in order to cover a case where data may be bad at the start of a run, they're switching to a source that's usually bad at the start of run (at least ime).

  • Good point, it's worth to test it somehow.

    Unfortunately I can't seem to test this now (on the latest fr955 firmware), as the source switching option is now greyed out even when I have a compatible strap connected, and I've already disabled source switching.

    Guessing it's a new bug related to the changes they made to the sensor menu. (The source switching option is unavailable when a compatible sensor isn't connected, and selecting the option takes you to the sensor menu.)

  • start-up noise

    LOL first I read it as "strap-up noise" :) 

  • Yes, I have a Garmin HRM-Dual.  I will try disabling the dynamic source switching.  That sounds like it might be the issue.  Thank you, and thanks to everyone that has responded to this issue.  I’ll admit that I was being lazy and hoping for a simple way to get data from both monitor sources, but it really isn’t a big deal.  The drop outs are minor and the heart rate data is generally much better with the strap.  I’m doing another HIIT workout tomorrow and I’ll try turning off the source switching at that time.  Thank you again for your response!!

  • I tried doing this for my last HIIT workout.  The variables I can choose from are: heart rate, distance, and body battery.  So maybe the dynamic source switching is off by default on my device (Venu 2s).  Regardless, this is great information for accessing watch data.  Thank you!!

  • Apparently venu2s does not support dynamic source switching at all, according to the source switching support article:

    https://support.garmin.com/en-CA/?faq=Nf8r6ApX4d9lX0G0flEsVA

    This would probably explain why neither of "wrist heart rate" or "external heart rate" are written to the FIT file. (I assume that only watches which support dynamic source switching will write one or both of those metrics to the FIT file.)

    So my hunch was wrong, and it seems that your strap is likely experiencing true drop-outs (as in loss of connection), if in fact wrist HR is taking over during your activities when the strap is supposed to be connected.

    Venu 2s lacks support for running dynamics, so it isn't possible to verify whether the strap is connected by looking for a valid ground contact balance value.

    Venu 2s also lacks the respiration rate data field, except for Yoga and Breathwork, so in general, you won't be able to use the respiration rate data field to verify that the strap is connected, either.

    By the same token, it doesn't seem possible for you to be able to tell when drop outs occurred after the fact, either, except to look at the HR chart for apparent anomalies.

    The only way you would know for sure is if you're able to scroll to the sensor menu in time to see that the connection was lost, or (more realistically), if the watch displays a notification when the strap disconnects or reconnects.

    Sorry, wish I had better news for you.

    Glad you find fitfileviewer useful!

  • hoping for a simple way to get data from both monitor sources

    You can, if you use flocsy's ANT+ HRM Heart Rate Monitor data field.

    The downside is that in order to use it, you have to unpair the external chest strap with your watch so that the app can make a direct connection. This means that you'll be able to see your external HR alongside the wrist HR, and the data field will record the external HR, but the external HR will *not* be used as the activity HR (activity HR, and all derived metrics, will come from the wrist HR, which might defeat part of the purpose of wearing an external HRM in the first place.)

  • Sorry for the delayed response.  I checked the menu items under "Wrist Heart Rate" and those items are: Status (off/auto), Abnormal heart rate alerts, Broadcast in activity, Broadcast, and Pulse Ox.  As you mentioned, this watch does not support source switching -- which is fine.  I get one or two drop outs during a one hour workout, but it isn't like it has any significant impact on my workout stats.  This just gets filed under "it would have been nice...".  Thanks again for the feedback and responses.

  • Since we are taking about HRMs and ANT, this may be a bit off topic, but an interesting read:

    https://www.dcrainmaker.com/2025/01/the-begining-of-the-end-for-ant-wireless.html