GNSS for orienteering mapping

The GNSS set-up I have been using recently (2022) for mapping is described below.


I started out with

  • Dual band antenna: U-Blox / ANN-MB-00-00 (£44.74, Digi-Key)
  • GNSS antenna ground plate: SparkFun GPS-17519 (£4.66, Digi-Key)
  • Stand for antenna: Amazon Basics 67-Inch Monopod (£19.71)

The ANN-MB-00-00 is suitable for L1/L2 etc. bands, the antenna has a peak gain of 2.0dBi, and an LNA gain of 28dB. Later I switched the antenna to

  • Survey GNSS Multiband antenna (IP66) also from Ardusimple
  • Using same monopod

This antenna is suitable for L1/L2 etc. dual bands, antenna peak gain 5dBi, and LNA gain 40dB and does indeed give a much stronger signal (and, as far as I can tell, better S/N).

GNSS boards

I have used two GNSS boards

  • For <1m accuracy: SparkFun GPS Breakout – NEO-M9N, U.FL (Qwiic) (€66.86, Elektor Shop)
  • For 14mm accuracy: SparkFun GPS-RTK-SMA ZED-F9P BREAKOUT (£208.83 + VAT, Digi-Key)

I have not properly compared the two yet but as I understand it, the latter should have slightly worse (!) accuracy than the first, however, its accuracy should be greatly improved by using RTK (real time kinematic). Unfortunately, I only have access to free NTRIP servers for RTK (rtk2go.com) and the nearest server to Glasgow is ~60mi away (see the rtk2go map here) and therefore completely ineffective.

The settings of the NEO-M9N and ZED-F9P boards can be changed using U-Blox software and a USB C connection. I use u-center on a PC and have set the GNSS sampling rate at 2 Hz to be more compatible with surveying while running.

3D printed box

Mario González-Jiménez's (postdoc in the research group) sister designed a 3D printed box for the SparkFun GPS-RTK-SMA ZED-F9P breakout board, which was printed on the 3D printer in Affar Karimullah's group. Base of the box and top of the box (stl files). Lovely box but bit tight: had to sandpaper the edges to get the box to close and needed to saw a larger opening for the USB-C, otherwise excellent.

Recording devices & software

  • Samsung Galaxy A12 (£149, John Lewis) connected to the GNSS board through USB-C.
  • SW Maps (free)
  • OCAD Sketch app (free but OCAD is not free of course...)

The GNSS board is connected to the Android phone using USB C, which is bit of a pain, however, it does provide power to the board while lasting for several hours. A GNSS board that communicates with the phone using bluetooth sounds great but you would need a battery pack that can provide a low current while not switching off (many battery packs switch off at low current assuming this is caused my a leak current).

I use SW maps to communicate with the GNSS board. This free app is amazingly good, allows for RTK corrections (if you have an NTRIP server...), and can act as a mock GPS for your Android phone. I use this app to record a track of where I've been. Unfortunately, it has a bug that crashes the app after a while, which means you have to restart, reconnect to the GNSS board, and restart the track recording.

Mock GPS set-up

  • Have SW Maps or similar installed on an Android phone.
  • Activate developer mode
    • About phone –> Tap build number the required number of times –> you should receive a prompt that Developer Mode has been activated
    • This only needs to be done once
  • Select a mock location app –> Choose SW Maps
    • Also needs to be done only once
  • Connect the GNSS board to the phone (using USB C in my case)
  • In SW Maps, connect to the GNSS board. A message shoudl appear that a mock location is now used.

The OCAD Sketch app can then be used with location information through mock GPS from the GNSS board. The sketch app is still a bit buggy and doesn't always record your track properly (in particular not when the app is not running in front, e.g., when you lock your phone to do a bit of running).

I use an iPhone (my regular phone) to set up a Personal Hotspot that my Android phone can connect to. This allows SW maps to download a Google Maps background (not essential) and also to receive NTRIP messages for RTK (I can confirm this works, just haven't had increased accuracy yet).


I can confirm that the ZED-F9P board without RTK gives <1m resolution but ~1-2m accuracy. That is, if I walk around a small boulder, I can easily resolve that, giving an estimated resolution of ~0.3m. However, if I return to the same track 10 minutes later, it will record a track with the exact same shape (within ~0.3m) but it is typically displaced by 1m or worst case even 2m. The accuracy is clearly diminished when going into shielded areas but that is inevitable. It might be that the NEO-M9N has greater accuracy but I have not tested that properly.

Set-up I've been using (late 2022). Monopod with Ardusimple Survey GNSS Multiband antenna (IP66), SparkFun GPS-RTK-SMA ZED-F9P BREAKOUT board (wrapped in a plastic bag to keep dirt/water out and hidden inside a small running pack), connected via USB C to a Samsung Galaxy A12 running SW Maps (shown) providing a mock location. OCAD Sketch is used to make map notes. I use an iPhone to provide a Personal Hotspot for the Android phone.

SW Map Skyplot taken from my front window facing south (with buildings across the street blocking part of the view to south). The unobscured satellites give a signal of ~50dBi, which is pretty good. In open terrain, I will get about double the satellites with the majority ~50dBi and an HDOP of 0.3m.

Example track using the NEO-M9N chip and ANN-MB-00-00 antenna. From top right to bottom left: going under & over a cliff, corner of a wall, circling a boulder (loop diameter 2m), another wall corner, going round a knoll, following a fence, through a gate, tracing a distinct vegetation boundary, looping around a clearing.