Troubleshooting · RTK Fix

Why am I stuck on Float and not reaching Fix?

Float that never becomes Fix is the most common RTK problem in the field. Most cases are caused by one of seven things — and most of them are resolved in under two minutes once you know which one it is. Work through this guide from the top.

On this page

  1. Two-minute checklist
  2. Cause 1 — Wrong mountpoint (DJI MSM5)
  3. Cause 2 — Corrections not reaching the receiver
  4. Cause 3 — Environment and obstructions
  5. Cause 4 — Baseline too long
  6. Cause 5 — Ionospheric disturbance
  7. Cause 6 — Receiver or software settings
  8. Device-specific fixes

Float is normal for the first 10–60 seconds

Float is always the step before Fix. In good conditions — open sky, nearby reference station, stable corrections — Float lasts 10–60 seconds. If it lasts longer than 3 minutes without reaching Fix, something specific is preventing ambiguity resolution. This page helps you find what.

Two-minute checklist

Run through these before diving into causes. They resolve most cases immediately.

Quick Float diagnostic
Are you outside with a clear sky view?
Float indoors or under trees is expected — move outside first
Is the NTRIP connection active and streaming corrections?
Check bytes/sec in your NTRIP client — must be >0
For DJI drones — are you using the MSM5 mountpoint?
DJI requires MSM5, not MSM4. Use RTCM3_NL_MSM5
Are you seeing 15+ satellites with good SNR?
Check satellite panel in your field software — low satellite count blocks Fix
Is PDOP below 4?
High PDOP prevents ambiguity resolution — check status screen
Have you been stationary for at least 60 seconds?
Moving during initialisation slows Fix — stand still and wait
Are all constellations enabled (GPS + GLONASS + Galileo + BeiDou)?
GPS-only drastically slows Fix — enable all constellations
0 / 7 checked

Cause 1 — Wrong mountpoint

📡
MSM4 mountpoint used with a DJI drone
Very common for DJI users

This is the single most common cause of persistent Float on DJI drones. DJI's RTK processing engine requires Doppler observations to resolve integer ambiguities. Doppler is included in MSM5 and MSM7 but not in MSM4. When a DJI drone connects to an MSM4 mountpoint, corrections flow normally and the connection appears successful — but Fix never arrives because the Doppler data needed for DJI's initialisation is absent.

The symptom is unmistakable: NTRIP connected, bytes flowing, stable Float for many minutes, never converging to Fix regardless of sky conditions.

  • 1
    In DJI Pilot, go to RTK Settings → Custom Network RTK. Change the mountpoint from RTCM3_NL to RTCM3_NL_MSM5.
  • 2
    Disconnect and reconnect. DJI should reach Fix within 60 seconds in open sky.
  • 3
    For long-baseline DJI flights, use RTCM3_NL_VRS instead — VRS mountpoints include MSM4 data which DJI can also process, and the short effective baseline helps Fix stability.

Cause 2 — Corrections not reaching the receiver

📶
NTRIP stream connected but delivering no useful data
Common

There are two subtle ways corrections can appear to flow but not actually help the receiver: the stream contains no corrections for the satellites your receiver tracks, or the connection drops and reconnects repeatedly — each dropout resetting the ambiguity resolution timer back to zero.

  • 1
    Verify bytes/second is non-zero and stable. Open the NTRIP status view in your client. The counter should show a steady 500–2,000 bytes/sec. If it reads 0 or fluctuates between 0 and non-zero every few seconds, the stream is interrupted. Fix the internet connection before expecting Fix.
  • 2
    Check the RTCM message types being received. Your receiver's status screen often shows which RTCM messages are arriving. You need at minimum MSM4 (message types 1074, 1084, 1094, 1124) or equivalent. If only 1004/1012 (legacy) messages appear, your mountpoint format does not match your receiver.
  • 3
    VRS with no GGA. If you are on a VRS mountpoint but forgot to enable GGA, the server streams nothing. Enable GGA in your NTRIP client and reconnect.
  • 4
    Switch to a dedicated hotspot. Phone tethering is less stable than a dedicated mobile hotspot device. If corrections drop repeatedly, switching to a hotspot often resolves persistent Float caused by stream interruptions.

Cause 3 — Environment and obstructions

🌳
Obstructions or multipath blocking ambiguity resolution
Very common

Ambiguity resolution requires sustained, clean carrier phase measurements from multiple satellites simultaneously. Trees, buildings, vehicles and terrain that block or reflect satellite signals prevent the continuous tracking required for Fix. Even partial canopy — thin tree branches that feel barely obstructive — scatter L1/L2 signals enough to keep a receiver in Float.

  • 1
    Move to the most open spot available. Even 5 metres can make a significant difference. The antenna needs a clean hemisphere of sky above 10–15°.
  • 2
    Stand still. Movement during initialisation compounds the problem — the receiver needs phase continuity across consecutive epochs. Stop walking, stop driving. Stand still for at least 60 seconds in the clearest available location.
  • 3
    Lower the elevation mask to 10°. In software that allows it, a lower elevation mask lets low-angle satellites contribute to geometry, compensating for signals lost to obstructions on the other side of the sky.
  • 4
    Check for nearby metal structures. Metal roofs, silos, greenhouse frames and parked vehicles create strong multipath. Move at least 10 metres away before attempting to initialise.

Cause 4 — Baseline too long

📏
More than 30 km from the nearest reference station
Moderate

At long baselines, ionospheric and tropospheric errors between the reference station and your rover diverge. The corrections from the distant station no longer accurately describe the atmosphere at your location — making it impossible for the receiver to resolve the integer ambiguities with confidence. The receiver stays in Float because it cannot find a consistent integer solution.

  • 1
    Switch to the VRS mountpoint. This is the most effective single change you can make. VRS generates a virtual reference station 1–2 km from you, making the effective baseline trivially short. Enable GGA in your client and connect to RTCM3_NL_VRS.
  • 2
    Check the sourcetable distance. In your NTRIP client, load the source table and check how far the nearest physical station is. If it is over 25 km, VRS is always the better choice.
  • 3
    Use a dual-frequency (multi-band) receiver. Single-frequency receivers are limited to around 10 km baselines before ionospheric errors prevent Fix. If you have a single-frequency receiver working at 30+ km, Fix is very unlikely without VRS.

Cause 5 — Ionospheric disturbance

☀️
High solar activity disrupting carrier phase signals
Periodic — peaks during solar maximum

The ionosphere delays satellite signals by an amount that varies with solar activity. During geomagnetic storms and solar maximum periods, ionospheric delays can change rapidly — making it impossible for the RTK engine to resolve ambiguities, even with short baselines and good sky conditions. This cause is seasonal and time-of-day dependent: midday near the solar maximum is the worst window.

  • 1
    Work early morning or evening. Ionospheric activity is typically lowest within the first 2 hours after sunrise and in the evening. If Fix is persistently unavailable at midday, try early morning.
  • 2
    Switch to VRS. VRS applies network-wide ionospheric modelling, which partially compensates for elevated ionospheric noise. VRS corrections are better than single-station corrections during disturbed conditions.
  • 3
    Check space weather. The NOAA Space Weather Prediction Center publishes real-time geomagnetic storm alerts. A Kp index above 5 often causes RTK problems even with perfect setups. If a solar storm is active, postponing fieldwork until it passes is the most reliable solution.
  • 4
    Use a triple-frequency receiver. L5 signals are more robust to ionospheric noise than L1/L2. Receivers that can process L5 (such as Emlid RS3, RS4 and high-end Trimble/Leica) maintain Fix in conditions where dual-frequency receivers cannot.

Cause 6 — Receiver or software settings

⚙️
Conservative defaults preventing ambiguity resolution
Less common but easy to fix

Default receiver settings are designed to be safe in the widest possible range of conditions. In challenging environments, these defaults can be too conservative — preventing Fix even when it would be achievable with a small settings adjustment.

  • 1
    Switch ambiguity resolution to Fix-and-hold (Emlid / RTKLIB). Continuous mode re-initialises at every uncertainty. Fix-and-hold commits to an integer solution and maintains it through brief disturbances — far more practical in the field.
  • 2
    Enable all constellations. GPS alone gives 8–12 satellites. GPS + GLONASS + Galileo + BeiDou gives 30–50+. More satellites means more redundancy and faster, more confident ambiguity resolution.
  • 3
    Reduce update rate to 1–5 Hz. Running at 10 or 20 Hz in a weak environment processes more noise. Dropping to 5 Hz or 1 Hz gives the RTK engine more signal averaging time per epoch, which can tip Float into Fix.
  • 4
    Set minimum elevation mask to 10°. Higher masks exclude useful satellites. In open sky, 10° gives the receiver more diverse satellite geometry without significant multipath risk.

Device-specific fixes

Select your device for targeted advice:

Emlid
DJI
Trimble
SW Maps
u-blox / DIY

Most effective fix for Emlid stuck on Float: go to Settings → GNSS settings → Ambiguity resolution and change from Continuous to Fix-and-hold. This single setting change resolves persistent Float in challenging environments for a large proportion of Emlid users.

Also verify: all constellations enabled, elevation mask at 10–15°, NTRIP bytes/sec >0. If baseline is long, switch to RTCM3_NL_VRS and enable Send GGA to caster.

If stuck in Float after firmware update: Emlid firmware updates sometimes reset GNSS settings to defaults. Re-check constellation and ambiguity settings after any update.

DJI stuck on Float is almost always MSM4 instead of MSM5. Change mountpoint to RTCM3_NL_MSM5 in DJI Pilot → RTK Settings → Custom Network RTK. Disconnect and reconnect.

If you are already on MSM5: ensure the drone is outside with GPS lock before connecting. DJI does not send GGA indoors — the server may not stream corrections if it receives no position.

For long-baseline DJI flights over 30 km: try RTCM3_NL_VRS. DJI handles VRS well and the shorter effective baseline significantly improves Fix stability.

DJI M300 and Matrice 350 specific: check that the RTK antenna is firmly seated and the cable not damaged. A loose RTK antenna connection causes persistent Float that looks like a corrections problem.

Trimble stuck on Float: first verify the data link is active in Instrument → Receiver Status → Data Link. The bytes counter must be incrementing.

For long-baseline work, switch from the standard mountpoint to RTCM3_NL_VRS. Trimble Access sends GGA automatically when NTRIP is active — no separate toggle needed.

If Float persists in good conditions: check PDOP in the receiver status. Trimble has a default PDOP mask of 6.0 — if PDOP is above this, Fix is suppressed by design. Wait for geometry to improve or temporarily raise the PDOP mask.

Trimble R10 on MSM4: the R10 works correctly with MSM4. If it is stuck on Float, the cause is environment or baseline — not the mountpoint format.

SW Maps stuck on Float usually means the external receiver is the bottleneck, not SW Maps itself. SW Maps displays whatever solution the connected receiver provides — if the receiver is in Float, SW Maps shows Float.

Check the receiver's own status in its app (Emlid Flow, for example) to see if it is independently achieving Fix. If Fix appears in the receiver app but SW Maps still shows Float, the NMEA output from the receiver to SW Maps may have a stale solution — disconnect and reconnect the Bluetooth link.

If you are using SW Maps' built-in NTRIP client with a smartphone GNSS: single-frequency smartphone chips rarely achieve Fix outdoors. Fix requires a multi-band external receiver. SW Maps' NTRIP client with a phone's internal GPS will typically achieve DGPS or Float at best.

u-blox ZED-F9P stuck on Float: the F9P achieves Fix reliably within 10–30 km baseline. Beyond that, ionospheric decorrelation prevents Fix without VRS.

In RTKlib or RTKLIB-based software: set ambiguity resolution to Fix-and-hold, enable all constellations, and set elevation mask to 10°. In U-Center: check that RTCM3 correction input is configured on the correct serial port and messages are being received.

Common DIY setup issue: the F9P receives corrections on UART2 but the application listens to UART1 for NMEA. Verify the correction port matches your cabling. A common symptom of this mismatch is Single solution despite NTRIP being connected — the receiver simply never sees the corrections.

Still on Float after all of the above?

Describe your exact situation to the AI at the top of this page — your device, mountpoint, satellite count, PDOP, baseline distance, sky conditions and how long you have been waiting. The more specific you are, the more targeted the answer.

Ready to use RTK corrections for real? RTKsub delivers centimetre accuracy to any NTRIP device. Free 7-day trial, no card required.
Start free trial →