Forge
Bench Guides

OpenHD — Open-Source Digital Video Link

From hardware sourcing to first HD video link with MAVLink telemetry passthrough. Wifibroadcast-based — no proprietary hardware required.

LIVE Video Link MAVLink Moderate 2–4 hrs $30–80 BOM GPL-3.0

What You're Building

Two nodes — Air and Ground — each running OpenHD on a Linux SBC or x86 machine. Both nodes have a commodity RTL8812AU WiFi adapter operating in monitor/injection mode (wifibroadcast). The air node captures CSI camera video, encodes it, and injects raw 802.11 frames into the air. The ground node captures all frames promiscuously, decodes video, and streams telemetry to QOpenHD and any connected MAVLink GCS.

[FC] ──UART── [Air SBC] ──wifibroadcast──▶ [Ground SBC/PC] ──UDP 14550── [QOpenHD / Mission Planner / Buddy] │ │ [CSI Cam] [Live HD Video]
No network router. No association. No ACK. Video is one-way broadcast with FEC — signal degrades gracefully at range instead of dropping off a cliff. Telemetry and settings are bidirectional. OpenHD also supports low-latency RC control via USB joystick over the same link, and provides link encryption with verification for security.

Hardware BOM

Tier 1 — Minimum ($30–80)

ItemNotes~Cost
Raspberry Pi Zero 2 WAir unit. Not Zero 1 — unsupported$15
2× ALFA AWUS036ACH or ASUS USB-AC56RTL8812AU, 500mW, 5.8GHz — one air, one ground$20–30 each
CSI camera (Arducam or RPi HQ)Must be on OpenHD supported camera list$25–50
22-pin type B CSI cablePi Zero uses this, not the standard 15-pin$3
Dedicated 5V/3A BEC × 2One for WiFi adapter, one for RPi — separate rails$5 each
Laptop (x86) with SecureBoot offGround station — faster CPU = lower decode latency
Fast USB stickGround station boots from this$10

Tier 2 — Recommended (CM4 + Rock5)

ItemNotes~Cost
RPi CM4 4GB eMMCAir — better thermal, dual camera, lower latency$60
Ochin CM4 carrier boardCompact, designed for OpenHD$35
Radxa Rock 5BGround — H.265 HW decode, lowest latency GS option$80
2× ALFA AWUS036ACHRTL8812AU, 500mW$30 each
Arducam Skymaster or IMX477Best image quality for OpenHD builds$40–80

Supported WiFi Chipsets

RTL8812AU (recommended for new users — STBC/LDPC, 500mW, proven reliable), RTL8814AU (4 antennas), RTL8812BU (lower power, ~40–80mW), BLM8812EU (newest, best performing, 800mW+ — no FCC/CE cert, use at own risk), RTL8811AU (single antenna — no STBC/LDPC). For first builds get 2× ASUS USB-AC56 (RTL8812AU). Experienced users wanting best performance: BLM8812EU.

Step-by-Step Setup

1

Flash Air Image

Download the latest Evo image for your SBC from openhdfpv.org/downloads. Use the OpenHD ImageWriter tool (recommended) to flash to SD (Pi Zero 2) or eMMC (CM4 via Ochin — hold button while connecting power to enter flash mode). First boot takes several minutes with multiple reboots. Normal.

CM4/Ochin: Flash is very slow due to CM4 eMMC limitations. Do not disconnect — it will brick the device.
2

Flash Ground Image

For x86: flash the x86 image to a fast USB stick. Disable SecureBoot in BIOS. Set USB as first boot device. QOpenHD starts automatically. For Rock5: flash per standard Radxa process, OpenHD starts on boot.

3

Wire the Air Unit

Solder the WiFi adapter — do not rely on USB plugs. Vibration will disconnect any plug-in connection mid-flight. Remove the USB connector and solder directly to the SBC's USB power and data pads.

Power: Two separate BECs — one for the SBC, one for the WiFi adapter. The adapter draws more current than the SBC can supply via USB.

FC wiring: Connect FC MAVLink UART to SBC UART. Baud rate must match on both ends (default 115200).

FC TX ──► SBC RX FC RX ◄── SBC TX FC GND ── SBC GND ← required
4

Configure the Link

Open QOpenHD on the ground station. The OpenHD logo opens the main menu; the red circle opens the sidebar. Go to OPENHD → LINK/QUICK.

SettingValueNotes
Frequency5.8GHzCleaner than 2.4GHz. Cannot change while armed.
STBCON (both ends)Must match air/ground. Off = no link, not degraded.
LDPCON (both ends)Same — both ends or neither.
FC_UART_BAUDMatch FC configAIR tab → FC_UART_BAUD
CAMERA_TYPEMatch physical camAIR CAM 1. Reboot required after change.
Air RecordingAUTOStarts recording on arm. Air-side storage only.
5

Verify Link

In QOpenHD → STATUS tab, both AIR and GROUND should show LIVE. If only one shows: check adapter power, confirm same frequency on both ends, verify STBC/LDPC match.

Video but no telemetry: UART baud rate mismatch or wiring error. Set FC_UART_BAUD to match your FC's telemetry port.

Black screen "rebooting camera": Wrong CAMERA_TYPE. Fix in AIR CAM 1 menu, wait for reboot.

6

Connect MAVLink GCS

OpenHD auto-forwards the MAVLink stream over UDP on the ground station's local network. Default port: 14550.

Mission Planner: Connection → UDP → 14550
QGroundControl: Comm Links → UDP → 14550
Buddy/Wingman: Same — connect as second UDP client. Kalman estimator smooths stream normally regardless of source.

Integration Patterns

OpenHD + GHST/ELRS (Dual-Link — Recommended)

OpenHD handles HD video and MAVLink telemetry. GHST or ELRS handles primary RC control with its own dedicated link. The FC connects to both simultaneously — telemetry UART to OpenHD, RC input from the RC receiver. Best of both: high-quality video at range + reliable low-latency RC control. If the OpenHD link degrades, you still have full control authority.

OpenHD + Meshtastic (Backup Comms)

OpenHD as primary video + telemetry. Meshtastic LoRa node on each craft and at GCS as a fallback telemetry mesh for emergency commands when OpenHD degrades or fails. See the Mesh Networking guide for the dual-link pattern.

OpenHD vs. Commercial Links

SystemCost (air unit)Range (stock antennas)Range (high-gain + tracker)LatencyOpen source
OpenHD (RPi)~$301–3km10–20km+100–150msYes — fully
OpenHD (Rock5)~$801–3km10–20km+60–100msYes — fully
OpenHD (custom HW)TBA2–5km10–20km+~40–60msYes — fully
OpenHD (x86 ground)Same as air unitLowest decode latencyYes — fully
DJI O3~$229~10km (O3 Pro)N/A (integrated)~31ms (FHD)No
Walksnail Avatar~$99–149~4kmN/A~22msNo
HDZero~$99~3–5kmN/A~8ms (race)Partial

Antennas — This Is Where Range Actually Comes From

Stock antennas will NOT give you 20km. The stock dipoles that come with RTL8812AU adapters are 2–3 dBi omni antennas. With stock antennas on both ends, expect 1–3km reliable range. The 10–20km numbers you see from long-range flyers come from high-gain directional antennas on the ground, often paired with antenna trackers.

Air Side (on the drone)

Keep it omnidirectional — the drone changes orientation constantly. Recommended:

AntennaGainPatternNotes
Stock dipole2–3 dBiOmni (donut)Fine for <2km. Replace for anything serious.
Maple Leaf / Cloverleaf (RHCP)2–3 dBiOmni, circular polarizedBetter multipath rejection than linear dipole. Good general-purpose upgrade.
Pagoda / Moxon (RHCP)3–5 dBiOmni / semi-directionalSlight gain improvement. Popular in FPV community.
Air side rule: Stay omnidirectional. If you use a directional antenna on the drone, you'll lose link when the drone banks or turns away from you. Match polarization on both ends — vertical/vertical or horizontal/horizontal. Cross-polarization costs 3dB (half your power). Circular polarization (RHCP) works for multipath rejection but most OpenHD community setups use linear vertical since the directional ground antennas are linear.

Ground Side (GCS / goggles)

This is where you add gain. Directional antennas on the ground pointed at the drone give you the range. The tradeoff: higher gain = narrower beam = you need to track the drone.

AntennaGainBeamwidthRange (paired with omni air)Needs tracker?
Stock dipole2–3 dBi360° omni1–3kmNo
Patch panel (flat)8–12 dBi~60–90°5–8kmNo (if drone stays in front)
Yagi10–14 dBi~30–50°8–15kmRecommended
Panel array (2x2 / 4x4)14–18 dBi~20–30°10–20kmYes
Helical12–16 dBi~30–40°10–20kmYes
Grid / dish18–24 dBi~10–15°20km+Yes (must track)
The math: Every 6 dB of antenna gain doubles your range. Stock dipole (3 dBi) → patch panel (12 dBi) = +9 dB = roughly 2.8× range. Stock dipole → dish (24 dBi) = +21 dB = roughly 11× range. That's how 2km becomes 20km.
From OpenHD's own range calculations (openhdfpv.org/hardware/antennas, Rx sensitivity -93dBm, 10dB link margin):
• Maple 5dBi omni / Maple 5dBi omni @ 5.2GHz 200mW = 2.9 km
• Maple 14dBi flat panel / 5dBi omni @ 5.2GHz 200mW = 8.2 km (needs tracker)
• 17dBi planar / 5dBi omni @ 5.8GHz 500mW = 16.4 km (needs tracker)

OpenHD FAQ: "1–3km is easy to achieve, even with low power WiFi cards and the antennas that come with them. Carefully chosen WiFi cards, antennas, and optionally an antenna tracker should put 20km+ within reach."

Specific Antennas Used by the OpenHD Community

AntennaGainTypeBandUse
OpenHD Maple Leaf PCB (DIY)3 dBiOmni, vertical5.2–5.3 GHzAir + ground (starter)
Maple FY-05A Flat Panel14 dBiDirectional, vertical5.8 GHzGround (with tracker)
Maple Planar Antenna17 dBiDirectional, vertical5.8 GHzGround (long range + tracker)
Interline IP-G23-F5258-HV23 dBiPanel, directional5.2–5.8 GHzGround (extreme range + tracker)
23dBi Flat Panel (AliExpress)23 dBiFlat panel, vertical5.8 GHzGround (extreme range + tracker)
Aomway Biquad Dual Diamond~10 dBiDirectional, vertical5.8 GHzGround (compact directional)

Antenna Trackers

Once you're using a directional ground antenna with >10 dBi gain, the beam is narrow enough that you need to physically point it at the drone. An antenna tracker does this automatically using the drone's GPS telemetry.

TrackerTypeProtocolApprox CostNotes
u360gtsPan/tilt servoMAVLink / LTM / GPS$30–60 DIYOpen-source, Arduino-based. Most popular in long-range FPV community. Uses MAVLink GPS from telemetry stream to compute bearing.
YAAPU AATPan/tilt servoMAVLink via ELRS/Crossfire$40–80 DIYRuns on OpenTX/EdgeTX radio. Uses Yaapu telemetry script to drive servos from GPS position data received via RC link.
Commercial trackerPan/tilt motorizedVarious$200–500Pre-built units. Less common in OpenHD builds — most long-range flyers DIY their tracker.
How broadcast systems get those impressive ranges: The same principle used in TV broadcasting — a high-power omni transmitter on the air side, and a high-gain directional antenna on the ground pointed at it. OpenHD is literally wifibroadcast — one-way injection of video frames. The ground station's directional antenna with a tracker is the "satellite dish on your roof" equivalent. Stock antennas are the "rabbit ears on the TV" equivalent. Same signal, vastly different reception.

Dual Antenna Setup (Recommended for Long Range)

Best practice: use TWO ground antennas with diversity reception. One omni (for nearby/all-around coverage) + one directional on a tracker (for range). OpenHD supports antenna diversity — it picks the best signal per packet. This gives you reliable close-in performance AND long-range capability without switching.

Gotchas

Solder the WiFi adapter. USB plugs vibrate loose. No exceptions.
Two separate BECs. WiFi adapter on its own power rail. Brownouts on TX will drop the link.
STBC/LDPC must match on both ends. Mismatch = no link. Not degraded — just gone.
Don't change frequency while armed. Link drops during change. Set before takeoff.
Don't mix WiFi chipsets for diversity. If using two ground adapters, use the same chipset and vendor. Mixing RTL8812AU with RTL8812BU (or different brands) causes issues.
RTL8811AU users: Single antenna — cannot use STBC/LDPC. Leave both off on both ends.
BLM8812EU: Best performing chip currently (800mW+). No FCC/CE cert — import and use at your own risk outside certified regions.
Dual camera + PiP: OpenHD supports two CSI cameras simultaneously with picture-in-picture on the ground station. Useful for forward + downward views. Configure in QOpenHD settings.

Resources