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.

15 comments:

  1. yes, but problems with google maps in any aplication (maps, endomondo...). any idea? navigation (sygic,automapa etc) works fine

    ReplyDelete
  2. Android mobile phone consumes more battery makes it more limited. apk download

    ReplyDelete
  3. Do you know if it works with a garmin 64s? I'm not able to make it works...

    ReplyDelete
  4. No Connection GPS Garmin etrex 35 touch, error:
    Connection Failed - read failed, socket might closed or timeout, read ret: -1

    Help please...

    ReplyDelete
  5. So does the Device itself see it at a GPS device? So It I have a table that has no GPS chip and add one of these, If I go under settings-location will I have the option for GPS? I have an app that requires GPS location to run, and My table has no GPS Chip. THANKS....

    ReplyDelete
    Replies
    1. Once paired with your tablet and mock location enabled, a bluetooth GPS will be acting as if the GPS is built into your tablet.

      Delete
  6. Thanks for this post. But wondering if the mention of slow GPS fix on first paragraph of this post still applies on latest Android phones?

    Because it could be that the Android phone's GPS chipset/component has been upgraded since 2-4 years ago? Especially the low-mid budget Android phones may also be updated with better inbuilt GPS capability? If so is the Bluetooth GPS provide bit more benefit than lot of benefit in terms of accuracy and signal fix speed?

    ReplyDelete
  7. Where can I get a GPS for a Samsung tablet with accuracy to 30cm ?

    ReplyDelete
    Replies
    1. Anything in the cm accuracy range requires DGPS correction, you can contact your organizations, someone might be able to provide this service.

      Delete
  8. How do I stop my Andriod map apps from using the internal GPS, even though Bluetooth GPS is running my external GPS? Everything is running as described above, but my apps continue to use the internal GPS and disabling GPS disables location completely.

    ReplyDelete
    Replies
    1. It's been some years now since I wrote this blog, and I do not use a bluetooth GPS myself these days. The point is, why should you have to use a bluetooth GPS when you have one built-in?

      Delete
    2. Thanks for quick reply!
      Reasons include:
      1) because the external GPS can be used to save phone battery life (if I can figure out how to disable internal gps, without disabling location)
      2) because the external GPS can be placed in location where I might otherwise not get a signal (eg, raised to tree level in forest expeditions, at mast level when inside a boat) - again, no use if my maps are still insisting on using the internal GPS which can't get the signal!

      Delete
    3. Okay, I got your requirements now. But wait a minute! I used this BT GPS and a USB GPS (another post) with this same Nexus 7 having a built-in GPS without a problem, I just don't have any of these devices handy now to test and confirm.

      Delete
    4. My best guess is, turn off location, it should still be giving you location (from Ext GPS) through Mock Location setting.

      Delete
  9. How do I connect the Windows mobile device with Gps Software to the Android Bluetooth Gps, as when I connect it normaly fail, returning the Error:Connection Failed - read failed, socket might closed or timeout, read ret: -1
    Help please

    ReplyDelete