Skip to content
gpredict 2 hamlib - plugin to use ic9700 with gpredict
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Author : Andreas Puschendorf, DL7OAP Date : 2019-11-24


This script is plugged between gpredict and hamlib based on python 3.7. It is listing on port 4532 for gpredict frequencies and it is sending frequencies and startsequences for ic9700 to port 4572 for hamlib

The main reason for this plugin is to solve so i can use ICOM ic9700 with gepredict and linux. The script is a alphaversion and should help to get a better understanding how the startsequence and the loop have to be develop so gpredict can be fixed for ic9700. It is also a testplattform to change fast the used hamlib commands to play around with the behavior of the ic9700 and hamlib.

And it fix not only the problem with ic9700 but also with ic9100 and ic910. So reports for ic9100 and ic910 are also welcome. First users already give feedback for ic910. the script works for them, too. On 22th November there was a bigger update of hamlib which enables a lot of hamlib commands for all three icom transceivers. So only the "split-problem" for all three transceivers with hamlib has left and will be fixed hopefully soon.

Usage details has to be called with 2 parameter

Usage: python3 [type_of_satellite] [band_of_uplink]

  1. Parameter is type of satellite. You can choose between FM, SSB, USB, SIMPLEX, CW
  2. Parameter is type of uplink. You can choose between 2M, 70CM, 23CM


Update rate in gpredict:

  • For SIMPLEX and FM satellites i use an update rate of 10 seconds in gpredict. This is more then enough for FM. This script will turn on AFC function for FM on the downlink of ic9700, this eleminate, too, the doppler effect. But a update rate of ~180ms in gpredict will work for FM and SIMPLEX.

  • For SSB/CW i use an update rate between 250ms and 800ms. So cw signals will be ok with 500ms. When you using the main dail to change the frequency 2000ms feels a little bit long. Because you have to wait until gpredict have catch the new downlink frequency and the new matching update frequency is send to ic9700. You have to play around with this :) But a update rate of ~30ms in gpredict will work for SSB/CW, too, with this script.

The pythonscript will only send necessary updates, to calm down the display. Only frequency shift greater then 10 Hz will be send to the transceiver.

At start the script always set:

  • with parameter SSB the uplink in LSB and the downlink in USB. Most common satellites should work with this
  • with parameter USB it will set uplink to USB and downlink to LSB
  • with parameter FM subtone 670 will be activated on uplink
  • starting with CW the uplink is mode CW and the downlink will be USB
  • the script try to turn of repeater shifts (DUP+, DUP-)
  • it sets SQL to open on uplink and downlink
  • it will set AF level to 0 on TX and to 0.09 on RX


  • gpredict version 2.3.* (older should also possible)
  • hamlib 3.3 (i'm using 4.0 daily snapshot of 22th Nov 2019
  • python 3.7 (python 2.* will not work)

Starting order

  1. starting hamlib daemon on port 4572
    • Linux: rigctld -m 381 -r /dev/ic9700a -s 19200 -t 4572
    • Windows: rigctld -m 381 -r COM5 -s 19200 -t 4572
  2. starting pythonscript
    • Linux: python3 FM 70CM
    • Windows: python3 FM 70CM
  3. start gpredict with a duplex trx on port 4532 and MAIN/SUB
You can’t perform that action at this time.