Linear Satellite Frequency Summary
FM Satellite Frequency Summary
Website: http://gpredict.oz9aec.net/
releases: https://github.com/csete/gpredict/releases
Manual:https://github.com/csete/gpredict/releases/download/v2.2/gpredict-user-manual-2.2.pdf
Video for Gpridict on Windows
Gpredict for Windows: sourceforge.net/projects/gpredict/files/Gpredict/
Hamlib Windows: http://n0nb.users.sourceforge.net/ of de laatste versie: https://sourceforge.net/projects/hamlib/files/hamlib/
Installeer op ubuntu via de package manager Muon(Hamlib zit erbij) of op Windows via de Gpredict en Hamlib folders.
Automatisatie voor automatisch opnemen van passes met Gpredict, GQRX met een RTL-SDR op Linux.
Ham Radio - Automate satellite capture with Gpredict and GQRX on Linux.
Multi-band RTL-SDR on OpenwebRX
https://www.rtl-sdr.com/singalseverywhere-running-openwebrx-on-a-plutosdr-with-plutoweb-firmware/
De eerste opstart laat je een module Amateur zien.
Module opties kan je bereiken rechts bovenaan.
Hier kan je ook een satteliet kiezen of andere opties bekijken.
Met configure kan je de module configureren.
Maak desnoods eerst een kopie met clone.
Via configure kan je kiezen welke sattelieten er gezien worden in een module.
Tevens kan je via Ground station Add je eigen locatie toevoegen en selecteren.
Via Update TLE kan je de kepler gegeven updaten.
Via Preferences kan je de koppelingen instellen naar zenders en rotors
Gpredict communiceert steeds via een IP poorten met rigctl en rotctl, ofwel op de localhost of op een remote station.
Host: Localhost
Radio Type: Duplex TRX
PTT Status: Read PTT
VFO Up/Dowm: B/A
Controleer of je TRX ondersteund wordt via de Hamlib rigctl bib door het gebruik van het volgende commando.
Voorbeeld: zoek naar FT-991A
rigctl --help | grep FT-99
rigctl -l
Het model voor FT-991 is 135 in Linux en 1035 in Windows
Het commando voor een FT991 trx te koppelen is als volgt:
rigctl -m 135 -r /dev/ttyUSB0 -s 19200 -x 1 -> linux
rigctld -m 1035 -r COM6 -t 4532 -s 19200 -x 1-> windows
Eens in de software kan kan je commando's sturen.
Met ? kan je de mogelijke cmds opvragen.
met rigctld en dezelfde parameters start je de rigctl server op, die je dan in gpredict kunt benaderen. (TRX op com 10, 19200bd, settings compoort gedaan met Devicemanager in windows, standaard poort voor de windows deamon is 4532. -vvv testoutput)
vb: rigctld -m 135 -r COM10 -t 4532 -s 19200 -x 1 -vvv
Opmerking: een nieuwe optie in Hamlib, laat je toe om de TX frequentie te laten afhangen van de RX instelling van je TRX.
Hierdoor kan je dmv je vfo de RX aanpassen en de TX zal volgen. De switch is -x1 (voor IC9700)en je gebruikt de Lock functie in de doppler correctie.
Indien je tijdens het luisteren merkt dat je toch enkele Hz langs freq zit (eigen signaal terug hoort) dan dien je in ontvangst de RIT op je toestel te gebruiken.
Deze RIT waardes zijn normaal stabiel voor een bepaalde satelliet en kan je best noteren, zodat je ze voor aanvang kan instellen.
Voor het aanpassen van de freq gebruik je enkel het venster in Gpredict, niet de VFO dial op je toestel.
AO-7 mode B -3315
AO-73 +2150
CAS-4A -0900
CAS-4B -1000
EO-88 -0100
RS-44 +0020
XW-2A -0700
XW-2C/F to be tuned by you
Zie file voor ISS setup: https://github.com/rfrht/FT-991A/wiki/Configuring-FT-991A-and-GPredict-for-ISS-and-Satellite-Tracking
start C:\Ham\GPredict\gpredict.exe
start C:\Ham\GPredict\hamlib\bin\rigctld.exe -v -r \\.\com4 -m 1035 -s 38400 -t 4532 -C "serial_speed=38400,stop_bits=2,rts_state=ON,dtr_state=OFF,serial_handshake=None"
Controleer of je ondersteund wordt door het gebruik van het volgende commando.
Voorbeeld: zoek naar
rotctl -l
We zie hier
1 Hamlib dummy
Met rotctld en de correcte parameters start je de rotctl server op en kan je deze benaderen vanuit Gpredict.
Het opstarten van de dummy driver op de server rotctld
met -vvvvv zie je alles als debug output en de commandos die gestuurd en gevraagd worden...
vb: rotctld -m 1 -vvvvv
In deze controle kunnen we de up en downlink zien, verbinding starten met de transceivers voor freq control (Engage)
Tracking via Track van een geselecteerde satellite en met Tune kan je tunen in het midden van de passband. Lock zorgt voor een koppeling tussen RX en TX vfo, voor gebruik bij lineaire transponders
Kies de mode van de transponder
Stel af op een vrije freq
kies Lock
Kies Track
Kies Engage
vanaf nu zal de TX, de RX volgen (parameter hamlim -x 1)
De hamlib configuratie kan je vinden op de pagina van de IC910
Wijst zichzelf uit.
Rotctl verstaat en geeft volgende commando's (zie man pages http://manpages.ubuntu.com/manpages/trusty/man8/rotctld.8.html
Voor ontwikkelingen die via IP communiceren is dit protocol noodzakelijk om een koppeling te kunnen maken met Gpredict(ter vervanging van rotctl/rotctld).
Gebruik van Hoofdletters voor de SET commando's en kleine letters voor antwoorden>
Je mag de letter commando's gebruiken of de volledige string.
Het antwoord is overeenkomstig met het set commando.
P, set_pos 'Azimuth' 'Elevation'
Set position: Azimuth and Elevation as double precision floating point values.
p, get_pos
Get position: 'Azimuth' and 'Elevation' as double precision floating point values.
M, move 'Direction' 'Speed'
Move the rotator in a specific direction at the given rate.
Values are integers where Direction is defined as 2 = Up, 4 = Down, 8 = Left, and
16 = Right. Speed is an integer between 1 and 100. Not all backends that
implement the move command use the Speed value. At this time only the gs232a
utilizes the Speed parameter.
S, stop
Stop the rotator.
K, park
Park the antenna.
C, set_conf 'Token' 'Value'
Set Token to Value.
Backend dependent. Needs testing.
R, reset 'Reset'
Reset the rotator.
Integer value of '1' for Reset All.
_, get_info
Get misc information about the rotator.
At the moment returns 'Model Name'.
w, send_cmd 'Cmd'
Send raw command string to rotator.
For binary protocols enter values as \0xAA\0xBB. Expect a 'Reply' from the rotator
which will likely be a binary block or an ASCII string.
Default Protocol
1 commando per lijn, afgesloten met \n
Antwoorden op een "get" commando zijn "RPRT x \n"
Met "0" als het OK is en negatief met een error code.
double precision floating point values voor Az en El
Send commando:
print $socket "P 135 10\n";
Antwoord: met x=0 als ok en negatief als fout
RPRT x\n
send commando:
print $socket "p\n";
Antwoord:
"135"
"10"
Op het hoogste niveau vinden we Gpredict, die via TCP communiceert met rotctld op poort 4533.
De manpages van deze software geven weer waaraan een rotctld vervanger moet voldoen: Manpages
Dit is als je rotctld wil vervangen door je eigen software zodat de commando's vanuit Gpredict rechtstreeks vertaald worden naar je sturing.
De manpages van de software waaraan rotctl moet voldoen: Manpages
Je kan rotctl gebruiken om een verbinding met een lopende rotctld op de locahost te maken zodat je een "backed" kan simuleren, dmv het volgende commando:
rotctl -m 2 -vvvvv
-> het motortype 2 is hamlib NET rotctl en met de -vvvvv kan je alle commando's die er lopen monitoren.
weet niet waarvoor dit gebruikt wordt....
Backend protocols
In principe wordt er rechtstreeks aan rotctld een fysieke rotor gekoppeld via een seriële interface (of USB), die zijn commandos's zal krijgen vanuit Gpredict.
Deze kan je testen met de interactieve software rotctl tijdens de ontwikkeling en afregeling.
Doordat rotctl/rotctld reeds heel wat backend software bevat kan je, indien je de protocollen kent, deze "emuleren" met je eigen hardware sturing.
Zo blijf je compatible met alles wat er is en kan je je RS232/USB koppeling maken met rotctl/rotctld, zonder ontwikkeling van extra software op de PC voor de communicatie met je externe IO.
Binnen de source code zijn er verschillende versies geïmplementeerd, zoals je kan lezen in de readme.developers.
Rot # Mfg Model Version Status Macro
1 Hamlib Dummy 20211120.0 Stable ROT_MODEL_DUMMY
2 Hamlib NET rotctl 20200528.0 Stable ROT_MODEL_NETROTCTL
201 Hamlib EasycommI 20191206.0 Stable ROT_MODEL_EASYCOMM1
202 Hamlib EasycommII 20191206.0 Stable ROT_MODEL_EASYCOMM2
204 Hamlib EasycommIII 20201203.0 Alpha ROT_MODEL_EASYCOMM3
301 XQ2FOD Fodtrack 20200107.0 Stable ROT_MODEL_FODTRACK
401 Idiom Press Rotor-EZ 20100214.0 Stable ROT_MODEL_ROTOREZ
402 Idiom Press RotorCard 20100214.0 Untested ROT_MODEL_ROTORCARD
403 Hy-Gain DCU-1/DCU-1X 20100823.0 Stable ROT_MODEL_DCU
404 DF9GR ERC 20100823.2 Alpha ROT_MODEL_ERC
405 Green Heron RT-21 20210801.0 Stable ROT_MODEL_RT21
501 SARtek SARtek-1 20061007.0 Untested ROT_MODEL_SARTEK1
601 Yaesu GS-232A 20201203.0 Stable ROT_MODEL_GS232A
602 Various GS-232 Generic 20200424.0 Stable ROT_MODEL_GS232_GENERIC
603 Yaesu GS-232B 20201203.0 Stable ROT_MODEL_GS232B
604 F1TE GS232/F1TE Tracker 20200424.0 Stable ROT_MODEL_F1TETRACKER
605 Yaesu/Kenpro GS-23 20201203.0 Stable ROT_MODEL_GS23
606 Yaesu/Kenpro GS-232 20201203.0 Stable ROT_MODEL_GS232
607 AMSAT LVB Tracker 20200424.0 Alpha ROT_MODEL_LVB
608 FoxDelta GS232/ST2 20200424.0 Alpha ROT_MODEL_ST2
609 Yaesu GS-232A azimuth 20201203.0 Stable ROT_MODEL_GS232A_AZ
610 Yaesu GS-232A elevation 20201203.0 Stable ROT_MODEL_GS232A_EL
611 Yaesu GS-232B azimuth 20201203.0 Stable ROT_MODEL_GS232B_AZ
612 Yaesu GS-232B elevation 20201203.0 Stable ROT_MODEL_GS232B_EL
701 WA6UFQ PcRotor 20081013.0 Untested ROT_MODEL_PCROTOR
801 Heathkit HD 1780 Intellirotor 20200112.0 Stable ROT_MODEL_HD1780
901 SPID Rot2Prog 20211023.0 Stable ROT_MODEL_SPID_ROT2PROG
902 SPID Rot1Prog 20211023.0 Stable ROT_MODEL_SPID_ROT1PROG
903 SPID MD-01/02 (ROT2 mode) 20211023.0 Stable ROT_MODEL_SPID_MD01_ROT2PROG
1001 M2 RC2800 20210129 Stable ROT_MODEL_RC2800
1002 M2 RC2800_EARLY_AZ 20201130 Stable ROT_MODEL_RC2800_EARLY_AZ
1003 M2 RC2800_EARLY_AZEL 20201130 Stable ROT_MODEL_RC2800_EARLY_AZEL
1101 EA4TX ARS RCI AZ&EL 20200112.0 Stable ROT_MODEL_RCI_AZEL
1102 EA4TX ARS RCI AZ 20200112.0 Stable ROT_MODEL_RCI_AZ
1201 AMSAT IF-100 20110531.0 Untested ROT_MODEL_IF100
1301 LA7LKA ts7400 20200113.0 Stable ROT_MODEL_TS7400
1401 Celestron NexStar 20110821.0 Untested ROT_MODEL_NEXSTAR
1501 DG9OAA Ether6 (via ethernet) 20201203.0 Stable ROT_MODEL_ETHER6
1601 CNCTRK CNCTRK 20191220.0 Untested ROT_MODEL_CNCTRK
1701 Prosistel D azimuth 20201215.0 Stable ROT_MODEL_PROSISTEL_D_AZ
1702 Prosistel D elevation 20201215.0 Stable ROT_MODEL_PROSISTEL_D_EL
1703 Prosistel Combi-Track az+el 20201215.0 Stable ROT_MODEL_PROSISTEL_COMBI_TRACK_
1801 Meade LX200/Autostar 20200610.0 Stable ROT_MODEL_MEADE
1901 iOptron iOptron 20191209.0 Alpha ROT_MODEL_IOPTRON
2101 SatEL SatEL 20210123.0 Alpha ROT_MODEL_SATEL
2201 Radant AZ-1/AZV-1 20210508.0 Stable ROT_MODEL_RADANT
Zet rotcld op in verbose mode en gekoppeld aan de dummy rotor door het cmd in te geven in een ADMIN power shell
.\rotctld.exe -m 1 -vvvvv
Koppel Gpredict aan een rotor op localhost of remote
Default settings voor de dummy rotor zijn:
-180<->0<->+180 Az
0<->90 El.
Doe een "engage" zodat de huidige (dummy) positie wordt ingelezen (tracking af laten en er naar de ingestelde positie wordt gegaan. (Tack staat af)
Zet engage terug af
Stel manueel een positie in die verschilt van de huidige posite
Zet engage terug op en je zal zien dat de rotor gesimuleerd er naar toe beweegt.
In het voorbeeld zie je dat de huidige positie van de rotor 154.05 28.64 is en de nieuwe instelling 54.06 78.64 (manueel ingesteld).
Je ziet nu in de volgende gegevens uitwisselingen met de get positie, deze langzaam bewegen naar het setpunt.
De update van het SET position commando vanuit Gpredict wordt iedere seconde (setting Gpredict) herhaald.
Het lezen van de actuele positie wordt veel frequenter herhaald.
Je ziet die ook verschijnen in Gpredict.
De video toont je de problemen met een rotor die geen 180 El aankan voor het tracken van passes die over het zenith gaan en daardoor een Az rotatie van 180 graden nodig hebben.
Het is mogelijk om de dummy rotor eigenschappen te geven die verschillend zijn van de default settings.
Zo kan je ook een rotor configureren die az 0-360 en el 0-180 doet, zodat je het verschil kan zien in de werking.
.\rotctld.exe -m 1 --set-conf=min_az=0,max_az=360,min_el=0,max_el=180 -vvv
Connection opened from ::ffff:127.0.0.1:52301
rotctl(d): p '' '' '' ''
rot_get_position called
dummy_rot_get_position called
rot_get_position: got az=154.05, el=28.64
rotctl(d): P '54.06' '78.64' '' ''
rot_set_position called az=54.06 el=78.64
rot_set_position: south_zero=0
dummy_rot_set_position called: 54.06 78.64
rotctl_parse: NETROTCTL_RET 0
rotctl(d): p '' '' '' ''
rot_get_position called
dummy_rot_get_position called
rot_get_position: got az=153.36, el=29.33
rotctl(d): p '' '' '' ''
rot_get_position called
dummy_rot_get_position called
rot_get_position: got az=148.42, el=34.27
rotctl(d): p '' '' '' ''
rot_get_position called
dummy_rot_get_position called
rot_get_position: got az=143.48, el=39.21
rotctl(d): P '54.06' '78.64' '' ''
rot_set_position called az=54.06 el=78.64
rot_set_position: south_zero=0
dummy_rot_set_position called: 54.06 78.64
rotctl_parse: NETROTCTL_RET 0
rotctl(d): p '' '' '' ''
rot_get_position called
dummy_rot_get_position called
rot_get_position: got az=142.79, el=39.90
rotctl(d): P '54.06' '78.64' '' ''
rot_set_position called az=54.06 el=78.64
rot_set_position: south_zero=0
dummy_rot_set_position called: 54.06 78.64
rotctl_parse: NETROTCTL_RET 0
rotctl(d): p '' '' '' ''
rot_get_position called
dummy_rot_get_position called
rot_get_position: got az=142.13, el=40.56
rotctl(d): P '54.06' '78.64' '' ''
rot_set_position called az=54.06 el=78.64
rot_set_position: south_zero=0
dummy_rot_set_position called: 54.06 78.64
rotctl_parse: NETROTCTL_RET 0
rotctl(d):
Het is mogelijk om een aantal parameters aan te passen van een rotor zals bij de dummy rotor.
Een overzicht kan je terug vinden op de manpages van rotctl
De huidige configuratie van de parameters kan je afvragen met
.\rotctl -m 1 --show-conf
De lijst van mogelijke parameters (token) kan je opvragen met de -L
PS C:\Program Files (x86)\hamlib-w64-4.4\bin> .\rotctl.exe -m 1 -L
rot_pathname: "Path name to the device file of the rotator"
Default: /dev/rotator, Value:
write_delay: "Delay in ms between each byte sent out"
Default: 0, Value: 0
Range: 0.0..1000.0, step 1.0
post_write_delay: "Delay in ms between each command sent out"
Default: 0, Value: 0
Range: 0.0..1000.0, step 1.0
timeout: "Timeout in ms"
Default: 0, Value: 0
Range: 0.0..10000.0, step 1.0
retry: "Max number of retry"
Default: 0, Value: 0
Range: 0.0..10.0, step 1.0
flushx: "True enables flushing serial port with read instead of TCFLUSH -- MicroHam"
Default: 0, Value:
Checkbox: 0,1
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
south_zero: "Adjust azimuth 180 degrees for south oriented rotators"
Default: 0, Value: 0
Checkbox: 0,1
mcfg: "Magic parameter, as an example"
Default: ROTATOR, Value: ROTATOR
Het gebruik ervan is mogelijk bij de interactieve programma rotctl.exe door het ingeven van het rotror commando C
Hierna kan je een de bovenstaande settings (tokens) van waarde veranderen.
Nadien kan je testen door manueel een positie in te geven (P) en de positie van de rotor af te vragen (p)
Bij het geven van commando's die buiten de paramteres vallen krijg je een melding:
Na het aanpassen van de limieten min_az, max_az, min_el en max_el, naar 0-360 en 0-180 zie je dat de rotor met het ingeven van een commando P 270 120 geen fout meer geeft en hier gesimuleerd naar toe beweegt.
Je kan dit controleren door telkens de huidige positie af te vragen met p.
Het is ook mogelijk om via de command line deze parameters mee te geven bij het opstaren van de rotctl/rotctld.
Alle paramters worden na elkaar ingegeven.
Een overzicht kan je terug vinden op de manpages van rotctl
.\rotctl.exe -m 1 --set-conf=min_az=0,max_az=360,min_el=0,max_el=180
Hierna beland je in de interactieve mode en kan je verder met P en p testen doen alsook de settings afvragen dmv \dump_state.