What GNSS Module Should Be Used with ArduPilot? A Technical Guide

For ArduPilot, the best GNSS module is one that speaks standard UBX or NMEA over UART (or DroneCAN), updates at 5–10 Hz, and matches your mission: a u-blox M8N or M9N for basic flight, a u-blox ZED-F9P or Septentrio mosaic-X5 for RTK centimetre accuracy, and a Septentrio module with AIM+ anti-jamming when you operate near RF interference. ArduPilot’s driver stack supports dozens of receivers, so the real question is not what works — it is what keeps your position reliable in your operating environment.
What ArduPilot Actually Needs From a GNSS Module
ArduPilot autopilots (Pixhawk, Cube, Holybro and other boards) connect GNSS over a UART on the GPS1 or GPS2 port, or over DroneCAN on the CAN bus. The firmware includes drivers for u-blox, Septentrio and other families, and auto-detects most modules at boot. The practical requirements are simple:
- Protocol: u-blox UBX or NMEA over serial; DroneCAN for CAN-connected modules such as the Septentrio mosaic-X5.
- Update rate: 5 Hz minimum for stable velocity estimates; 10 Hz for aggressive or high-speed missions.
- Active antenna input: an external antenna with an integrated LNA, powered from the module’s 3.3–5 V output.
- RTK support: dual-frequency tracking (L1/L2 or L1/L5) if you need centimetre-level positioning.
- PPS output: optional, but useful for precise camera triggering and post-processing.
Best GNSS Modules for ArduPilot: u-blox vs Septentrio
Two families dominate ArduPilot builds, and they sit at different price/performance points:
- u-blox NEO-M8N / M9N — the default choice for basic flight. Single-band, metre-level accuracy, low cost, plug-and-play. Fine for manual flight and simple waypoint missions, but no RTK and limited resilience to interference (roughly 25 dB of jamming tolerance).
- u-blox ZED-F9P — the RTK workhorse. Dual-band (L1/L2), centimetre accuracy, and tight integration with ArduPilot’s GPS auto-detection and RTK configuration. Its weakness is the same as the M8N: about 25 dB of jamming margin.
- Septentrio mosaic-X5 — the industrial-grade option. 448 channels, all constellations and bands, RTK and PPP, plus AIM+ interference mitigation that rejects jammers by 40–60 dB — signals roughly 10,000× stronger than a typical u-blox can survive. ArduPilot supports it over both serial and DroneCAN. See the mosaic-X5 receiver page for full specifications.
Setting Up RTK on ArduPilot
For survey, mapping, inspection and agriculture, RTK turns a drifting metre-level position into a stable centimetre-level one. The setup is identical for the ZED-F9P and the mosaic-X5:
- Connect the module to GPS1 and set the port baud to 115200.
- Leave GPS1_TYPE on AUTO — ArduPilot detects the mosaic-X5 automatically over DroneCAN and most u-blox modules over serial.
- Feed corrections over NTRIP from a companion computer, or use your own base station; the mosaic-X5 also accepts L-band PPP corrections with no base at all.
- Check status in Mission Planner or QGroundControl: RTK fix shows as 4 (RTK Float) or 5 (RTK Fixed).
Once fixed, expect under 2 cm horizontal accuracy. Our RTK GNSS for drones and UAVs guide covers the full workflow, from antenna placement to correction sources.
The Anti-Jamming Question: Why Standard Modules Fail Near Interference
Standard u-blox modules lose lock when a jammer or strong RF source is nearby — and powerline inspection, substations, urban canyons, mining pits and construction sites are exactly where ArduPilot drones fly. A 25 dB jamming margin disappears against a modest jammer at close range, causing flyaways, RTL failures or aborted missions. Septentrio’s AIM+ technology nulls and filters interference in real time, holding RTK fix where standard modules fall back to dead reckoning. That is the difference between a receiver that survives a site and one that does not — explained in our anti-jamming and anti-spoofing solutions page.
Eview builds the mosaic-X5 into the GNSS Receiver Box and OEM boards and modules, and pairs it with the EV220 drone antenna for clean signal at the mast. Antenna choice matters as much as the receiver — see the GNSS antenna range for UAV-rated options.
Frequently Asked Questions
Does ArduPilot support the Septentrio mosaic-X5?
Yes. ArduPilot added native mosaic-X5 support (firmware 4.1+) over DroneCAN and serial UART, including RTK and dual-antenna heading with the mosaic-H.
Can I use a u-blox ZED-F9P with ArduPilot?
Yes — it is plug-and-play on the GPS port. Set the port baud to 115200 and GPS1_TYPE to AUTO; ArduPilot detects it and enables RTK.
What baud rate should I use for a GNSS module with ArduPilot?
38400 is fine for basic M8N/M9N modules; use 115200 for RTK receivers like the ZED-F9P and mosaic-X5 so correction data fits in the serial stream.
Does ArduPilot support dual GNSS modules?
Yes. GPS1 and GPS2 ports give redundant positioning, and a Septentrio mosaic-H adds moving-baseline yaw from two antennas — useful for compass-less vehicles.
Do I need an external antenna for ArduPilot GNSS?
For field work, yes. An active external antenna such as the Eview EV220 lifts the antenna above carbon-fibre frames and electronics, which block and detune internal patch antennas.
Which GNSS module gives centimetre accuracy with ArduPilot?
Both the ZED-F9P and the Septentrio mosaic-X5 deliver RTK centimetre accuracy. The mosaic-X5 additionally survives 40–60 dB of interference, making it the choice for industrial and inspection work.
The right GNSS module for ArduPilot depends on the mission: u-blox covers basic flight, and Septentrio covers everything that has to keep working near interference. Eview ships Septentrio-powered receivers, boards and antennas ready for ArduPilot integration — start with the Eview GNSS Receiver Box or explore the OEM module range for your next build.





