            REAL TIME TUNING WITH THE KANSAS CITY TUNER
                         AND INSTANTTRACK
                                 
                                BY
                                 
                         JOE BARGER N6KK
                          2009 HARKNESS
                    MANHATTAN BEACH, CA 90266
               internet: barger@aerospace.aero.org
                  satellite: AO-16, LO-19, UO-22
                        bbs: N6KK @ WB6YMH
                      compuserv: 71560,2514
                                 
                                 
                                 
INTRODUCTION


     This is an extension to my previous article describing
improvements to the Kansas City Tracker/Tuner (KCT/T)(re:
March/Aprin AMSAT Journal).  In that article I described some
changes that improve the tuning performance of the Tuner as well
as modifications to the Tuner Pop-Up display.  The latest version
of these modifications (KCT511) has all the features of the first
version (KCT500), but has been enhanced with some new features,
including real time tuning with InstantTrack.  The hardware
modifications (described in KCT500) are not necessary to use the
additional features described in this article.

     While operating the KCT/T, I often found myself wishing I
had the flexibility to instantly change from satellite to
satellite and maintain antenna pointing and uplink/downlink
tuning.  The original version of the KCT/T requires that a pass
table be calculated and loaded (using, for example, Quiktrak)
prior to a pass to accomplish automatic uplink/downlink tuning. 
Automatic antenna tracking is much more flexible, however.  A
simple command from the Quiktrak real time display initiates the
sending of periodic pointing commands to the KCT/T and the KCT/T
takes care of pointing the antennas in real time.  Why couldn't
real time uplink/downlink tuning be accomplished using a similar
method?


INSTANTTRACK AND ORBITDRV

     The interface between Quiktrak and the KCT/T is thoroughly
described in "KANSAS CITY TRACKER/TUNER, Driver Service-Call
Functions" dated 3/5/91, which is supplied with both the KCT/T
and Quiktrak.  Unfortunately, no tuning information is passed in
the latest version of Quiktrak (ver. 4.0a), but Bob McGwier is
looking at adding that capability to version 5.

     Another tracking program used extensively is InstantTrack by
Franklin Antonio (available through AMSAT).  InstantTrack does
not have a facility to load pass tables, but real time antenna
pointing via KCT/T is provided by a Terminate and Stay Resident
(TSR) program called OrbitDRV, which is supplied with
InstantTrack.  OrbitDRV is initialized by InstantTrack and runs
in the background, even if InstantTrack is terminated.  This TSR
is what makes it possible to leave InstantTrack and continue
pointing the antennas.  

     The OrbitDRV to KCT/T interface description is also provided
with InstantTrack and detailed in "Interrupt Interface to
InstantTrack Orbit Driver" by Paul Williamson, KB5MU (last
revised 10/31/89).  Franklin Antonio and Paul Williamson must
have anticipated the usefulness of real time tuning, since, in
addition to the real time pointing commands, real time tuning
information is also available via a software interrupt.  The
tuning information is provided as a range rate (which is how fast
the satellite is moving relative to the station).  The range rate
is independent of frequency.  The doppler shifted frequency for,
say, a beacon, is simply obtained by multiplying the unshifted
beacon frequency by the range rate and adding back in the
unshifted beacon frequency.  Because the KCT/T uses the shifted
beacon frequency as the basis for calculating shifted uplink and
downlink frequencies, all that is needed to implement real time
tuning is an addition to the Tuner program to handle the software
interrupt and one relatively simple calculation to figure the
shifted beacon frequency.

     This was not quite as simple as it seemed.  The interrupt
handler wasn't much of a problem and worked the first time
(incredible!).  Because the KCT/T uses fixed point arithmetic and
the range rate is passed as a double precision floating point
number, I had to normalize the floating point number (i.e.,
convert to fixed point).  Since my knowledge of how floating
point numbers are stored in memory was rusty, this took a little
while to figure out.  I also spent some time (and consultation
with Paul) trying to figure out why I couldn't get OrbitDRV
status as often as I wanted to.  I was going to use the status
for error checking, but, deep in the murky world of TSR
interactions, something didn't work quite right so the error
handling is not quite as robust as I would like.  But I have not
had a problem with it so far.

     After adding some mode control logic to switch between real
time mode and tabled pass mode, the real time tuning feature
seemed to be working.  A minor problem became apparent on the
first pass, however.  The update rate via OrbitDRV is around once
every 2 seconds.  On high elevation passes where the doppler
shift is highest, that resulted in an error of over 200 Hz before
the next update.  I added a simple linear interpolation routine
that resulted in a one Hertz update rate and much better
performance.



TUNER POP-UP CHANGES

     The Tuner Pop-Up is a little different in this version. 
F-Trak now has two variables: ON/OFF and TABLED/REAL.  ON/OFF is
toggled with the "F" key and turns the automatic downlink
correction function on and off.  TABLED/REAL is controlled with
the "M" key and indicates the mode that F-Trak is in.  When the
real time mode is selected (and a satellite has been chosen for
tracking in InstantTrack with the "R" key), the LOS/AOS display
is replaced with IN VIEW: YES/NO.  Because the real time mode has
no way of knowing when a pass will start or how long it will
last, the LOS/AOS times cannot be displayed in the real time
Tuner Pop-Up (but they can easily be found in the InstantTrack
display if the "W" key is pressed).

     There is also now a tuner command line option to change the
antenna polarity switch threshold.  To change the threshold, add
/pth=x where x is a relative signal strength between 1 to 128
(default 13).  Relative signal strengths are related to S units
approximately as follows:

     S-Meter        Relative Signal Level
     (S units)      (threshold setting)
-------------------------------------------------------------
          1              1
          2              11
          3              17
          4              22
          5              28
          6              33
          7              38
          8              44
          9              52
          9+20           73
          9+40           94
          9+60           111
          Full Scale     128


     The default uplink/downlink channel can now be chosen before
a pass starts (which is particularly helpful in the tabled
mode).  Simply choose the "Change" Pop-Up window and use the
appropriate function key (F5 to F8) to select the desired
uplink/downlink frequency (i.e., F5 or F6 to select the uplink
frequency).  This value will be stored as the default and used
each time that particular satellite is selected.

     The up and down arrows now change the downlink ADJUST value
whenever the downlink ADJUST field is displayed in the Active
Tuner window.  If the field is not highlighted, the ADJUST value
is temporary, and the "permanent" ADJUST value (set when the
field is highlighted via the tab key) is restored about one
minute after a pass has ended.  This resets the ADJUST value so
that if OrbitDRV and KCT/T are left running for the next pass,
the desired initial ADJUST value will be used at AOS.  There is a
slight delay between when the arrow is pressed and when the radio
is actually updated, so don't expect instantaneous response.

     For those users who don't use the F-TRAK or P-TRAK functions
a command line option has been added to switch the F-TRAK and
P-TRAK functions off.  Add /ton=0 to the tuner command line to
automatically turn the F-TRAK and P-TRAK functions off during
boot-up.

     The real time tuning function can be continuous or enabled
just when a pass is active.  By setting the command line switch
/rta=0, the real time tuning function is active continuously
(i.e., the CAT is on and the transceiver keeps tuning even if the
satellite is out of view).  If /rta=1 (the default), real time
tuning is active only when a pass is active (i.e., the predicted
elevation of the selected satellite is greater than one degree). 
An advantage of having the continuous tuning function enabled is
that you are assured the entire pass will be tuned at the expense
of monopolizing the transceiver, while with the "pass active
only" mode, part of the beginning and ending of the pass may be
missed, but the transceiver will not be tied up between passes.



OPERATION

     Assuming the new KCT/T has been installed as a TSR, the next
step is to install OrbitDRV according to the instructions
provided with InstantTrack.  Start InstantTrack and select the
text mode real time tracking (the KCT/T Pop-Ups will not work
with the graphics mode, but, once everything is running as you
like, you can switch to graphics mode and pointing and tuning
will continue in real time).  Select a satellite which is also
defined in KCT/T and press "R" to activate OrbitDRV.  Now press
whatever "hot key" you have defined for the Tuner Pop-Up and the
Tuner "Active" window should appear.  Press "M" and after a few
seconds (while the Tuner gets itself going) the window will come
alive and real time tuning and (if a pass is active at the
moment) pointing will start.  You may now leave the Tuner Pop-Up
(with the ESC key) and, for example, peruse the other satellites
in your InstantTrack data base while real time tracking of your
first selection continues.  

     If you want to track a new satellite, simply select the
satellite and press "R" twice (once to clear the original
satellite, again to initialize OrbitDRV for the new bird).  Real
time pointing and tuning will start for the new bird in a few
seconds.  Note that there is no need to bring the Tuner Pop-Up to
the foreground.  You may also leave InstantTrack completely and
real time tuning and tracking will continue and (so long as you
are in a text mode) you can invoke the Tuner Pop-Up at anytime.



CONCLUSION

     After the real time tuning function was installed, working
the satellites was easier than ever.  Loading large pass tables
is not required and instant satellite "hopping" with continuous
antenna and uplink/downlink tracking is easy.

     Thanks again to Paul Williamson for his help with OrbitDRV
and this manuscript and Brooks Van Pelt, the original designer of
the KCT/T, for allowing me to make these modifications and pass
them on to other users of the KCT/T.
