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() ______________________________________________________________ Elecraft mailing list Home: http://mailman.qth.net/mailman/listinfo/elecraft Help: http://mailman.qth.net/mmfaq.htm Post: mailto:[email protected] This list hosted by: http://www.qsl.net Please help support this email list: http://www.qsl.net/donate.html Message delivered to [email protected]

