# Lefebure NTRIP Client

Lefebure NTRIP Client is the most popular standalone NTRIP client for Android. It connects to any Bluetooth GNSS receiver — including SparkFun RTK Facet, ArduSimple simpleRTK2B, Emlid Reach, and any u-blox ZED-F9P-based board — and streams RTK corrections from an NTRIP caster like RTKdata.com directly to your receiver. The app also supports Android mock locations, allowing other apps on your phone to use the centimeter-level corrected position.

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

## Requirements

* **Android phone or tablet** with Bluetooth and internet access (cellular data or Wi-Fi)
* **Bluetooth-capable GNSS receiver** (SparkFun RTK, ArduSimple, or any receiver outputting NMEA over Bluetooth)
* **GNSS antenna** with clear sky view
* **RTKdata.com account** with active RTK credentials (username starting with `rtk`)

{% 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 %}

#### Install and open the app

1. Install **Lefebure NTRIP Client** from the Google Play Store.
2. Launch the app. You will see the main screen with connection status and data stream panels.
3. Grant all requested permissions (Bluetooth, Location).
   {% endstep %}

{% step %}

#### Pair your Bluetooth GNSS receiver

1. Power on your GNSS receiver and ensure Bluetooth is enabled on it.
2. On your Android phone, go to **Settings > Bluetooth** and pair with your receiver (e.g., "RTK\_GNSS", "RTK Facet-XXXX", or "SparkFun RTK").
3. Return to Lefebure. Tap the **gear icon** (Settings) in the top-right corner.
4. Under **Receiver Connection**, tap **Bluetooth Device** and select your paired receiver from the list.
5. Set **Baud Rate** to match your receiver (typically **115200** or **38400**).
   {% endstep %}

{% step %}

#### Configure the NTRIP profile

In Settings, scroll to the **NTRIP** section and enter the following:

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

* **Caster Host:** `rtk.rtkdata.com`
* **Caster IP (fallback):** `13.56.117.10`
* **Caster 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" %}

* **Caster Host:** `eu.rtkdata.com`
* **Caster IP (fallback):** `3.73.41.96`
* **Caster 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" %}

* **Caster Host:** `aus.rtkdata.com`
* **Caster IP (fallback):** `54.206.56.130`
* **Caster 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="danger" %}
**"Send NMEA to Server" must be ON.** This is the number one issue users encounter. Without sending NMEA GGA to the caster, RTKdata.com cannot determine your position and cannot generate Virtual Reference Station corrections. You will see "0 GGA sessions" on your RTKdata dashboard and corrections will never arrive.
{% endhint %}
{% endstep %}

{% step %}

#### Enable GGA output

1. Still in Settings, find **Send NMEA to Server** (sometimes labeled "Send NMEA GGA to Caster").
2. Set this to **ON / Enabled**.
3. Set the **GGA send interval** to **5 seconds** (default is fine).
4. Confirm by checking that the data stream panel shows outgoing GGA sentences after connecting.
   {% endstep %}

{% step %}

#### Set up mock locations (optional)

To make other Android apps (e.g., Google Maps, field collection apps) use the RTK-corrected position:

1. On your phone, go to **Settings > About Phone** and tap **Build Number** 7 times to enable Developer Options.
2. Go to **Settings > Developer Options > Select mock location app**.
3. Choose **Lefebure NTRIP Client** from the list.
4. Return to Lefebure. In Settings, enable **Mock Location Provider**.

{% hint style="info" %}
With mock locations enabled, every app on your phone will use the centimeter-level position from your external receiver instead of the phone's internal GPS.
{% endhint %}
{% endstep %}

{% step %}

#### Connect and verify RTK Fix

1. Return to the main screen and tap **Connect** (the play button).
2. The app will connect to your Bluetooth receiver and to the RTKdata NTRIP caster simultaneously.
3. Monitor the status display:
   * **NMEA stream:** You should see GGA, GSA, and GSV sentences flowing.
   * **RTCM stream:** Incoming correction data bytes should increment steadily.
   * **Fix type** progresses: **GPS Fix > DGPS > Float > Fix**.
4. Once **Fix** is shown, accuracy is at centimeter level. Typical convergence is 30-90 seconds.
   {% endstep %}
   {% endstepper %}

## Vertical reference (heights)

{% hint style="info" %}
Heights from RTKdata.com are **ellipsoidal**, not orthometric (mean sea level). If your project requires orthometric heights, apply a geoid model in your GIS or surveying software.
{% endhint %}

## Troubleshooting

| Problem                             | Cause                                           | Fix                                                                                                                    |
| ----------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| 0 GGA sessions on RTKdata dashboard | "Send NMEA to Server" is OFF                    | Enable **Send NMEA to Server** in Lefebure settings. This is required for VRS corrections.                             |
| "Server TCP Error"                  | Incorrect host, port, or no internet            | Verify hostname spelling, port `2101`, and that your phone has an active data connection. Try the IP fallback address. |
| Connection drops repeatedly         | Weak cellular signal or app sleeping            | Disable battery optimization for Lefebure in Android settings. Keep the app in the foreground.                         |
| Bluetooth pairs but no NMEA data    | Wrong baud rate or receiver not outputting NMEA | Match the baud rate in Lefebure to the receiver's Bluetooth baud rate (typically 115200).                              |
| Stuck on Float, never reaches Fix   | GGA not being sent or poor sky view             | Confirm GGA is enabled. Move to open sky. Check satellite count (need 10+ satellites).                                 |
| Mountpoint error                    | Lowercase or misspelled mountpoint              | Type `AUTO` in ALL CAPS. Do not attempt to browse the source table.                                                    |

## Tips and tricks

* **"Send NMEA to Server" is non-negotiable.** Verify this setting every time you troubleshoot. It is the single most common cause of failed connections.
* **Lefebure works with virtually any Bluetooth GNSS receiver** — SparkFun RTK, ArduSimple, Emlid, Bad Elf, EOS Arrow, and generic u-blox boards.
* **Use the data stream panel** to confirm both outgoing GGA and incoming RTCM. If GGA lines are flowing but RTCM bytes stay at zero, the caster is not responding — check your credentials.
* **Mock locations are powerful.** Once configured, apps like DroneDeploy, ArcGIS Field Maps, and Collector can use RTK-corrected positions natively.
* **For persistent connection issues**, try switching from hostname to the direct IP address for your region. Some mobile networks have DNS resolution delays.
