12 posts / 0 new
Last post
Last seen: 11 years 12 months ago
Joined: 2009/07/21 - 15:04

Warning - long post!

Summary - a method of using WSPR with a rig CAT control program
(in this case HRD) using a 'scripting' program to control TX/RX
with a possible extension to include band-changes and power-level

I have been 'playing' with WSPR off and on for a few months now using
Ham Radio Deluxe manually to control the TX/RX switching of my FT-817 as there
is no CAT control in WSPR and no VOX on the data input of the FT-817.

Solutions to automate the switching that appeared were to build a
transistor switch and use the RTS line switched by WSPR to control
the TX/RX, build a VOX switch as per
or to use the software solution as per

The software solution wouldn't work for me and I haven't got around to
building (yet!) the hardware solutions because of another solution
that I came up with which is working fine. I would like to make this
available to anyone who wants to use it and also because the method
could be extended to allow WSPR to be used on multiple bands and

Quite a few years ago I was involved in creating automated
installs of Windows NT - many of the drivers/utilities/packages that
customers wanted installed automagically were not written to allow this
to happen so I used a tool called Scriptit
from Microsoft which allowed keystrokes/mouse-clicks etc from a script
to automatically be typed into windows displayed on the screen.

It occurred to me that this was precisely what I was doing manually when
using WSPR and HRD - watching for WSPR to go into TX when I would click
the TX button in HRD and vice versa - could this be 'scripted'?

The answer is yes...I searched around and found a VERY powerful scripting
tool/package called Autoit (much better than Scriptit!) (see
This is free, similar to Basic and comes with a development editor, excellent help file, a utility to read screen colour, mouse position, button control IDs etc
and a utility to convert the debugged script into an executable.
You can even create GUIs (examples are included in the package).

To create scripts (or run the provided ones) you will need the Autoit package.

I put together some scripts which are available at the links shown below
(they are flat text files). Basically what the final script does is
check the colour of the status box in WSPR and compare it with the
colour of the TX button in HRD - if they do not match then it clicks
the TX button in HRD and then continues looping. The script is not
very elegant as it makes the two windows (WSPR and HRD) alternately
active and then checks the colours and requires the script to be manually stopped
but it is simple and works for me. I could probably be cleverer and have
the script sit 'watching' WSPR for a change of state etc and then take
appropriate action but that will be Ver. 2!
After all it's only about 12 lines of script not including the comments.
When the script's not running then the other programs operate as normal.

WSP9.AU3 - this script was written to try out the technique with HRD
setup for a Demomatic FT2000 that is included with HRD - this
allows debugging without a real rig keying-up all the time and
doing strange things. This will allow you to try it out as well.This
assumes WSPR and HRD are running, resizes their windows and then watches
the WSPR status. The MONI button on the FT2000 should follow the WSPR status.

WSP9_817_TX.AU3 - this is WSP9.AU3 changed to operate my FT-817.
Compare this with WSP9 to work out the changes required for your

WSP6.AU3 - a script to check out window position, pixel colours and coordinates
and that the correct button is pushed.

The technique could be extended as I mentioned above as you can 'stuff'
keystrokes, mouse-clicks and mouse-wheel movements into any window you
like.. A script could wait for WSPR to go to receive, change power-level
using the CAT program, update the WSPR setup to show the new power-level
and then wait for WSPR to transmit again. Alternatively with an auto-ATU
or multi-band antenna you could change bands and update WSPR in the receive
period to show the new frequency.

This is not a complete/finished solution but I hope that it provides food for