satx

SATx Quick Start Guide

Get your satellite detection system up and running in minutes!

Prerequisites

Step 1: Install Dependencies

# Install Python dependencies
pip3 install -r requirements.txt

Note: If you run out of disk space during installation, the core dependencies (numpy, scipy, matplotlib, skyfield, pandas, flask, requests) should be sufficient to get started.

Step 2: Configure Your Station

Edit configs/station.ini with your location:

[station]
name = My-Station
latitude = 40.7128    # Your latitude
longitude = -74.0060  # Your longitude
elevation = 10.0      # Meters above sea level
min_elevation = 10.0  # Minimum elevation for passes

Step 3: Fetch Satellite Data

python3 scripts/fetch_tles.py

This downloads orbital data (TLEs) for thousands of satellites.

Step 4: Predict Satellite Passes

python3 scripts/predict_passes.py

You’ll see a list of upcoming satellite passes like:

1. NOAA 19 (NORAD 33591)
   Rise: 2026-01-01 16:34:44 UTC
   Max Elevation: 12.5°
   Duration: 4m 31s

Step 5: Start the Web Dashboard

python3 web/app.py

Open your browser to: http://localhost:8080

You’ll see:

Step 6: Record Your First Pass (Optional)

If you have an RTL-SDR connected:

# Record a 5-minute pass
bash scripts/start_recording.sh 25544 437000000 2400000 300 recordings/test.iq

Parameters:

Step 7: Process Recording

python3 scripts/process_recording.py recordings/test.iq

This generates:

Automated Operation

For hands-free operation, use the scheduler:

python3 scripts/scheduler.py

The scheduler will:

  1. Update TLEs daily
  2. Predict upcoming passes
  3. Automatically record satellites
  4. Process recordings
  5. Log all detections

Advanced Features

Spectrum Scanner

Scan frequency bands to discover active signals:

# Scan all configured bands
python3 scripts/spectrum_scanner.py

# Scan specific band
python3 scripts/spectrum_scanner.py --band 137.0-138.0

The scanner will:

Ghost Mode (Privacy Protection)

Enable maximum privacy for sensitive operations:

# Enable bulletproof privacy
python3 scripts/ghost_mode.py --enable --level maximum

# Check status
python3 scripts/ghost_mode.py --status

# Clean all traces when done
python3 scripts/ghost_mode.py --clean

Ghost Mode provides:

Perfect for:

Troubleshooting

“No module named ‘skyfield’”

pip3 install skyfield numpy scipy matplotlib pandas requests flask

“No TLE file found”

python3 scripts/fetch_tles.py

“RTL-SDR not found”

For testing without hardware, you can:

  1. Use the web dashboard to explore the UI
  2. Run pass predictions
  3. Create dummy recordings for testing

Web dashboard not loading

Check that port 8080 is available:

python3 web/app.py
# Access at http://localhost:8080

Next Steps

  1. Hardware Setup: Connect your RTL-SDR and antenna
  2. Antenna Optimization: Position for best sky view
  3. Schedule Observations: Set up automated recording
  4. Join Community: Share observations on SatNOGS
  5. Decode Signals: Use gr-satellites for protocol decoding

Resources


Happy satellite hunting! 🛰️