dream-on.space logo

OrbitDSP

Signal Processing + Fault Injection demo on Raspberry Pi, built with NASA JPL F´

Flight-Software style observability: Commands · Events · Telemetry · LED status

Make signal processing “mission-real” inside Flight Software.

OrbitDSP is a compact F´ component that turns noisy / imperfect measurements into robust, testable behavior. It supports a controllable noise model, multiple filter families, and fault injection — all driven through commands, visible via telemetry and events, and mirrored on hardware status (LED).

Why this matters

In real spacecraft and avionics, sensor data is rarely clean: random noise, vibration, EMI spikes, saturation, dropouts, and stuck-at faults. If we feed raw signals directly into decision logic, we risk false alarms, missed detections, or unstable control actions.

  • Parameterized noise model (vibration + random + spikes) for repeatable testing
  • Filter choices that map to common real-time DSP patterns (EMA, Median, 1st-order LPF)
  • Fault injection + expiry for demoing FDIR-style thinking
  • Mission-ops style observability: telemetry + events + deterministic scheduler loop

Video (2 min)

Tip: embed the video inside your PowerPoint so the 5-minute talk stays frictionless.

Command / Telemetry loop (demo-ready)

Example sequence that highlights start marker, robust filtering under noise, fault injection, and burn/fuel monitoring.

CMD_SET_SCENARIO(BURN_MONITOR) # Start marker (S) CMD_SET_FILTER(MEDIAN, alpha=0.15, win=7, cutoff=0.7) CMD_SET_NOISE(vib_amp=0.0, vib_hz=0.0, spike_rate=2.0, rand_sigma=0.5) # Noise (N) CMD_INJECT_FAULT(OUT_OF_RANGE, duration_ms=3000, level=0) # Fault (E/F) then auto-clear CMD_SET_FUEL(3.0) CMD_START_BURN(0.10, duration_ms=6000) CMD_STOP_BURN()
TLM_RAW_VALUE TLM_FILT_VALUE TLM_NOISE_METRIC TLM_SPIKE_COUNT TLM_FAULT_CODE TLM_FUEL_KG TLM_BURN_ACTIVE

Filters (quick intuition)

  • EMA: lightweight smoothing for white noise (fast, but sensitive to spikes)
  • Median: robust outlier rejection (best for spikes/glitches)
  • 1st-order LPF: physics-friendly low-pass (removes high-frequency noise with predictable lag)

Noise model

  • vib_amp / vib_hz: sinusoidal vibration component
  • rand_sigma: Gaussian-like random sensor noise
  • spike_rate: stochastic spike process (approx. spikes/sec)