[Elecraft] [K3] Single Side display of Pileup on P3 in SSB mode
Warren Merkel
hullspeed21 at gmail.com
Sun Feb 21 13:52:20 EST 2016
My thanks go out to Tim Seed for making me dig into this further.
I modified Tim's Python scripts to work correctly under Windows and
perform the same action in SSB mode. Though, if the serial port is
changed as noted, it should work under Linux as well. I have included
two versions of each, one "win" version and the other "linux", the
difference only being the CR/LF encoding of the file.
I modified a few of the commands to suit my preferences and had to fix a
slight issue where multiple commands didn't
execute reliably when combined in the same statement. (the whole reason
for running it in a loop in python was to add a delay!)
It doesn't quite put the DX station on the left "margin" of the P3, but
is close enough and gives you a peek of what is just below the DX.
It runs slow due to the one second delay between commands, however it
works pretty well otherwise. I have included a modified reset script as
well. If in the future, a NOP (No Operation) or delay macro is
discovered in the K3 that could be used to allow proper pacing, the
python script can be retired.
I have posted them on Dropbox here:
https://dl.dropboxusercontent.com/u/24789865/Elecraft-K3-Pan-Pile-Up-SSB.zip
Warren Merkel, KD4Z
The new SSB version script looks like this:
import serial
import time
# Original script : Tim Seed
# Modified: Warren Merkel, KD4Z
# modified for SSB mode and split commands into single steps for robustness
# Used to configure the K3 and P3 to shift the display so that a DX station
# currently tuned in VFO A, is moved to the left side of the P3 screen,
# and the P3 span and tracking modes set to allow easy VFO A movement
# without causing the P3 to shift the position of the DX station
# from the left side.
# Note, you likely have already set the K3 into Split mode before executing
# this script, so that isn't handled here
# Requires Python 2.7 or 3.x and appropriate PySerial library
# #FXT - Fixed or Tracking Select
# options are:
# FXT0; Tracking
# FXT1; Fixed-tune (used below)
# #FXA - Fixed-tune Auto-adjust mode (screen pan method)
# options are:
# #FXA0; Full screen
# #FXA1; Half screen (used below)
# #FXA2; Slide
# #FXA3; Static
# SPN - Display Span size
# options are dependent on size desired, xxxxxxx in 100 Hz units
# for example:
# #SPN000500; sets to 50 kHz
# #SPN002000; sets to 200 kHz (used below)
# DN - Move VFO A Down
# UP - Move VFO A Up
# the options are in fixed values. The largest step is 5kHz, so it is
used twice
# #DN7; move down 5kHz
# #UP7; move up 5kHz
# typical windows com0com virtual port
# port = "\\\\.\\CNCA0"
# USB port in linux
# port ='/dev/ttyUSB1'
# change the port to a valid port on your system.
# it will be either the physical port the Elecraft radio
# is connected to, or the Virtual port exposed by virtual
# com port sharing software.
# example below is using COM1 at 38400 baud on a Windows system
p3_plus_mode = [('#FXT0;','P3 Tracking mode On'),
('#FXA0;','P3 Full Screen Pan mode'),
('#SPN000300;', 'P3 30 Khz span'),
('UP7;', 'K3 VFO-A UP 5 Khz'),
('UP7;', 'K3 VFO-A UP 5 Khz'),
('#FXT1;', 'P3 Fixed-tune mode on'),
('#FXA1;', 'P3 Static Screen Pan mode'),
('DN7;', 'K3 VFO-A DWN 5 Khz'),
('DN7;', 'K3 VFO-A DWN 5 Khz')
]
sp = serial.Serial(
port='COM1',
baudrate=38400,
parity=serial.PARITY_NONE,
bytesize=serial.EIGHTBITS,
stopbits=serial.STOPBITS_ONE,
timeout = 1)
for a in p3_plus_mode:
cmd = a[0]
what = a[1]
print what
rv = sp.write(bytes(cmd))
if int(rv) == len(cmd):
print("\t\t\tOK")
else:
print("\t\t\tProblem")
time.sleep(1)
quit()
More information about the Elecraft
mailing list