A complete automated system for detecting, tracking, decoding transmissions from satellites passing overhead. SATx leverages SDR hardware, GNU Radio, and machine learning to provide end-to-end satellite observation capabilities with 100% operational reliability.
SATx features a modern, professional web interface for real-time monitoring and control:
Dashboard Features:
Access the dashboard at http://localhost:8080 after starting the web server.
๐ New to SATx? Check out the Quick Start Guide to get up and running in minutes!
Current Status: Production Ready
For detailed system status and reports, see the Critical Requirements Document.
SATx uses deep learning for advanced signal processing:
Models are trained on both synthetic and real satellite signals, achieving high accuracy in various conditions.
For a complete turnkey installation with ML training:
# Clone and setup everything automatically
git clone https://github.com/Artifact-Virtual/satx.git
cd SATx
./setup.sh
The setup script will:
pip install -r requirements.txt
Configure your station:
Edit configs/station.ini with your location coordinates
python scripts/fetch_tles.py
python scripts/predict_passes.py
python scripts/scheduler.py
To train or retrain the signal detection models:
# Prepare training data
python scripts/prepare_training_data.py
# Download additional data from SatNOGS
python scripts/download_satnogs_data.py
# Train the model
python models/model_v1/train.py
See the Critical Requirements Document for detailed hardware specifications and budget breakdowns.
# Build and run with Docker Compose
docker-compose up -d
# View logs
docker-compose logs -f
# Install system dependencies
sudo apt-get update
sudo apt-get install python3 python3-pip git docker.io
# Clone repository
git clone https://github.com/Artifact-Virtual/satx.git
cd SATx
# Install Python dependencies
pip install -r requirements.txt
# Run setup script
./setup.sh
Edit configs/station.ini:
[station]
name = My Ground Station
latitude = 40.7128
longitude = -74.0060
altitude = 100
device = rtl=0
sample_rate = 2400000
frequency = 437800000
Configure SDR devices in configs/sdr.ini:
[sdr]
device_type = rtl
device_args = rtl=0
sample_rate = 2400000
gain = 40
bias_tee = true
Configure ML models in configs/ml.ini:
[ml]
model_path = models/model_v1/
batch_size = 32
threshold = 0.8
use_gpu = true
# Start the complete system
python scripts/scheduler.py
# Monitor via web interface
# Open http://localhost:5000 in your browser
# Fetch TLE data
python scripts/fetch_tles.py
# Predict passes
python scripts/predict_passes.py --lat 40.7128 --lon -74.0060
# Process recording
python scripts/process_recording.py recording.iq
# Run tests
python tests/run_all_tests.py
Start the web dashboard:
python3 web/app.py
The modern web dashboard provides:
Access at: http://localhost:8080
Features:
Scan frequency bands to discover active signals:
# Scan all configured bands
python3 scripts/spectrum_scanner.py
# Scan specific band (137-138 MHz)
python3 scripts/spectrum_scanner.py --band 137.0-138.0
# Save results to file
python3 scripts/spectrum_scanner.py --output scan_results.json
Features:
Enable bulletproof privacy and operational security:
# Enable maximum privacy (bulletproof)
python3 scripts/ghost_mode.py --enable --level maximum
# Enable high privacy
python3 scripts/ghost_mode.py --enable --level high
# Enable standard privacy
python3 scripts/ghost_mode.py --enable --level standard
# Check status
python3 scripts/ghost_mode.py --status
# Clean all traces
python3 scripts/ghost_mode.py --clean
# Disable ghost mode
python3 scripts/ghost_mode.py --disable
Privacy Levels:
Ghost Mode Features:
Use Cases:
Run comprehensive system tests:
# Run all tests with detailed reporting
python tests/run_all_tests.py
# Run specific test categories
python -m pytest tests/unit/ -v
python -m pytest tests/integration/ -v
python -m pytest tests/e2e/ -v
# Generate coverage report
python -m pytest --cov=satx --cov-report=html
All tests generate comprehensive HTML and JSON reports in tests/reports/.
SATx/
โโโ scripts/ # Core automation scripts
โ โโโ fetch_tles.py # TLE data fetching
โ โโโ predict_passes.py # Orbital pass prediction
โ โโโ process_recording.py # Signal processing with ML
โ โโโ scheduler.py # Automated observation scheduler
โ โโโ prepare_training_data.py # ML training data preparation
โ โโโ test_system.py # Comprehensive system testing
โโโ configs/ # Station and service configurations
โ โโโ station.ini # Station location and settings
โโโ data/ # Data storage
โ โโโ tles/ # TLE orbital data
โโโ decoders/ # Signal decoders and flowgraphs
โ โโโ grc_flowgraphs/ # GNU Radio flowgraphs
โโโ models/ # ML models for signal detection
โ โโโ model_v1/ # Current model version
โโโ services/ # Docker services
โ โโโ ml/ # ML processing service
โ โโโ sdr/ # SDR processing service
โโโ tests/ # Comprehensive test suite
โ โโโ unit/ # Unit tests
โ โโโ integration/ # Integration tests
โ โโโ e2e/ # End-to-end tests
โ โโโ reports/ # Test reports and results
โโโ web/ # Dashboard UI
โโโ docs/ # Documentation
โ โโโ critical_requirements.md # Hardware requirements
โโโ transmit/ # Transmission capabilities
โโโ recordings/ # Recorded I/Q data (gitignored)
โโโ logs/ # Operation logs and candidates
โโโ docker-compose.yml # Docker orchestration
โโโ requirements.txt # Python dependencies
โโโ setup.sh # Automated setup script
โโโ README.md # This file
scripts.fetch_tles - TLE data managementscripts.predict_passes - Orbital calculationsscripts.process_recording - Signal processing pipelinescripts.scheduler - Observation automationmodels.model_v1.model - ML signal detectionweb.app - Web dashboard applicationconfigs/station.ini - Ground station parametersconfigs/sdr.ini - SDR device configurationconfigs/ml.ini - Machine learning settingsWe welcome contributions! Please see our Contributing Guide for details.
# Fork and clone the repository
git clone https://github.com/your-username/satx.git
cd SATx
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
python tests/run_all_tests.py
This project is licensed under the MIT License - see the LICENSE file for details.
SATx - Bridging the gap between amateur satellite observation and professional signal intelligence.