Samsung Gear S3 - Improving GPS Accuracy

brucedroid

Member
Apr 20, 2017
14
0
0
Visit site
I've just got a new Samsung Gear S3. Taken it out for a couple runs and noticed a few issues.
For this morning's run:
(1) Samsung health App thought i started 100m away from where i really did
(2) General accuracy is not great when i look at the run on google maps.

So I exported my run to a GPX file (basically its the raw data of times + long/latitude), and looked at it to see what data was there :) - at the bottom is part of the file (for anyone interested - I thought it was interesting)


I noticed
(1) it took 30 seconds between the first 2 recorded positions - and the start was 100m off. So, I'm guessing maybe GPS was slow to lock? And the start was really a guess until the phone could get that lock.
(2) the sampling time was sometimes every 5 seconds, but sometimes every 10 seconds.
This explains why when I do some kind of U-turn/corner/bend, it often misses the turning point by quite a margin, and cuts the distance.

So I'm wondering:
  • How do I get the samsung gear to try lock earlier, maybe BEFORE I start the run, rather than let it try once I've started running.
  • And is there any way i can change the sampling rate? Every 10 seconds is not accurate enough. I dont mind that it will use more battery.


<trk>
<name>20170420_070445(1).gpx</name>
<trkseg>
<trkpt lat="51.427746" lon="-0.2034532">
<ele>-160.465</ele>
<time>2017-04-20T06:05:04Z</time>
</trkpt>
<trkpt lat="51.428406" lon="-0.2027431">
<ele>-162.715</ele>
<time>2017-04-20T06:05:35Z</time>
</trkpt>
<trkpt lat="51.42854" lon="-0.2025781">
<ele>-162.915</ele>
<time>2017-04-20T06:05:39Z</time>
</trkpt>
<trkpt lat="51.428802" lon="-0.2022712">
<ele>-163.643</ele>
<time>2017-04-20T06:05:49Z</time>
</trkpt>
<trkpt lat="51.42893" lon="-0.2021214">
<ele>-163.543</ele>
<time>2017-04-20T06:05:54Z</time>
</trkpt>
<trkpt lat="51.429024" lon="-0.2020064">
<ele>-164.596</ele>
<time>2017-04-20T06:05:58Z</time>
</trkpt>
<trkpt lat="51.42916" lon="-0.2018404">
<ele>-165.432</ele>
<time>2017-04-20T06:06:03Z</time>
</trkpt>
<trkpt lat="51.42927" lon="-0.2017092">
<ele>-166.104</ele>
<time>2017-04-20T06:06:08Z</time>
</trkpt>
<trkpt lat="51.42943" lon="-0.2015232">
<ele>-166.966</ele>
<time>2017-04-20T06:06:14Z</time>
</trkpt>
<trkpt lat="51.429523" lon="-0.2013903">
<ele>-167.209</ele>
<time>2017-04-20T06:06:19Z</time>
</trkpt>
<trkpt lat="51.42969" lon="-0.2011927">
<ele>-168.326</ele>
<time>2017-04-20T06:06:25Z</time>
</trkpt>
<trkpt lat="51.429817" lon="-0.2010308">
<ele>-168.592</ele>
<time>2017-04-20T06:06:30Z</time>
</trkpt>
<trkpt lat="51.43011" lon="-0.2007559">
<ele>-170.041</ele>
<time>2017-04-20T06:06:39Z</time>
</trkpt>
<trkpt lat="51.43038" lon="-0.2005636">
<ele>-171.444</ele>
<time>2017-04-20T06:06:48Z</time>
</trkpt>
<trkpt lat="51.43066" lon="-0.2003383">
<ele>-172.974</ele>
<time>2017-04-20T06:06:58Z</time>
</trkpt>


 

p1eric

Well-known member
May 17, 2010
76
2
0
Visit site
So I'm wondering:
  • How do I get the samsung gear to try lock earlier, maybe BEFORE I start the run, rather than let it try once I've started running.
  • And is there any way i can change the sampling rate? Every 10 seconds is not accurate enough. I dont mind that it will use more battery.

Unfortunately I believe the answer to both questions is No. On my prior watch (Garmin Vivoactive) when I started the running app it immediately started searching for GPS. When I saw that lock was good then I could hit go. This is ideal but S Health doesn't offer than option.

However you may try this: Start the run, wait for the 3 second countdown and then hit Pause. Give it 10 seconds or so and then hit play. I have found that GPS AND heart rate or much faster to lock. Really I've never had a problem with GPS on this watch but sometimes the heart rate monitor locks onto cadence and has a hard time recovering.

Regarding the recording rate my Garmin did this as well. Most references I have seen call it as Smart Recording and they use it to save battery life. There is no way to change it as far as I know.
 

brucedroid

Member
Apr 20, 2017
14
0
0
Visit site
I did the 5km park run today. Sadly your "pause" trick, for 2 minutes, but it didn't work for me.

The watch reported 4.67km, while my 2nd device said 5km.
After 4:30 minutes in, it said I had done 0.45km, even though I'd done about 0.85km off

Looking at the GPX data I've come to 4 conclusions
1) "Smart Recording" is broken, OR, the GPS takes a really long time to get a lock
2) The Samsung Health App is buggy
3) The frequency of taking data points is not very good even when warmed up (either 5 or 10 seconds)
4) Once it has a GPS lock, future ones are quicker

Reason for 1: Below is the GPS data - it was really, really bad at the start of the run. However, i looked at the first data point and it was quite close to the start of the run. I dont know why its got 30 second gaps

Reason for 2: I put the GPX data into 4 sites: utrack.crempa.net, www.osola.org.uk, maplorer.com, strava.com and the route was mostly correct. The start point was not far off. ALL 4 sites said - 4.9km. Manually putting the first km in google maps, the data was not that far wrong, Samsung health was wrong. Which actually gives me a little more faith in the watch, and maybe future software patches can solve the issue.

Reason for 3: As can be seen below, its either 5s/10s even when warned up :(

Reason for 4: 30 minutes after the run, I walked 1.2km to my car, and registered it as a run. That GPS data did not have the 30 seconds issue, and was working with 5/10 seconds data points from the start.

I think perhaps
  • I should try another running app. Maybe they will take data points more frequently, and try get GPS lock before the run starts - can anyone recommend any?
  • I should register a 1 or 2 minute throw away run before i start the real one to see if it helps

Its a great looking watch, and i love the functionality - but doing so much fiddling & research to get it working for a run and I've not even had it for a week is disappointing :(

type time latitude longitude altitude (m)
T 2017-04-22 08:15:22 51.441170000 -0.231852600 -87.6
T 2017-04-22 08:15:32 51.440970000 -0.231843300 -87.7
T 2017-04-22 08:16:07 51.440075000 -0.231374900 -88.2
T 2017-04-22 08:16:46 51.439205000 -0.230421700 -88.7
T 2017-04-22 08:17:11 51.438583000 -0.230176500 -89.0
T 2017-04-22 08:17:26 51.438457000 -0.229995400 -88.8
T 2017-04-22 08:17:35 51.438557000 -0.229725000 -88.9
T 2017-04-22 08:17:41 51.438614000 -0.229560600 -89.1
T 2017-04-22 08:17:47 51.438652000 -0.229376400 -88.8
T 2017-04-22 08:17:57 51.438730000 -0.228990000 -88.8
T 2017-04-22 08:18:06 51.438805000 -0.228607900 -88.6
 

wsrobert

Well-known member
Dec 5, 2013
124
0
0
Visit site
Couple of things:

1. Turn off Auto Pause (if you have it on).
2. Turn off Auto Tracking (what you outlined as auto tracking for a 1.2km walk).
3. Only use GPS for distance (turn off wifi).
4. Download an app for the S3 called GPS Reading. It simply lets you know once you've obtained a GPS lock.

Prior to starting a run close all apps on your S3 and ensure all the above is done - and you're in standalone mode (or your phone is not connected). Launch the GPS Reading app and wait until its got a lock. Close it. And then open S-Health - so its the only app running.

Start your run.

So far, with that approach I've got pretty solid data even though the sampling tends to be much too limited. I'd like if they offered "Smart Recording" (which is basically what they do now) and a 1 second option. I truly think it solve most of the issues.

Further, I sync with Strava. When I do everything above, the syncs are quite close. Though it always ends up being more accurate on Strava if I do a manual upload of the GPX. Appears to be an issue with how S-Health passes some of the elapsed/moving time data from what I can tell.
 

brucedroid

Member
Apr 20, 2017
14
0
0
Visit site
> Auto pause off
> Only use GPS for distance
> you're in standalone mode
already done all of these

Auto tracking - I'll switch that off
GPS Reading App - I'll give that a go

>close all apps on your S3
I've not tried this - will give it a go

I did a 1.7km run a short time ago. My approach was GPS only, no auto pause, standalone mode.
I "warmed up the GPS" with a "fake run" for 8 minutes (and then ended the run)

Went for the real run, watching my watch :)

I didn't pay attention to the time taken for a GPS lock, but it took 20 seconds to register the 1st 10 meters. And my second device had already got 70m.

Here is the S Health graph for pace which looks odd
speed.png
 

brucedroid

Member
Apr 20, 2017
14
0
0
Visit site
I tried all the tricks mentioned:
* i warmed up the GPS for around 15 seconds until it had a lock
* no open apps
* Auto pause off
* GPS for distance
* standalone mode

For the first time, I actually had a lock at the start of the run! But the distances and polling seemed wildly off.

After 4 minutes, the watch said I'd done my first 500m (I tend to run 5:15-5:30/km)

The first 4 GPS readings were taken at these times
16:10:12
16:10:22
16:11:17
16:11:27

Why the gps had a 50 seconds gap at the start is a bit odd since it said it was locked on.

Mid run - i hit a traffic light, decided to pause (but i had a gap so the pause was for 5 seconds), and this is what happened there:
16:14:41
16:15:02
16:16:22

Why an over 1 minute gap in taking GPS points?

After about 1.5-2km of running it started getting better though. It needed time to warm up. In the end my 6km run was measured at around 5.4km. 10% off. Although, I get the feeling all the inaccuracy was the start of the run.

After that, I tried the "mapmyrun" app. It seemed ok for 2 minutes.
But then i paused it. Waited and ran again, and the distances didnt move, as if it wasnt getting any GPS data.

Which means, i suspect its not S.Health but the watch not giving GPS data to the running apps - and I think they have to do a lot of guess work.

Maybe i just have a defective watch? I'll try Samsung Help - maybe they can replace it.
 
Last edited:

yoggee

Active member
Aug 14, 2014
39
0
0
Visit site
I used Endomondo, and GPS only locks at 16 sec on a cloudy day.

Last year, I've written to Samsung re: locking GPS first before starting countdown. They replied that they have taken note of it. Not sure if it will ever be implemented.
 
Last edited:

wsrobert

Well-known member
Dec 5, 2013
124
0
0
Visit site
What you outline occasionally happens to me. But I use strava for all my riding and running workout data aggregation. And if I export the GPX file and upload it to Strava - the distance and pace discrepancies you outline get cleaned up.

Which to me says a few things.

1. The auto upload of data to strava from S-Health is broken. I don't use it. Because the data is never consistent nor accurate.
2. The data mostly appears to exist in the GPX file. Even when the watch isnt showing pace or distance accumulation and the S-Health reports a lesser distance traveled, if I upload the GPX file directly to strava its always much closer to being real. Like no more than .10 off. I know this because I run a known route.

My known route isn't on straight roads with a clear view of the sky either. And it still does a pretty good job - after the fact. During a run? It's terrible. The paces are ALWAYS wildly innacurate. And when theres gaps and the watch isnt displaying paces, then you dont get an accurate total distance on the watch or S-Health either. The good news is, if you have the Strava sync setup, it WILL sync the run data back to S-Health that you manually upload.

I've ran some known routes on straight roads with a clear view of the sky as well. In those cases, the instant paces shown on the watch tend to be much more accurate. Accurate enough that I believe them. And the distance and pace data at the end of the run also is accurate enough that I dont ever need to export and import directly to strava.

Anyway. Just some more thoughts. I'm hopeful it can get better considering what I outlined above. I think Samsungs software largely just sucks right now (as does the MMR).
 

brucedroid

Member
Apr 20, 2017
14
0
0
Visit site
@yoggee Thanks - I think a GPS lock before countdown, and the ability to change the frequency that it takes GPS positions would be ideal. (I did try Endomondo, but it seemed to default to miles and i didnt know how to change that)
@wsrobert (or anyone really) - I do get the feeling that Strava does give more correct distances, so its nice to know I can see later how I went. Pity its not very good during a run. (I also uploaded the GPX file to some other sites and they all agreed distance, while S. Health underreported it.)

Btw, If you looked at the GPX file, do your data points appear 5-12 seconds (sometimes longer) apart as well

For anyone interested - to do this, you 1. go to the samsung health app on the phone. 2. On a run, at the bottom, click export to GPX. 3. Take that file and use something like "gpsvisualizer.com", upload the file with plain text table - to see what there really is there.
 

wsrobert

Well-known member
Dec 5, 2013
124
0
0
Visit site
@brucedroid - yeah I see the same. Anywhere from 2-15 seconds and sometimes longer. Which doesnt seem to be that much of a problem POST run in Strava. Since they appear to have some correction logic in place to fill in gaps.

But I 100% agree that there needs to be a GPS lock indicator prior to starting a run. And an option to enable 1 second GPS recording.
 

brucedroid

Member
Apr 20, 2017
14
0
0
Visit site
@yoggee - that was silly of me, I only looked on the watch. I've got mapmyrun as well, which was km by default. And it looks like its the same app.

I did a run yesterday with a friend who has a Garmin watch - we were out of sync by about 200m in the first km. By the end of the 6.6km run we were out of sync by about 400m

I also noticed he was saying the pace was 5:40/km and S health was telling me 7-8m/km even when it was near the end of the run and more accurate. I'll have to try see if mapmyrun / Endo has better pace values.

Looking at the route on Strava, the start was terrible, the line was bouncing everywhere. Even Strava got confused and added 700m on my run with a number of PB's. I'm confused as to why Samsung health did not think i ran further based on the raw data - but i have a feeling that when there is no GPS lock, or early in the run, perhaps S Health uses some kind of steps guesstimate and ignores the position data. (It was fine after about 2 minutes)

Although, I've found there is a feature in Stava that lets you crop your run - so i chopped off the first 500m.
Tomorrow, I will try do a run where I start the run, leave it going for the first few minutes (no pause) while I do a warm up, then run, and then just crop the stationary part later, and see if that is better.

I have emailed Samsung about the issues - They sent me back a stock standard, take it in to see an engineer - I'm not sure what he's going to tell me, but I'll give that a go too.
 

brucedroid

Member
Apr 20, 2017
14
0
0
Visit site
@wsrobert
thanks for that. I'm not sure I've ever seen 2 seconds apart. But glad its not only just me. I did a run for around 36 minutes, which had 370 data points. So an average of once every 6 seconds - which at my pace is around every 20 meters. Generally ok in a straight line. S turns, L turns, U turns - not ideal (especially when it decides to do a 10 second gap).

I also tried with a phone, to see if polling was improved if it was using the phones GPS - oddly it was still 6 seconds.

I'd imagine a more frequent poll would be better, although I looked at my route and it had me running on water a few times. So perhaps accuracy is lacking too. I know some GPS are known to be about 3ft out, but this one is sometimes 3m out. A friend who was running with me has a Garmin watch. It was far more accurate and has it set to 1s intervals.

I'll take it in to the Samsung shop and see if this inaccuracy is normal.
 

Forum statistics

Threads
943,759
Messages
6,919,940
Members
3,159,216
Latest member
Bongo