GNSS for orienteering mapping
Septentrio Mosaic X5
For my mapping work, I'm using a Septentrio Mosaic X5 triple band GNSS board using the mosaic-X5 Firmware Package v4.15.1 (13 October 2025). The antenna is an Ardusimple Budget Survey Tripleband GNSS Antenna (IP66). The Mosaic X5 set-up is as follows.
NMEA messages to be sent to OCAD app
NMEA messages required for OCAD App: GGA+GSA+GST+GSV+RMC
- In /NMEA&SBF out, set up a new NMEA stream to serial port, COM2. Select the messages you want (GGA+GSA+GST+GSV+RMC), and use 1 second interval. Any faster will overload OCAD App (according to OCAD and seems consistent with observations)
Logging GNSS data
In /Logging, create a new SBF stream.
- Under edit SBF stream select PostProcess + Rinex + Rinex (meas3)
- A 500 msec interval is probably plenty. 200 msec will just produce tons of pointless data.
- Even at 200 msec, this generates ~800MB/day, which isn't at all bad (I have a 256GB microDisk, which is quite excessive in retrospect but only £17).
- Use incremental file naming with file name log.
- Don't forget to switch logging to on.
Expert settings
- Go to /Admin/Expert Control/Control Panel.
- The general idea is to use all available bands (to reduce multipath effects), use modern L5 bands (higher power, better encoding for higher S/N), and discard satellites too low above the horizon. SBAS satellites are geostationary so need view to the south.
- /Navigation/Advanced User settings:
- /Tracking/Satellite Tracking: Make sure all satellite systems are checked. Possibly uncheck QZSS and NAVIC (unless you are in Japan or India).
- /Tracking/Signal Tracking:
- The general gist is that L1 signals are legacy, L2 are more modern & robust, while L5 has higher power and has multipath mitigation capabilities. The combination of all three mitigates against ionospheric and multipath errors.
- GPS: L1CA, L2C, and L5.
- L1PY and L2PY are military
- GPS L5 is labelled unhealthy, so may generate a lot of errors if not dealt with properly, see below.
- GLONASS: L1CA and L2CA. L2P is military. L3 is off by default possibly because less reliable?
- GALILEO: E1BC, E6BC, E5a, E5b, and E5 (AltBOC).
- As I understand it, E5 AltBOC can achieve very high accuracy but possibly not in combination with other (less accurate) bands, hence, use with caution.
- E6B is used for High Accuracy Service (HAS), while E6C is for Commercial Authentication Service (CAS). So I have switched on E6BC in the hope it'll give me HAS but I don't think it is supported by the X5 (yet). E6BC is appearing in the tracking status list, so...
- SBAS: L1 and L5.
- BEIDOU: B1I, B2I, B3I, B1C, B2a, and B2b
- B1I, B2I, and B3I are legacy. B1C more modern. B2a equivalent to E5a.
- QZSS and NAVIC are off so not relevant for me.
- /PVT/Signal usage. For both "Signals enabled in the PVT" and "Signals enabled in navigation data decoder", use all the above.
- Navigation/Receiver Operation/Masks.
- Under Elevation Mask, set "Discard satellite if below", to ~10° for PVT. This will discard satellites too close to the horizon that will have poor signals. Can keep to 0° for tracking.
- Under Signal Health Override, make sure GPSL5 is checked for both output measurements and PVT. This is because GPS L5 is marked as "unhealthy" by default even though it is not.
- Under C/N0 Mask, set everything to something reasonable such as 30 dB-Hz.
GNSS conversion with RTKpost
- Using SBF Converter 25.0.0 to convert the SBF file to RINEX 4.01 output (mixed navigation) to files with extension 25P and 25O
- At OS Data Hub (https://osdatahub.os.uk/) get OS Net RINEX base station data including ephemeris data.
- Use RTK Demo5 2.5.0 (https://github.com/rinex20/RTKLIB-demo5) to convert data from the Septentrio Mosaic X5. 25O file for Rover, OS data for base station, 25P + ephemeris files for RINEX NAC/CLK etc. Options:
- Positioning mode: Kinematic
- Frequencies: L1+L2+L3+L4
- Filter type: combined
- Elevation mask: 15°, SNR mask, rover: 45, 42, 40, 38, 37, 36, 35, 35, 35... (for elevations of <5°, 15°, 25°, etc.)
- Rest default settings.
- These settings seem to give good results at least for BallochCCP
Future improvements
Currently, the antenna is in a backpack mounted behind my head, which blocks some of the GNSS signals. Ideally, the antenna would be above my head in such a way that it doesn't get caught in vegetation... Any practical suggestions greatly appreciated.
