K3 EME Utility


I wrote it for my own use but it could be interesting for K3 owners using the transceiver to drive VHF-UHF transverter for EME traffic, it is a
small prototype of a utility to be used with a K3 transceiver to split automatically receive and transmit according to the current moon doppler.
The programs allows also changing CW speed select one of 4 CW predefined messages as well as an audio file to be used as SSB CQ call.
The bands currently covered are 70 & 23 cm + any axiliary band by defining the proper frequency,
the status has to be intended as an initial prototype and any suggestion for improvements (if interested) is welcome.
It has been tested on a XP system as well as Windows 8/64 and W10 (to be run as administrator).
The application was written with K3 as target but should be usable with any CAT compatible transceiver (tested with K2 and Flex).

Download zip file

NTP Clock Synchronization

To avoid the trouble of using one of the various utilities to keep a correct CPU time (WSJT requirement) and since i had compatibility issues with various operating systems
i have included inside the K3 utility the code to keep the local timer in sync using one of the NTP available servers.
The funtionality can be enabled at wish and gives feedback on its functionality.


An Elecraft K3 transceiver connected to the PC via the serial com.
The K3 Utility must be the only program connected to the K3.


Extract K3 Keyer.exe from the zip file in a disk directory and run it from there with administrator privilege

Configuration Parameters

A POP up menu allows to taylor the functionality to local requirements:

The configurator is divided in a K3 section and an NTP panel

K3 Parameters

Com Port, number to address the K3 connection
Com Speed, serial baud rate (if the connection is via a native USB is meaningless)
Latitude, & Longitude in decimal form
Aux Mhz used in case of Aux band
Band selection, used for doppler calculation,
Audio device ,in case of multiple audio boards, allows to select the one connected to k3
Audio files, to select the .wav SSB CQ call (it has to reside in the same directory as the executable)

NTP Panel

Update interval (in minutes) the time between two time sync operation,the default is 60min.
The first time sync operation takes always place in 2minutes time after the program starting, the followings according to the given parameter.
NTP Sync enable to start the fuctionality when checked
The rest of the panel shows details of the functionality:

-Last update, time stamp of the last time sync
-Last time, Adjust the amount of time discrepancy
- NR.Success, Number of succesful operations
- NR.Failures, Number of failures
- Current server, the server name is not configurable but chosen in a random fashion following the indication of the NIST organization


CW Messages

M1-M4 To start sending the corresponding predefined CW (or phone> message)
Stop Stop transmitting


Press the button to start CQing

CW Speed

Slider To change current K3 CW speed

Pro moon

The split operations are driven by current A VFO frequency and mode.
Split TX , VFO A frequency and mode are copied to VFO B, current doppler is added to VFO B frequency, K3 forced to split mode.
Split RX , VFO A frequency and mode are copied to VFO B, current doppler is added to VFO A frequency, K3 forced to split mode.
Resync RX , VFO B frequency is copied to VFO A, current doppler is added to VFO A frequency.
Reset , split mode is reset , RIT & XIT cleared.
Doppler Current own doppler shift on the selected band (read only)
Doppler sync, enables the automatic VFO A doppler tracking for the selected band


The mode selection helps a bit in setting the tranceiver, the prerequisite is to have the front microphone as main selection.
Each selection sets VFO A & VFO B to the selected mode (USB also for WSJT).
The difference between WSJT & SSB being the use of VOX in WSJT & SSB call to avoid the need for a serial connection to switch between TX and RX
and the input selection, LINE IN if WSJT FP MICROPHONE if SSB.


Sometime the application does not connect to K3 at the first time. In case it happens just close the application and run it again.
I did not care to investigate why yet.