Resolving iPhone GPS issues

Some runkeeper users experience regular or intermittent problems getting a decent GPS fix. There are a number of reasons for this normally and this post will try to explain them and the possible resolutions.

Firstly, the iphone’s GPS receiver isn’t the best or most reliable. This is the common denominator of most of the GPS related issues that Runkeeper (and other tracking app) users face.

Due to the quality of the GPS on the iPhone, the tracking capability can easily be affected by:

– adverse weather (cloud, rain etc)
– tall trees and buildings blocking the signal from the satellites
– strong interference

Ideal conditions for the best GPS coverage are:

– clear sky
– no trees or buildings
– clear line of sight to sky

It’s often easy to think you have a decent GPS signal but more often than not, due to the fact that the iPhone uses ‘assisted GPS’, when the iPhone is giving poor locational position, it’s due to the iPhone compensating for a bad GPS reception by estimating position by using either triangulation using mobile network signal or local WiFi ‘hotspots’.

Herebare my hints and tips for making sure Runkeeper captures an accurate route:

(a) Make sure Airplane mode is off – The iPhone’s GPS is turned off is you have ‘Airplane mode’ set to on. Make sure it’s off.

(c) Turn off WiFi – Due to triangulation, turn off WiFi when you’re about to commence an activity.

(d) Make sure the iPhone has a clear line of sight to the sky – this means making sure that the signal isn’t obscured by clothing or other material, e.g. when placed in a pocket. For beat operation, use an armband.

(e) Be patient – The iPhone can take 30 seconds or more to get a GPS fix. Prior to commencing a run with Runkeeper, keep this in mind. To give the iPhone time to get a decent fix, I’ll often open up Google Maps and check how big the blue circle is. If the iPhone hasn’t captured GPS for a while, you’ll notice that at first, there is a large circle with a blue dot at the centre of it and that the outer circle gradually gets smaller and smaller until you see just the blue dot. This gradual improvement over up to 2 minutes is caused by the iPhone gradually picking up the signal from several GPS satellites. You only have a good GPS signal once you see a blue dot with no outer circle.

This tip serves a number of purposes:

– it gives the iPhone time to lock on a decent GPS signal

– it gives you a clear indication of the quality of the signal and the iPhone’s best guess at your location

Once the iPhone has a decent GPS lock, open up Runkeeper.

(f) Only start your activity once Runkeeper has a green GPS indicator -if the GPS indicator is yellow or red, your positional information is too inaccurate and this will adversely affect your activity stats.

(g) Reset Location Warnings – for some reason, resetting location warnings can resolve GPS related issues. If you’re experiencing problems, give this a try.

(h) Reset your iPhone – due to the complexity of the iPhone and the apps that run on it, memory can become corrupt or memory leaks can occur (this is my understanding). This can lead to unexpected iPhone behaviour such as poor GPS operation. My advice is to regularly reset your iPhone by simultaneously holding down the top lock button and the ‘home’ button until you see the white Apple symbol. Wait until the iPhone reboots.

(i) try a different GPS tracking app – to highlight the fact that the issue isn’t related to Runkeeper, try a different free GPS tracking app such as Motion X.

(j) Delete and reinstall the app – if you experience GPS issues after upgrading Runkeeper, delete the app from the iPhone and iTunes and then reinstall from iTunes. It is believed that some users experience corrupt upgrade installations which cause unexpected behaviour with certain Runkeeper features. Please note that:

– deleting the app will result in the loss of activity history on your iPhone. However, the activity history is still safe on the Runkeeper website. You’ll also lose any training workouts you’ve defined.

If you are still experiencing GPS related problems after following all of these tips an you are unable to get a decent GPS fix in Google Maps, Runkeeper and/or other GPS tracking apps, take your iPhone to an Apple store so that they can investigate.

Will Runkeeper die before I finish my race?

One question that’s often asked is ‘how long can you run with Runkeeper before the iPhone battery dies?’

The answer is typically 4 – 5 hours.

However, that’s only under optimal conditions as detailed below:

– ensure the iPhone is fully charged prior to use. Don’t just remove from power when iPhone shows 100%. Keep it charging!

– make sure the battery is in good condition – the older the battery and the more charge/discharge cycles it’s been through, the shorter time the battery will last before needing charging.

The following iPhone settings should be configured:

* 3G: OFF – this isn’t required during your activity

* Notifications: OFF

* WiFi: OFF – this will save battery as well as ensure spurious ‘GPS’ points aren’t captured due to assisted GPS operation/triangulation

* Email push: OFF

* screen locked – having the screen turned on is a big drain on the iPhone battery. Runkeeper work perfectly well with the screen locked (using top lock button). You won’t be able to tap the screen for audio stats so set these to periodically announcements instead, e.g. every 1 mile/km, every 5 minutes.

If you want the screen on (e.g. to view in app map, ensure the screen brightness is as low as practical.

In addition, in Runkeeper’s settings:

– Send Location Data: OFF

When ‘Send Location Data’ is on, Runkeeper will periodically send your current location and activity stats back to the Runkeeper server. This is used, in part at least, to provide location data for Runkeeper Live Tracking.

For optimal battery life, consider turning off some of Runkeeper’s features if you don’t need them as all will use additional processing power and, therefore, battery power. Consider turning off:

– training workouts
– audio announcements

With these settings, you are most likely to get 4 – 5+ hours of battery life.

The Runkeeper app is being improved all the time with respect to improved battery life during usage.

If you require even longer use, consider a battery extender such as Mophie JuicePak. These typically double the life of the iPhone battery by allowing the iPhone to use the extender’s battery prior to using the iPhone’s internal battery. Prior to purchase, check the capacity (mAh) of the battery (the higher the better), whether it’s a practical shape, size, weight etc.

Runkeeper delivers again – improved map editing

Not content with giving users (well, FitnessReport subscribers) one big release this week, Runkeeper have gone and made another one…

Improved route editing

Not had chance to try the feature out yet but it’s been long requested and will no doubt please a large percentage of the user community who want 100% accurate stats.

Along with the informal announcement regarding this feature, Michael Sheeley has announced that version 2.2 of the Runkeeper Pro app is a week or so away and will include a few much requested features.

Jason and the team have given some really strong hints at to what they are so this is BIG NEWS.

Why I love Runkeeper

Back in July ’09, I was a few weeks into training for my first charity 10K when I realised that the C25K iPhone app I was using wasn’t giving me the featured I wanted:

  • ability to track progress
  • ability to share progress with friends
  • ability to track pace during an activity

It was at that point that I discovered Runkeeper and fell in love!

At first glance, Runkeeper is a simple app that allows you to track any outdoor fitness activity using the iPhone’s integral GPS (indoor activities can also be tracked manually via the app or online).

However that’s just the tip of the iceberg.

Runkeeper motivates me to get out running and run faster, further and more often:

The Runkeeper app is simple to use. Simply create an account, wait for a decent GPS signal and hit the ‘Start’ button and you’re off. Add to that:

  • training workouts
  • audio announcements
  • iPod integration

and the app is incredible value for money.

But your $10/£5.99 investment doesn’t end there. There’s the website that allows you to dig deeper into per-activity data. If that’s not enough, the subscription-based ‘Fitness Reports’ allow even greater slicing and dicing of fitness data.

The team behind Runkeeper listen to users and deliver the features they are requesting:

The Runkeeper product has an extremely enthusiastic user community who love to give feedback, highlight bugs and give ideas for new feature enhancements. That feedback is actively encouraged and, most importantly, Runkeeper keeps delivering those requested features. New features are cranked out at a pace. For example, in the last few weeks, we’ve seen new features added to the website such as:

  • Polar Heart Rate Monitor integration
  • manual entry of activities
  • manual entry of routes
  • ‘Runkeeper Live’ Tracking

(I’m sure I’ve missed something!)

The Runkeeper team engage users and whip them up to a frenzy using social media:

The Runkeeper team know how to make the most of social media. Not only do they spread their brand each time a user’s activity summary is posted on Twitter or Facebook, but via both media, Runkeeper share new features, respond to customer’s enquiries and make users feel as if they part of the ride. Simply following the team members on Twitter (@runkeeper, @michaelsheeley and @tomboates) gives users insight into features that are being worked on but also how well the team gel and don’t take things (or themselves) too seriously.

In addition, Jason has the ability to whip up a frenzy by casually teasing users with details of imminent announcements, new features etc. Based on team tweets and their posts on the product’s Facebook Fan Page, we already know app version 2.2 is being actively tested in-house and will include more audio announcement configurability and (maybe) some form of ghost running. Also coming this week are more robust route-editing capabilities on the website.

I personally haven’t been as enthusiastic about a product 6+ months after getting it as I am with Runkeeper. Part of the reason is that the product/service is constantly being evolved.

However, the main reason is that Runkeeper makes me feel like my user involvement is making a positive difference to the product/service. That feeling often leads me to emailing ideas at 3am to the Runkeeper team (who’ve most likely heard the idea 100 times. However, I have a strong feeling that the in-app ‘swipe’ navigation has more than a little to do with my suggestion for that feature), ad-hoc testing of new features (I seem to have the ability to find bugs other users don’t see!) or reading the team’s tweets in the early hours for news of new features!

I, for one, am looking forward to being (a very, very, very small) part of Runkeeper’s future.

Runkeeper announces ‘Runkeeper Live’… Tracking

It’s great being able to share fitness progress with friends and family and Runkeeper makes that easy through Facebook and Twitter integration. In addition, you can publish the URL for your public profile and FitnessReports so that people can see just how well you’ve been training over time. However, that’s all post activity…

I’m soon going to be participating in the Eastleigh 10K road race and I’m hoping my wife and children will be there to support me. That may not be possible but it would be great to be able to let them see how I’m progressing during the race. Of course, I could hire a camera man to follow me on a rickshaw (worked for Eddie Izzard!) or a small helicopter to keep track of how I’m doing. Both, unfortunately, are a little costly and could be seen, by some at least, to be a little OTT!

No fear though as Runkeeper have just announced ‘Runkeeper Live’ (also known as ‘Runkeeper Live Tracking’!!! This feature has been often requested via at the Runkeeper forum but today it’s become a reality.

Simply follow the instructions below and you can then let your friends and family see how you’re progressing in real time. Ideal for races and also for personal safety too.

Please note that feature is only available to FitnessReport subscribers (another great reason to invest in this great feature).

  1. Login to your account at Runkeeper.com
  2.  Under ‘Settings’ tab, choose ‘Sharing’
  3. Make sure that ‘Make all new activities public’ is ticked
  4. Tick ‘Enable Automated Live Tracking for New GPS Tracked Activities’

Your settings will automatically be saved.

When you next want to provide friends/family with the ability to track your activity in real time, simply let them know your public URL and the time that your activity starts.

They can then visit your public profile, e.g. http://runkeeper.com/user/[USERNAME] and click the ‘Activities’ tab. They’ll see a screen similar to the one below and be able to watch your progress in real time.

In the ‘Activity History’, the activity that’s live streaming has a red circle next to it. In addition, a message is displayed:

This user is currently in streaming a live activity. Select the live activity to watch the activity live Online!

Clearly, there are safety and personal security issues to consider. My advice is:

  • only turn the ‘live tracking’ setting on if you want people to know that you’re out running, cycling etc. Preferably, only turn on for the activities you want people to live track you for
  • only share your public profile URL with people you trust
  • take normal precautions while you’re out
  • remember that the chances of running into trouble while you’re out using Runkeeper are very slim

This, in my view, is a great feature and another reason why Runkeeper is head and shoulders ahead of the competition!

Check out Runkeeper’s video of the new feature on YouTube.

Why doesn’t the total distance reported by Runkeeper match X?

One question that’s raised about Runkeeper is why it reports a different total distance to Google Maps, Garmin GPS devices, etc, etc. Accusations are made about the accuracy of the app and users feel disappointed. Sometimes, users see disparity in the total distance recorded for the same route.

[If you are experiencing any problems with GPS accuracy (or simply not able to get a GPS fix at all), check out points 11 and 12 of this Runkeeper forum post. In a nutshell these are:

  • Make sure you have the latest version of Runkeeper installed
  • Turn WiFi off
  • Ensure you have a decent GPS fix before commencing your activity (this may take a few minutes)
  • Make sure you’re not in Airplane mode – this turns off the iPhone’s GPS receiver

If you’re still having problems, delete and reinstall the app.]

It’s interesting (to me at least) to dig a little deeper to see why these discrepancies might exist.

Firstly, it’s important to realise that the issue isn’t app related. In fact, it’s simply related to the iPhone’s GPS which at times isn’t as accurate as other devices (having said that, with each new iPhone version and OS upgrade, the GPS is improving). In addition to this, environmental and location-based factors such as the weather and tall buildings can affect GPS tracking performance.

The Runkeeper app takes GPS locational information when it’s provided by the iPhone and the time between each ‘capture’ could be a second, several seconds or more. During the ‘gaps’ when no GPS data is provided by the iPhone, you may have traveled around a corner or turned back on yourself and the app has no way of knowing that.

Also, GPS isn’t pinpoint accurate as detailed below:

GPS accuracy is affected by a number of factors, including satellite positions, noise in the radio signal, atmospheric conditions, and natural barriers to the signal. Noise can create an error between 1 to 10 meters and results from static or interference from something near the receiver or something on the same frequency. Objects such a mountains or buildings between the satellite and the receiver can also produce error, sometimes up to 30 meters. The most accurate determination of position occurs when the satellite and receiver have a clear view of each other and no other objects interfere.

From http://www.maps-gps-info.com/gps-accuracy.html

This may mean that the path captured by the GPS may not be the actual path you took even though at first glance it may look accurate. For example, see the route below:

At first glance, it looks accurate. However, if you zoom in, you can see the points are not necessarily following the path taken (as shown below):

The screenshot also shows how frequently (or infrequently) the GPS positional data is captured.

Many users may map out their routes prior to running them. I often do this using MapMyRun.com to get some idea of routes in my local area and the total distance and elevation through the route (to avoid hills!)

When mapping routes, I’ll often use the ‘follow roads’ option. Taking part of a recent route, here’s the path MayMyRun provides:

The total distance for this leg of the route is 0.66 miles.

If we take a look at an actual GPS capture of this leg of an activity:

The captured route certainly didn’t follow the middle of the road but neither did it quite follow my path either. The total distance for this leg of the route was 0.68 miles based on the GPS data. This shows a discrepancy of 0.02 miles. In a full route, it’s not difficult to imagine these discrepancies between the ‘follow roads’ route and the GPS captured route being 0.1 – 0.2 miles or more.

Where the iPhone’s GPS falters a little (most likely due to not having a great ‘view’ of the satellites), larger discrepancies may exist (such as shown in the 2nd screenshot around Megan Road and highlighted below):

Now, I don’t make a habit of running down the centre of any road. However, I do cut corners, swap from one pavement to another, avoid obstacles, etc, etc. My iPhone may not realise all this given the ‘limitations’ of the GPS data captured.

To give another example, part of another route is shown below. This shows the actual path I took(0.68 miles):

If I use ‘follow roads’ in MapMyRoute, the path is as shown below (0.7 miles):

and finally, one of the GPS tracks of this part of the route (0.72 miles):

On another run of this path, the following GPS track is recorded (0.65 miles):

Soon, it becomes clear that using GPS gives a very close approximation to the distance for a route but this may not be 100% accurate. To be 100% accurate, the GPS would need to be pin-point accurate and for GPS positional points to be captured at a high frequency.

Until the iPhone can provide that capability (no time soon particularly given the accuracy of GPS anyway and the influence of weather etc), Runkeeper gives users the best data it can and I’m confident we’ll see more improvements in the future. In the meantime, if your activity distance is really off, you can always ‘add a new activity’ via the website.

Comparing performance for the same route into Runkeeper data

Since I started running in June/July last year, I’ve run several routes many, many times. It’s interesting being able to look at how my performance on each of those regular haunts has improved over time. However, currently in Runkeeper that’s not quite as easy as I hope it will be soon.

Fortunately, with my little programming project, I’ve made it easy to:

  • tag the same route with a common ‘identifier’
  • compare stats for those routes
  • dig deep and view performance per pre-defined interval for each activity side by side

This allows me to see just how I’ve progressed over the months.

Being able to compare stats at a high level is great. I can see the improvement in:

  • activity duration
  • average speed
  • average pace

Being able to dig deeper give a good impression of how I’m improving over particular parts of the route.

For instance, simply defining 5 minute intervals, I can see the following performance for two runs of the same route:

Route interval comparison

As you’ll see, my performance on this route actually dropped! That’ll inspire me to do the route again and improve.

I’m also able to define distance based intervals so can easily see how well I am coping (and hopefully improving) with different parts of the route. For example, how well I cope with a hill during the activity and how much better (or worse) I’ve got at dealing with that hill.

This kind of analysis really interest me and it’s great being able to take data I capture anyway using Runkeeper and do some relatively simple analysis

Digging deeper into interval performance using Runkeeper data

Runkeeper recently introduced FitnessReports which give a great way to slice and dice activity data (you can view my reports here). FitnessReports are available via a premium subscription and will please anyone that likes to dig deeper into their activity data.

However, I’d like to be able to dig deeper into the data for a single activity. One of the areas I’d like to do this most is with regards interval pace/speed. This was of particular use for the recent Fartlek workout I did where I want to see just how much faster I was during the ‘fast’ sections compared to the ‘steady’ ones. Although Runkeeper allows you to view this interval data via the app, it’s not currently available within the activity data on Runkeeper.com (which only presents 1m/1km intervals. I set about digging deeper myself.

By importing and analysing the GPX data exported from Runkeeper, I was able to produce the following:

  Speed(mph) Pace (mins/mile)
10 mins steady 5.66 10:35
30 seconds fast 8.73 06:52
4 minutes steady 6.06 09:54
30 seconds fast 7.63 07:51
4 minutes steady 5.88 10:11
30 seconds fast 7.87 07:37
4 minutes steady 5.67 10:34
30 seconds fast 5.91 10:09
4 minutes steady 5.66 10:36
30 seconds fast 7.91 07:35
4 minutes steady 4.99 12:00
30 seconds fast 10.6 05:39
4 minutes steady 5.17 11:36
8 minutes steady 5.93 10:07

The data doesn’t quite align with the data reported in Runkeeper’s app and the reason for that is that the data interpretation in my web app isn’t quite 100% yet (but will be shortly). I’m sure this capability will come to Runkeeper very soon but until then, I have the ability to view interval data for any intervals I care to imagine. Woo hoo!!

Goals – just how well am I doing?

Through a little PHP programming and some Runkeeper data, I’m been playing with a few features I’d ultimately like to see in Runkeeper but until they are, I’m building a little web app that implements them for my own analysis.

One of the features is ‘goal setting’ and the ability to see progress against those goals. Having decided and defined what my goals are for the year and imported the GPX data from Runkeeper (by exporting the GPX data for each activity), here’s a summary of how well I’m doing to far:

Goal Type Goal Name Target Actual Remaining %
Running Distance goal for 2010 875.00 77.07 797.93 8.81
Running Distance Goal for Jan 2010 44.00 19.59 24.41 44.51
Running Distance goal for Feb 2010 44.00 24.68 19.32 56.10
Running Distance goal for Mar 2010 64.00 26.59 37.41 41.54

As you can see (and as mentioned in a previous post), I was way off my targets for January and February and that’s knocked my progress against the whole year more than I’d like. However, it looks like I’ll be able to claw back some miles in March which should put me back on schedule. Now I have a tool to keep an accurate view on progress (and look forward to Runkeeper adding something similar very soon).

Trying to improve speed and endurance with Runkeeper Pro’s help

Over the last few months, my speed and performance have stagnated. I’ve been disappointed as I know that I should be able to put my foot on the gas and go faster but when I try I seem to burn out.

In reality, my pace isn’t going to set me high up any leaderboard and I’m still trying to work out how I’m going to get around the Great South Run’s course of 10 miles in October and survive!

A while back, I read about Fartlek training. Fartlek is Swedish and means ‘speed play’. It consists of alternating a number of ‘fast’ sections with periods of recovery. One of the benefits is that you can use Fartlek training in any run and it doesn’t need to be structured. The idea is that you can simply choose a point in the distance (a lamp-post for example), run fast to it, recover and then choose another landmark and repeat. Much more flexible than ‘intervals’ where you typically have to cover a certain distance, e.g. 400 metres.

In reality, I didn’t think I’d have the self-control to keep up with the fast sections (most likely giving up after one or two) so decided to create a workout in Runkeeper Pro that would use the principles of Fartlek training whilst giving me some structure. If Runkeeper’s voice told me to run fast, I was more likely to take notice and do it!

As a relative beginner, here’s the workout I defined:

  • 10 minutes steady (warmup)
  • 30 seconds fast (fast section #1)
  • 4 minutes steady (recovery)
  • 30 seconds fast (fast section #2)
  • 4 minutes steady (recovery)
  • 30 seconds fast (fast section #3)
  • 4 minutes steady (recovery)
  • 30 seconds fast (fast section #4)
  • 4 minutes steady (recovery)
  • 30 seconds fast (fast section #5)
  • 4 minutes steady (recovery)
  • 30 seconds fast (fast section #6)
  • 4 minutes steady (recovery)
  • 8 minutes steady (cooldown)

In Runkeeper, the Training Workout definition looks like this:  

Training workout screen 1 from Runkeeper's iPhone app

This basically gave me a 45 minute workout which was perfect for my lunchtime run. Once the workout was defined in Runkeeper, I was ready to try my first Fartlek workout.

The 10 minute warmup seemed to take forever and I was waiting in anticipation for the first fast section. When it arrived, it came as quite a surprise and I hit the accelerator and went for it.  A very short time after Runkeeper had finished her announcement, the fast section was over and I had 4 minutes to recover at my ‘normal’ pace. It didn’t take me long to recover so it was just a case of waiting for the next fast section to begin (which came sooner than I thought!)

I made it through the workout and completed the 6 designated fast sections and had a really good (for me) average pace for the workout. I wouldn’t have been able to do it without being disciplined by Runkeeper and even managed a couple of extra fast sections during the cooldown period just to make sure my average pace was good.

Of course, Runkeeper wasn’t only great for getting me through the workout, it also helped to show me just how much my pace was improved during the fast sections (as shown below). (As a related aside, it would be great to be able to view this data via Runkeeper.com as well as be able to dig deeper into the data. Hopefully, one day soon, that capability will come.)

Fartlek Intervals #1 from Runkeeper iPhone app

Fartlek Intervals #2 from Runkeeper iPhone app

Fartlek Intervals #3 from Runkeeper iPhone app

Fartlek Intervals #4 from Runkeeper iPhone app

The pace per interval can be seen below (with fast sections in bold):

  • 10 minutes steady 10:36 min/mi
  • 30 seconds fast 08:07 min/mi
  • 4 minutes steady 09:37 min/mi
  • 30 seconds fast 09:15 min/mi
  • 4 minutes steady 10:09 min/mi
  • 30 seconds fast 06:42 min/mi
  • 4 minutes steady 10:30 min/mi
  • 30 seconds fast 07:41 min/mi
  • 4 minutes steady 10:55 min/mi
  • 30 seconds fast 07:22 min/mi
  • 4 minutes steady 11:05 min/mi
  • 30 seconds fast 10:03 min/mi
  • 4 minutes steady 11:05 min/mi
  • 30 seconds fast 10:03 min/mi
  • 4 minutes steady 11:18 min/mi
  • 8 minutes steady 10:13 min/mi

This activity can be viewed at http://bit.ly/cp7dik on the Runkeeper website.

My plan for future Fartlek workouts is to:

  • introduce more fast sections
  • introduce longer fast sections

Using Fartleks is pretty new to me but I can see how they can add some spice to a workout as well as prove that you can run faster if you push yourself a little. It’s easy to get stuck in a rut just pounding the pavement at the same-pace workout after workout but what you need is variety in terms of how the workout is structured and where you run.

For more information about my favourite iPhone app, check out http://runkeeper.com.