---
title: 'Doppler compensation using GPredict and RigCtlD'
url: 'https://ra1ahq.blog/en/kompensaciya-effekta-doplera-s-pomoshyu-gpredict-i-rigctld'
markdown: 'https://ra1ahq.blog/en/kompensaciya-effekta-doplera-s-pomoshyu-gpredict-i-rigctld.md'
lang: en
date: '2020-05-25'
description: 'It is difficult to work on satellites without using Doppler effect compensation. After all, during a flight, the reception frequency changes, especially quickly in the middle of the orbit. There are two ways to compensate for frequency changes due to the Doppler effect - manually, using two independent transceivers (or one with Duplex function) and automatically using programs such as GPredict, SATPC32 or Orbitron. In this article I will try to set up automatic correction of transmitting and receiving frequencies in Linux. To work, you need a'
taxonomy:
  category:
    - blog
  tag:
    - спутники
    - Linux
  archives_month:
    - may_2020
  archives_year:
    - '2020'
---

# Doppler compensation using GPredict and RigCtlD

25 

 May 

 2020 

 ![Doppler compensation using GPredict and RigCtlD](https://ra1ahq.blog/images/3/2/4/f/4/324f4c9480e3432372ac71b7f7db002be9f417fc-tracking.png)14:29

### Doppler compensation using GPredict and RigCtlD

 [спутники](https://ra1ahq.blog/en/tag:%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%B8), [Linux](https://ra1ahq.blog/en/tag:Linux) 

25 May 2020 14:29

It is difficult to work on satellites without using Doppler effect compensation. After all, during a flight, the reception frequency changes, especially quickly in the middle of the orbit.

There are two ways to compensate for frequency changes due to the Doppler effect - manually, using two independent transceivers (or one with Duplex function) and automatically using programs such as GPredict, SATPC32 or Orbitron.

In this article I will try to set up automatic correction of transmitting and receiving frequencies in Linux.

To work, you need a configured CAT interface (which was done in previous articles about Xastir packet radio communications and WSJT-X weak signal radio).

Then, you will need two programs:

- **GPredict** to calculate Doppler effect compensation. Control signals will be issued via the tcp-ip port.
- **Rigctld** service to receive commands from GPRedict and control the transceiver via the COM port.

It should be noted that to compensate for the Doppler effect, both transmit and receive frequencies must change.

Setting:

1, Install **rigctld** (included in the package **libhamlib-utils**) and **`gpredict`**

`<pre>su -<br></br>apt update<br></br>apt install libhamlib-utils gpredict</pre>`

2. I start the rigctld service using one of the commands in the terminal window

a) only for reception (if there is no transceiver on the table, we only want to check the change in transmission and reception frequencies)

`<pre>rigctld -m 1 -t 4532&</pre>`

b) for receiving and transmitting using the serial port /dev/ttyUSB0 and a real transceiver.

`<pre>rigctld -m 122 -r /dev/ttyUSB0 -s 38400 -t 4532 -C stop_bits=1&</pre>`

where
-m 122 - model number of the HamLib library transceiver (in this case 122 - Yaesu FT-857) from ["Supported Radios" list](https://github.com/Hamlib/Hamlib/wiki/Supported-Radios)
or -m 1 - dummy model.
-r /dev/ttyUSB0 - serial port through which the transceiver is controlled using CAT commands.
-s 38400 - port speed in bytes/s, set in the transceiver menu, at which commands will be transmitted.
-t 5432 - number of a free TCP-IP port on the local PC through which the rigctld and gpredict service will work.
-C stop\_bits=1 - number of stop bits (if necessary, try specifying 2)

The "&" at the end of the line forces the service into the Linux background.

3. I include calculation of frequencies to compensate for the Doppler effect and control of the transceiver in GPredict.

Menu **Edit - Options - Interfaces - Add new**
(Edit - Preferences - Interfaces - Add new)

First, for the test, we will add only for the appointment

**Name: RXonlySAT
host: localhost
port: 4532
Radio type: RX only
PTT status: no
VFO Up/Down: select MAIN ↑ SUB ↓
LO down: 0
LO up: 0**

Where
**4532**- port for connecting GPredict and rigctld
**VFO**- indicates in which direction the frequencies will change.
If the first VFO MAIN is 433 MHz and the second VFO SUB is 144 MHz, then the frequencies should change **MAIN ↑ SUB ↓**
If the first VFO MAIN is 144 MHz and the second VFO SUB is 433 MHz, then the frequencies should change **SUB ↑ MAIN ↓**
If the first VFO A is 433 MHz and the second VFO B is 144 MHz, then A ↑ B ↓ should be indicated
If the first VFO A is 144 MHz and the second VFO B is 433 MHz, then B ↓.A ↑ should be indicated

For transmission - the same, but indicated the radio type "Radio type":**FT 817/857/897 (auto)**,
PTT status: Read PTT or none. affects the reading of the receive/transmit status when pressing the PTT button.

4. **Selecting a satellite and getting started.**
    To work through a linear repeater, you need to call the context menu in GPredict under the triangle - “Radio Control”.

    - select the corresponding satellite in the left part of the window and start tracking it - “Path”. Enable the CAT transceiver - “Enable”.
    - disable frequency blocking (press the "L" button),
    - tune in to the station and press the "L" (lock) button,
    - the receiving and transmitting frequencies will change synchronously in different directions (Doppler compensation for upward transmission and downward reception).
    - Now press the PTT key for SSB and speak or answer a CQ call in CW.
5. **Observation and control of satellite tracking.** to view the frequencies that GPredict calculates. you need to click on the small triangle on the right side of the window and select the “Radio Control” menu item.
    ![radio control](https://ra1ahq.blog/images/8/e/6/1/9/8e6192b0a6f4a950ad886a698866ae2a0cfb190d-upravl.png)

Then press the "Path", "Engage" and "L" buttons.

Note:
**Path**- satellite tracking (calculation)
**Engage**- enable radio control.
**L**- blocking communication between reception and transmission frequencies.

The tracking of satellite frequencies will begin - Uplink and Downlink, taking into account the Doppler effect:

![accompaniment](https://ra1ahq.blog/images/3/2/4/f/4/324f4c9480e3432372ac71b7f7db002be9f417fc-tracking.png)

6. When the rigctld service is running, the latter sends commands to the transceiver to change the receive and transmit frequencies based on the calculation of the Doppler effect in the GPredict program.

Sources:

*<https://github.com/Hamlib/Hamlib/wiki/Supported-Radios>* <https://manpages.ubuntu.com/manpages/trusty/man8/rigctld.8.html>
\*<https://sourceforge.net/projects/gpredict/lists/gpredict-discussion>

Useful links:

*[https://www.amsat.org/wordpress/wp-content/uploads/2014/01/Work\_FM\_Sats-20131010.pdf](https://www.amsat.org/wordpress/wp-content/uploads/2014/01/Work_FM_Sats-20131010.pdf)* <https://www.amsat.org/wordpress/wp-content/uploads/2015/09/XW-2CAS-3-Sats.pdf>
\*<https://ukamsat.files.wordpress.com/2017/03/camsat-cas-4a-and-cas-4b-news-release.pdf>

### Related publications

 [ ![](https://ra1ahq.blog/images/6/8/1/3/3/68133cc0ab7ddf32ba1a9c7eaeef3a6fa562e88f-msg.png) Tox Messenger ](https://ra1ahq.blog/en/tox-messenger) 

 [ ![](https://ra1ahq.blog/images/f/3/a/2/c/f3a2c07ef5b32c0308ab703405a5a5ca87b75283-archer-ac600-728.webp) Installing the kernel driver for the TP-Link Wi-Fi adapter after updating the Debian OS ](https://ra1ahq.blog/en/ustanovka-draivera-yadra-dlya-wi-fi-adaptera-tp-link-posle-obnovleniya-os-debian) 

 [ ![](https://ra1ahq.blog/images/d/2/5/c/7/d25c7282750b398f71041fb8b90640b692e7e4b8-decibelfmtitle.png) Linux Cinnamon Desktop Applets for Listening to Internet Radio Stations ](https://ra1ahq.blog/en/applety-dlya-rabochego-stola-linux-cinnamon-dlya-proslushivaniya-internet-radiostancii) 

 [ ![No picture](https://ra1ahq.blog/user/themes/mytheme/images/no-image.png) Passing a parameter to a Linux module/driver ](https://ra1ahq.blog/en/peredacha-parametra-modulyu-draiveru-linux) 

 [ ![](https://ra1ahq.blog/images/5/c/4/e/a/5c4ea9c8c3f0b4dd890116d8fe7cbadfdb9814ba-archer-ac600.webp) Installing the TP-Link Archer T600U Nano Wi-Fi adapter driver in Debian 13 "Trixie" ](https://ra1ahq.blog/en/ustanovka-draivera-wi-fi-adaptera-tp-link-archer-t600u-nano-v-debian-13-trixie) 

[ Backward](https://ra1ahq.blog/en/vklyuchenie-bluetooth-v-linux "Previuous page")

[ Forward ](https://ra1ahq.blog/en/kak-obnovit-phpmyadmin "Next page")

## Languages

- [Русский](https://ra1ahq.blog/kompensaciya-effekta-doplera-s-pomoshyu-gpredict-i-rigctld)
- [English](https://ra1ahq.blog/en/kompensaciya-effekta-doplera-s-pomoshyu-gpredict-i-rigctld)
- [Deutsch](https://ra1ahq.blog/de/kompensaciya-effekta-doplera-s-pomoshyu-gpredict-i-rigctld)
- [Français](https://ra1ahq.blog/fr/kompensaciya-effekta-doplera-s-pomoshyu-gpredict-i-rigctld)
- [中文 (简体) (cn)](https://ra1ahq.blog/zh-cn/kompensaciya-effekta-doplera-s-pomoshyu-gpredict-i-rigctld)

## Theme

## RSS feeds

 [ Atom 1.0](https://ra1ahq.blog/en/.atom) [ RSS](https://ra1ahq.blog/en/.rss) 

## Popular tags

 [APRS](https://ra1ahq.blog/en/tag:APRS) [CW](https://ra1ahq.blog/en/tag:CW) [DX](https://ra1ahq.blog/en/tag:DX) [FM](https://ra1ahq.blog/en/tag:FM) [Linux](https://ra1ahq.blog/en/tag:Linux) [VHF](https://ra1ahq.blog/en/tag:VHF) [antennas](https://ra1ahq.blog/en/tag:antennas) [firefox](https://ra1ahq.blog/en/tag:firefox) [morse](https://ra1ahq.blog/en/tag:morse) [soundtrack](https://ra1ahq.blog/en/tag:soundtrack) [video](https://ra1ahq.blog/en/tag:video) [windows](https://ra1ahq.blog/en/tag:windows) [youtube](https://ra1ahq.blog/en/tag:youtube) [КВ](https://ra1ahq.blog/en/tag:%D0%9A%D0%92) [ТВ](https://ra1ahq.blog/en/tag:%D0%A2%D0%92) [УКВ](https://ra1ahq.blog/en/tag:%D0%A3%D0%9A%D0%92) [антенны](https://ra1ahq.blog/en/tag:%D0%B0%D0%BD%D1%82%D0%B5%D0%BD%D0%BD%D1%8B) [безопасность](https://ra1ahq.blog/en/tag:%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C) [длинные волны](https://ra1ahq.blog/en/tag:%D0%B4%D0%BB%D0%B8%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%B2%D0%BE%D0%BB%D0%BD%D1%8B) [путешествия](https://ra1ahq.blog/en/tag:%D0%BF%D1%83%D1%82%D0%B5%D1%88%D0%B5%D1%81%D1%82%D0%B2%D0%B8%D1%8F) [религия](https://ra1ahq.blog/en/tag:%D1%80%D0%B5%D0%BB%D0%B8%D0%B3%D0%B8%D1%8F) [соревнования](https://ra1ahq.blog/en/tag:%D1%81%D0%BE%D1%80%D0%B5%D0%B2%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) [спутники](https://ra1ahq.blog/en/tag:%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%B8) [средние волны](https://ra1ahq.blog/en/tag:%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B8%D0%B5%20%D0%B2%D0%BE%D0%BB%D0%BD%D1%8B) [схемы](https://ra1ahq.blog/en/tag:%D1%81%D1%85%D0%B5%D0%BC%D1%8B) [тесты](https://ra1ahq.blog/en/tag:%D1%82%D0%B5%D1%81%D1%82%D1%8B) [трансивер](https://ra1ahq.blog/en/tag:%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%B8%D0%B2%D0%B5%D1%80) [управление](https://ra1ahq.blog/en/tag:%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5) [фотографии](https://ra1ahq.blog/en/tag:%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8) 

## Random post

 [ I'll be lucky!](https://ra1ahq.blog/en/random) 

## Archive of posts

- [ October 2026 ✒ 6 ](https://ra1ahq.blog/en/archives_month:oct_2026)
- [ September 2026 ✒ 9 ](https://ra1ahq.blog/en/archives_month:sep_2026)
- [ August 2026 ✒ 6 ](https://ra1ahq.blog/en/archives_month:aug_2026)
- [ July 2026 ✒ 13 ](https://ra1ahq.blog/en/archives_month:jul_2026)
- [ June 2026 ✒ 8 ](https://ra1ahq.blog/en/archives_month:jun_2026)
- [ May 2026 ✒ 2 ](https://ra1ahq.blog/en/archives_month:may_2026)
- [ April 2026 ✒ 6 ](https://ra1ahq.blog/en/archives_month:apr_2026)
- [ March 2026 ✒ 3 ](https://ra1ahq.blog/en/archives_month:mar_2026)
- [ February 2026 ✒ 7 ](https://ra1ahq.blog/en/archives_month:feb_2026)
- [ January 2026 ✒ 8 ](https://ra1ahq.blog/en/archives_month:jan_2026)
- [ December 2025 ✒ 12 ](https://ra1ahq.blog/en/archives_month:dec_2025)
- [ November 2025 ✒ 9 ](https://ra1ahq.blog/en/archives_month:nov_2025)
- [ October 2025 ✒ 8 ](https://ra1ahq.blog/en/archives_month:oct_2025)
- [ September 2025 ✒ 5 ](https://ra1ahq.blog/en/archives_month:sep_2025)
- [ August 2025 ✒ 8 ](https://ra1ahq.blog/en/archives_month:aug_2025)
- [ July 2025 ✒ 6 ](https://ra1ahq.blog/en/archives_month:jul_2025)
- [ June 2025 ✒ 10 ](https://ra1ahq.blog/en/archives_month:jun_2025)
- [ May 2025 ✒ 4 ](https://ra1ahq.blog/en/archives_month:may_2025)
- [ April 2025 ✒ 4 ](https://ra1ahq.blog/en/archives_month:apr_2025)
- [ March 2025 ✒ 4 ](https://ra1ahq.blog/en/archives_month:mar_2025)
- [ February 2025 ✒ 11 ](https://ra1ahq.blog/en/archives_month:feb_2025)
- [ December 2024 ✒ 8 ](https://ra1ahq.blog/en/archives_month:dec_2024)
- [ November 2024 ✒ 2 ](https://ra1ahq.blog/en/archives_month:nov_2024)
- [ October 2024 ✒ 8 ](https://ra1ahq.blog/en/archives_month:oct_2024)
- [ September 2024 ✒ 3 ](https://ra1ahq.blog/en/archives_month:sep_2024)
- [ August 2024 ✒ 5 ](https://ra1ahq.blog/en/archives_month:aug_2024)
- [ July 2024 ✒ 9 ](https://ra1ahq.blog/en/archives_month:jul_2024)
- [ June 2024 ✒ 6 ](https://ra1ahq.blog/en/archives_month:jun_2024)
- [ May 2024 ✒ 7 ](https://ra1ahq.blog/en/archives_month:may_2024)
- [ April 2024 ✒ 5 ](https://ra1ahq.blog/en/archives_month:apr_2024)
- [ March 2024 ✒ 5 ](https://ra1ahq.blog/en/archives_month:mar_2024)
- [ February 2024 ✒ 5 ](https://ra1ahq.blog/en/archives_month:feb_2024)
- [ January 2024 ✒ 6 ](https://ra1ahq.blog/en/archives_month:jan_2024)
- [ December 2023 ✒ 7 ](https://ra1ahq.blog/en/archives_month:dec_2023)
- [ November 2023 ✒ 4 ](https://ra1ahq.blog/en/archives_month:nov_2023)
- [ October 2023 ✒ 8 ](https://ra1ahq.blog/en/archives_month:oct_2023)
- [ September 2023 ✒ 7 ](https://ra1ahq.blog/en/archives_month:sep_2023)
- [ August 2023 ✒ 4 ](https://ra1ahq.blog/en/archives_month:aug_2023)
- [ July 2023 ✒ 7 ](https://ra1ahq.blog/en/archives_month:jul_2023)
- [ June 2023 ✒ 7 ](https://ra1ahq.blog/en/archives_month:jun_2023)
- [ May 2023 ✒ 5 ](https://ra1ahq.blog/en/archives_month:may_2023)
- [ April 2023 ✒ 6 ](https://ra1ahq.blog/en/archives_month:apr_2023)
- [ March 2023 ✒ 5 ](https://ra1ahq.blog/en/archives_month:mar_2023)
- [ February 2023 ✒ 2 ](https://ra1ahq.blog/en/archives_month:feb_2023)
- [ January 2023 ✒ 5 ](https://ra1ahq.blog/en/archives_month:jan_2023)
- [ December 2022 ✒ 7 ](https://ra1ahq.blog/en/archives_month:dec_2022)
- [ November 2022 ✒ 8 ](https://ra1ahq.blog/en/archives_month:nov_2022)
- [ October 2022 ✒ 6 ](https://ra1ahq.blog/en/archives_month:oct_2022)
- [ September 2022 ✒ 9 ](https://ra1ahq.blog/en/archives_month:sep_2022)
- [ August 2022 ✒ 8 ](https://ra1ahq.blog/en/archives_month:aug_2022)
- [ July 2022 ✒ 4 ](https://ra1ahq.blog/en/archives_month:jul_2022)
- [ June 2022 ✒ 9 ](https://ra1ahq.blog/en/archives_month:jun_2022)
- [ May 2022 ✒ 7 ](https://ra1ahq.blog/en/archives_month:may_2022)
- [ April 2022 ✒ 3 ](https://ra1ahq.blog/en/archives_month:apr_2022)
- [ March 2022 ✒ 4 ](https://ra1ahq.blog/en/archives_month:mar_2022)
- [ February 2022 ✒ 6 ](https://ra1ahq.blog/en/archives_month:feb_2022)
- [ January 2022 ✒ 7 ](https://ra1ahq.blog/en/archives_month:jan_2022)
- [ December 2021 ✒ 7 ](https://ra1ahq.blog/en/archives_month:dec_2021)
- [ November 2021 ✒ 7 ](https://ra1ahq.blog/en/archives_month:nov_2021)
- [ October 2021 ✒ 7 ](https://ra1ahq.blog/en/archives_month:oct_2021)
- [ September 2021 ✒ 10 ](https://ra1ahq.blog/en/archives_month:sep_2021)
- [ August 2021 ✒ 6 ](https://ra1ahq.blog/en/archives_month:aug_2021)
- [ July 2021 ✒ 7 ](https://ra1ahq.blog/en/archives_month:jul_2021)
- [ June 2021 ✒ 7 ](https://ra1ahq.blog/en/archives_month:jun_2021)
- [ May 2021 ✒ 7 ](https://ra1ahq.blog/en/archives_month:may_2021)
- [ April 2021 ✒ 4 ](https://ra1ahq.blog/en/archives_month:apr_2021)
- [ March 2021 ✒ 4 ](https://ra1ahq.blog/en/archives_month:mar_2021)
- [ February 2021 ✒ 3 ](https://ra1ahq.blog/en/archives_month:feb_2021)
- [ January 2021 ✒ 4 ](https://ra1ahq.blog/en/archives_month:jan_2021)
- [ December 2020 ✒ 8 ](https://ra1ahq.blog/en/archives_month:dec_2020)
- [ November 2020 ✒ 2 ](https://ra1ahq.blog/en/archives_month:nov_2020)
- [ October 2020 ✒ 3 ](https://ra1ahq.blog/en/archives_month:oct_2020)
- [ September 2020 ✒ 3 ](https://ra1ahq.blog/en/archives_month:sep_2020)
- [ August 2020 ✒ 5 ](https://ra1ahq.blog/en/archives_month:aug_2020)
- [ July 2020 ✒ 5 ](https://ra1ahq.blog/en/archives_month:jul_2020)
- [ June 2020 ✒ 8 ](https://ra1ahq.blog/en/archives_month:jun_2020)
- [ May 2020 ✒ 10 ](https://ra1ahq.blog/en/archives_month:may_2020)
- [ April 2020 ✒ 4 ](https://ra1ahq.blog/en/archives_month:apr_2020)
- [ March 2020 ✒ 2 ](https://ra1ahq.blog/en/archives_month:mar_2020)
- [ January 2020 ✒ 1 ](https://ra1ahq.blog/en/archives_month:jan_2020)
- [ December 2019 ✒ 2 ](https://ra1ahq.blog/en/archives_month:dec_2019)

## Search

## Weather forecast

[На 14 дней](https://world-weather.ru/pogoda/russia/saint_petersburg/14days/)
[world-weather.ru](https://world-weather.ru/)

---

## Navigation

- Parent: [RA1AHQ](https://ra1ahq.blog/en/index.md)
- Previous: [How to update phpmyadmin](https://ra1ahq.blog/en/kak-obnovit-phpmyadmin.md)
- Next: [Enabling Bluetooth on Linux](https://ra1ahq.blog/en/vklyuchenie-bluetooth-v-linux.md)
