CHAPTER 08
External GNSS Receivers (RTK)
You can use the position from an external GNSS receiver connected over USB or Bluetooth LE for the current location, tracks and points. The app relays NTRIP corrections to the receiver, so an RTK receiver can record positions at centimeter level.
Note: This feature is available on Android only. The receiver computes the RTK solution; the app relays the corrections and receives the positions.
Supported receivers
- USB — Connect a receiver such as the u-blox ZED-F9P to the phone with a USB (OTG) cable. Receivers that use a USB-serial converter (FTDI, CP210x, CH340, etc.) are also supported.
- Bluetooth LE — Connect to a BLE receiver that outputs NMEA over the Nordic UART Service (NUS).
- The receiver must output NMEA GGA (position). If it also outputs RMC (speed and heading) and GST (accuracy), more details are recorded.
Caution: Receivers that connect over Bluetooth Classic (SPP) are not supported at the moment.
Connecting a receiver
Open “GPS settings” on the Settings screen and connect under “External GNSS receiver (RTK)”.
- USB devices — Connect the receiver, tap “Refresh”, then tap “Connect” next to the device. The first time, you are asked to allow access to the USB device.
- Bluetooth (BLE) devices — Turn on the receiver, tap “Scan”, then tap “Connect” next to the device (scanning stops after 15 seconds). Devices advertising the Nordic UART Service are listed first. The first time, you are asked for the “Nearby devices” permission.
- Once connected, the fix type (FIX, FLOAT, DGPS, single), accuracy, satellites, HDOP, GNSS elevation, ellipsoidal height and correction age are shown.
- The receiver’s position is used while GPS is on (or while a track is being recorded). If positions stop for 5 seconds, the app falls back to the built-in GPS automatically.
Reconnecting automatically
The app remembers the receiver you connected and reconnects automatically in the following cases. If NTRIP is on, it connects too.
- When the app starts or comes back to the foreground
- When a USB receiver is plugged in
For USB, Android asks for permission to use the USB device each time the app restarts; choose “Allow”. For BLE, the app reconnects without asking once the permission has been granted. After you tap “Disconnect” yourself, the app does not reconnect automatically (tap “Connect” again to resume).
Receiver settings
Tap “Edit” under “Receiver settings” to set the following.
- Antenna height (m) — The height from the ground to the receiver’s antenna (the pole length). It is subtracted from the recorded elevation and ellipsoidal height.
- Baud rate (shown under “Advanced”) — The speed for receivers that use a USB-serial converter (FTDI, CP210x, CH340, etc.); match the receiver’s output speed. Not used for receivers connected directly over USB (such as the ZED-F9P) or over Bluetooth.
- Track recording — How points are kept when recording a track with the receiver (see “Recording tracks” below).
Receiving corrections over NTRIP
RTK positioning needs a connection to an NTRIP caster (a correction service). Tap “Edit” under “NTRIP corrections” to set it up, then turn on the switch.
- Caster (host) and port — Enter the host name and port (usually 2101) given by your correction service.
- Username and password — Your account for the service. The password is stored in the device keychain.
- Mountpoint — The name of the correction stream. Tap “Get list” to choose from the caster’s mountpoints.
- Protocol — NTRIP v1 is usually fine. Switch to v2 if your service requires it.
- Send position (GGA) to the caster — Required for VRS (virtual reference station) services. It can be off when you receive from a single base station. Choosing a mountpoint from the list switches it automatically when needed. An interval of 10 seconds is usually enough.
While connected, “Receiving” and the amount received are shown, and the receiver’s fix type changes from single to FLOAT to FIX.
Tip: The NTRIP switch is remembered, and NTRIP connects automatically when the receiver is connected.
The GPS button and position details
While the receiver’s position is in use, the label and border color of the GPS button on the home screen show the fix quality.
| Display | Meaning |
|---|---|
| FIX (green border) | RTK fixed (centimeter level) |
| FLOAT (orange border) | RTK float (tens of centimeters to about 1 m) |
| DGPS (blue border) | Differential positioning |
| SPP (gray border) | Single point positioning |
| GPS | Built-in GPS position (the receiver’s position has stopped) |
- Long-press the GPS button to open a panel with the accuracy (horizontal/vertical), satellites, HDOP, GNSS elevation, ellipsoidal height, correction age and NTRIP status. When no receiver is connected, it shows “not connected” with “Open GPS settings” to go to the connection screen. Tap the panel to close it.
- Long-pressing your current location on the map shows the GNSS elevation instead of the terrain elevation, and the coordinates to 8 decimal places.
Recording points
When you add a point with “here” in the point tool, it is recorded at the receiver’s position. While the receiver is in use, the confirmation dialog lets you choose how to record.
- Add now — Records the current position.
- Average and add — Records the average of several epochs (each position output by the receiver).
The averaging screen
- Epochs — Choose 5, 10, 30 or 60 (with a receiver that outputs once per second, 10 epochs take about 10 seconds).
- Use RTK FIX only — When on, only RTK FIX epochs are collected.
- The number collected, the spread (horizontal/vertical) and the accuracy of the averaged point are shown. “Record” turns blue when the target number is reached; you can also record earlier. “Restart” collects again.
- Keep the receiver (pole) still while averaging.
Measuring an existing point again
Tap “Position” in the data edit screen to enter position editing, then tap “here” to move the point to your current location. While the receiver is in use, you can also choose “Average and update”.
Recorded information
Points recorded with the receiver keep the following in addition to the coordinates. They are shown on one line below the coordinates in the data edit screen.
- Fix type and accuracy
- GNSS elevation — The receiver’s elevation minus the antenna height.
- Ellipsoidal height — The GNSS elevation plus the geoid height (antenna height already subtracted).
- Satellites, HDOP and correction age, and the number of epochs when averaged
The accuracy comes from the standard deviations in GST if the receiver outputs it; otherwise it is an estimate from the fix type and HDOP.
Note: The GNSS elevation is based on the geoid model built into the receiver and can differ from the official elevation in Japan (based on the JPGEO2024 geoid). If you need survey-grade elevations, convert the ellipsoidal height with a geoid service such as the GSI’s geoid height calculator.
Recording tracks
When recording a track with the receiver, choose how points are kept under “Track recording” in the receiver settings. Only the points saved to the track are thinned; the current location display, point recording and averaging are not affected.
- By accuracy (default) — Records after moving about twice the accuracy (about 10 cm with FIX, 1 m with FLOAT). Keeps fine detail without adding points while you are stopped.
- By distance — Records after moving 1 m, 2 m or 5 m. Fewer points, suited to route logging.
- Every fix — Records every fix each second. Keeps the time while stopped but produces many points.
Even when thinning, one point is kept every 30 seconds while you are stopped.
- When the track layer’s color type is GNSS quality, FIX sections are drawn in green and FLOAT sections in orange (in 2D and 3D). Other sections use the color chosen in the style settings.
- The first time you save a track recorded with the receiver, the track layer’s color type switches to “GNSS quality” automatically if it is Single. Switching back to Single, User or another type removes the coloring, and the app does not switch it again (see Changing the style).
- Tapping a track shows the GNSS elevation and ellipsoidal height for points recorded with the receiver.
- Sections recorded with the built-in GPS while the receiver is connected have no elevation (the built-in GPS elevation is too inaccurate and would distort the elevation graph).
Export
- Points — When exporting CSV or GeoJSON, layers with points recorded by the receiver get extra columns:
_gnssFix(fix type),_accuracy,_altitude(GNSS elevation),_ellipsoidHeight,_satellites,_hdop,_diffAgeand_averaged(number of epochs averaged) (see Export Data). - Tracks — In GPX, the GNSS elevation goes into
eleand the geoid height intogeoidheight. The ellipsoidal height isele+geoidheight.
Troubleshooting
- NTRIP shows “unauthorized” — Check the username, password and mountpoint. The connection may be refused if the same account is in use on another device or app.
- Nothing is received, or it never reaches FIX — For VRS services, turn on “Send position (GGA) to the caster”. Corrections do not arrive until the receiver has a single-point position, so wait a while in an open area.
- The USB device is not listed — Check that the cable supports data and the phone supports USB OTG, then tap “Refresh”.
- The BLE device is not listed — Check that the receiver supports Bluetooth LE (Nordic UART). Bluetooth Classic (SPP) receivers are not listed.
- The accuracy is always the same value — Without GST, the accuracy is an estimate for each fix type. Enable GST output with the receiver’s configuration software (such as u-center).