gpredict and rigctl

I want to get going in Satellite radio, I used to dabble in NOAA Weather stuff several years ago, but after getting a full ham licence my interests went elsewhere.

With terrible HF conditions and a far from perfect home QTH for radio, I though I would revisit Space Comms.

rigctl

If you have a standard radiol, then the chances that you will be able to talk to your radio straight out of the box are very good. However if you have something a litle special, then in my case you need to do some work.

I managed to get the EB-200 code working, I am not 100% sure why there is a slight different in the Protocol between Serial and Network formats - but apparently there is.

The change I made was in the file called rs.c

replace 
   #define CR "\x0d" 

to being 
   #define CR "\x0a" 

And recompile the project.

I also changed the structure of the eb200 definition, to be a NETWORK machine instead of being a serial Port version.

Python Proof of concept

I wrote this code to check this from python.

The _R fails (which is what the rigctl comes with), and the _N works.

import socket
from time import sleep

eb_ip = "192.168.1.30"
eb_sock = 5555
reply = ""

soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.connect((eb_ip, eb_sock))

FREQ_R = (b'\rFREQ?\r')
FREQ_N = (b'\nFREQ?\n')

while True:
    try:
        soc.settimeout(2)
        soc.send(FREQ_R)
        print("Data Sent _R ")
        sleep(1)
        reply = soc.recv(512)
        print("Got <{}>".format(reply))
    except Exception as err:
        print("Error {}".format(str(err)))

    try:
        soc.settimeout(2)
        soc.send(FREQ_N)
        print("Data Sent _N ")
        sleep(1)
        reply = soc.recv(512)
        print("Got <{}>".format(reply))
    except Exception as err:
        print("Error {}".format(str(err)))



print("All Done")

Slight issues with the rigctl and rigctld

Despite

sudo make install

I could not get "my" version of the EB200 to be seen in the /usr/local/bin so I simlinked then instead.

RigCTL

To setup the EB200 - I do the following (note the Ip setup is radio specific).

rigctl -m 2702 -r 192.168.1.30:5555 -vvvvvvv

You can then do simple things like

  • f Show be the Frequency
  • F Set the Frequency

If this works.... you are in business.

RigCtlD

This is a Daemon that means you can access the rigctl via a network (seems stupid when you are then tlaking to an EB200) - but 99% of current radios are serial/Usb connections only.

This setup like this

./rigctld -m 2702 -r 192.168.1.30:5555

You really should run this in production like this

nohup ./rigctld -m 2702 -r 192.168.1.30:5555 &

Testing Rigctld

Assuming that you had RIGCTL working (if not stop and go and get that working), you now can try and test the Daemon.

telnet localhost 4522

This establishes a network connection to the RigCtl-Daemon

Again try some simple rigctl commands

  • f Show be the Frequency
  • F Set the Frequency

You should see exactly the same as you did in the rigctl output.

Gpredict

This seems one of the few Satellite control/prediction systems that is Open-Source (which is a shame), but it is a nice program and has been around for some time.

I will not bother selecting Satellites, updating TLE's etc - as there is plenty of help for this.

Configuring Radio Access

In the

  • Edit

    • Preferences
    • Interfaces

    Add you Radio Name. Now important thing to note, the IP Address is not the IP Address of the Radio, but the IP Address of the rigctld machine.

    I entered the following

    • ConfigName EB200
    • Host localhost
    • port 4522

And that was it. Note the values localhost and port (4522) you tested earlier.

At this point you need to select your next Satellite to work, and Select Radio-Control from a menu option.

I then Engage the Radio-Control