DPLR Sat Tracker is a Python-based project for tracking satellites and managing amateur radio communication. The application is built to automate frequency adjustments to account for the Doppler effect and provides a user-friendly interface for configuring tracking settings, radio devices, and satellite details.
- Real-time Satellite Tracking: Leverages TLE (Two-Line Element) data to track satellites in real-time.
- Doppler Effect Correction: Automatically adjusts transmit and receive frequencies to compensate for the Doppler shift.
- Device Integration: Supports popular amateur radio rigs like the Icom IC-705 and IC-7300 using Hamlib.
- Interactive UI: Provides a Streamlit-powered GUI for easy interaction and configuration.
- Dynamic TLE Updates: Fetches updated TLE data from CelesTrak if the local TLE file is outdated.
- Customizable Settings: Includes adjustable parameters for passband width, modes, and tracking intervals.
- Python 3.8+
- Streamlit
- Hamlib
- Requests
- Skyfield
-
Clone the repository:
git clone https://github.com/echo-gravitas/Sat-Track.git cd Sat-Track
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
streamlit run main.py
- Configure your station location (latitude, longitude, and elevation) in the sidebar.
- Select your device and rig from the available options.
- Set receive (RCV) and send (SND) VFO settings.
- Start tracking a satellite from the list, and the app will display real-time tracking information.
main.py
: Entry point of the application with Streamlit integration.functions.py
: Helper functions for Doppler shift calculation, TLE loading, and device management.settings.py
: Contains default configuration settings such as frequency ranges and URLs.tle.txt
: Stores the TLE data for satellite tracking.
Modify settings.py
to customize the application:
DEFAULT_LAT
,DEFAULT_LNG
,DEFAULT_ALT
: Default location settings.MIN_FREQ
,MAX_FREQ
: Frequency range for tracking.AVAILABLE_RIG_IDS
: Supported rigs and their IDs.TLE_URL
: URL to fetch TLE data.
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please submit a pull request or open an issue for any suggestions or improvements.