Logo preload
close Logo

GPS Testing with Bad Elf GNSS Surveyor

March 22, 2015

For mapping-based projects using Fulcrum as a data collection platform, GPS positional accuracy is paramount for many applications. These days there are quite a few devices available on the market to augment your consumer-grade hardware, an excellent option for cost savings that doesn’t require you to drop $5,000 on a piece of custom hardware (with crappy built-in software). You can buy specialty sub-$1000 receivers to get better GPS accuracy, but pair them up with purpose built location based apps like Fulcrum to get your work done.

Bad Elf GNSS Surveyor in the field

Since Fulcrum has customers in such a wide range of industries, we’re always on the lookout for hardware that would be of interest to our customers, and help get even more out of our software platform. Bad Elf sent us one of their GNSS Surveyors to kick the tires on for collecting data in Fulcrum. It’s a Bluetooth-based GLONASS/GPS receiver designed to work with iPhone and iPad devices for improved spatial accuracy. The GNSS Surveyor was designed with GIS and light surveying use cases in mind, for wetland delineation survey, property verification, asset management, agriculture, and other applications requiring high-grade accuracy from a GPS.

The GNSS Surveyor has a ton of features, and at a price point of $599 it’s affordable compared to many of the $1000+ options on the market. Here’s a short list of the key features and capabilities:

  • Accuracy of 1m when stationary
  • 56 channel receiver support for GPS, GLONASS, and QZSS with SBAS (WAAS/EGNOS/MSAS)
  • Can log data directly to device for later export (KML, GPX, binary)
  • Barometer for altimeter readings
  • GPS + GLONASS connectivity status on LCD
  • Battery life up to 35 hours
  • Configurable sampling rates


Bad Elf GPS App

Getting the device paired up with your phone can be a bit of a challenge (blame Bluetooth technology, generally). Settings and configuration are all done with the companion iOS app. If you’re an Android-only user, I’m not sure if you can get the most out of the device at this point, but it will pair up to your phone and replace the onboard location services like it does on iOS. You have to use the Bluetooth GPS app to get the “mock location services” to work, and override the onboard sensor (see our external GPS guide for how to do this).

I had inconsistent results in getting the device to acquire lock. Sometimes it only took a minute or so, other times a full 3-5 minutes to get locked on. Not sure what causes this variation, but a couple of times I had to stand around looking at the screen waiting until it got locked in.

The native iOS app is pretty nice, and has a ton of configuration options for setting up your device once you’ve got it paired up.

Field performance

I field tested the GNSS Surveyor using Fulcrum and an app I built out for collecting environmentals like weather, tree cover, time of day, and photos along with my GPS points using the device. I created a few benchmark points to stand on while collecting with both the iPhone and an Android Nexus 5 device. You can pair up to 5 devices to the Surveyor simultaneously, which was convenient for my testing. I wanted to see if the iOS or Android location APIs made any changes to the location data when recording, or passed through the raw readings from the Surveyor.

My process was to mark a benchmark ahead of time to collect readings against, then collect several points on each benchmark by setting the device down for a minute or so to let it get a clear fix. There was no discernable difference between collection with Fulcrum for iOS or Android, as expected. My position when looking at the map view in Fulcrum was an extremely accurate pinpoint, so I could visibly see the improvement in precision and accuracy when paired with the Surveyor.

Performance under medium to heavy tree cover degraded somewhat, but when under open sky the error drew down significantly. I didn’t do much validation with the elevation data since that’s somewhat hard to test and verify in Florida (my entire 3 mile jog didn’t have a net change beyond a couple feet). The Surveyor does have a setting where you can choose to use the GPS or the built-in barometer to record altitude readings.


It was far more accurate for deliberate, slower data collection when standing still to maximize the resulting accuracy values. I found that if I kept the device fixed for even 15-30 seconds, the accuracy would zero in to a good resulting error range pretty quickly. But once moving, this value would jump back up to the 30-40 ft uncertainty range. I did a trail run with the device, and as you can see, the track line zigzags a good bit, under some medium to heavy mangrove cover. Here’s the tracklog from running on Weedon Island. I also collected a few POIs using the Surveyors waypoint recording along the way:

I saw my accuracy values drop down into the 10 foot and lower range quite frequently when I was standing still — it’s definitely accurate if you have some patience. But as seen above, when in motion (especially on foot) the accuracy wobbles a little, likely due to the size of the antenna on the device. It’s extremely small and portable, so this trade off is worth it if you need something small and rugged, and are largely capturing static coordinate points.

Battery life

The battery life in my testing has been solid. I’ve recorded tracks for hours straight without an issue. I used the excellent Locus Maps application for Android to record some track data on a couple of long drives, and it barely put a dent in the battery. Since you can disable some of the on-device cellular and wireless sensors (other than Bluetooth), this can be a life saver for your phone’s battery life, and lean on the longer-lasting Surveyor for location services.

Data formats

To grab the data from the device, you can connect it up with mini USB, or from within the iOS app you can generate export files to send via email, or open KML or GPX files in other supported apps, if you have apps you like for those. If you record tracklogs on the device itself, the easiest way to pull them off is by using the iOS app, but you can also tether it to your computer to extract the files manually via USB.

Other notes

The accuracy metadata can’t be combined at this point with your other collected data, since it seems that apps without the accompanying Bad Elf SDK built in can’t communicate with the device to obtain the raw NMEA data, satellite configuration, HDOP/PDOP, etc. The Bad Elf team says this functionality is coming soon.

Overall the Surveyor is a great affordable device if you need higher grade positional accuracy, but still want to be able to use your own apps of choice, like Fulcrum or Locus Maps for collection and tracking.