Detecting swim lengths

I am developing a swim app and I try to get the app to give a message when the watch detects a turn / a finished length. As far as I can see in the FIT files, Garmin devices are pretty precise in detecting these. But is there a way to get an timely event on the watch when it occurs? Of course it is possible to read the activity info, but for example the elapsedDistance indicator seems to have an delay and is not updated on time.

  • With the Garmin native pool swim apps, you configure the pool length, so each turn it's a known distance.

    Not sure how a turn is detected, but the compass or accelerometer would be what I'd look at.  GPS would have issues  with often being indoors and the device being under water much of the time.

  • Thank you Jim! Already experimented a lot with compass, gyroscope etc. But it is not very precise. And it seems not to be necessary at all to develope a custom solution as the device is obviously able to detect turns pretty precisely as it is visible in the FIT files in Garmin Connect. But I still could not figure out a way to get kind of an "onswimlenght" event out of the Garmin SDK while doing a swim.

  • Native apps for pool swim are not written in CIQ and can do things differently.

    In CIQ, the FW determines what the distance is and if you calculate your own distance, all you can do is record it as fitcontrib/user data, which doesn't override the distance you see in Garmin Connect, but is seen as additional data when viewing the activity.