Rocket Telemetry Project Docs

Node Antenna Type Abstraction

Migrated from Original Docs/Node/Node-AntennaAbstraction.md

Node Antenna Type Abstraction

The control daemon abstracts antenna differences so central and frontend code remains antenna-agnostic.

1. Discovery-Time Capability Report

On startup, antenna daemon queries hardware and publishes capabilities.

Phased-array example:

{
  "antenna_type": "phased_array",
  "capabilities": {
    "actuation_type": "electronic",
    "steering_modes": ["az_el", "target_coordinate", "fixed", "scan"],
    "azimuth_range_deg": [-180, 180],
    "elevation_range_deg": [0, 90],
    "slew_rate_deg_per_sec": 50,
    "positioning_accuracy_deg": 0.1,
    "elements": 16,
    "frequency_bands": ["C"],
    "frequency_range_hz": [4900000000, 5900000000],
    "max_gain_dbi": 20,
    "beamwidth_deg": 2.5
  }
}

Motorized parabolic example:

{
  "antenna_type": "motorized_parabolic",
  "capabilities": {
    "actuation_type": "mechanical",
    "steering_modes": ["az_el", "target_coordinate", "fixed"],
    "azimuth_range_deg": [0, 360],
    "elevation_range_deg": [0, 90],
    "slew_rate_deg_per_sec": 5.0,
    "positioning_accuracy_deg": 0.5,
    "dish_diameter_m": 3.0,
    "frequency_range_hz": [4900000000, 5900000000],
    "max_gain_dbi": 28,
    "beamwidth_deg": 1.5
  }
}

2. Control Unification at the Antenna Daemon

Antenna daemon accepts unified commands:

{
  "command_id": "cmd-001",
  "type": "pointing",
  "target": {
    "mode": "target_coordinate",
    "latitude": 28.4,
    "longitude": -80.6,
    "altitude_m": 5000,
    "timestamp_utc": "2026-03-17T14:30:00Z"
  }
}

Daemon translates to:

  • Phased-array: Compute az/el from target lat/lon + node position, compute weights
  • Motorized: Compute az/el, issue motor commands
  • Fixed: Log request, report error if trying to move

3. Fallback and Degraded Modes

Phased-array fallback (if central lost):

  • Cache last mission plan
  • Use local GNSS position for coordinate steering
  • Report "degraded" capability status

Motorized fallback (if central lost):

  • Hold last commanded position
  • If GNSS available, compute az/el from cached target coordinates
  • Report "degraded" after 30 seconds without central contact

Fixed antenna (no fallback):

  • Continue operation unchanged

Related: See System-AntennaCapabilities for system-level antenna design, and Node-AntennaTypes-Deployment for antenna-specific configurations.

On this page