blankblank blank

Fixing Some Common GPS Issues With Android Phones

I’ve run into a couple of minor GPS issues with my Droid X phone, and thought I’d post my solutions/quasi-solutions to them, in the hope you might find them useful some day.

Problem 1: GPS takes a very long time to get a fix, and only shows 1-2 satellite signals during that period.

I’ve had this pop up a few times, where it takes 15-60 minutes for a good solid position fix, even when Assisted-GPS is enabled. When this happens, signals from only 1-2 satellites are listed as acquired, even though many more satellites are in the sky. Powering off and on doesn’t solve the problem.

Solution: Clear out your Android unit’s cache partition.

1. Find out how to start your Android unit in “Recovery Mode”. Unfortunately, there’s no standard way that works with every phone, so you’ll have to Google your phone’s name and “recovery mode” to find out what works for you. On my Droid X, press the Home and Power keys simultaneously while turning the unit on, until an exclamation mark icon pops up, then press the Search button.

2. Select the “wipe cache partition” option. On my Droid X, I sse the Volume up/down keys to highlight “wipe cache partition”, and the camera shutter button to select that option.

3. It will take a few seconds, then you’ll get the message “Cache wipe complete”. You can now select the “reboot system now” option, and start up your phone normally.

No guarantees this will work, but in one case where I wasn’t able to get a GPS fix for two hours, even with multiple power cycles, going through this process immediately fixed the problem. It did seem to screw up my compass calibration once or twice, so you might check your compass calibration after doing this. Don’t know exactly why it works, but I suspect it deletes the old GPS ephemeris file, requiring the system to rebuild a new one.

Problem 2: Motorola units can’t get a GPS fix in Airplane Mode.

Got a comment recently from someone who reported that they couldn’t get a GPS fix when their Motorola Droid X was in “Airplane Mode”. Turning Airplane Mode on shuts off WiFi and cellular, conserving power; given how much battery power the GPS sucks up, this should help extend battery life a bit if you don’t need a phone or data connection. I’d used Airplane Mode sometimes, and not seen that  problem; but after further investigation, I found that my phone also has issues as well.

  • If you start GPS tracking with Airplane Mode off, then turn Airplane Mode on, GPS tracking will work correctly.
  • If you turn Airplane Mode on, and start GPS tracking within a short period of time of doing that (< 5 minutes or so), GPS tracking will work.
  • If you turn Airplane Mode on, and try to start GPS tracking after 5 or more minutes have elapsed, you will be unsuccessful. I didn’t see the problem because I always started GPS tracking right after turning Airplane Mode on.

This is a fairly-well known problem with the Verizon Droid units manufactured by Motorola (Droid, Droid 2 and Droid X); Droid units made by HTC (Eris, Incredible) do not appear to have this problem. One site suggested the problem lies with the Assisted-GPS function, but I don’t think this is correct; if I turn off Assisted-GPS on my Droid X, it has no effect on this issue. Running a test app, I can see that the GPS chipset is outputting NMEA data in Airplane Mode, but no coordinate position info is coming out. Sometimes, a GPS satellite signal will pop up for a second or two, then disappear and not come back.

I haven’t yet found a full “solution” that resolves this issue, but there are some “quasi-solutions”:

  • Leave Airplane Mode off. I’ve been able to get a solid GPS fix in this case even when there’s no cellular connection (e.g. in the bottom of a very deep canyon). The disadvantage is obviously decreased battery life. You can turn WiFi off independently for a bit of extra power savings, without affecting GPS signal acquisition.
  • Turn Airplane Mode On, then immediately run the app that requires a GPS fix and keep it running. Disadvantages are obvious: substantial battery drain, and you may not be able to run another program at the same time.
  • Complain to Motorola, and hope they fix the problem. Here’s a link to their support page; choose your model, then send them an email asking (nicely) to fix this problem.
  • Final solution costs a few bucks, but sidesteps the problem completely, works with any app that uses GPS, improves accuracy, and reduces battery drain dramatically. And these advantages apply to any Android phone, including those that don’t have the Airplane Mode problem. The magic solution is to use an external Bluetooth GPS receiver with your Android phone. Tomorrow, I’ll post about the whys and hows of this solution, and the rest of the posts this week will be about apps (free and paid) that let you use an external Bluetooth GPS receiver with any app, even those that don’t have native Bluetooth support.

Looking for something else? Enter some keywords below, then click "Search".    

9 Responses to “Fixing Some Common GPS Issues With Android Phones”

  1. 1 ruidh

    Can anything be done about the really crappy altitude data? I get very nice GPS tracks from MyTracks while sailing, but the altitude is completely fictional. I don’t expect altitude to vary more than +/- 10 feet over 12 hours due to tides, but I get huge altitude changes over a short period of time on a G1.

    Here’s an example

  2. 2 leszekp

    GPS is inherently far less accurate in measuring elevation than it is for determining your position; errors of 100 meters are not uncommon. This is as true for full-featured handheld GPS units as it is for Android phones. If you can measure over a few hours and average all the results, you can get good accuracy, but that isn’t very practical in most cases.

    I’ll be covering an app shortly that takes your GPS elevation, and queries a database to give you the known elevation for that position. Requires a data connection, though.

  3. 3 ruidh

    Even if I could set it to a constant of zero, that would make more sense than what I get now.

  4. 4 chris

    download gps status from the market. you can run – download agps data and i believer you will be able to get a gps lock. it also allows for resetting the cached agps data which is what you are doing with the formatting cache partition without all the monkeying around.

  5. 5 leszekp

    Thanks for your comment. I did try that with GPS Status, and it didn’t fix the problem; the only reliable method was the partition scrub. I have a review of GPS Status in a later post:

    I’ve also heard back from Motorola; they’ve passed my issue on to their engineering staff. Hopefully they’ll fix it in a future software update.

  6. 6 Jeff

    The inability to get a gps signal when airplane mode is on is because of the A-GPS requirement. A-GPS apparently is necessary on the Motorola phones to start GPS. When I was overseas, outside of CDMA service I was never able to get a GPS lock.(Nor was I able to get a GPS lock when I turned on my phone when flying above 10K feet since on airplanes you must have cell service off and service doesn’t exist about 10K feet anyway). When I called VZW support they told me GPS will only work initially if you have cell service. Once you have a GPS lock you can turn on airplane mode and everything will work….but if the phone shuts off and then you turn it back on you will again need cell service to get a GPS signal. BTW, they are referring to that as a feature not a bug….but it is why I am going to switch from a Moto phone, probably to an EVO on Sprint.

  7. 7 leszekp

    I’m not sure this is right. I have a Motorola phone (Droid X), and GPS works fine even if I turn off A-GPS in the settings section. And others have reported getting good GPS locks with Motorola phones in locations where there’s no cell signal at all, as long as they don’t have it in airplane mode.

  8. 8 paraba

    How do you turn the A-GPS (the A-part) on/off? I have a Motorola Defy, and cannot find such setting. Also, is it possible to configure the servers that are used for the A-GPS request?

  9. 9 leszekp

    On my Droid X, it’s in settings under Location, next to the boxes that turn GPS and WiFi location on and off. There’s no way to configure the servers, but that shouldn’t make a difference, they all send the same info to the phone.

Comments are currently closed; feel free to contact me with questions/issues.