I use predict under linux, perl and a comms port.
You can then do what you want.
#!/usr/bin/perl # # Talk to PREDICT satellite tracking and tune Kenwood D700 Radio # # Andrew Rich VK4TEC Aug 2005 # use Socket; use Net::Telnet; use Math::Round; $frequency = "437025"; my $port = 1210; my ($predict_server, $satellite); $predict_server = "localhost"; $satellite = "AO-16"; my ($d1, $d2, $d3, $d4, $rawserver) = gethostbyname($predict_server); my $serveraddr = pack("Sna4x8", 2, $port, $rawserver); my $prototype = getprotobyname('udp');
while () { socket(SOCKET,2,SOCK_DGRAM,$prototype) || die("No Socket\n"); $| = 1; # no buffering $SIG{ALRM} = &time_out; alarm(10); # Force exit if no response from server send(SOCKET, "GET_DOPPLER $satellite\0" , 0 , $serveraddr) or die("UDP send failed $!\n"); my $server_response = ''; # required by recv function recv(SOCKET, $server_response, 100, 0) or die "UDP recv failed $!\n"; #print $server_response; $shift = (($server_response * 4.375) / 1000 ); $newfreq = int($frequency + $shift); $rounded = nearest(5,$newfreq) ; $date = `date +%d/%m/%y" "%H:%M:%S`; chop $date; print "DATE: $date \n"; print "SATT: $satellite \n"; print "BASE: ".($frequency/1000)." MHz \n"; print "HOST: $predict_server \n"; print "PORT: $port \n"; print "TUNE: ".($rounded/1000)." MHz \n"; print "DOPP: $shift \n"; print "D700: FQ 00".$rounded."000,0\n\n"; open (log_file, ">> /data/radio_control.log"); print log_file "DATE: $date \n"; print log_file "SATT: $satellite \n"; print log_file "BASE: ".($frequency/1000)." MHz \n"; print log_file "HOST: $predict_server \n"; print log_file "PORT: $port \n"; print log_file "TUNE: ".($rounded/1000)." MHz \n"; print log_file "DOPP: $shift \n"; print log_file "D700: FQ 00".$rounded."000,0\n\n"; close(log_file);
open (comport, "> /dev/ttyS0"); print comport "BC 0,0\n"; print comport "FQ 00".$rounded."000,0\n"; close(comport);
sleep 5; close(SOCKET); } sub time_out { die "Server not responding for satellite $satellite\n"; }
---------------------------------------------------------------------------- Andrew Rich VK4TEC vk4tec@people.net.au mailto:vk4tec@people.net.au http://www.tech-software.net
-----Original Message----- From: amsat-bb-bounces@amsat.org [mailto:amsat-bb-bounces@amsat.org]On Behalf Of Robert Bruninga Sent: Saturday, 19 January 2008 8:03 AM To: 'Bruce Robertson'; 'Erich Eichmann' Cc: amsat-bb@amsat.org Subject: [SPAM] [amsat-bb] Re: Satellite tracking programming ideas Importance: Low
I have not paid attention.
Have any of the tracking programs incorporated the single serial port operation and control of the D700 or D7 for satellite operations?
For years and years this excellent dual band radio with internal TNC was ignored by most control programs. I wrote APRStk to control it, but kinda lost track if any of the other tracking programs finally picked it up?
And if they did, do they also allow simultaneous control and operation of the TNC.
Bob, WB4APR
-----Original Message----- From: amsat-bb-bounces@amsat.org [mailto:amsat-bb-bounces@amsat.org] On Behalf Of Bruce
Robertson
Sent: Friday, January 18, 2008 4:23 PM To: Erich Eichmann Cc: amsat-bb@amsat.org Subject: [amsat-bb] Re: Satellite tracking programming ideas
Ham Radio Deluxe has a satellite component that does full
doppler
tuning, and it ought to be added to this discussion. I believe
it
works the same way as described below. However, it has a
'transmit'
button which, in many circumstances, needs to be pushed to
provide
reliable operation. I believe under other circumstances, one
can use
the PTT on a transmitting radio to indicate a transmit.
There's a trade-off here in two-radio operation. HRD does not
require
a restart when switching modes from U/V to V/U (and v. v.);
however,
it does require the software transmit. SatPC32 will allow you
to use
the PTT switch on the transmitting radio to indicate transmit
for the
doppler tuning, but you need to restart the program when going
from
U/V to V/U.
HRD does have one feature that I have always really liked, and
that I
would love to see added to any other program with doppler
tuning. It
is common to have these programs indicate the groundstation
frequency,
which of course the radio should read. HRD also (or instead?)
shows
the frequency *at the satellite*. From a user's standpoint
this is
much more useful: it tells you if you're off the band edges of
the
transponder, and if two users have this information, they can
compare
it. (I once early in my use of linear transponders asked the
person I
was chatting with what frequency their software said they were
on on
the bird, and he was quite perplexed. I've since realized that
most
software doesn't provide this information.)
Anyway, that one piece of info would, to my mind, be a great
use of
the SatPC32 real estate. Perhaps it could be the subject of
another
toggle switch, like the one that switches between AOS
countdown and
UTC.
In any case, a big thank-you to the folks who work on these
projects.
You are an invaluable addition to our corner of the hobby.
73, Bruce VE9QRP
On Jan 18, 2008 3:16 PM, Erich Eichmann erich.eichmann@t-online.de wrote:
Hello Phil, you wrote:
This requires some manual intervention in that I have to
stop the
automatic tracking, turn the knob and then restart the
tracking. This
could take a few seconds which would mean that the tracking could be a
few seconds
behind. The alternative is to click on an up / down tuning arrow
which will stop
the tracking and adjust the received frequency. Clicking
on a restart
button would restart the tracking. I think that's the way satpc32
works.
SatPC32 works similar as Instant Tune (see Anthony
Monteiro's detailed
answer): With SSB sats the program polls the RX VFO once per second.
If the result is
equal with the previous one the user hasn't moved the VFO
knob or tuned the
frequencies via mouse or keyboard. Then the program can
update the
frequencies for Doppler correction if necessary.
If the values are different the user has moved the knob or
tuned the radio
via mouse or keyboard. The program then postpones a possible
Doppler
correction. It waits until it gets two equal values again
(that means the
user has stopped moving the knob). Then it calculates the
frequency change
the user made and recalculates and sets the new TX
frequency like your
program does and automatically continues with Doppler
correction.
So, no manual intervention is necessary.
The program updates the radio frequencies for Doppler
correction when the
higher one of both frequencies has changed by a certain
amount of Hertz.
This "interval" can be selected separately for SSB and FM
sats (typically
50 - 100 Hz with SSB and 300 - 500 Hz with FM sats).
Good luck with your project.
73s, Erich, DK1TB
----- Original Message ----- From: "Phil" phillor@telstra.com To: amsat-bb@amsat.org Sent: Friday, January 18, 2008 8:26 AM Subject: [amsat-bb] Satellite tracking programming ideas
Thank you for reading this.
I'm currently marooned because of flood water, and likely
to be so for at
least another week, so to pass some time I decided to
upgrade my satellite
tracking program. Disappointingly, playing with the
current satellites in
this country is pointless so the programming exercise is
purely academic.
Originally, my tracking program displayed the link
frequencies but I
decided that was unnecessary since the radio has a perfectly good
display itself.
So to make frequency corrections, due to hardware errors, or
to listen to
another part of the downlink I simply used the radio's
tuning knob. The
program detected that the receiver's frequency had
changed and calculated
a new uplink frequency.
This requires some manual intervention in that I have to
stop the
automatic tracking, turn the knob and then restart the tracking.
This could take a
few seconds which would mean that the tracking could be a few
seconds behind.
The alternative is to click on an up / down tuning arrow
which will stop
the tracking and adjust the received frequency. Clicking on a
restart button
would restart the tracking. I think that's the way satpc32
works.
I've probably got too much time on my hands and both
methods seem to work
equally well. Does one method have an advantage over the
other?
The update interval has to be fairly short so that a
manual frequency
change can be quickly detected. I'm currently updating the radio
based on time.
The alternative is to update based on frequency, say every
time the higher
frequency changes by 20Hz. This would lessen the number
of radio updates
during periods where the Doppler effect is at a minimum
but does it matter
if the radio is undated unnecessary? The rotator bearing
is updated every
ten degrees but that's to lessen mechanical fatigue.
Regards, Phil.
Sent via AMSAT-BB@amsat.org. Opinions expressed are those
of the author.
Not an AMSAT-NA member? Join now to support the amateur
satellite program!
Subscription settings:
http://amsat.org/mailman/listinfo/amsat-bb
Sent via AMSAT-BB@amsat.org. Opinions expressed are those
of the author.
Not an AMSAT-NA member? Join now to support the amateur
satellite program!
Subscription settings:
http://amsat.org/mailman/listinfo/amsat-bb
Sent via AMSAT-BB@amsat.org. Opinions expressed are those of the author. Not an AMSAT-NA member? Join now to support the amateur satellite program! Subscription settings:
http://amsat.org/mailman/listinfo/amsat-bb
_______________________________________________ Sent via AMSAT-BB@amsat.org. Opinions expressed are those of the author. Not an AMSAT-NA member? Join now to support the amateur satellite program! Subscription settings: http://amsat.org/mailman/listinfo/amsat-bb