Skip to content

Operate

Day-to-day operation of tl-starnav: provision the aircraft onto your private network, bring up the link, read the dashboard, and fly. Complete Install and the Mandatory Update first.

Do the mandatory update before your first flight

The pre-first-flight update brings your aircraft and GCS to a known-good, mutually-compatible version. See Mandatory Update.

Pre-flight checklist

  • Aircraft is signed in to your private network (one-time per device — see First-run sign-in below).
  • Aircraft is bound from the GCS and shows online.
  • Bridge link is up and healthy — transport state, round-trip time (RTT), and loss within range.
  • Navigation reports a position and the Sending State card is satisfied.
  • Both ends are on the current release (post mandatory update).

First-run sign-in

A brand-new aircraft is not yet on your private network, so the first thing to do is sign it in. This is a one-time-per-device step — once done, the aircraft stays joined across reboots and updates with no re-authentication.

Because a fresh aircraft isn't on the private network yet, you reach its UI over its own local LAN. Connect a device to the aircraft's LAN and open its out-of-box address over https:// (shown on the Install page; it can be changed later under LAN Settings).

First visit shows a browser security warning

The aircraft serves its UI with a self-signed certificate on your local network, so the first visit shows a browser security warning. Trust the device once, as described in the Install guide; after that there is no per-visit warning.

  1. On the aircraft's own UI, a first-run sign-in popup appears while the aircraft hasn't joined the network yet.
  2. Click "Sign in to Tailscale". Your browser opens the standard sign-in page — approve the device exactly as you would when adding any machine. There is no key to copy or paste.
  3. Once approved, the aircraft joins automatically and the popup unlocks.

Self-hosted control server (optional)

To use a self-hosted control server instead of the default, open "Advanced: control server" in the popup and enter its URL before clicking the sign-in link. Switching control servers signs the device out first.

Until the aircraft has joined, the Binding tab and the bridge/transport dashboard panels are intentionally locked behind a placeholder — they need the private network to do anything useful.

Bind the aircraft

Binding pairs a GCS with an aircraft and brings up the bridge between them.

  1. On the GCS, open the Binding tab.
  2. Click Scan Network to discover aircraft on your private network.
  3. Each aircraft appears with its name, address, and connection mode (direct peer-to-peer, or relay).
  4. Click Bind next to the aircraft you want. Enter the aircraft's password if prompted (first time only).
  5. A setup log streams live and closes itself when the run finishes (typically 30–60 seconds).
  6. The Dashboard shows LINKED when the bridge is established.

To switch aircraft, simply bind a different one — the previous binding is replaced automatically. To disconnect, click Unbind on the Binding tab. Unbinding preserves the aircraft for rebinding later.

  1. Power the aircraft and confirm Starlink connectivity.
  2. The GCS app and aircraft establish the private network connection automatically.
  3. The Layer-2 bridge comes up: your GCS LAN and the aircraft LAN behave as one segment. Mission Planner and payload streams connect through it as if the aircraft were local.

Read the dashboard

The Dashboard tab is the primary in-flight monitoring view. Labels adapt to whether you're looking at the GCS or the aircraft.

Bridge / transport status

This is your at-a-glance link health.

What to look for Healthy
Connection bar LINKED (with connected duration)
Transport state connected (green)
RTT Steady round-trip time consistent with your satellite path
Loss Low; brief spikes during Starlink handoffs are normal
Reconnects Stable; an occasional bump on a handoff is expected — rapid climbing is not
Heartbeat age Recent (well under the alarm threshold)

The bridge recovers from drops automatically. Starlink typically causes short drops every few minutes; the transport rides through them without stalling unrelated traffic. The Bridge Link Quality panel shows an outage timeline and recent frame-loss history so you can tell a true link outage from traffic shed under momentary overload. A separate Starlink Link Quality panel shows drop events reported by the dish itself (matching what you'd see in the Starlink app).

Traffic charts and time windows

Traffic charts show throughput across the bridge and the WAN. Use the time window buttons (5m / 15m / 1h / 6h) to zoom. You can adjust how often the panels refresh under Settings → Dashboard → Refresh period (0.5 / 1 / 2 / 5 s); the choice is saved per browser.

The Starnav tab — also surfaced on the Dashboard — shows navigation state in four cards:

  • Process — whether navigation is running and how fresh the data is.
  • Starlink Position — latitude, longitude, altitude from the dish, with a position-confidence (uncertainty) reading. Green means within the quality limit; yellow means above it.
  • Aircraft / EKF — the autopilot's estimated position and attitude, GPS status, and whether the EKF is using Starlink-derived position.
  • Sending State — whether position aiding is being forwarded to the autopilot:
State Meaning
SENDING (green) Quality gate passed — positions are being forwarded
BLOCKED (yellow) Uncertainty too high — waiting for a stable position
STALE (red) Dish position hasn't changed — possible dish issue

tl-starnav follows an "always send, never lie, let the EKF decide" philosophy: it reports honest uncertainty and only forwards position aiding once the quality gate is satisfied.

Logs

Real-time logs from both the GCS and the aircraft stream in the Logs section. Use the level filter (error / warn / info) to focus. On the aircraft, Flight Logs capture position data per update for post-flight download and analysis.

Map and HUD

Map

The Map tab shows a satellite view with the aircraft's position:

  • Aircraft marker — the autopilot's estimated (EKF) position.
  • Starlink position marker — raw position from the dish (may differ from EKF).
  • GPS marker — onboard GPS position, when available.
  • Uncertainty circle — confidence area around the Starlink position.
  • Trail — recent position history showing the flight path.

On the GCS, map data is relayed from the aircraft, so there may be a small amount of latency versus the aircraft's local view.

HUD

The HUD tab is a 3D cockpit-style situational view with photorealistic 3D terrain.

  • Press V to cycle camera modes: First-person, Third-person, Follow, and Free-look. In third-person and follow, drag to rotate around the aircraft and scroll to zoom.
  • Flight instruments include a pitch ladder and horizon, a flight-path marker (where the aircraft is actually going), speed and altitude tapes, a heading tape, and a status bar (EKF source, armed state, flight mode, GPS satellites).
  • The gear icon (top-left) opens HUD tuning — altitude datum (MSL / REL / TER), units (metric / imperial), and display options. Settings persist in your browser.
  • Starlink satellites are visualized overhead; the serving satellite is highlighted. A wind indicator shows head/tail and crosswind components.

HUD bandwidth

The 3D view loads photorealistic tiles on demand and needs internet access on the viewing device. Over the bridge, tiles may load more slowly due to satellite-link latency. The live attitude data itself is tiny.

Configure the aircraft LAN

When the aircraft is a ModalAI VOXL2, it acts as the full router for its LAN — it serves DHCP, is the gateway for downstream devices, and (optionally) provides internet access through the Starlink uplink. Configure it from the LAN Settings card at the bottom of the Settings tab.

The LAN Settings card appears on the aircraft's own UI and on the GCS once the aircraft is bound, so you can manage the aircraft LAN from the ground.

Field What it does
LAN interface Which physical port joins the aircraft LAN. The selection is pinned to the port so it survives reboots. The active Starlink (WAN) port can't be selected.
Gateway IP This device's LAN address, handed to clients as their default gateway. Private addresses only.
Subnet mask Standard dotted-quad mask; an invalid mask disables Save.
DHCP server Enable or disable the built-in DHCP server for LAN devices.
DHCP range start / end Address pool for leases. Must sit inside the LAN subnet.
Lease time e.g. 12h (number + s/m/h/d).
Internet access on LAN Default on: LAN devices reach the internet via the Starlink uplink. Turn off to isolate the LAN — bridge traffic to the GCS is unaffected.

Save & Apply takes effect immediately, and the same settings are re-applied automatically at every boot.

Set up the LAN before you fly

The LAN Settings card is fully usable before binding, so you can configure the aircraft network first, then sign in and bind.

What the dashboard shows: before vs after binding

On a fresh aircraft with no GCS yet, all tabs are available on the aircraft's own UI:

  • The Dashboard shows the bridge transport down — the aircraft deliberately waits to be bound by a GCS.
  • The LAN Settings card is fully usable, so you can configure the aircraft LAN first.
  • On the GCS, navigation, map, HUD, and settings show a "No Aircraft Bound" placeholder until you bind.

Once bound:

  • The Dashboard shows the normal bridge picture — transport state, RTT/loss, traffic, and link quality.
  • On the GCS, the Starnav, Settings, HUD, and Map tabs switch from the placeholder to live aircraft data, relayed over the bridge.

Fly

  • Operate the aircraft through your normal GCS / Mission Planner workflow over the bridged link.
  • Keep an eye on link health and navigation quality on the Dashboard.
  • If the link degrades, the transport recovers automatically; the dashboard shows reconnects and outages so you always have ground truth.

After flight

  • Review the flight logs in the app.
  • Confirm there are no pending updates before the next sortie.