Advanced rotor settings? No reset, no angle limitation, parking

Hi there!
For our diploma thesis we (me and my team) have to build a groundstation for SatNOGS. We already have the Superantennaz rotor built, setup and testet as well as one antenna ready for use.
But what annoys me about the rotor ist that it can only spin from Az 0-360 when controlled by
the SatNOGS-client on the raspi. But when sending directly to the Controller it can spin to any Az. (even like -500)

So my question is, if there is a way to make this angle greater like from -90 to +450
so the rotor wouldnt have to go a full round when the satellite moves from Az 0 to 360 or vice versa. (i guess its called meridian flip)

Would there also be an option to park the rotor AFTER an observation (to like Az180 El45) so it does not need so much time to setup. (Currently when an Observation starts, the rotor gets resets → homes itself and then points to the rise of the Satellite)
Can this reset before an observartion also be turned off since we’re using stepper motors and i don’t trust the optical endstops?

All the positioning (Az El Commands) are calculated and sent from the SatNOGSclient as far as i understand. So changing the code of the controller for the
rotor is not really an option right?

Thanks in advance

1 Like

If you have a rotator that does 0-360az and 0-180el that is all you will need for LEO.
Gpredict alredy does this, satnogs-client did not, I implemented a solution for that a week ago.
That contains two things, the inverting of the alt to avoid az endstop, and also moving with threshold relative to last position not current position. The last bit helps with running the rotator less often as intended.
For -client to work properly with rotator, you should make sure that rotctld knows the limits.
I use --set-conf=min_az=0,max_az=360,min_el=0,max_el=180

The code for stock tracking is here.

Parking can be done in post obs script, like this.
Or this one that can also prepare for next obs.

Not sure on the reset/homing stuff there, not too familiar with that controller and how it can be configured.

Thanks a lot for the answer.

Im going to try all this out soon when the rotor is put up on the stand with an antenna


I have setup Yaesu G5500 in SatNogs Client with the S.A.T Controller [] and is working fine

I would like to park the rotator once the observation is completed. I see that below is what needs to be followed to accomplish this .

Parking can be done in post obs script, like this .
Or this one that can also prepare for next obs.

I am new to Linux and no experience in coding. Any additional pointers will help

Nitin [VU3TYG]

Hi Nitin,

took a while to try out the solution SA2KNG provided. For me parking works now but I didn’t exactly use his script. His still helped a lot to figure everything out.
For you Nitin, here are the steps you need to do to get the shell script up and running.

On your Raspi do the following: sudo nano /bin/ then paste the code from SA2KNG into this file. If you dont have nano, install it with sudo apt install nano Do a CTL+s to save and a CTL+x to exit. Important is to make this script excecutable with sudo chmod +x /bin/
Now go into the sudo satnogs-setup menu and choose Advanced->Scripts->Post_Observation_Sript. There you type in /bin/ Apply your changes, exit the satnogs-setup and check the live log, especially when the observation is about to complete.

Hope this helps you


i got the parking now running but i cannot set the limits for rotctld.
When doing rotctld -L to see the config it says:

min_az: "Minimum rotator azimuth in degrees"
        Default: -180, Value: -180.000000
        Range: -360.0..360.0, step 0.0
max_az: "Maximum rotator azimuth in degrees"
        Default: 180, Value: 180.000000
        Range: -360.0..360.0, step 0.0
min_el: "Minimum rotator elevation in degrees"
        Default: 0, Value: 0.000000
        Range: -90.0..180.0, step 0.0
max_el: "Maximum rotator elevation in degrees"
        Default: 90, Value: 90.000000
        Range: -90.0..180.0, step 0.0

But after doing the rotctld --setconf=... I cant set the value in the config to something else. Is there anything Im missing?

Hi Kilian,

Appreciate the help on the solution using the Nano. I will surely try, Currently I am using S.A.T controller from CSN Technologies and configured in SatNogs client as below.



Not sure what you are doing exactly, show the configuration of the relevant rotor stuff, and scripts you use to start it etc. The --set-conf should be appended to the current command line, but it depends heavily on what method you use here where it should go.

My settings for the rotator are the following:
and the post-script

When entering it into rotctld it looks like this:

rotctld doesnt accept the conf somehow and i can only exit it.

Aha, you are launching it directly from the client then. that means you cannot change the command line afaict. someone correct me…

The method I use myself and recommend, is to use a separate rotctld started outside the client, and then set the client using model and port to connect to that instance.



Then launching rotctl with something like:
rotctld -m 204 -t 4533 --set-conf=min_az=0,max_az=360,min_el=0,max_el=180 -s 9600 -r /dev/ttyUSB0

when it’s working, keep that line in a script and launch at boot. maybe in crontab with like @reboot /usr/local/bin/