Vivo Active and Open Water swimming

Former Member
Former Member
All, I know there has been many discussions about the VA and open water swimming over the past few years and it not being supported and that the data is inaccurate etc...

I wanted to take the time t layout what I have been able to find with my testing and see what Garmin support has to say. I tried the normal support route and kept going in circles with them understanding the issue and kept telling me that open water swimming is not available on the VA and then pointed me here.

I am using an application "jtriathlon" that was derived from pmtriathlon with some enhancements.

The CIQ SDK has the option for open water swimming and that is what I am using.

The data however logs almost twice the distance that was actually swam and I have been trying to find out why.

I can understand if it was less as the GPS does not always have a signal and it may have missed a data point while turning a buoy or something.

The details are as follows:

I swam about 500 yards wearing BOTH a 910 and a VA at the same time. The 910 recorded about 500 yards and the VA recorded about 900 yards.

I exported the VA data to GPX format and using the GPS coordinances captured, manually added the distance with an online calculator and came up with about 500 yards. go figure. if I can do it, why cant garmin connect.

Next step, I uploaded what was exported back into Garmin connect and now the data reads about 500 yards (or .34 miles compared to .32 miles for the 910) so I would say close enough. so, the export may have corrected some invalid/corrupted data but in the process it removed about 1 minute from the time.

I am thinking that something is mangled on the import but it handles it without notice and it would be good to know what is going on in the FIT file.

Are there any FIT file readers available that show in plain text (like xml) before doing anything with it?

Any ideas? I think I am on to something but need the support of others. Many people are looking for support for open water swimming with the VA. Triathletes like their data and they like it to be correct :)

wearing the watch tucked in your swim cap might be a short term solution or doing and export/import might also.

I would like to help figure what is happening and what might be done to resolve it.

Again, I can see if the distance was shorter because of the drop outs but should not be longer than the data given. sounds like some bad logic or a corrupted file.

I am pretty sure this was happening before I updated this app but in case it wasn't, the work around I did to just stop and start activities without formally saving them may be an issue here however it does save all the data.

Thanks,

John
  • The short answer to this one is that the vivoactive is not particularly well-suited for swimming activities. :)

    One common misconception is that Connect IQ's sport types enable and disable special modes and algorithms behind the scenes within a Connect IQ app. For example, Garmin does have a swim capabilities built into some products, and it follows that recording an activity with a sport type of SPORT_SWIMMING would activate these swim functions for the activity. Unfortunately, this is not the case. Connect IQ just uses the sport types and sub sport types to label the activity and, of course, provides developers a way to identify the sport type at run time in case additional algorithms have been implemented in the app for specific activity types.

    In the case of the vivoactive, the open water swimming functions aren't baked in to the vivoactive firmware, so you wouldn't be able to take advantage of these features on this device even if Connect IQ was able to use them.

    I suspect that your track log distances worked out to be similar out of coincidence. If you were able to set the vivoactive to record a position sample ever second, and maybe recorded a longer activity, I believe you would see a drastic difference between the two devices. As the device enters and leaves the water while swimming, the position jumps around a lot because it's difficult to maintain GPS lock under these conditions, and this can add a significant amount of error to the distance.
  • Former Member
    Former Member over 8 years ago
    All, I know there has been many discussions about the VA and open water swimming over the past few years and it not being supported and that the data is inaccurate etc...

    I wanted to take the time t layout what I have been able to find with my testing and see what Garmin support has to say. I tried the normal support route and kept going in circles with them understanding the issue and kept telling me that open water swimming is not available on the VA and then pointed me here.

    I am using an application "jtriathlon" that was derived from pmtriathlon with some enhancements.

    The CIQ SDK has the option for open water swimming and that is what I am using.

    The data however logs almost twice the distance that was actually swam and I have been trying to find out why.

    I can understand if it was less as the GPS does not always have a signal and it may have missed a data point while turning a buoy or something.

    The details are as follows:

    I swam about 500 yards wearing BOTH a 910 and a VA at the same time. The 910 recorded about 500 yards and the VA recorded about 900 yards.

    I exported the VA data to GPX format and using the GPS coordinances captured, manually added the distance with an online calculator and came up with about 500 yards. go figure. if I can do it, why cant garmin connect.

    Next step, I uploaded what was exported back into Garmin connect and now the data reads about 500 yards (or .34 miles compared to .32 miles for the 910) so I would say close enough. so, the export may have corrected some invalid/corrupted data but in the process it removed about 1 minute from the time.

    I am thinking that something is mangled on the import but it handles it without notice and it would be good to know what is going on in the FIT file.

    Are there any FIT file readers available that show in plain text (like xml) before doing anything with it?

    Any ideas? I think I am on to something but need the support of others. Many people are looking for support for open water swimming with the VA. Triathletes like their data and they like it to be correct :)

    wearing the watch tucked in your swim cap might be a short term solution or doing and export/import might also.

    I would like to help figure what is happening and what might be done to resolve it.

    Again, I can see if the distance was shorter because of the drop outs but should not be longer than the data given. sounds like some bad logic or a corrupted file.

    I am pretty sure this was happening before I updated this app but in case it wasn't, the work around I did to just stop and start activities without formally saving them may be an issue here however it does save all the data.

    Thanks,

    John


    Thanks Brandon, I am not sure my issue is fully understood. I am not looking for special smoothing of data when swimming or the like. I am just looking for, out of the data it does collect, the math be correct.

    here is the data from my 910
    https://connect.garmin.com/modern/activity/1179825631

    here is the data from my VA
    https://connect.garmin.com/modern/activity/1179582156

    they happened at the same time. and the satellite view is almost the same except for a little blip near the end.

    There is almost 400 yards difference with VA being greater. the 910 is accurate. why would the VA be that much greater? (I understand how it could be less).

    strange thing is that if I export to GPX and then import back - it is nearly the same (just .02 mile difference).

    my thing is there seams to be some bad math somewhere. I would only expect that (out of the data points it does get) it evaluates correctly. I am not worried about missing data points at this time.

    Does that help? This is just GPS data whether swimming, biking or running. it seems that it does cannot handle if there is no data and freaks out.

    Should be a simple in/than/else statement :)

    Some say, why would someone not use the 920 or other made for this? simple. the VA is more affordable for some and then are looking for options.

    My best guess is there is more than 1,000 user using my app alone so not just a few users.


    hope that helps.
  • Former Member
    Former Member over 8 years ago
    John,

    I cannot see your activities for some reason (are they set to private?).

    Ultimately, I can tell you that the result you are getting when exporting and re-importing your track is an anomaly. I suspect your device was recording in "smart recording" mode, and did not record very many points. These points happened to be pretty accurate, but only by chance.

    If you set your VivoActive to record once per second, I think you will see the reality of the GPS track it is computing distance from when it is on your wrist. You could also do an open water swim with your Forerunner 910 in running mode, and you will see it wildly over estimate distance. When you swim with a GPS device is on your wrist, the GPS signal is constantly being lost and re-acquired as it enters and exits the water. This is an extremely challenging environment for the GPS chip, and the location accuracy suffers greatly. It is unlikely GPS receivers from 10 years ago would even maintain a lock in this environment.

    Here is a detailed write up from DC Rainmaker from when the Open Water Swimming feature was introduced by Garmin on the Forerunner 310XT 6 years ago. Take a look at the screenshots of the GPS tracks that are recorded by the device. Simply computing point-to-point distance from that data (which is what your VivoActive is doing) will always massively over-estimate distance.

    The algorithm has been improved since this initial write up, and I think it cleans up the track logs, so you have to disable the feature to see these types of tracks today.

    http://www.dcrainmaker.com/2010/06/new-garmin-forerunner-310xt-openwater.html
  • Former Member
    Former Member over 8 years ago
    John,

    I cannot see your activities for some reason (are they set to private?).

    Ultimately, I can tell you that the result you are getting when exporting and re-importing your track is an anomaly. I suspect your device was recording in "smart recording" mode, and did not record very many points. These points happened to be pretty accurate, but only by chance.

    If you set your VivoActive to record once per second, I think you will see the reality of the GPS track it is computing distance from when it is on your wrist. You could also do an open water swim with your Forerunner 910 in running mode, and you will see it wildly over estimate distance. When you swim with a GPS device is on your wrist, the GPS signal is constantly being lost and re-acquired as it enters and exits the water. This is an extremely challenging environment for the GPS chip, and the location accuracy suffers greatly. It is unlikely GPS receivers from 10 years ago would even maintain a lock in this environment.

    Here is a detailed write up from DC Rainmaker from when the Open Water Swimming feature was introduced by Garmin on the Forerunner 310XT 6 years ago. Take a look at the screenshots of the GPS tracks that are recorded by the device. Simply computing point-to-point distance from that data (which is what your VivoActive is doing) will always massively over-estimate distance.

    The algorithm has been improved since this initial write up, and I think it cleans up the track logs, so you have to disable the feature to see these types of tracks today.

    http://www.dcrainmaker.com/2010/06/new-garmin-forerunner-310xt-openwater.html


    Not sure why you cannot see my data. maybe try again?

    also, I was able to get accurate measurement from using an online coordinance calculator with the data points that were recorded so I do not understand the estimated distance. I just want the distance it knows about and not to guess.

    If you are even able to see my data you can see that it knows where it is and draws the right path. I know the gps signal is not always available.
    I see it was able to get a signal on average about every one minute or so.

    I still do not see what the issue is. if I were to code it I would do something like:

    if (signal) {
    if sig1 is null {
    sig1 = signal
    }
    else
    {
    distance = signal - sig1
    sig1 = signal
    }
    }
    repeat until stopped. (maybe a while statement)
  • Former Member
    Former Member over 8 years ago
    Your psudo code is basically what the device it is doing. What it is not doing is writing every one of those points to the FIT file. It may have had positioning information as often as every second, but you will not be able to tell where and when it had positioning information unless you enable once-per-second recording. After a quick look at the product, I'm not sure this is actually even possible on the VivoActive.

    Take a look at the images in the article from DC Rainmaker I linked. I promise you the data you see visualized there is the type of input your device is attempting to compute distance from, and not what you see in your activity on Garmin Connect. I do not know why your activity recorded in this way, but the distance computed on the device definitely did not come from less than 20 GPS points during those 12 minutes. The open water swimming algorithm that is used by the Forerunner 910XT, and other devices that have it filters the data and computes a best guess of the actual distance swam. Any other device, or recording mode just accumulates distance each second, and will compute incorrect distances in this type of environment.
  • Former Member
    Former Member over 8 years ago
    Your psudo code is basically what the device it is doing. What it is not doing is writing every one of those points to the FIT file. It may have had positioning information as often as every second, but you will not be able to tell where and when it had positioning information unless you enable once-per-second recording. After a quick look at the product, I'm not sure this is actually even possible on the VivoActive.

    Take a look at the images in the article from DC Rainmaker I linked. I promise you the data you see visualized there is the type of input your device is attempting to compute distance from, and not what you see in your activity on Garmin Connect. I do not know why your activity recorded in this way, but the distance computed on the device definitely did not come from less than 20 GPS points during those 12 minutes. The open water swimming algorithm that is used by the Forerunner 910XT, and other devices that have it filters the data and computes a best guess of the actual distance swam. Any other device, or recording mode just accumulates distance each second, and will compute incorrect distances in this type of environment.


    hmm. ok I wont beat this to death :) maybe I will need to do a POC. thanks.
  • It may have had positioning information as often as every second, but you will not be able to tell where and when it had positioning information unless you enable once-per-second recording. After a quick look at the product, I'm not sure this is actually even possible on the VivoActive.


    Brian, you're correct - the va only has "Smart Recording" and as of today, same with the va-hr.
  • Former Member
    Former Member over 8 years ago
    hmm. ok I wont beat this to death :) maybe I will need to do a POC. thanks.

    Do a POC! This is really interesting! :cool:
  • Former Member
    Former Member over 8 years ago
    Do a POC! This is really interesting! :cool:


    I have since pulled my app until Garmin is able to provide a basic level of support.

    I cannot see how missing data points can result in calculating twice the distance.

    I also had an issue where the HR feather stopped working after a firmware upgrade. Posted the issue and got no response.

    I really wanted to develop a cool app but there seems to be an unwillingness from Garmin to develop the vivoactive further.

    I will check back in a few months to see if anything has changed.

    Thanks
  • Former Member
    Former Member over 8 years ago
    I have since pulled my app until Garmin is able to provide a basic level of support.

    I cannot see how missing data points can result in calculating twice the distance.

    I also had an issue where the HR feather stopped working after a firmware upgrade. Posted the issue and got no response.

    I really wanted to develop a cool app but there seems to be an unwillingness from Garmin to develop the vivoactive further.

    I will check back in a few months to see if anything has changed.

    Thanks

    I see your frustration and I think you're on to something important. This should potentially better vivoactives open water performance to many current users (and potential customers) delight. It would be such a shame if we lose such a good developer and such a popular app because of lacking support from Garmin. I certainly hope there will be a positive light on this soon.
    Keep up the good work jpschwartz!