Tuesday, June 5, 2012

Using an external Bluetooth GPS with Android Device

Some Android phones (and other smart-phones too) come with built-in GPS receiver (in addition to AGPS capability, that means it can acquire location from GPS satellites like a standard handheld GPS receiver), but many of them are not as fast and as sensitive as a dedicated GPS unit in acquiring satellite signals and getting a fix (location). They are generally very slow in getting the first location fix (mine takes 30-40 minutes to get a fix when I am standing still, and takes eternity when on move). This is frustrating and virtually makes the phone's GPS a useless piece of hardware. High battery drainage is another compelling reason for not using the phone's GPS. Some smart-phones doesn't have built-in GPS. This is where an external bluetooth GPS unit fits perfectly. These external GPS units with no display, a built-in rechargeable battery, a few LED indicators and a bluetooth radio are generally pretty small and lightweight. These have a much better GPS circuitry than most smartphones on the market do, while they cost between 50 and 100 USD.

Mine is a Freedom Keychain GPS 2000 bought from amazon.co.uk for about 40 GBP. Here is a picture of the unit-

This unit and other similar product come with a home and a car charger, needs a couple of hours for charging, and runs for a good 10 hours. Mine also goes to sleep when no bluetooth device is using the unit to conserve power elongating the effective run-time.

How to use with an Android smartphone/tablet:

1) Switch on the GPS unit and Enable Bluetooth on your Android device. You can 'discover' the Keychain GPS on the Android's available bluetooth devices, as shown in the following picture.

2) Pair and connect the GPS unit from Android device. Usually the pairing code is 0000 or 1234. Mine's is 0000.

3) Download one of several Android Apps from Google Play (former Android Market). My favorite is Bluetooth GPS, good alternatives can be Bluetooth GPS Provider and Bluetooth GPS Provider (yes, the same name, but two different apps). However, don't confuse with the app Bluetooth GPS Output, which is for making your phone an external bluetooth GPS to be used on other devices. These apps will actually provide a port to the external GPS, that means they make the satellite signals from the external GPS used on your phone in such a way that as if the signals are being received by your phone's built in GPS. This lets you use other map Apps such as Orux, Locus, Google Earth, Google Maps etc while the port App is running in the background.

4) Run the Bluetooth GPS. Here is how the App's main screen look like. NOTE that the app has four tabs: Main, Status, NMEA, and Map. If the Keychain GPS is paied over bluetooth, you should see the GPS appearing in the drop-down device list. Select the GPs and hit 'Connect'.

To be able to use the external GPS's data in other Apps, you must check "Enable Mock GPS Provider" before hitting 'Connect'.

5) If everything goes well, you should see time, location and other GPS information being updated on this screen. If you still don't have a location fix, because you are indoors or for other reasons, you can still check if the GPS is working properly on your Android device. Swipe to go to the NMEA tab, and hit 'View log' (it becomes 'Pause' after you hit it). You should see the GPS's NMEA data sentences appearing endlessly on this screen.

6) Now, don't quit or kill the Bluetooth GPS app, just send it to background while it is still running. Open your favorite map App, or any other location aware App to receive location information from the external Bluetooth GPS.