> For the complete documentation index, see [llms.txt](https://docs.rtkdata.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rtkdata.com/integration-hub/ntrip-clients-and-field-software/sw-maps.md).

# SW Maps NTRIP Setup: Connect to RTK Corrections

Guide to connecting SW Maps to RTKdata via NTRIP on Android. Stream centimeter-level RTK corrections to any Bluetooth GNSS receiver. Free 30-day trial

SW Maps is a free Android GIS and mapping application that doubles as one of the best NTRIP clients available on mobile. It connects to external Bluetooth GNSS receivers such as the SparkFun RTK Facet, ArduSimple simpleRTK2B, and any u-blox ZED-F9P-based board. SW Maps streams RTK corrections from an NTRIP caster like RTKdata.com directly to your receiver, delivering centimeter-level accuracy for survey-grade field data collection.

**Download:** [Google Play Store](https://play.google.com/store/apps/details?id=np.com.softwel.swmaps) (free)

## Requirements

* Android phone or tablet with internet access (mobile data or Wi-Fi hotspot)
* Bluetooth-capable GNSS receiver (SparkFun RTK Facet, ArduSimple, u-blox F9P board, etc.)
* GNSS antenna with clear sky view (survey pole or tripod recommended)
* Active RTKdata.com account with username and password

{% hint style="info" %}
Don't have an RTKdata.com account yet? 👉 [Start 30-day Free Trial](https://rtkdata.com/try-rtk-corrections-free-for-30-days/) or [View Pricing](https://rtkdata.com/pricing/)
{% endhint %}

## Step-by-step setup

{% stepper %}
{% step %}

#### Connect your Bluetooth GNSS receiver

1. Power on your GNSS receiver and enable Bluetooth on your Android phone.
2. Open SW Maps and tap the **Bluetooth** icon in the top toolbar (or go to **Menu → Bluetooth GNSS**).
3. Tap **Scan** to discover nearby devices. Select your receiver from the list.
4. Set the **Instrument Model** to match your hardware (e.g., "Generic RTK Receiver" or your specific model).
5. Set the **Instrument Height** to your pole or tripod height.
6. Tap **Connect**. The status bar should begin showing coordinates from the external receiver.

{% hint style="warning" %}
**Phone GPS vs. External Receiver:** After connecting, verify that coordinates come from your external receiver, not the phone's internal GPS. Phone GPS accuracy is typically 5–15 m. Your external receiver should show 1–3 m accuracy before corrections. If the accuracy indicator shows 10+ m, the app is still using the phone's internal GPS. Reconnect via Bluetooth GNSS and confirm the source has switched.
{% endhint %}
{% endstep %}

{% step %}

#### Open the NTRIP client

1. Tap the **Menu** icon (three horizontal lines) in the top-left corner.
2. Tap **NTRIP Client**.
3. Tap **Add New Profile** (or the **+** button).
4. Enter a profile name (e.g., "RTKdata EU" or "RTKdata NA").
   {% endstep %}

{% step %}

#### Enter RTKdata.com connection settings

Fill in the following fields:

* **Send NMEA GGA to Caster:** **Enabled (ON)**

{% tabs %}
{% tab title="North America" %}

* **Host (domain):** `rtk.rtkdata.com`
* **Host (IP fallback):** `13.56.117.10`
* **Port:** `2101`
* **Username / Password:** From *RTK Credentials* in the internal dashboard (not website login)
* **Mountpoint (ALL CAPS):** `AUTO` (recommended) — or `AUTO_WGS84`, `AUTO_ITRF2020`, `AUTO_ITRF2014`
  {% endtab %}

{% tab title="Europe" %}

* **Host (domain):** `eu.rtkdata.com`
* **Host (IP fallback):** `3.73.41.96`
* **Port:** `2101`
* **Username / Password:** From *RTK Credentials* in the internal dashboard (not website login)
* **Mountpoint (ALL CAPS):** `AUTO` (recommended) — or `AUTO_WGS84`, `AUTO_ITRF2020`, `AUTO_ITRF2014`
  {% endtab %}

{% tab title="Australia" %}

* **Host (domain):** `aus.rtkdata.com`
* **Host (IP fallback):** `54.206.56.130`
* **Port:** `2101`
* **Username / Password:** From *RTK Credentials* in the internal dashboard (not website login)
* **Mountpoint (ALL CAPS):** `AUTO` (recommended) — or `AUTO_WGS84`, `AUTO_ITRF2020`, `AUTO_ITRF2014`
  {% endtab %}
  {% endtabs %}

{% hint style="warning" %}
The **Send NMEA GGA to Caster** toggle must be **ON**. RTKdata.com uses your GGA position to generate corrections from the nearest Virtual Reference Station. Without GGA, the caster cannot compute corrections and you will remain stuck on FLOAT indefinitely.
{% endhint %}
{% endstep %}

{% step %}

#### Connect and verify RTK FIX

1. Tap **Connect** to start the NTRIP correction stream.
2. Watch the status bar at the top as the solution progresses: **Autonomous → DGPS → Float → FIX**.
3. Once you see **RTK FIX**, you have centimeter-level accuracy. This typically takes 10–60 seconds under clear sky.

**How to verify RTK is working:**

* **Solution type** in the status bar reads **FIX** (not Float or Autonomous).
* **Horizontal accuracy** drops to **0.01–0.02 m** (1–2 cm).
* **Age of corrections** stays below 5 seconds (visible in the NMEA data stream).
* The NTRIP icon in the toolbar shows an active connection (no red X).
  {% endstep %}
  {% endstepper %}

## Troubleshooting

| Problem                                                                                                                                           | Cause                                                                                                                                                                                                                                                                                                  | Fix                                                                                                                                                                                                                                                                                                     |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Position shows phone GPS (10+ m accuracy)                                                                                                         | External receiver not connected                                                                                                                                                                                                                                                                        | Go to **Bluetooth GNSS**, reconnect receiver, verify coordinates change                                                                                                                                                                                                                                 |
| NTRIP connects but stays on FLOAT                                                                                                                 | GGA not sent to server                                                                                                                                                                                                                                                                                 | Enable **Send NMEA GGA to Caster** in the NTRIP profile                                                                                                                                                                                                                                                 |
| NTRIP status shows **Connected**, the byte counter is running (1083 B/s in one field case), but the fix type stays **SINGLE**                     | The caster accepted the login, so bytes arrive, but no usable GGA position is going back out. The antenna icon in the top bar appears red or crossed out. Common trigger: NTRIP was connected before the receiver had its own satellite lock, so there was no position for the GGA sentence to report. | Enable **Send NMEA GGA to Caster** in the NTRIP profile, go outdoors and wait for the receiver's own satellite lock **before** you connect NTRIP, then reconnect. SINGLE to FLOAT to FIX follows within 30 to 60 seconds under open sky.                                                                |
| NTRIP profile points at `13.56.117.10:2101` (raw IP)                                                                                              | The IP is only a fallback for when DNS is unavailable, not the normal entry point                                                                                                                                                                                                                      | Put the regional hostname in the host field (`rtk.rtkdata.com`, `eu.rtkdata.com`, `aus.rtkdata.com`). Port `2101` and mountpoint `AUTO` stay the same.                                                                                                                                                  |
| NTRIP profile is accepted but never produces a fix, while the website login works fine                                                            | Website login entered in the NTRIP profile. The NTRIP credentials are separate.                                                                                                                                                                                                                        | Use the RTK credentials from the dashboard. The NTRIP username starts with `rtk` and has its own password. See [Account & Credentials](/get-started/account-and-credentials.md).                                                                                                                        |
| "Connection refused" or timeout                                                                                                                   | Wrong host/port or no internet                                                                                                                                                                                                                                                                         | Double-check hostname spelling and port `2101`                                                                                                                                                                                                                                                          |
| Mountpoint error or "No data"                                                                                                                     | Mountpoint not uppercase                                                                                                                                                                                                                                                                               | Enter `AUTO` in ALL CAPS, not `auto` or `Auto`                                                                                                                                                                                                                                                          |
| Corrections received but accuracy poor                                                                                                            | Obstructed sky view                                                                                                                                                                                                                                                                                    | Move to open sky; avoid trees, buildings, overhead cover                                                                                                                                                                                                                                                |
| Receiver pairs but no position data                                                                                                               | Wrong protocol                                                                                                                                                                                                                                                                                         | Ensure NMEA output is enabled on the receiver over Bluetooth                                                                                                                                                                                                                                            |
| Status bar shows **RTK FIX** but **ΔH** and **ΔV** read decimetres or metres (for example ΔH 1.0 m, ΔV 1.1 m)                                     | ΔH and ΔV are not the receiver's accuracy. In the confirmed case they were the offset between the current position and a reference point in the project.                                                                                                                                               | Read **Horizontal Accuracy** and **Vertical Accuracy** on the **GNSS Status** screen instead. With a clean FIX and a survey grade receiver these sit at 1 to 3 cm.                                                                                                                                      |
| Looking for **HRMS / VRMS** and not finding them anywhere in the app                                                                              | SW Maps has no separately labelled HRMS/VRMS fields. The same information appears as **Horizontal Accuracy** and **Vertical Accuracy**, derived from the receiver's NMEA output.                                                                                                                       | Use those two fields on the **GNSS Status** screen, and cross-check in the receiver's own configuration app if you need a second opinion.                                                                                                                                                               |
| **Horizontal Accuracy 1.4 m / Vertical Accuracy 2.0 m** although the app appears to be in RTK                                                     | Two causes seen in the same case: the receiver was not actually applying corrections at that moment (`$GNRMC` ending in `,F,V` is a standalone position), and the accuracy fields fall back to an internal estimate when the receiver sends no **GST** sentence.                                       | Confirm the fix state in the raw NMEA before recording (`$GNGGA` quality field, `$GNRMC` status), then enable **GST** output at 1 Hz on the receiver. Depending on the app version this may be exposed in the SW Maps instrument settings, otherwise use the receiver manufacturer's configuration app. |
| Accuracy sits at 5 to 15 cm with a stable FIX, and averaging 60 readings does not improve it                                                      | A constant offset, not measurement noise. Averaging only removes random noise. In the confirmed case the ceiling was the receiver itself: low cost modules with an integrated RTK engine and internal antenna report and deliver 5 to 15 cm even in FIX.                                               | Average 5 to 10 epochs (more makes no difference), let the FIX settle for 30 to 60 seconds before recording, and check against a known control point. For 1 to 3 cm you need a survey grade receiver with a dedicated antenna.                                                                          |
| Heights are consistently offset, or a single exported point stands out with **Instrument Height 0.00 m**                                          | Pole or tripod height not entered before recording                                                                                                                                                                                                                                                     | Set the instrument height in SW Maps before collecting points. A zero or wrong value shifts the height of every affected record by exactly that amount.                                                                                                                                                 |
| Exported **Elevation** values sit tens of metres above the local map or LiDAR data, and the **Ortho Height** column is zero throughout the export | SW Maps writes the ellipsoidal height from the GGA sentence into **Elevation**. An Ortho Height of zero means no geoid model was applied at any point. RTKdata delivers ellipsoidal heights.                                                                                                           | Apply the geoid model for your area (GEOID18 in the US, OSGM15 for ODN heights in the UK) in SW Maps or in post-processing. See [Understanding Heights](/get-started/understanding-heights.md).                                                                                                         |
| Vertical differs by a few centimetres from a published control height (0.12 ft against an NGS monument in one case)                               | Wrong or older geoid model, for example GEOID12B where the published value uses GEOID18                                                                                                                                                                                                                | Select **GEOID18** in SW Maps and in your desktop GIS. Compare the published ellipsoid height against the raw receiver height first: if those match, the residual is purely the geoid conversion.                                                                                                       |
| Recorded points land about a metre off the real markers after moving data between SW Maps and QGIS (1.3 m in one case)                            | CRS mismatch on export or import. SW Maps works in geographic WGS 84 (EPSG:4326) while the layer was exported in a different CRS.                                                                                                                                                                      | Use the same CRS and datum on both sides. In the confirmed case the offset disappeared entirely once the export CRS matched.                                                                                                                                                                            |
| Everything is off by several centimetres to decimetres against official control points, in horizontal and vertical                                | National datum (MAGNA-SIRGAS, or ETRS89 based frames such as RDN2008) versus the global reference frame the corrections are delivered in, plus plate motion since the datum epoch                                                                                                                      | Apply a datum transformation, or run a localization (calibration) on two or more known points in your field or desktop software. See [Coordinate Systems & Datums](/get-started/coordinate-systems-and-datums.md).                                                                                      |
| Unclear whether **Apply Base Antenna PCO** should be on or off                                                                                    | The option controls whether the base antenna phase center offset is applied to the solution                                                                                                                                                                                                            | Leave it **ON** with RTKdata. The reference stations use calibrated antennas with known PCO values. Switching it off can add a small, avoidable vertical error.                                                                                                                                         |

{% hint style="warning" %}
**"Connected" is not the same as "corrected".** A Connected status and a moving byte counter only prove that the caster accepted your login and is pushing a stream. Whether those bytes can be applied depends on your GGA: the `AUTO` mountpoint routes corrections from the reference station nearest to the position your device reports back. If GGA never leaves the device, or if you opened the NTRIP connection before the receiver had its own satellite fix, the stream keeps flowing and the fix type stays **SINGLE**. Check both before changing anything else in the profile.
{% endhint %}

## Tips for best results

* **Always confirm your position source.** SW Maps defaults to phone GPS if no Bluetooth device is connected. Double-check before collecting data.
* **Save your NTRIP profile.** The profile persists between sessions so you only configure credentials once.
* **Export data** in GeoJSON, KML, CSV, or Shapefile format directly from the app.
* **Check satellite count.** Tap the satellite icon to see tracking status. You need at least 10–12 satellites for reliable FIX.
* **If FIX drops repeatedly**, check receiver firmware and ensure the antenna has a proper ground plane.

## Related Guides

* [NTRIP & GGA Essentials](/integration-hub/ntrip-clients-and-field-software/ntrip-and-gga-essentials.md): the reason **Send NMEA GGA to Caster** cannot be left off
* [SparkFun RTK Facet](/integration-hub/gnss-rovers-and-receivers/sparkfun-rtk-facet.md): receiver-side setup for one of the boards most often paired with SW Maps
* [ArduSimple simpleRTK2B / simpleRTK3B](/integration-hub/gnss-rovers-and-receivers/ardusimple-simplertk2b.md): board-side setup for ArduSimple hardware over Bluetooth
* [Lefebure NTRIP Client](/integration-hub/ntrip-clients-and-field-software/lefebure-ntrip-client.md): the alternative Android client when you only need the NTRIP relay and mock location
* [QField / QGIS](/integration-hub/ntrip-clients-and-field-software/qfield.md): pair SW Maps as the mock location provider with QField for QGIS-based data collection

## Related Industry Solutions

* [Surveying](https://rtkdata.com/surveying/)
* [Environmental Monitoring](https://rtkdata.com/environmental-monitoring/)
* [Utilities](https://rtkdata.com/utilities/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.rtkdata.com/integration-hub/ntrip-clients-and-field-software/sw-maps.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
