With the Elecraft K-3 you have the ability to write macros and load them into the transceiver using the Download and Configuration Utility. "Macro" is short for "macroinstruction." It is a set of individual instructions grouped together into one large instruction that can tell a computer (or the K-3) to do several things. Once you load the macro to the K-3 you can then define a front panel button to execute the macro.
For some time I have been using two macros that I have configured to use the "PF1" and "PF2" buttons on the K-3's front panel. One of them would automatically set the "A" and "B" VFO's to the same
frequency, turn on the SHIFT, and move the "B" VFO up 2 kHz. That way,
if someone says "UP2" you can just hit 1 button and it will all be done
in a flash. I programmed the "PF1" button to shift UP 1 and "PF2" to shift UP 2 kHz. It worked great.
Recently I became aware of some "special" coding of these macros which allowed them to perform more than just the one single set of instructions. The "special" coding, in essence, would on the first push of the button execute the first part of the macro. Then, the remainder of the macro would re-program the button to perform another function on the second push.
I found many examples of macros in the K3 Configuration Utility Help file (Tab Pages | Command Tester/K3 Macros | Macro Buttons) as well as on KE7X's "Macro Repository" page HERE. In the above referenced Help item there is the following statement:
A command memory may include commands to assign macros to buttons. This results in one button executing different command macros on successive button presses.Think of it like a button that on the first push turns ON a lamp and on the next push, turns it OFF. The Help file then gives references to posts by KU4AF HERE and K1HTV HERE that give details on how to do this.
I took what I saw in the above references and adapted it to my use and for loading into the "PF1" and "PF2" buttons. The result was two separate "sets" of macros for the "PF1" and "PF2" buttons. I could also have programmed the M1-M4 memory buttons but I wanted to keep those for accessing the Voice and CW Memories.
What I decided to do was to set up one macro to put the radio into Split and after that was completed, re-program the same button to perform a "Cleanup" on the next button push. This "Cleanup" takes the radio out of Split mode and puts all the settings back to normal. The second button would be programmed to put the radio into SSB, CW, DATA A (PSK-31), and RTTY modes on each successive button push. To do this I had to set up 6 macros in the K-3 Configuration Utility. Two of the macros are programmed into the "PF1" button and 4 of them into the "PF2" button. Those 6 macros perform as follows - PF1 is now the Split ON/OFF button and PF2 is the Change Mode button. You can jump to the headings of "PF1 - - -"and "PF2 - - -" below in this Post to see each of those.
PF1 - - -
Once these macros have been loaded, the "PF1" button now performs like this,
Press PF1 - the K-3 goes into Split Mode
Press PF1 again - the K-3 goes back to normal
I have also changed what the K-3 does when it goes into Split Mode. Now when I press PF-1 the first time it turns on the SUB receiver, puts the VFO A information into VFO B, goes into Split Mode, moves VFO B up 3 kHz (so this button can be used for both CW and SSB splits - you just have to move the VFO B knob to where you need to be), turns off the RIT and XIT, and LOCKS the VFO A knob so you can't accidentally move it and lose the DX station. Pressing PF1 again will put everything back to normal. It is so COOL! You can move into Split Mode and back out with just a single button push plus you get all the other settings done at the same time with just one button! AWESOME!
The big changes here are that the PF1 button now automatically turns on the SUB Receiver and LOCKS the "A" VFO so you can't accidentally lose the DX station. A minor changes is that VFO B is now 3 kHz UP instead of just 1 or 2. That way, if it is a CW station saying UP1, you just have to tune VFO B down 2 kHz. If it is an SSB station saying UP5, then you just move the "B" VFO up 2 kHz. That way this Split button works for both CW and SSB. Heck, it even works for RTTY stations going split.
Below are the details of the changes to the PF1 button. First is a description of what is being done and then the Macro Label and actual Macro Commands are shown. Anyone can simply Copy and Paste these from this Post into their K-3 Configuration Utility so the setup of these features is FAST!
CW Split starting point (UP 3)
This is a split variation contributed by Dave, N1LQ. Dave chose a compromise between the +2 and +5 versions. A quick twist of VFO B puts Dave up or down depending on CW or SSB.
SB1; turns the sub receiver on
SWT13; taps A>B once to copy VFO A frequency to VFO B
SWT13; taps A>B again to copy all other settings to VFO B
FT1; enters Split mode.
UPB6; moves VFO B up 3 kHz
RT0; turns RIT off
XT0; turns XIT off
LK1; locks VFO A to prevent changes to the receiver listening to the DX station in the heat of the pileup
The following steps re-program the PF1 button to Macro #2
MN110; enters the CONFIG Menu
SWT12; taps the (2) button to choose Macro #2
SWH45; holds the PF1 button
SWT14; taps the Menu button
Macro Label #1 - Split+3
SB1;SWT13;SWT13;FT1;UPB6;RT0;
Cleanup
This is a "cleanup" macro contributed by Dave, N1LQ
SB0; turns the sub receiver off
FT0; turns split mode off
RT0; turns RIT off
XT0; turns XIT off
LN0; unlinks the VFOs
SQ000; turns squelch off
SWT13; taps A>B to copy VFO A frequency to VFO B
SWT13; taps A>B again to copy all other settings from VFO A to B
LK0; unlocks VFO A
The following steps re-program the PF1 button to Macro #1
MN110; enters the CONFIG Menu
SWT11; taps the (1) button to choose Macro #1
SWH45; holds the PF1 button
SWT14; taps the Menu button
Macro Label #2 - Cleanup
SB0;FT0;RT0;XT0;LN0;SQ000;
PF2 - - -
Press PF2 - the K-3 goes into USB Mode
Press PF2 again - the K-3 goes into CW Mode
Press PF2 again - the K-3 goes into DATA-A Mode (PSK-31 and other such modes)
Press PF2 again - the K-3 goes into RTTY Mode
Press PF2 again - the K-3 goes into USB Mode
. . . and so on
This looks like a lot of work but it should make things VERY simple to switch from USB to CW to PSK-31 to RTTY and back. But, remember - you do NOT need to use these buttons. If you find that doing it the old way works better for you, then leave this alone.
Now that I have programmed my K-3 to do these functions, I'll be checking it out to see if I need to fine tune any of the parameters. If anything needs to be changes, it's a simple thing to do.
Below is the detail for the four steps for the PF2 button:
Set SSB Parameters
MD2; selects USB mode
MN053; selects MIC SEL menu
DN; DN; moves the MIC SEL parameter down to Front Panel
UP; moves the MIC SEL up to Rear Panel (use this only if you are using the Rear MIC IN jack)
MG024; sets MIC Gain to "24" (insert appropriate numbers for your setup)
CP017; sets Speech Compression to "17" (insert appropriate numbers for your setup)
LK0; unlocks VFO A
BW0270; sets Bandwidth to 2.70 kHz.
The following steps re-program the PF2 button to Macro #4
MN110; enters the CONFIG Menu
SWT24; taps the (4) button to choose Macro #4
SWH47; holds the PF2 button
SWT14; taps the Menu button
Macro Label #3 - USB-PF2
MD2;MN053;DN;DN;UP;MG024;
Set CW Parameters
MD3; selects CWmode
LK0; unlocks VFO A
BW0040; sets Bandwidth to 400 Hz.
KS022; sets Keyer Speed to 22 WPM
The following steps re-program the PF2 button to Macro #5
MN110; enters the CONFIG Menu
SWT27; taps the (5) button to choose Macro #5
SWH47; holds the PF2 button
SWT14; taps the Menu button
Macro Label #4 - CW-PF2
MD3;LK0;BW0040;KS022;MN110;
Set DATA-A Parameters
MD6; selects DATA mode
DT0; selects Data-A sub-mode
MN053; selects MIC SEL menu
UP;UP; moves the MIC SEL parameter to Line In
BW0400; sets the Bandwidth to 4.0 kHz.
LK1; locks VFO A
The following steps re-program the PF2 button to Macro #6
MN110; enters the CONFIG Menu
SWT29; taps the (6) button to choose Macro #6
SWH47; holds the PF2 button
SWT14; taps the Menu button
Macro Label #5 - DTA-PF2
MD6;DT0;MN053;UP;UP;BW0400;
Set RTTY ParametersMD6; selects DATA mode
DT2; selects FSK D sub-mode
BW0050; sets the Bandwidth to 500 Hz.
LK0; unlocks VFO A
The following steps re-program the PF2 button to Macro #3
MN110; enters the CONFIG Menu
SWT13; taps the (3) button to choose Macro #3
SWH47; holds the PF2 button
SWT14; taps the Menu button
Macro Label #6 - RTT-PF2
MD6;DT2;BW0050;LK0;MN110;
The text labeled "Macro Label" goes into that field in the utility and the line underneath that is the actual macro text which goes into that field.
Macro Label #1 - Split+3
SB1;SWT13;SWT13;FT1;UPB6;RT0;XT0;LK1;MN110;SWT12;SWH45;SWT14;
Macro Label #2 - Cleanup
SB0;FT0;RT0;XT0;LN0;SQ000;
Macro Label #3 - USB-PF2
MD2;MN053;DN;DN;UP;MG024;
Macro Label #4 - CW-PF2
MD3;LK0;BW0040;KS022;MN110;
Macro Label #5 - DTA-PF2
MD6;DT0;MN053;UP;UP;BW0400;
Macro Label #6 - RTT-PF2
MD6;DT2;BW0050;LK0;MN110;
On the K-3 go to CONFIG:MACRO
Press "1"
HOLD the PF1 key until "PF1 SET" appears
Tap the "Menu" key
Then go to CONFIG:MACRO
Press "3"
HOLD the PF2 key until "PF2 SET" appears
Tap the "Menu" key
These steps assign the "Split" Macros to "PF1" and the "Mode Change" Macros to "PF2." If you want to assign these steps to other buttons, you need to change some of the settings (like the SWT or SWH commands that emulate button pushes) in the above coding.
If you have other things you want to put into macros or you want to put some of the above programming into other buttons, you can find a list of all the button commands in the "K-3 Programmers Reference" which is available on the Elecraft web site. I did not come up with these ideas, I just took what others have done and modified it to fit my particular use.