Skip to main content
A single ground station hears the drone from one antenna at one place. That is enough most of the time. It is not enough when a hill is in the way, when the flight area is long and narrow, or when you want a second receiver in case the first loses line of sight. Distributed receive puts two or three ground stations around the flight area, links them over a small private mesh, and has them share the receive job. The drone transmits once. The mesh combines what each node heard into one clean stream.

When to deploy a mesh

A mesh helps when:
  • Terrain, buildings or vegetation block line of sight from a single ground point.
  • You want a redundant receiver.
  • You need coverage along a long corridor (a road, a fence line, a runway).
  • Only one node has an internet uplink but every node should reach the cloud.
You do not need one when a single ground station at the takeoff point sees the whole flight.

The shape

A mesh has exactly one receiver and one or more relays. A direct node never takes part in a mesh. Pick a role compares the three.

How the nodes find each other

Each relay and the receiver carry a second RTL8812EU or RTL8812AU adapter for the mesh; the first stays on the drone link. The mesh adapter runs batman-adv, a kernel mesh that handles routing, neighbour discovery and self-healing. The receiver advertises _ados-receiver._tcp over mDNS on bat0, and relays forward to the receiver that answers. Node-to-node range depends on the adapters, antennas, terrain and channel. Plan spacing from a site survey with your own hardware. See Local mesh (batman-adv).

How nodes pair

Pairing is local. No cloud service is involved.
  • The receiver opens a 60-second accept window from Mission Control (Mesh & RX) or the REST API and shows a six-digit join code.
  • Each relay joins with that code.
  • The receiver approves the relay, and an encrypted invite (mesh id, shared key, drone receive key) goes back over the mesh. It opens only under the join code, so a node that overheard the request cannot answer it.
  • The relay stores the invite, then changes its role to relay.
See Build a mesh.

What you do not manage

  • Routing. batman-adv handles hops, reroutes, new neighbours and dead-neighbour eviction.
  • Cloud uplink. If any node has Ethernet, a Wi-Fi client link or a cellular modem, the mesh can use it as the cloud gateway, and fails over to another when it drops.
  • FEC combine. The Reed-Solomon recovery runs at the receiver over fragments from every radio.
  • Serving the stream. Browsers, phones and the HDMI kiosk connect to the receiver exactly as they would to a single node.

What you do manage

  • Hardware. Every relay and the receiver need the second WFB-class adapter.
  • Channels. The drone link runs on 5 GHz; the mesh runs on 2.4 GHz (channel 1 by default, ground_station.mesh.channel), so the two radios do not interfere. Pick the mesh channel for the site’s 2.4 GHz conditions.
  • Roles. Decide which node is the receiver before you go out. It is also where Mission Control and the pilot connect.

Next steps

Build a mesh

Receiver, pairing, relays, verification.

Local mesh (batman-adv)

What runs underneath.
Last modified on October 11, 2026