Přeskočit obsah

Digital FPV

Summary

libdrone uses the HDZero Freestyle V2 for digital FPV video. The camera connects to the VTX via a 225 mm MIPI CSI-2 cable; the VTX encodes each frame in hardware (H.265, 1–2 ms) and transmits on 5.8 GHz; the HDZero Goggle 2 receives, decodes, and displays the stream with 4–8 ms total latency. Digital FPV provides sharper image quality than analog at the cost of cliff-edge failure behaviour — when the digital link degrades below the error-correction threshold, the display freezes or goes dark rather than degrading gracefully to snow. The HDZero Goggle 2's built-in analog receiver also supports the Core platform's analog FPV system, making it the correct goggle choice across the full platform family.


Concept

Analog vs digital FPV latency

Analog FPV transmits the composite video signal directly — the camera scans each line and the VTX transmits it immediately. Total latency is approximately 15–20 ms (one TV field time). Analog degrades gracefully: as signal weakens, noise appears as snow. The pilot can still orient the drone through moderate snow.

Digital FPV encodes each frame, packetises it, transmits it, receives it, error-checks it, decodes it, and displays it. HDZero uses dedicated hardware encoders and decoders that each contribute 1–2 ms. Total latency: 4–8 ms — roughly half that of analog.

The trade-off: digital either works (clean image) or it doesn't (freeze or black). There is no intermediate degraded state. This is why:

  1. VLOS must be maintained independently of the FPV feed — the pilot must always be able to locate the drone with their eyes, not only through the goggles
  2. The HDZero system uses diversity antenna reception — the goggle checks signal quality on multiple antennas per packet and selects the best
  3. The VTX transmit power is adjustable (25 mW / 200 mW / 800 mW) to match range requirements

MIPI CSI-2 cable handling

The MIPI cable between the HDZero camera and VTX carries high-frequency differential signals (hundreds of MHz clock rate). Its differential impedance must remain consistent along its length. Exceeding the cable's minimum bend radius changes the impedance, creating reflections that corrupt the video signal.

On libdrone, the 225 mm cable routes through the enclosed centreline channel in the Platform. Never route the MIPI cable in the power or signal channels. Never fold or crease the cable. When removing the GPS/camera bracket, allow the MIPI cable's 26 mm service loop to provide the movement — do not pull the cable taut.

MSP DisplayPort OSD

The FC sends OSD character data to the VTX via MSP DisplayPort over UART1. The VTX overlays this text on the video frame before transmission. The pilot sees: battery voltage, GPS satellite count, altitude, distance from home, flight mode, RSSI/LQ, and payload readings (if payload is active). The OSD is completely generated by Betaflight — the VTX is a passive renderer.


Reference

HDZero Freestyle V2 specification

Parameter Value
Input voltage 7–25V (use XL4015 buck converter output, 9–12V)
RF output 5.8 GHz, 25/200/800 mW selectable
Encoding H.265 hardware encoder, 1–2 ms
Latency (total) 4–8 ms end-to-end
Resolution 720p60 or 1080p30/60
Camera interface MIPI CSI-2 flat cable
FC interface MSP DisplayPort via UART1 at 115,200 baud
Mass 18 g (VTX) + 7 g (camera)

Antenna and diversity

The HDZero Goggle 2 has two receive antennas. On each received packet, the goggle compares signal quality from both antennas and uses the better one. This diversity reception reduces the impact of physical antenna orientation — as the drone rolls, one antenna will be better positioned than the other, and diversity switching maintains the link.

Antenna placement on the drone: the VTX antenna mounts at the rear of the Platform, pointing upward. It must not be obstructed by the GPS bracket, the battery, or the payload mast. Clear line of sight from antenna to goggle antenna is the primary requirement.

MIPI cable routing requirements

  • Route in the enclosed centreline channel only
  • Minimum bend radius: 30 mm
  • Service loop at bracket end: 26 mm (pre-configured in standard build)
  • Never crease, fold, or kink the cable
  • Replace if any visible damage to the cable body or connector

Procedure

VTX power level selection

Situation Recommended power
Indoor or proximity (<10 m) 25 mW
Standard outdoor, <200 m 200 mW
Extended range or obstacles 800 mW (check local regulations)

In EU: 25 mW EIRP is the legal limit for unlicensed 5.8 GHz transmission in most EU countries. Verify local regulations before using 200 mW or 800 mW outdoors. VTX power is controlled via the SA switch on TX16S (3-position).

Post-installation video check

  1. Connect battery. Wait for VTX to power up (~3 s after FC boot).
  2. In goggles: select HDZero input, scan for signal.
  3. Verify video is clear at close range. OSD elements should be visible.
  4. Move the drone 20 m away. Verify video remains clear.
  5. If image is clean at 20 m but corrupted at 1 m: VTX may be overdriving the receiver at close range at 200/800 mW. Switch to 25 mW for proximity work.

Rationale

Why HDZero and not DJI O3 or Walksnail

At the time of V2.4.6, HDZero provides the lowest latency in the digital FPV market. More importantly, the HDZero Goggle 2 has a built-in analog receiver — it works with both the Core (analog) and Pro (digital) platforms using the same goggle. This makes it the correct choice for a platform family that spans both technologies. DJI O3 and Walksnail use proprietary protocols with no analog fallback, and DJI specifically has a history of firmware changes that brick third-party equipment — a dependency risk incompatible with the libdrone open-platform philosophy.


Connections

requires: [] related: - crsf-protocol - power-rail-architecture - power-signal-separation - gps-antenna-placement - pro-variant leads_to: - piloting-progression