Troubleshooting · RTK 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
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.
Run through these before diving into causes. They resolve most cases immediately.
RTCM3_NL_MSM5This 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.
RTCM3_NL to RTCM3_NL_MSM5.RTCM3_NL_VRS instead — VRS mountpoints include MSM4 data which DJI can also process, and the short effective baseline helps Fix stability.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.
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.
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.
RTCM3_NL_VRS.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.
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.
Select your device for targeted advice:
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.