STAFDS
Satellite Telemetry Analysis & Fault Detection System
SOFTWARE-ONLY EDUCATIONAL PROTOTYPE

Telemetry in.
Explainable faults out.

STAFDS simulates spacecraft telemetry, runs it through a deterministic validation-and-filtering pipeline, and flags abnormal conditions using rule-based diagnostic logic you can actually read and trust — not a black box.

Runs fully offline Rule-based, explainable No real agency affiliation

What actually happens to a packet

Every simulated telemetry packet passes through the same fixed sequence — nothing is skipped, and nothing on the frontend decides fault state independently.

01
Simulation
Deterministic, seeded generator produces realistic drift, orbital daylight cycles, and correlated noise.
02
Validation
Rejects malformed packets, out-of-range values, duplicate IDs, and sequence gaps before anything downstream sees them.
03
Filtering
Moving-average and exponential moving-average filters smooth sensor noise for trend analysis.
04
Fault Detection
Threshold, rate-of-change, stuck-sensor, and correlation rules run against every parameter, every packet.
05
Health Scoring
A deterministic 0–100 score is derived from active fault severity and communication quality.
06
Dashboard
Results reach the UI over a live stream — the frontend only ever renders what the backend already decided.

What's inside the prototype

Each module below is independently testable and maps to a real ground-segment concept — scaled down to something one engineer can build, run, and explain.

telemetry_engine

Telemetry Simulator

Generates 18 spacecraft parameters across thermal, power, attitude, comms, and system groups — with configurable seed and sampling rate.

validator

Packet Validation

Catches missing fields, NaNs, timestamp anomalies, and duplicate or out-of-sequence packets before they reach the pipeline.

filter_engine

Signal Filtering

Raw, moving-average, and EMA views of every channel, toggleable on the live chart with configurable window and alpha.

fault_engine

Fault Detection

Deterministic, explainable rules — never a statistical black box — with hysteresis to prevent alarm flapping near a threshold.

health_engine

Health Scoring

0–100 composite score with penalty weighting per fault severity, classified NOMINAL through CRITICAL.

scenario_engine

Scenario Control

Switch between Overheating, Low Battery, High Current, Comm Loss, and Recovery to watch the full fault lifecycle play out.

event_log

Event Timeline

Every fault detection, acknowledgement, recovery, and scenario change is recorded with a UTC timestamp.

playback_engine

Playback & Export

Replay recorded telemetry through the identical live pipeline, or export history to CSV for offline analysis.

report_engine

Engineering Reports

Generates parameter statistics, fault summaries, and health trends for a selected monitoring period.

Four rule types, one explanation each

Rule-based prototype diagnostic logic — every fault the system raises comes with the specific rule and observed value that triggered it, not a confidence score.

A

Threshold crossing + hysteresis

Warning and critical boundaries per parameter, with a margin required before a fault is marked recovered — stops alarms from flapping right at the line.

B

Rate-of-change detection

Flags a value that jumps further in one sample than is physically realistic for that parameter.

C

Stuck-sensor detection

A value that hasn't moved for a configurable number of samples is treated as a possible frozen or disconnected sensor.

D

Correlation rules

Combines several parameters — e.g. rising current, falling voltage, and rising temperature together — to catch power-system anomalies no single threshold would.

Built to run local-first

No paid APIs, no cloud dependency, no remote fonts or CDN calls once installed.

FastAPI Pydantic v2 SQLAlchemy + SQLite React + TypeScript Vite Tailwind CSS Plotly.js WebSockets pytest

See the fault lifecycle end to end

The live demo runs entirely in your browser — start the simulator, switch to Overheating, and watch a fault get detected, escalate, and recover in real time.

▶ Launch Live Demo