MAVLINKGPS

Technical Glossary

TECHNICAL GLOSSARY

"

"GPS Glitch" / "Bad Velocity"

When your HUD flashes GPS GLITCH, it does not necessarily mean the GPS signal is lost. It means the GPS is lying (or the EKF thinks it is).

"No GPS Fix"

The MAVLink GPS app is running, the "Radar" shows a fix, but Mission Planner (or the HUD) shows No GPS.

"PreArm: GPS Vertical Pos"

You are ready to fly. You arm the drone. The HUD rejects the command with:

A

Android 14 AltitudeConverter

Historically, Android only provided getAltitude() as WGS84 Ellipsoid height. Developers were forced to bundle massive binary grids (like EGM96) to calculate ...

Android Device Selection Guide

Selecting the right smartphone for an autonomous drone payload is a multidimensional optimization problem. You are balancing Weight (flight time/agility), Se...

B

Beacon Density & Geometry

Accuracy is driven by Angle of Arrival, mathematically described as Geometric Dilution of Precision (GDOP). If your APs are too close to each other or arrang...

D

Dealing with "Jitter"

GPS receivers are never truly still. Even if you glue the phone to a table, the calculated position will "wander" by a few centimeters every second...

Deconstructing Doze Mode

Many developers (and pilots) believe that simply showing a persistent notification (Foreground Service) makes an app immune to Android's power saving feature...

Dual-Frequency GNSS (L1/L5)

For indoor-adjacent or transition-zone flight (stadiums with open roofs, glass atriums), the physical GNSS chip in the smartphone is the primary bottleneck. ...

E

EKF3 "Rewind": Time Horizons

In a perfect world, sensors are instant. In the real world, especially with Android, latency is unavoidable.

G

GNSS Raw Measurements (RTK Feasibility)

A common question in the ArduPilot community: "My phone has L1/L5 GPS. Can I use it as an RTK Base Station for my drone?"

I

Inside the Fused Location Provider (FLP)

When you ask Android for ACCESS_FINE_LOCATION, you aren't just turning on a GPS chip. You are engaging a massive, multi-sensor fusion engine called the Fused...

L

LiDAR & Altitude Hold

While Wi-Fi RTT is excellent for Latitude/Longitude (X/Y), it is physically unreliable for Altitude (Z). In a stadium, ground reflections and poor anchor geo...

M

Mag Interference

ArduPilot relies on a Magnetometer (Compass) to know which way is North.

Managing Variance (horiz_accuracy)

When you look at Google Maps on your phone, you see a blue dot (your position) surrounded by a light blue circle. That circle represents the Horizontal Accur...

Mastering USB Permissions

One of the most frustrating aspects of using Android with custom hardware is the relentless permission popup:

Mounting the Phone

Unlike a standard GPS module which is light and insensitive to vibration, a smartphone is a heavy, complex sensor package. How you mount it directly affects ...

P

Position Solvers & Safety Gates

Ranging is only the first half of the equation. To fly, the Android app must solve for $(x, y, z)$ given the distances $(d_1, d_2, d_3, \dots, d_n)$ to $n$ A...

S

Safety First: The "Dead Man's Switch"

In standard GPS operations, a signal doesn't just "cut out" instantly. It fades. As satellites slip behind buildings or trees, the HDOP (Horizontal...

Serial vs. UDP

MAVLink GPS supports two methods of connecting to the Flight Controller: USB Serial and UDP Network.

Setting GPS_TYPE = 14

To tell ArduPilot to "listen" for GPS data coming from a MAVLink message rather than a physical UART wire, you must configure the GPS driver backend.

Solving the "N" Value

To send valid MSL altitude to ArduPilot, we must solve for $N$ (Geoid Undulation) locally on the phone.

T

The "Human Sensor" Analogy

To understand why "Virtual GPS" is difficult, we must understand how a drone perceives the world.

The "Indoor Problem" Explained

Global Navigation Satellite Systems (GNSS), whether GPS (USA), Galileo (EU), or GLONASS (RU), all suffer from the same fundamental weakness: Physics.

The "Seeding" Run

Google's "Network Fusion" relies on a massive, crowdsourced database mapping WiFi BSSIDs (MAC addresses) to physical global coordinates. This works...

The "Throttling" Problem

For the last decade, Android updates have had one primary goal: Battery Life. The biggest enemy of battery life is the GPS chip. To combat this, Android aggr...

The "Toilet Bowl" Effect

You switch to Loiter. The drone holds for a moment, then starts to circle. The circle gets wider and faster with every revolution. This is the Toilet Bowl Ef...

The GPS_INPUT Message (#232)

The GPS_INPUT message (ID 232) is the mechanism used to inject high-precision Android location data into ArduPilot. Unlike standard GPS modules which communi...

The ignore_flags Bitmask

In MAVLink GPS injection, sometimes "No Data" is safer than "Bad Data." The ignore_flags field is a bitmask that tells the Flight Control...

The Lumpy Earth: Ellipsoid vs. Geoid

A common "First Flight" problem with Virtual GPS is altitude error. You hover the phone at 1 meter, but Mission Planner reports -25 meters or +40 m...

The WiFi Scan Throttle

Users often notice that while outdoor GPS updates at 5-10Hz, the indoor "Network Fusion" position sometimes stutters or updates slowly (e.g., once ...

U

USB-OTG Cables & Power

USB communication requires one device to be the Host (Master) and one to be the Device (Slave).

V

Virtual GPS vs. Optical Flow: A Deep Dive

When GNSS signals (GPS/Galileo/BeiDou) are blocked by concrete or steel, drones lose their absolute positioning. To prevent a failsafe (switching to AltHold ...

W

WiFi RTT (802.11mc)

Standard WiFi positioning uses RSSI (Received Signal Strength Indication). It is notoriously susceptible to multipath fading and shadowing—a person standin...