Skip to content
 
 

Repository files navigation

QTRigdoppler

Shows QTRigDoppler GUI.

📌 QTRigdoppler features doppler shift control for ICOM radios

  • Based on K8DP Doug Papay rigdoppler (@K8DP_Doug)
  • Adapted by EA4HCF Pedro Cabrera (@PCabreraCamara)
  • Extended and modified by DL3JOP Joshua Petry (@dl3jop)

Contributions in this repo by:

  • Joshua, DL3JOP
  • Peter, MM9SQL

🧠 What QTRigdoppler does

QTRigdoppler keeps track of satellites and their transponders. It handles mutliple tasks:

  1. Tracking satellites and calculating the doppler shifts of their used frequencies.
  2. Update VFOs of a connected ICOM IC-910 (and IC-9700) for fully automatic frequency tracking.
  3. Depending on the transpoder type: FM/SSB Voice or FM/SSB Data, the software determines the best tracking approch.
  4. Rotators can be connected to sync their postion with the current satellite.
  5. A websocket option enable integration into software like Zenith.
  6. There is an optional map you can use to plot the satellites position

🌓 Choose your style

QTRigdoppler now comes with many themes you can choose from. A brief selection of some themes:

Shows different QTRigDoppler GUI themes.

📥💻 Installation and Usage

You can run QTRigdoppler as a pre-compiled binary available from the release section. The binary should work on all major Linux dsitributions. Please report any troubles you might encounter. To make this possible, the binary conatins a full packed python environment which decreases its speed on startup.

As an alternative, you can install it yourself follwing the installation guides for Ubuntu or Manjaro.

After installation/download you need to adjust the configuration inthe Settings Tab to suit your needs. If you have a US configured IC-910 you need to change the rig type from EU to US otherwise TSL or TONE won't work You might also need to change the serial port of your CI-V to serial adapter. The easiest solution is to run sudo dmesg -wH in a terminal and plugging in your serial adpter to get the serial port name. Portnames might be /dev/ttyUSB0, /dev/ttyUSB1 .... or /dev/tty/ACM0 ... If you like, you can also edit the config.ini to access developer or more advanced options.

Install on Ubuntu 24.10 or higher

  1. It is assumed that you use Ubuntu 24.10 (or newer) or a derivative of it
  2. Open a terminal
  3. Update package sources by:
    sudo apt update
  4. Install required packages:
    sudo apt install git python3 python3-pyqt5 python3-qt-material python3-ephem python3-numpy
  5. Add your user to the dialout group to access the serial port by:
    sudo adduser [username, remove brackets] dialout e.g.: sudo adduser dl3jop dialout
    6.1) Restart you computer for all changes to take effect, than repeat step 2)
  6. Get the software by:
    git clone https://github.com/dl3jop/QTrigdoppler.git
  7. Enter software directory by:
    cd QTrigdoppler
  8. Start using:
    python3 QTrigdoppler.py
  9. For every startup from now on repeat step 2,7 and 8 or create a starter in the start menu

TLDR:
sudo apt update
sudo apt install git python3 python3-pyqt5 python3-qt-material python3-ephem python3-numpy
sudo adduser [username, remove brackets] dialout
git clone https://github.com/dl3jop/QTrigdoppler.git
python3 QTrigdoppler.py

Install on Arch or derivatives (e.g.: Manjaro)

The installation process is similar to the one on Ubuntu:
sudo pacman -Syu
sudo pacman -S git python python-pyqt5 python-qt-material python-ephem python-numpy
sudo usermod -aG uucp [username, remove brackets]
git clone https://github.com/dl3jop/QTrigdoppler.git
python3 QTrigdoppler.py

🗺️ Requirements for using the map:

Currently, using the map is not advised due to bad perfomance. If you choose to try it, you'll need these additional python packages:
matplotlib
cartopy
pyproj

📋🔄⏳ Changelog

DL3JOP modifications:

  • Removed hamlib
  • Support for IC-910H by direct serial communication, IC-9700 should work as well (not yet tested
  • Implemented transponder selection
  • Implemented correct switch between Split mode for V/V & U/U packet and satmode for V/U,U/V
  • Implemented doppler correction threshold
  • Added SubTone control
  • Various smaller changes and additions
  • Added binaries

MM9SQL Modifications:

  • Changed to PySide
  • Implemented Websocket features using Flask and SocketIO
  • Added Cloudlog/Wavelog integration: automatic logging of frequency and satellite info via Cloudlog API, configurable in config.ini.
  • Added ability to automatically record satellite passes to .wav files.
  • Added support to use USB / Serial GPS units to get location position.
  • Automatic TLE Updating on Startup or based on hourly time period.
  • Satellite Database (doppler.sqf) downloading with merge or replace options from oscarwatch.org.
  • Added frequency pause/resume feature: pause frequency updates while keeping rotator tracking for manual frequency control on newer satellites.
  • Added remote server integration with Node.js backend for multi-client remote control.
  • Enhanced rotator control with Yaesu rotator support and web-based control.
  • Added comprehensive web API with real-time status broadcasting and debug endpoints.
  • Implemented advanced audio monitoring with multi-device support and error recovery.
  • Added extensive configuration management with 100+ configurable parameters and satellite-specific offset profiles.
  • Enhanced logging system with configurable levels, rotation, and comprehensive error tracking.
  • Help files

🎯 Roadmap

  • Adding support for IC-9700 (should be easy as it uses nearly the same comands as the IC-910H)
  • Adding support for FT-8xx radios. Same approch: serial driver, although that will add additonal reworks in the doppler tracking loop to account for two radios
  • Building a much nicer GUI
  • Separate GUI and tracking class
  • Refactor tracking loop:
    • no global F0/I0 variables, more abstracted methods to allow eaier implementation of other radios

📚 Documentation

For detailed setup and usage instructions, see the help documentation:

🛠️ Compile using pyinstaller

pyinstaller --onefile QTrigdoppler.py --exclude PyQt6 --splash images/splash.jpg

About

Python3 QT5 script to correct doppler effect in radio satellites using Icom rigs connected to a computer

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages