Regular reports of my grabber activity and that of others, plus information on QRSS software, hardware and technique that comes my way

Sunday, June 7, 2015

Time-sharing a Grabber for Multiband Coverage

The most popular band for QRSS work is by far 30m.  Although at least one grabber op, G0XXX, has several receivers to allow other bands to be covered most of us cover other bands by moving on special occasions, such as a "weekend on 40m" or such.  Here I describe a technique I am now using which allows me to grab on several bands by time-sharing, i.e.,  moving the grabber periodically in ten minute frames.

The best and easiest way to control a receiver's frequency is via commands sent from the computer's serial port. Unfortunately the RS232 function in my TS440 no longer works so I've devised a technique which utilizes the UP/DOWN pins on the mic jack.  On the 440, shorting pin 3 will cause the frequency or memory to increment up while shorting pin 4 moves it down.  Computer commands can be obtained from the RS234 port by sending a binary number to the COM1 address from a simple program, which in my case is FreeBasic.  Here's an example of the FreeBasic code to make that happen:

     open "COM1:9600,N,8,1,CS,DS,RS" FOR Binary AS #1
     Out &h3fc,01      Rem set DTR low
     Sleep 250,0         Rem delay 250 ms
     Out &h3fc,00      Rem Set DTR hi

&h3fc is the address of the serial port,  01 causes the DTR pin to go from -10 to +10 vdc and 00 moves it back to -10v.  The  200ms delay gives enough time for the hardware to respond but not so much that memory moves more than one channel.  02 sets the RTS hi (mic/dwn)

The RS232 voltages need to be converted to an open/short condition with a level converter.  This is the circuit I use (two needed) :

Circuit from QRS by ON7YD

At present I use just three bands, 40m, 30m and 20m, with 40m being replaced by 10m or 15m during the daylight hours.  Here is the program written in the QuickBasic dialect of FreeBasic:

#Lang "qb"

Dim m As Integer
OPEN  "COM1:9600,N,8,1,CS,DS,RS" FOR Binary AS #1
Out &h3fc,00

Print "start"
zero: Rem inc To Next frequency when m changes (10 minutes)

If m=Val(Mid$(Time$,4,1)) Then GoTo zero
GoSub inc

Rem Print "at one"
one:  Rem inc To Next frequency when m changes (10 minutes)

If m=Val(Mid$(Time$,4,1)) Then GoTo one
GoSub inc

Rem Print "at two"
two:  Rem dec back To first frequency

If m=Val(Mid$(Time$,4,1)) Then GoTo two
GoSub dec

Print "inc"
Out &h3fc,01 Rem set DTR low
Sleep 200,0  Rem delay 250 ms
Out &h3fc,00 Rem Set DTR hi
m=Val(Mid$(Time$,4,1)) Rem set New m
Rem Print "leaving inc"


Print "dec"
Out &h3fc,02 rem dec twice To Return To start frequency
Sleep 200,0
Out &h3fc,00
Sleep 1
Out &h3fc,02
Sleep 200,0
Out &h3fc,00
rem Print "leaving dec"

GoTo zero

The program starts on the first frequency and checks the tens digit of minutes until it changes and increments to the second frequency. Repeats this a second time to reach the third frequency and finally decrements twice to return to the first frequency.  The "print" commands are for debugging.

In order to make the Spectrum Lab frequency scale show the correct values it's necessary to use the "Conditional Actions" feature to load in the "frequency offset" based on each ten minute period.  Here's what that looks like:

Be sure that the "sync" box is checked to activate "conditional actions"..

The start times of the first frequency are xx00 and xx30. The program can be started anytime during these time intervals in order to be synchronized.

Here's the steps to starting the program to ensure synchronization:

1.   Load the frequencies into the receiver's memory bank in sequential order and set to the first frequency.         The frequencies are the same as those specified in WSPR.

2.   Set up the "conditional actions" per figure xx and check the box in the files menu.

3.   Start the program between the first ten minutes (xx00 to xx10z) or the fourth ten minutes (xx30 to xx40z)       ensure synchronization.

I have chosen to use just 3 frequencies to allow each to be covered twice in one hour because it's a good compromise between bands and time between grabs for each band. At present 40/30/20m are covered at night and 15/30/20 during the day.  Changing from 40 to 15m for the first slot only requires entering the new frequency into memory slot one for the receiver and changing the corresponding frequency in the "conditional actions" table.

After debugging the software the only problem I've had is getting the delay correct in the inc: and dec: subroutines.  Remember, if the mic up/dwn button is held down the memory will scan until released and we want just one jog so it needs to be short enough to prevent this.  At the same time, if it is too brief the hardware does not have enough time to react.  For your system you may have to play with the delay.