Using Bluetooth GPS with Android

Updated July 13, 2013

My favorite GPS interface app, "Bluetooth GPS Provider", just got better. I love this app because it likes to stay connected, which is very important to me. The downside of that has been that it would drain all system resources if you forget to turn it off. Now you can set a timeout so that it will still aggressively do whatever it needs to to stay connected yet eventually stop once you turn your external GPS puck off. This article has been updated to reflect the new preference settings.

NOTE to Jelly Bean Users (Android 4.1 and 4.2)

"On devices running Android 4.2, developer options are hidden by default, helping to create a better experience for users. You can reveal the developer options at any time by tapping 7 times on Settings > About phone > Build number on any compatible Android device."


Regular readers of L-36.com realize that I am writing an Android Racing app for sailing. In addition, I have consulted on two of the existing sailing apps and one of the stand alone boxes. Most recently I have worked with the author of Bluetooth GPS Provider to get modifications that make that driver ideal for my app. In this article, I will explain why you might want an external GPS receiver, what the various Android drivers do, and why I picked Bluetooth GPS Provider as my preferred app. Finally, I will explain all of the Preferences in Bluetooth GPS Provider, something you will not find anywhere else.

Why Use External GPS

Most all Android Cell Phones have built in GPS as do most of the new tablets. Given that, why would you want to use an external GPS unit?

Which Bluetooth GPS Unit

The heart of any GPS unit it the chipset that is used. The two main ones are MTK v2 and Sirf III. Newer versions are coming out from time to time. There is a Sirf IV unit out but nobody has put one in a Bluetooth unit as far as I can tell. Mostly the differences are involved in the sensitivity of the unit and the ability to work in "urban canyons". I really don't think it makes much of a difference on the water except that having the GPS unit in the cabin means it has to work through the interference of the cabin top.

I bought the unit on the left because I also wanted a unit that would track my course. This unit will store something like 400,000 points and as I track every second that is something like 4 days continuous, more than enough. It has the latest MTK chipset and will do 5Hz, although I use it at 1Hz. There is a cheaper version of the Qstarz unit that will do 10Hz but does not store the tracks.

The unit at the right uses a Sirf III chipset and does not have a tracker. It is one of the more respected of the Sirf units and one I considered buying.

I recommend the Qstarz Q-1000-XT for its high quality, reasonable support software, and tracking feature.

GPS Driver Apps

Why do I need an app to use a Bluetooth GPS receiver? The Android OS will try to use the internal GPS receiver if you just run it. While it is possible for an app to be written to use an external unit, most are not and none of the sailing ones are. They all depend on installing an app that tricks the phone or tablet into thinking the external unit is the one to use. I have tested three such apps.

Get Bluetooth GPS Provider

As I said above, Bluetooth GPS Provider did an excellent job of acquiring and re-acquiring Bluetooth lock. That is very important if the GPS unit and the phone are not right against each other. If lock is lost for some reason, it is critical that it come back quickly. This app does that. However, I found in my first race using it that I was 15 seconds off and had to use my Sync button to get on race committee time. The reason was that the time reported by the app was system time and it was off by 15 seconds. I contacted the developer and he graciously fixed this so that the app now reports GPS time. Now it has all the essential functionality needed for using my Bluetooth GPS Receiver and I highly recommend the app. The app is available from the Play Store by searching on Bluetooth GPS. The app you want is the one by mobile-j.de.

Using Bluetooth GPS Provider

The first thing you need to do is to pair your phone or tablet to the Bluetooth GPS Receiver. Turn on your GPS unit and go into your system settings and select Bluetooth. Do a Scan if necessary and select your GPS unit. You might have to enter a Pass code. I used "0000" and I think that will work in most cases.

After installing the app and running it, press Start. You should see a bar graph of the various satellites as well as some text that gives information on the accuracy of your readings.

In this case, the GPS unit has not been on very long. That is reflected in the lack of satellites locked (5) and tracked (7). The H-dilution is a number you probably don't care much about unless you know what it is but less than 1 is good. The altitude of -5.7 will get closer to reality as the unit gets a better lock. Fix Quality is important. In this case the fix quality of 1 means that I have satellite lock but I do not have WAAS lock. That would be a Fix Quality reading of 2 and takes about 15 minutes to get. It is nice that the app shows when WAAS lock is acquired. The final reading is accuracy and that reading is in meters.

Preference Settings

If you click on the settings tab you will see the Preferences tab. Clicking that gives the list of all the settings that can be changed. It should be noted that you do not need to change any of these settings. This app just works and the default settings are just fine. However, it is always nice to know what the settings are and if you do have a special need, to know that they can be changed.

NOTICE: Some pages have affiliate links to Amazon. As an Amazon Associate, I earn from qualifying purchases. Please read website Cookie, Privacy, and Disclamers by clicking HERE. To contact me click HERE. For my YouTube page click HERE