Roy West, spprt@calflora.org
2015-10-19 (Update on Android iOS 6)
This page is maintained by volunteers from Calflora, a California 501(c)(3) nonprofit that hosts information about wild plants in California. If you find the information in this document helpful, please donate to Calflora. |
Update on Android 6 (Marshmallow)
With Android 6, there is a new system for supporting “mock location providers,” which is the mechanism described in this doc to connect location data from GPS receivers with Android apps like Observer Pro via a utility like GG MobLab’s Bluetooth GPS. GPS utilities need to be rewritten to work with Android 6, and version 1.3.7 of Bluetooth GPS, released in the past day or two, looks like it’s getting there. Once you update your Bluetooth GPS app, you need to open the Android Settings app, tap “Developer options,” and tap “Select mock location app” so you can select Bluetooth GPS. Then when you open Bluetooth GPS, you can connect to your GPS receiver and check “Enable Mock GPS Provider.” I had a heck of a time getting this all to work, but finally did this morning on a Nexus 5 phone and a Nexus 7 tablet with a Bad Elf GPS receiver -- but it was really fiddly and feels like there are still issues. I’d welcome hearing from anyone else who’s had success with Android 6.
Mobile smartphones get their GPS signals from Assisted GPS (AGPS) chips. AGPS is great in populated areas, because it uses cellular networks, Wi-Fi, and other signals and hints to quickly get a rough idea of your location, which in turn helps the chip quickly find and connect with GPS satellites for more precise location data.
Unfortunately, this advantage is lost when you’re in rural areas, particularly if you lose your cell network connection. Then the weakness of the AGPS chips becomes apparent: dedicated GPS devices are much better at getting a precise location from GPS satellites.
Several manufacturers now make GPS receivers, which you can connect to your phone or tablet and get great GPS location data out in the wilderness. The receivers connect to your phone or tablet via Bluetooth (a short-range wireless standard for this kind of purpose). GPS receivers are small, because they have no screen or keypad, and are surprisingly inexpensive ($100 or less is typical). You can use these devices to get great GPS location data for apps that run on your phone or tablet, such as Calflora Observer, Google Maps, Backcountry Pro, My Tracks, and so on. Because they connect wirelessly, you can even put a GPS receiver in a sealed ziplock and store it at the top of your daypack, in your hat, tape it to the top of your backpack frame, and so on, and get great GPS data even in the pouring rain.
I’ve tried several models of GPS receivers with a variety of Android phones and tablets and seen great results (see “Tested GPS Receivers” at the end of this article).
I gather that with iOS devices (Apple iPhones and iPads), you simply pair the iOS device with the GPS device and you’re good to go. I haven’t tried that yet. Connecting a GPS receiver to an Android is another matter.
Getting a GPS receiver to provide location data to your Android apps requires a bit of fiddling and glue. The exact steps depend on the version of Android you’re running, but these instructions should work for most configurations -- I’d appreciate hearing if these steps don’t work for your particular phone, tablet, or GPS receiver.
As should be obvious, this is something you need to do with a good data connection (preferably Wi-Fi), before you leave for your 3-week wilderness trek: you need to download software from the Google Play Store and if you’re going to use a mapping app that can store maps for use off line, you need to download your maps.
1. Make sure your Android has developer settings.
Recent Android operating systems don't have developer settings available by default, and the location of those settings is in different places on different OS versions.
On older OSs, you can find the developer settings in the Android Settings app, under Applications > Development.
On newer OSs, "Developer options" are at the top level of Android Settings, but you may need to make them visible. You do that by opening Android Settings > "About phone" and then scrolling down to find the "Build number." Tap the build number about 7 times and you'll see messages that count down until you "become a developer."
(If you see Settings / “Developer Options”, then you are already a developer!)
2. Turn on "Allow mock locations."
Check the "Allow mock locations" in Android Settings’ Developer settings. This is required for the Bluetooth GPS app (see step 3) to make the GPS receiver's location data available to your apps, bypassing the built-in GPS.
3. Install the Bluetooth GPS app from the Google Play Store.
This app connects to the GPS receiver and provides a "mock location" to other apps, such as Calflora Observer.
Here's a link to this app on the web version of the store:
There are a few of these apps. "Bluetooth GPS" is by a developer named "GG MobLab" and has worked great for me.
4. Pair and connect your Android to the Bluetooth GPS receiver.
Bluetooth pairing can be easy or infuriating. Each device is different. Read the instructions that come with yours to learn what it wants. The Bluetooth settings are in different locations in Android Settings, depending on the version of Android OS you're running.
If you’re setting up more than one set of phone/receiver pairs, I find it helpful to “name” the GPS receiver in the Bluetooth settings, so I can tell one receiver from another (otherwise they’ll all have the same name, which they broadcast).
One tip if you want to change which mobile device your GPS receiver is connected to: after you “unpair” the receiver and the mobile device, turn the mobile’s Bluetooth off and cycle the power on the receiver, so there’s no chance the receiver can “see” the device it was connected to. Sometimes Bluetooth devices won't connect to a new device if they can still see a device they were paired with before, even if you've "unpaired" them.
5. Connect the Bluetooth GPS app to the GPS Receiver.
Open the Bluetooth GPS app, check "Enable Mock GPS Provider," and then select your GPS receiver in the menu at top-left and click Connect.
If you’re lucky, you'll start seeing live location data on the app's screen (even if you’re indoors and the device can’t get a great satellite fix, the app’s dials will start showing data).
If at first you don't succeed, open the Bluetooth GPS app’s settings (touch the 3 vertical dots top-right on newest Android OSs; press the Menu button on others) and find the "Connection Problems Related" settings. On my Nexus 7 tablet, I found I had to use all of these, including the delightful "Other Workaround" setting. (I did not change the "Channel.")
Once you're connected, apps will start getting their location data from your external Bluetooth GPS receiver.
Be sure to turn most of this stuff off when you're not using them, or you risk draining your battery. For this reason, it's a good idea to keep everything plugged in if you're in a car, for example. There are also portable USB power supplies (basically, large rechargeable 5v batteries with a USB port) that you may want to explore for longer trips.
I needed to go to Settings / Bluetooth to do the pairing. After that, the Bluetooth GPS app worked immediately. JHM (Thanks, John, that’s what worked for me here on step 5 as well. CP)
I’ve tested these GPS receivers with Android phones and tablets and they’ve worked great for me. I’m including the Amazon page for each for convenience.
Garmin Portable Bluetooth GPS and GLONASS Receiver
Dual Electronics XGPS150A Universal Bluetooth GPS Receiver
http://www.amazon.com/Dual-Electronics-XGPS150A-Universal-Bluetooth/dp/B006M49G80/ref=dp_ob_title_ce
Update October, 2015: Update the firmware in your Dual receiver in order to use it with Android phones and tablets running Android OS 5 and 6 (Marshmallow).
GNS 2000 GPS MFI GLONASS RECEIVER
http://www.amazon.com/gp/product/B00COLB9FS/ref=oh_details_o04_s00_i00?ie=UTF8&psc=1
Wilde L. reported very good accuracy, even under forest cover, with this unit and both iPhone and Android phones. You need to have an iOS device to use the Bad Elf app to update the firmware first (and to change settings, etc.) Then I was able to duplicate Wilde’s success connecting an Android phone to one of these, using the “Use Insecure Connection,” “Connection Workaround,” and “Other Workaround” settings. For some reason, the Status pane in Bluetooth GPS doesn’t show the satellite counts, etc., but that doesn’t stop the essential features from working. I tested using a Nexus 5 with Android 5.0.1 (Lollipop).
Dual Electronics XGPS160 GPS+GLONASS Receiver
On April 4, 2015, Benny H. reports: Just wanted to let you know that I've tested the Dual Electronics XGPS160 GPS+GLONASS Receiver on a Nexus 7. Worked out of the box (shipped with v1.3.5 firmware) on a Nexus 7 via enabling mock GPS settings. [I have a query in to Benny asking if he was able to bypass Bluetooth GPS]
I ordered a TomTom Mkii Bluetooth GPS Receiver from Amazon:
www.amazon.com/gp/product/B007B2QDFQ/ref=oh_details_o02_s00_i02?ie=UTF8&psc=1
At $25 it seemed worth a shot. The unit arrived uncharged and the charger delivered no voltage. Returned it. I don’t see this unit on TomTom’s current web site, so I’m not sure what’s up with that.
I would love to hear from anyone who has used a SXBlue GPS receiver from GENEQ Inc.: http://sxbluegps.com/
John from GTrek Ltd writes that these instructions worked to connect a GTrek II GPS receiver and data logger with a Samsung Galaxy S4 running Android 4.4.2.
Roberto reports success using these instructions with:
Bluetooth RoyalTek GPS Receiver RBT-2100 and my smartphone Huawei Ascend P6 updated to Android 4.4.2.
Phil reports success: Wintec G-Rays 2 connected to HTC One M8 phone and Nexus 7 tablet.
Andrew reports 2015-8-31: My agency used the old SXBlueII with arcpad and now we have upgraded to the SXBlueII that connects to smartphones. The new model also uses Glonass sats. These receivers do great real time corrections and some semi-scientific testing using USGS markers has shown accuracy at 3 feet out in the wide open or 10 feet under forest cover. You can attach a survey grade antenna and/or average points for hours to get your accuracy up to a foot or less, but we have never tried doing that. It is nifty to walk around in real time with 3 feet accuracy. The units are large – and staff call them the orange bricks for that reason.
Rafael reports success with a TomTom Mkii Bluetooth GPS Receiver and a Samsung Note 4 SM-910T running Android 5.0.1.
If you find this information helpful, please donate to Calflora.
Copyright 2013-2015 The Calflora Database. All rights reserved.