Skip to content

Live Diagnose a Zip with Hawkeye

published HW: EV2HW: EV3

This issue may also be described as live IPC, Hawkeye live, bench testing, smartcart Hawkeye, Zip IPC visualization, real-time diagnostics, or Tailscale Hawkeye.

Hawkeye is a native desktop visualization tool for inspecting ZipIPC messages in real time. It can connect directly to a Zip’s IPC server over TCP to display live telemetry, time-series plots, and 3D visualizations — useful for diagnosing communication issues, verifying sensor data flow, or debugging service behavior on the bench.

For a browser-based alternative that connects through a Smart Cart, see Using ZipViz for Live Diagnostics.

There are two connection methods:

  • Method 1 — Tailscale (preferred): Enable Tailscale on the Zip so your laptop can reach its IPC server directly over VPN. You can SSH into the Zip however you like (directly, through a smart cart, etc.) to set this up.
  • Method 2 — SSH Port Forwarding via Smart Cart: Forward the Zip’s IPC port through a smart cart to your laptop. Use this when Tailscale is not an option. Requires the Zip to be connected to a smart cart.

Important version requirement: Your local Hawkeye build (from develop) must include PR #45679 (“Fix Hawkeye metadata fetching”). Without this fix, Hawkeye will not receive topic metadata from Zips running fsw-2026.03 or later, due to the lazy metadata change in PR #42673.

Prerequisites:

  • macOS dependencies installed: brew install ffmpeg gdal opencv pkg-config
  • FlightSystems repo checked out on develop (must include the metadata fix above)
  • Tailscale installed on your laptop (for Method 1)
  • SSH access to the Zip (directly or through a smart cart/dock)
1 question
Is Tailscale available for use on the Zip?
  1. Hawkeye connects to the ZipIPC server as a TCP client named hawkeye_listener.
  2. The server sends control identifier metadata (^sync.*, ^start) on connection.
  3. Hawkeye subscribes to ^metadata (opt-in since PR #42673).
  4. The server dumps all registered topic schemas, followed by a ^metadata end marker.
  5. Hawkeye parses the schemas and presents the topic selection UI.
  6. After topic selection, Hawkeye subscribes to the chosen topics and begins receiving live data.

Did this guide help you get unblocked?

Open suggestions

There are no open suggestions.

Open pull requests

There are no open pull requests.