MAVLINKHUD

4G LTE Support: Cellular Telemetry, Video, and Control with EasyDrone4G

July 20th, 2026
Every RF link has a horizon. Whether you fly ELRS, a 5.8GHz VTX, or a digital system, there is a distance at which the signal degrades and your ground station goes dark. MAVLink HUD now supports an entirely different transport: 4G LTE cellular, via an EasyDrone4G companion board. Where there is cell coverage, there is telemetry and video — regardless of how far away the aircraft is or what terrain sits between you and it.

What This Actually Is

EasyDrone4G is companion-board software for a small single-board computer — a Radxa Zero 3W or Raspberry Pi class device — that rides on the aircraft. It connects to your flight controller's TELEM port over UART, takes a camera feed, and pushes both out through an LTE modem. Phone and board join the same private VPN, so your Android device sees the drone as an ordinary network peer.

From MAVLink HUD's perspective the aircraft becomes two UDP streams:

  • Telemetry on port 14550: standard MAVLink 2, exactly as it arrives from any other link. Attitude, position, battery, GPS fix, flight mode, arming state, and STATUSTEXT warnings all populate the HUD as usual.
  • Video on port 5604: an RTP stream carrying H.264 or H.265, rendered as the background layer beneath the instrument overlay.

Nothing about the HUD changes. The artificial horizon, the offline vector map, the audio callouts, and the XR glasses output all behave identically — they simply no longer care whether the data arrived over ELRS, USB, or a cell tower three counties away.

Two Modes: Watch, or Fly

There are two ways to use this link, and which one you are in is determined entirely by whether a transmitter is plugged into your phone.

Passive monitoring is the default. With nothing but the phone, MAVLink HUD is a pure ground station: telemetry and video flow in, the instruments come alive, and the app sends nothing back to the aircraft. This pairs naturally with autonomous missions, where the drone is flying a planned route under its own control and what you need from the ground is visibility rather than stick input, and with long-range observation flights where a conventional video downlink dies well before the control link does. Your normal RF radio remains the control link.

Full control is the other mode. Plug an EdgeTX or OpenTX radio — a RadioMaster or Jumper handset — into the phone over USB-OTG, and MAVLink HUD reads its sticks and switches and relays them to the aircraft as RC_CHANNELS_OVERRIDE over the same LTE link that is already carrying video and telemetry. The phone becomes the bridge between your transmitter and a drone that may be miles beyond RF range. There is no separate RF path in this mode: the cellular link is the control link. This has been flown against a real RadioMaster TX15 with all sixteen channels confirmed on the wire.

There is no button to press and no mode toggle in the UI. Override engages the moment a supported transmitter is present and releases the moment you unplug it, so the app's behaviour always matches the hardware in your hands. When it is live, the four primary sticks are mirrored as soft glowing cues along the edges of the screen — throttle and yaw along the bottom, pitch across the top, roll on the sides — so you can confirm at a glance that the aircraft is receiving what you are commanding.

Be clear-eyed about what the control mode is. Sending stick input over a cellular network means variable latency, carrier-dependent jitter, and no delivery guarantees — a fundamentally different safety problem than an RF control link with a predictable failure envelope. Cellular control is best suited to gentle, high-altitude, autonomous-adjacent flying where a momentary lag is a non-event, not to anything that demands tight, low-latency stick response. Treat your RF link and the aircraft's own failsafes as the things that keep it safe, and treat the cellular control path as what it is: a remarkable convenience that you should characterise thoroughly on the bench and in low-risk conditions before you lean on it.

The Video Path

We built the receiver natively rather than embedding a general-purpose media framework. Video arrives as raw RTP — no RTSP handshake, no container, no negotiation — so the entire receive path is a jitter buffer, a depacketizer, and Android's hardware video decoder. That is roughly a thousand lines of Java instead of a 1GB SDK and a JNI layer, and it keeps the whole pipeline debuggable.

  • Automatic H.264 / H.265 detection. There is no SDP exchange on this link and both codecs use the same dynamic payload type, so the app identifies the codec from the video bitstream itself. Radxa-class boards typically encode H.265, Pi-class boards H.264. You do not configure this, and if the board reboots into a different encoder the app follows it mid-session.
  • Built for a lossy link. Cellular reorders occasionally and drops packets routinely. A bounded reorder buffer restores sequence and gives up on a gap after 50ms rather than stalling, discarding the damaged frame instead of feeding the decoder a torn one.
  • Latency over smoothness. Decoded frames are displayed the moment they emerge rather than scheduled against their timestamps, and the input queue is deliberately shallow — a decoder that falls behind drops frames instead of accumulating a growing delay. For a live feed, the newest frame is the only one worth showing.
  • Hardware decoded. Video goes straight to the GPU surface. The telemetry overlay is drawn separately at 60FPS on top, so a grainy or stuttering video link never degrades the instruments.

The Control Path

When a transmitter is attached, the outbound side is as deliberate as the receive side. EdgeTX and OpenTX radios present themselves as a standard USB HID joystick, so no special driver or companion app is needed on the phone — the radio simply appears as an input device.

  • Sticks in, override out. The app reads the transmitter's axes and switches and emits them as RC_CHANNELS_OVERRIDE at 25Hz, MAVLink 2 framing so all sixteen channels reach the aircraft rather than the eight that v1 framing silently caps you at. Between transmitter updates the channels are interpolated, so the aircraft sees a smooth stream rather than a stair-step.
  • It respects the aircraft's tuning. On connect it syncs the vehicle's RC parameters — channel min/max/trim and reverse — so a stick maps to the same PWM the flight controller would see from a directly bound receiver. It does not double-apply reversal; ArduPilot handles that downstream for override channels exactly as it does for RF.
  • Known radios, not guesswork. Supported transmitters are matched from a profile registry rather than blind runtime discovery. Because EdgeTX ships one fixed HID descriptor, a single canonical profile covers the whole RadioMaster / Jumper family — TX15, TX16S, Pocket, Boxer — with unrecognised devices falling back to axis discovery.
  • Presence is the switch. There is no arming step inside the app for the link itself: plugging the radio in enables override, unplugging it disables it. The aircraft's own failsafe governs what happens if the cellular link drops mid-command, which is exactly where that decision belongs.

Supported Radios

Because the mapping keys off the shared USB HID descriptor that EdgeTX and OpenTX present, one canonical profile covers essentially every handset running that firmware. If your radio flashes EdgeTX or OpenTX and exposes a USB joystick mode, it works — the list below is the hardware this generalises to, not a set of individually hand-tuned cases.

  • RadioMaster: TX16S, TX15, TX12, MT12, Boxer, Pocket, Zorro.
  • Jumper: T-Pro, T20, T-Lite, T18, T16.
  • FrSky (running OpenTX/EdgeTX): Taranis X9D, X9D Plus, QX7, X-Lite, Horus X10, Horus X12.
  • FlySky (running OpenTX): Nirvana NV14, EL18.
  • Any custom or DIY radio running OpenTX or EdgeTX firmware.

The one radio physically flown and verified end-to-end is the RadioMaster TX15, with all sixteen channels — gimbals, sliders, and switches — confirmed on the wire. Anything not on this list falls back to generic axis discovery, which handles the four primary sticks on most standard USB gamepad-style controllers even without a dedicated profile.

Data Usage

Cellular data is metered, and the codec choice matters more than anything else. An H.265 board runs roughly 1.0–1.5 Mbps, or about 450–700 MB per hour of flight. H.264 runs closer to 2.0–3.0 Mbps, or 900 MB–1.3 GB per hour. A standard consumer data SIM handles this comfortably; the app reports live bitrate, frame rate, resolution and packet loss so you can see exactly what the link is costing you.

Why This Matters

The interesting consequence is not raw distance. It is that terrain stops mattering. RF links fail behind ridges, buildings, and tree lines. A cellular link routes through infrastructure that was built specifically to cover those places. Flying a valley, working the far side of a hill, or operating in a built-up area no longer means accepting that your video and telemetry will drop out at the worst moment.

It also decouples the ground station from the field. The phone does not have to be near the takeoff point, or hold an antenna, or have line of sight to anything.

Two things worth stating plainly. Cellular coverage at altitude is not the same as coverage on the ground — networks are engineered to point downward, and you should expect to characterise your local coverage rather than assume it. And regardless of how good the downlink is, beyond-visual-line-of-sight operation is a regulatory question, not a technical one. This feature does not change what you are permitted to do in your airspace. Check your local rules and keep flying within them.

Getting Started

You will need a companion board running EasyDrone4G, an LTE modem and data SIM, a camera, and a VPN tying the board and your phone together. Wire the board to a spare TELEM port, point the board at your phone's VPN address, and set the same address as the Target IP in the HUD's connection widget. Telemetry appears on 14550 and video on 5604 with no further configuration — the app works out the codec on its own.

That much gives you the passive monitoring station. To fly over the link as well, connect an EdgeTX or OpenTX radio to the phone with a USB-OTG cable; the app detects it, syncs your aircraft's RC parameters, and begins relaying your sticks automatically. Nothing else to configure.

Both are in the current release. As always, test on the bench before you trust it in the air — and with the control path especially, characterise the link in low-risk conditions before you rely on it.