Is Garmin going to ever fix a glaring bug with Garmin Connect GPX course import which results in Up Ahead simply not working?

Here is a glaring bug that probably many ultrarunners have run into. I have experienced this bug with officially provided GPX race courses in all 4 of my last large races.

The repro steps are very simple and straightforward:

1) Race officials provide an official GPX file for the race course which has waypoints for all aid stations. That is super convenient because that is supposed to work with the Up Ahead feature and provide really helpful guidance during the race. It is great to know how far each aid station is. Right? Garmin doesn't seem to think so. 

2) Import the GPX file into Garmin Connect. So far it looks good - Garmin Connect seems to have imported course points for all aid stations correctly and they all show up on the map in Garmin Connect in the right places and with the right names.

3) Save the imported course in Garmin Connect and sync it to the watch.

4) At the beginning of the race, load the course to the watch. Initially aid stations do show on the Up Ahead screen, but not in the right order and distances to them are not shown.

5) Once the race starts and the watch locks on course, all aid stations disappear from Up Ahead screen forever and the only point that remains in Up Ahead is the end of the course. That is super frustrating. The very useful feature simply doesn't work!

What happens here:

It seems that the implementation of Up Ahead on Fenix 7 expects every course point to have distance on course. If you add a course point manually in Garmin Connect course editor, that adds distance to that course point. However if you import a course from an external GPX file with waypoints, even though the import recognizes those waypoint and does convert them to course points, and shows them on the map, their distance isn't set and remains zero. Therefore, as far as Fenix 7 is concerned all of those course points end up being right at the start of the course. That why they all disappear as soon as the watch locks on course.

This is easy to verify by loading the course into any FIT file viewer - it does show course points but with their distances set to zero.

Workaround:

Now that I am familiar with this issue I do the following to make course points for aid station work correctly with Up Ahead - I zoom to each imported course point on the map, then I delete it and create another course point in the same place with the same name. That requires a little bit of work, but at least I know where to create them. Once that is done, all course points work correctly with the Up Ahead feature.

Also, sometimes I need to create two course points at the same location but at different distances. That is necessary when the race course goes over the same aid station twice, which is actually very common. I had that in all 4 of my last races. It is a bit difficult to create those course points correctly with Garmin Connect so that they are at a nearly the same location but at different distances, but if you zoom all the way in that is possible.

What Garmin should do if it cares about Up Ahead actually working for many users who use officially provided GPX files:

Solution 1: Calculate distance on course to every imported course point and save in the course point. That is not that different from when a course point is added manually. Also it would be nice for Garmin Connect to recognize that the course may go multiple times through some course points, so those has to be duplicated at different distances. This solution requires only  changes in Garmin Connect, so it will automatically fix this issue in all models of Garmin watches that have Up Ahead feature.

Solution 2: Do the fix on the watch side. When the course is loaded, do a pass through the course, match all course points, and update their distance. Just like in the solution 1 it would be great to recognize that the course may go through some course points multiple times at different distances.

  • I am still using the old IQMapReceiver App in conjunction with OsmAnd for this, because I need something that works on my smartphone (on the go I do not have a laptop/ PC).

    It still works perfectly with course points, up-ahead and the ability to configure whether the route points are to be transferred aswell (normally they should not, since these are only used in OsmAnd to create the route/track via the Plan Route function).

    However, the Android companion app is no longer on the Google Play Store, but you still can get it on Aptoide. And there are some display glitches in Android 15/16, but I can work around that.

    Still the best solution for my usage.

    This functionality should however be built-in in Garmin Connect directly. Why do I have to use third-party software to achieve such a fundamental functionality? It's a pity that Garmin doesn't care...

  • This functionality should however be built-in in Garmin Connect directly. Why do I have to use third-party software to achieve such a fundamental functionality? It's a pity that Garmin doesn't care...

    Fully agree. If things continue moving the way they do now, I think this functionality will be added to Garmin Connect soon, but behind the Connect+ paywall.... 

  • Agreed it should be built in. Testing Connect's behavior, I was surprised to see it does specifically identify imported waypoints within about 35m of the course to treat as course points, so it's already doing some kind of "is this point along the route" calculation. It's just not setting the distance field, for some reason?

  • P.S., I suppose it could be because of the ambiguity mcbadger describes above, around handling out-and-back courses and loops. But the current behavior doesn't seem like a reasonable default. Before I dug into this, I spent a couple months watching my course points disappear when starting courses on my Edge 1040 and assumed it was a firmware bug; by all appearances, Connect was successfully importing my course points after all!

    (In my program that I linked above, by default it handles this by selecting each waypoint's nearest possible intercept to the course, but I also put in a flag to change the strategy to selecting the first intercept, or all intercepts as duplicate course points.)

  • Yes I think it's highly likely for the ambiguity; if it's something like a checkpoint you pass multiple times it isn't a problem and all intercepts is the way to go, but anything with a turn is tricky. and of course gpx doesn't differentiate waypoints like that. You'd need to look at the text to guess if it's a turn, and analyse the course shape to decide what goes where. Here's a real-life example of something it would be difficult to treat automatically https://www.plotaroute.com/route/3019918?units=km - the route comes down from the north, does a lap of Tarn Hows, then continues to the south, so there are two points where you need to turn in different directions the first time, and one of them you're approaching from the same direction both times. I can understand Garmin might be cautious about building an automatic solution  that might tell you to turn the wrong way, that's not going to go down well with anyone.

    the5krunner posted recently saying that he has info that the Garmin course creator is getting multi-crossing support soon, which might let you pull the uploaded GPX waypoints to the correct place - fiddly, but possibly part of the solution. combined with automatically positioning the easy ones and flagging up the tricky ones. I don't think it's possible to move a coursepoint between overlapping segments at the moment, so it would be a step in the right direction.

    I've been having a good look at your code - elegant job. The final poke I needed to install Rust and start playing with it.

  • Hey I think Garmin has fixed this in Connect? I didn't see an announcement but as of today, importing a GPX with waypoints assigns distances to the resulting course points, at least in cases where the point of interception is unambiguous.

  • Does this mean, during an activity of the imported GPX you see course points in the "next waypoint"-field (distance to next waypoint, etc.) and in the up-ahead list?

    This would be awesome.

  • It should, yes. It's now populating course points' distance fields in its FIT exports of imported GPX courses, which was the bit previously missing that prevented Up Ahead from working.