# FPV Drone GPS Module Selection and Setup: BN-220, M10, Wiring, and Betaflight Config
A GPS module transforms your FPV drone from a purely visual flying machine into one that knows exactly where it is — enabling GPS Rescue, speed/distance telemetry, and coordinates in your OSD. With Betaflight 4.4+ GPS Rescue becoming increasingly reliable, adding a GPS module is one of the best upgrades you can make. Here’s how to choose and configure the right one.
## Why Add GPS to an FPV Drone?
| Feature | Without GPS | With GPS |
|———|————-|———-|
| Return to Home | ❌ | ✅ Automatic on failsafe |
| Speed Display | ❌ | ✅ Ground speed in OSD |
| Altitude | Barometer only (drifts) | ✅ GPS altitude + baro fusion |
| Distance from Home | ❌ | ✅ Displayed in OSD |
| Flight Path Logging | ❌ | ✅ Coordinates in Blackbox |
| Lost Drone Recovery | Visual search only | ✅ Last known coordinates |
## GPS Module Comparison: BN-220 vs BN-880 vs M10
| Module | Chipset | Satellites | Update Rate | Weight | Cold Start | Best For |
|——–|———|————|————-|——–|————|———-|
| **BN-220** | u-blox M8030 | GPS + GLONASS | 10 Hz | 4.5g | ~30s | Budget builds, lightweight |
| **BN-880** | u-blox M8030 | GPS + GLONASS + Compass | 10 Hz | 12g | ~30s | Navigation builds (compass) |
| **M10 (BN-220M)** | u-blox M10 | GPS + GLONASS + Galileo + BeiDou | 10 Hz | 5g | ~15s | Best all-around, fast lock |
| **BN-180** | u-blox M8030 | GPS only | 5 Hz | 2.5g | ~45s | Ultra-light, not recommended |
| **Matek M10Q** | u-blox M10 | GPS + GLONASS + Galileo + BeiDou | 10 Hz | 10g | ~15s | External antenna, best reception |
**Recommendation:** For most pilots, the **BN-220M (M10 chipset)** is the clear winner — it’s lightweight, locks satellites in under 15 seconds, and costs about $15-20. If you fly in challenging environments (dense trees, urban canyons), the Matek M10Q with its larger external antenna will hold lock better.
## Wiring: 4 Wires Are All You Need
Most GPS modules use a simple 4-wire connection to a free UART on your flight controller:
| GPS Wire | FC Pad | Notes |
|———-|——–|——-|
| VCC (Red) | 5V or 4V5 | Some modules need 5V, check specs |
| GND (Black) | GND | Any ground pad |
| TX (White/Yellow) | RX on free UART | GPS transmits → FC receives |
| RX (Green) | TX on free UART | Optional — needed for configuration |
**Critical:** Connect GPS TX → FC RX. The GPS talks TO the flight controller. The FC RX wire to GPS RX is only needed if you want to configure the GPS through Betaflight (advanced).
## Betaflight Configuration: Step-by-Step
### Step 1: Enable GPS in the Ports Tab
1. Find the UART your GPS is connected to in the **Ports** tab.
2. Under “Sensor Input,” select **GPS** from the dropdown for that UART.
3. Set the baud rate to **115200** (standard for u-blox modules) or **9600** if your module uses the older default.
4. Click **Save and Reboot**.
### Step 2: Configure GPS in the Configuration Tab
In the **Configuration** tab:
– Enable **GPS** for navigation features.
– Select protocol: **UBLOX** (most modules).
– Enable **Auto Config** — Betaflight will automatically configure the GPS module on boot.
– Enable **Galileo** satellites for EU flyers (better coverage in Europe).
### Step 3: Set Up GPS Rescue
Navigate to the **Failsafe** tab and configure:
“`
set failsafe_procedure = GPS-RESCUE
set gps_rescue_angle = 45 # Max tilt during rescue (30-60)
set gps_rescue_initial_alt = 50 # Climb this many meters first
set gps_rescue_descent_dist = 100 # Start descending at this distance from home
set gps_rescue_ground_speed = 750 # Speed in cm/s during rescue (750 = 7.5 m/s)
set gps_rescue_throttle_min = 1350 # Minimum throttle during climb
set gps_rescue_throttle_max = 1700 # Maximum throttle during climb
set gps_rescue_throttle_hover = 1275 # Throttle to maintain altitude
set gps_rescue_min_sats = 8 # Minimum satellites before rescue activates
set gps_rescue_allow_arming_without_fix = OFF # Require GPS fix before arming
“`
### Step 4: Add GPS Elements to OSD
In the **OSD** tab, enable:
– **GPS Speed** (km/h or mph)
– **GPS Satellites** (shows how many satellites are locked)
– **Home Direction** (arrow pointing to takeoff point)
– **Home Distance** (distance from takeoff in meters)
– **GPS Latitude/Longitude** (for DVR-based recovery)
– **Altitude** (GPS altitude, display option in the altitude element)
### Step 5: Configure OSD Warnings
In the OSD tab, under Warnings:
– Enable **GPS Rescue** warning — shows when rescue is active
– Enable **GPS satellites** warning — flashes when satellite count is low
## GPS Rescue Sanity Check (MANDATORY Before Relying On It)
1. **Wait for 8+ satellites** (10+ preferred) before takeoff.
2. Fly 100m out at moderate altitude.
3. **Disable your transmitter** to trigger failsafe.
4. Watch the quad climb, turn toward home, and fly back.
5. **Regain control** by re-enabling the transmitter.
> ⚠️ **Always test GPS Rescue at moderate altitude with clear LOS.** Don’t test it behind a mountain or building for the first time.
## GPS Troubleshooting
| Symptom | Cause | Fix |
|———|——-|—–|
| No satellites in OSD | Baud rate mismatch or TX/RX swapped | Set baud to 115200, swap TX/RX wires |
| 0 satellites, solid LED on module | GPS has power but no signal | Move outdoors with clear sky view |
| GPS Rescue flies wrong direction | Magnetic declination, compass error | Set `gps_rescue_use_mag = OFF` (rely on GPS heading) |
| GPS drops out mid-flight | Interference from VTX or ESC noise | Move GPS away from VTX antenna, add ferrite choke to GPS wires |
| Flashing red LED on module | No lock or low satellites | Wait for solid LED (lock acquired) |
> **Building a long-range FPV rig?** The [**UAVModel M10 GPS Module**](https://uavmodel.com) with the u-blox M10 chipset gives you quad-constellation coverage (GPS + GLONASS + Galileo + BeiDou), cold-start lock in under 15 seconds, and reliable 10Hz updates — everything you need for confident GPS Rescue.
A $15 GPS module pays for itself the first time it saves your quad from a failsafe flyaway. Install one — your wallet and your peace of mind will thank you.
