Need help with a heart rate alarms app

Hi there,

I've recently bought Forerunner 745 and got disappointed by the fact that there is a "bad" irregular hear rate alarm feature. Actually, it allows to set a top level starting from 100 bpm only however I really need to set it from 80 (kindly don't ask why).

So now I'm looking for any way / hack to get what I want. I've deployed the Garmin development environment and now trying to create my own app to achive this.

I've already sorted out how to recieve the current heart rate and vibrate the watch if it is greater than 80 bpm. It works fine in the emulator but I don't know how to get it working on the watches in spite of my app is copied to the watches.

In a nutshell, I need a simple background app which monitors my heart rate and start vibrating when it gets > 80 in 24/7.

Can you please give me some architecture ideas how to do it: what kind of app it should be, which methods to use? P.S. I don't need a special watch face, only background mode all the time.

  • not event but notification about it and max 5 minutes unfortunately

    but if it will be possible to implement in watch face - no lag

    But it's a simpler solution. 

    You have to find on watch file where min HR settings (if it isn't in any protected area) is saved than change several time value to find in this file place and edit it and put 80 in text or binary value. Maybe  Garmin doesn't check range and chrcksum. Of course it is a bit complicated  but when  watch is connected to computer you can change settings from express or web and looking for changing file by its time  than copy it to a computer and comparing each version.

  • But it's a simpler solution. 

    You have to find on watch file where min HR settings (if it isn't in any protected area) is saved than change several time value to find in this file place and edit it and put 80 in text or binary value. Maybe  Garmin doesn't check range and chrcksum. Of course it is a bit complicated  but when  watch is connected to computer you can change settings from express or web and looking for changing file by its time  than copy it to a computer and comparing each version.

    Yeah, like you said, if it isn't in any protected area. Settings like your Wi-Fi passwords and a few other things are def in a protected area (not accessible when you plug the watch into your computer.)

    If the HR alarm setting is in a FIT file (similar to how the settings for activities work), then it would be a "simple" matter of either changing the HR as you suggested to see which file changes and which part of it changes, and/or setting the HR to a distinctive value that you can search for/

    Garmin does check the checksum of FIT files, but you can easily recalculate it yourself. The files have checksums, but they're not digitally signed or anything. 

    The tricky part is editing the FIT file. Garmin's tools for FIT files (like FIT2CSV) don't preserve all the data on export, so it's not enough to export the data, change the value you want, and reimport the file. You have to figure out where the value is in the file, change it, and recalculate the FIT file checksum. If it's just a one-off thing, it's almost easier to use a hex editor as opposed to writing an app to do this.

    All the information you need is in the FIT File SDK: https://developer.garmin.com/fit/download/

    I've done this kind of thing (FIT file editing) successfully in the past to overcome a couple of Garmin limitations:

    - People were unable to set a bike wheel size smaller than a certain number for a Bike profile, but editing the FIT file overcame this limitation

    - IIRC, I was able to enable the metronome for the Swim activity (where it's normally not allowed)

  • I've felt it can be done, probably.

  • I created a feature/bug request yesterday about this - https://forums.garmin.com/developer/connect-iq/i/bug-reports/wider-irregular-heart-rate-alarm-bpm-range but it was rejected with a suggestion to create a discussion on FR745 thread. In spite of the fact this problem is actual for all garmin watches I've done it immediately of course: forums.garmin.com/.../bug-feature-request-wider-irregular-heart-rate-alarm-bpm-threshold

  • As it's for more than the 745, and is a device not so much a CIQ thing try submitting the idea to Garmin overall:

    https://www.garmin.com/en-US/forms/ideas/

  • Thanks for the link. Done. I hope someone else could submit a similar request too.

  • I hate these answers! Recently I also started to get stupid (sorry, no way to call it otherwise) responses from Garmin support. It's clear they don't care, so much so that they didn't even take the time to read the description. Opening another thread in any of the USER forums is probably waste of time :( Sending it as an "idea" is probably also....

  • In my experience if you write a feature request inside the bug report forum you have the highest chance of this resulting into a positive result (=change of implementation). Of course you'll have to write the feature request in a general way so that it applies to connect iq sdk (and not to a device in particular). It also helps if you can provide a use case to why this implementation change would be helpful. (take the time to document and structure your feature request properly) 

    Imho all other suggestions (write in device forum, write in discussion forum, submit something through idea form) has a very low success ratio.   

  • There is also an issue of priorities.  Something may be really important to you as an app developer, but to the platform group (who is involved in many changes/fixes) the priority may be really low and not get much attention there.  And with FW things, some devices are in a maintenance mode where new FW (with the change) may only roll out a few times a year.  I've seen easily reproducible bugs take a year or more to get fixed.  That's just the way it is with large projects in large companies being done by multiple groups.  Garmin CIQ can't force the Forerunner group to do something.

    I'm sure it's the same with companies like Apple and Samsung.

  • I totally agree, see for example my feature request to add body battery to the SDK that had many votes and it had been added (not sure if it would have been added without the feature request that people could up-vote)

    That's why I got so angry from the official response from Garmin. The real problem is that if one follows the official way, to send it as an "idea" to /dev/null, then there's no transparency, no way to vote on something, there's a very small if not 0 chance that it'll be implemented.

    So Garmin gives us no choice but to "abuse" some of the other ways, like the bug report forums. And to tell you the truth so far in some cases i got a response that a ticket has been opened for it (no guarantee that it'll ever be looked at) in some cases i got some respectful explanation from a Garmin employee, in some cases no response whatsoever. But I never got such an annoying reply, that shows how little effort the Garmin staff put into that reply. They "jumped" on the FR 745 , but anyone with some basic understanding can see that it's not much related to one specific watch type, but rather a generic request to make it possible to have a lower high HR alert threshold.