MAVLINKHUD
Setup · Track B · Cellular

4G/5G LTE Setup: MAVLink HUD & EasyDrone4G

Break the RF horizon. Configure an EasyDrone4G companion board so MAVLink HUD receives telemetry and video over the cellular network. Flying on a radio link instead? See the ELRS setup.

EasyDrone4G (the Uas4g5gLte program) is a ready-to-flash companion-computer image for Raspberry Pi and Radxa boards. It bridges your flight controller to the internet over a 4G/5G LTE modem, then carries MAVLink telemetry and H.264/H.265 video — and optionally RC control — across an encrypted VPN tunnel. MAVLink HUD is the ground station on the other end of that tunnel: where there is cell coverage, there is a link, regardless of how far away the aircraft is or what terrain sits between you and it. For the design rationale and flight-safety guidance, read the 4G LTE deep dive.

The Signal Path

Flight controller UART/USB Companion board (Pi / Radxa) LTE modem Internet Tailscale/ZeroTier VPN Your Android device MAVLink HUD

Telemetry travels as MAVLink UDP; video as an RTP H.264/H.265 stream. Both ride the same VPN, so the aircraft and the ground station only need any internet connection to find each other.

Read First — Three rules that will save you a reflash

  • Internet is required at every boot. The program's interface is downloaded from the cloud at startup (this is how it stays updated). No internet at boot = no interface. This is normal — you cannot fly in 4G mode without internet anyway.
  • Never press Activate without a confirmed internet connection. Test Internet Ping first. Activating offline fails activation and forces you to reflash the image and start over.
  • Enter your Wi-Fi SSID/password carefully. A wrong entry drops you off the hotspot with no way back except LAN — or a reflash.

Step 1: Choose a Companion Board

The board determines your video codec, camera count, and thermal headroom. This is the single most consequential choice for image quality on a bandwidth-limited LTE link.

Board family Codecs Cameras Notes
Radxa (Zero 3W/3E, Rock 4D, 5C, 5C Lite, 5B, 5B+) H.264 + H.265/HEVC 2 USB simultaneously (Rock 5B/5B+: 2 USB + 1 native HDMI-in = 3) Recommended. H.265 delivers ~2× the quality at the same bitrate — decisive over LTE. Runs 2–3 real-time streams comfortably.
Raspberry Pi 4 / CM4 Hardware H.264 only 1 CSI + 1 USB (multicam best at 720p each) Solid, cool-running. The strongest Raspberry option.
Raspberry Pi 5 / CM5 Software H.264 only 1 CSI + 1 USB Not recommended — the Pi 5 dropped hardware H.264. It runs hotter, draws more power, and performs worse than a Pi 4 for this workload.
Raspberry Pi 3 (all) / Zero 2W Hardware H.264 only CSI + HDMI-via-adapter only — no USB cameras Usable but limited. Pi Zero / Pi 2 (single-core) are not supported at all.

Bottom line

If video quality over cellular matters, pick a Radxa board for H.265. If you want the simplest, coolest Raspberry path, pick a Pi 4. Regardless of board, EasyDrone4G auto-detects and auto-configures the flight controller and 99% of USB cameras with a single button press.

Step 2: Choose a Modem

LTE bands matter far more than the model number. A modem can "work" and still be a poor choice if it lacks the bands your carrier uses in your area. Always confirm bands before buying.

Region Recommended band set Safe Huawei E3372 variant
Europe B1 / B3 / B7 / B8 / B20 (ideally + B28) E3372h-320 or E3372-325 "Brovi" (both include B28)
North America B2 / B4 / B5 / B12 / B13 / B66 (ideally + B71) Be careful — most E3372 lack B12/B13/B66/B71. Confirm your carrier's bands first.
Asia / MEA B1 / B3 / B5 / B7 / B8 / B28 + TDD B40/B41 (sometimes B38) E3372h-607 or E3372-325 (include TDD B40)

HiLink vs. Stick mode

  • HiLink (recommended): the modem is its own little router and appears to the board as a USB network adapter. True plug-and-play — no APN, no drivers. Huawei models with an h in the name (e.g. E3372h) are HiLink. Best choice for most users.
  • Stick (classic): the OS manages the connection, so you may need to set an APN (most carriers need only the APN, or nothing). More control and no double-NAT, but more technical. Select Modem Stick and it usually auto-configures.

You are not tied to a USB modem. EasyDrone4G only needs internet — from any source. On boards with Ethernet you can feed it from a LAN router, a Starlink terminal, or any device sharing internet; you can also join a Wi-Fi access point. A wide range of USB modems already works (anything that behaves like a USB network adapter — Quectel EG25-G/EC25, SIMCom SIM7600, etc.). Test yours in the program's Modem tab in both Stick and HiLink mode.

Gotcha: A "Brovi" E3372-325 on a Radxa Zero 3W/3E must be plugged in at least 20 seconds after boot — this modem does not reset cleanly on that board. This applies only to that specific combination; other boards and modems are fine plugging in anytime.

Step 3: Flash the SD Card

Download the image for your exact board from the Download section and flash it.

  1. Extract the archive first. The image is inside the downloaded archive — do not flash the archive itself, or the program will not run.
  2. Use Balena Etcher (recommended) to write the extracted image.
  3. Match the image to the board. Raspberry boards share one image across all models. Radxa images are board-specific, with two exceptions: the Rock 5C image also serves the 5C Lite, and the Rock 5B image also serves the 5B+. A Radxa image never runs on a Raspberry (or vice versa), and never on a different Radxa family.

SD card quality is the foundation

Use a reputable card (Kingston, Samsung, Sony; also SanDisk, TDK, Verbatim) rated U3 V30, ≥16 GB, preferably High Endurance or Industrial. Even a few corrupted bits cause erratic behavior. If a card misbehaves after a fresh reflash, discard it — this program is complex enough that cheap or partially-corrupted cards are not worth the headaches.

Step 4: First Boot & Reach the Interface

Decide how the board gets internet, then how you reach its web interface. You have three internet sources:

  • USB LTE modem — ideally plug it in before powering the board (it can also be added later; the interface appears as soon as the modem provides internet).
  • LAN — Ethernet cable from your router to the board's port (if it has one).
  • Wi-Fi — after you first reach the interface, enter your SSID and password and press SET; the board switches to your Wi-Fi within ~5 seconds and the Uas_Lte hotspot disappears.

To open the interface the first time:

  1. Connect to the board's Wi-Fi hotspot Uas_Lte (password 12345abcde) and browse to 192.168.77.1:3000/uaslte.
  2. If instead you used LAN or your own Wi-Fi, find the IP your router assigned to the Uas4g5gLte device and browse to <that-ip>:3000/uaslte (e.g. 192.168.2.33:3000/uaslte).
  3. Press Internet Ping to confirm connectivity. Only then press Activate.
Interface not up within 1 minute? (It normally appears in 15–20 s.) Check that you have internet, the modem is seated, and the LTE LED is solid — on Huawei modems a solid green/blue LED means connected; a blinking LED means it is not.

Step 5: Connect the Flight Controller

EasyDrone4G auto-detects and auto-configures any flight controller running ArduPlane firmware — no fiddling with device/port settings in Mission Planner. Connect over USB, or wire the GPIO serial UART (identical pinout on every supported Pi and Radxa board), then press Autodetect Fly Controller.

Board pin Signal Connect to flight controller
Pin 8TXFC RX
Pin 10RXFC TX
Pin 6GNDFC GND (required for telemetry)
Pin 2 / 45VOptional — not needed for telemetry

Telemetry can be sent to up to three ground stations at once (three IPs; use distinct ports such as 14550, 14551, 14552 if any share an IP). It is received in Mission Planner, QGroundControl, MAVLink HUD, and the program's own HUD. From the Cockpit tab you can also read and modify any ArduPlane parameter live — search by the first few letters, set a value, and confirm — and change flight modes, battery cell count/chemistry, and dynamic parameters (cruise airspeed, ground speed, loiter radius) in flight. Handle dynamic parameters with care; a bad value can crash the aircraft.

Step 6: Add a Camera

  • USB (easiest): ~99% of UVC cameras (MJPEG/H.264/H.265) are auto-detected and configured with one button press. Good picks with strong EIS stabilization: Hawkeye V6 HDR Lite / V6 PRO / Split V5, Hawkeye Thumb 4K, Runcam 6.
  • CSI (Raspberry only): all official Pi camera modules and Arducam variants (OV5647, IMX219, IMX477, IMX708, etc.). Radxa boards do not use CSI cameras here.
  • HDMI: on Raspberry, use a TC358743-based "HDMI-to-CSI-2" adapter (e.g. WaveShare) to feed any HDMI-out camera into the CSI port. On Radxa Rock 5B/5B+, use the native mini-HDMI input — no adapter needed.
Multicamera rules. Each stream is fully independent — settings on one do not affect the other. Never send two streams to the same IP and port; give each a distinct port, and stop a stream before starting a new one at the same endpoint. To view a USB camera directly in the browser Cockpit tab, set its tab's IP to 127.0.0.1 and port to 8020 and press Play there (it is then controlled from its own tab, not Cockpit). On Pi 4/5 running two 1080p streams, drop one to 720p — ideally run both at 720p. Radxa boards handle 2–3 simultaneous streams without this compromise.

Step 7: Establish the Range Link (VPN)

The VPN is what turns "two devices with internet" into a private point-to-point link — this is the essence of unlimited range. EasyDrone4G supports both Tailscale (recommended) and ZeroTier; you can run either or both.

  • Tailscale reconnects faster after interruptions and generally feels more reliable than ZeroTier — the preferred choice.
  • Direct vs. Relay: the VPN negotiates the best path, but your carrier and NAT decide whether a direct connection is possible. Direct latency is excellent (~20–30 ms). If it falls back to a relay, expect ~100–300 ms (typ. ~200 ms) — fine for long-range cruising, not for racing. Either way you stay in continuous contact regardless of distance.

Step 8: Receive in MAVLink HUD

With the VPN up on both ends, point EasyDrone4G's telemetry output at your Android device's Tailscale/ZeroTier IP. MAVLink HUD listens on the standard MAVLink UDP port 14550 with zero-touch configuration — no Connect button. Video arrives as an RTP H.264/H.265 stream. Within seconds the Artificial Horizon comes alive and "Waiting for Data" clears.

Latency note: cellular introduces variable latency, so treat the 4G control path as best for gentle, high-altitude, autonomous-adjacent flying — keep your RF link and the aircraft's own failsafes as the safety net. See the 4G LTE deep dive for the full flight-safety picture.

Prefer to receive video in a desktop GCS instead? EasyDrone4G streams to Mission Planner and QGroundControl as well. For the best quality/latency, install GStreamer and use native reception rather than the Mission Planner HUD pipeline:

gst-launch-1.0 -v udpsrc port=5604 buffer-size=3145728 \
  caps="application/x-rtp,media=video,clock-rate=90000,encoding-name=H265,payload=96" \
  ! rtpjitterbuffer latency=200 ! rtph265depay ! h265parse ! avdec_h265 \
  ! queue max-size-buffers=30 leaky=2 ! videoconvert ! autovideosink sync=false

For H.264, swap the three h265 tokens for h264. Change 5604 if you use a different port; tune latency= between 100–200 for the best trade-off.

Troubleshooting

  • No interface after boot? Confirm internet, reseat the modem, and check the LTE LED is solid (not blinking). The UI is cloud-loaded — no internet, no UI.
  • Activation failed? You likely pressed Activate without internet. Reflash the image and repeat, testing Internet Ping first.
  • Locked out after entering Wi-Fi? Wrong SSID/password disables the hotspot. Reach it via LAN, or reflash and re-enter correct details.
  • Weak or no signal on a good modem? Almost always a band mismatch — verify your carrier's LTE bands against the modem's supported bands.
  • Brovi modem on Radxa Zero 3W/3E dropping out? Plug it in only after 20 s post-boot.

This guide distills the official EasyDrone4G documentation. For video walkthroughs, the full modem list, and live help, see easydrone4g.com and their Discord.