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.