K3 and KX3 Macros
In response to a question that came up on the Reddit amateur radio IRC channel #reddinet I decided to write-up the macro settings I’m using on my KX3 and K3.
A thread on the Elecraft Mailing List in March of 2013 was discussing the use of self-modifying macros to chain multiple functions on a single button.
The examples given were for operating split (cycling though various split values) and for modifying the TX EQ for various applications.
The original idea creator, Mark Goldberg, added a few more decent examples.
If you are going to modify these for your own needs, you would benefit from having the K3 & KX3 programming manual at hand. Version E11 from page 6 covers some useful ideas.
Update 2015-01-08: Frank, KG6EYC, has found
a bug in the sub-rx disabling code and has provided updated, tested
macros for the split loop. This involved adding SB0;
to the
NORM
macros. I haven’t tested on the KX3 yet, but Frank says it
works well on his KRX3 equipped K3.
Update 2016-05-17: NV3Y points out there was
an error in the SPLIT+10
macro. Now fixed. His blog
post also has some macro
tricks on it. Thanks!
Accordingly the sample macros were (for the KX3):
TX EQ Settings
KX3
1 RAGCHEW TE+06+06+00-06+00+04+08+12;MN110;SWT27;DELAY;SWH18;DELAY;MN255;
2 DX TE+00+00+00-06+00+04+08+12;MN110;SWT20;DELAY;SWH18;DELAY;MN255;
3 VERYDX TE-06-06+00-06+00+04+08+12;MN110;SWT28;DELAY;SWH18;DELAY;MN255;
4 FLAT TE+00+00+00+00+00+00+00+00;MN110;SWT19;DELAY;SWH18;DELAY;MN255;
K3
1 RAGCHEW TE+06+06+00+06+00+04+08+12;MN110;SWT12;SWH45;MN255;
2 DX TE+00+00+00-06+00+04+08+12;MN110;SWT13;SWH45;MN255;
3 VERYDX TE-06-06+00-06+00+04+08+12;MN110;SWT24;SWH45;MN255;
4 FLAT TE+00+00+00+00+00+00+00+00;MN110;SWT11;SWH45;MN255;
Split Settings
KX3
5 SPLIT+5 SWT25;SWT25;FT0;SB0;FT1;SB1;LK1;UPB7;RT0;XT0;BW$0280;MN110;SWT29;SWH26;MN255;
6 SPLIT+10 SWT25;SWT25;FT0;SB0;FT1;SB1;LK1;UPB7;UPB7;RT0;XT0;BW$0280;MN110;SWT33;SWH26;MN255;
7 SPLIT+15 SWT25;SWT25;FT0;SB0;FT1;SB1;LK1;UPB7;UPB7;UPB7;RT0;XT0;BW$0280;MN110;SWT33;SWH26;MN255;
8 NORM LK0;FR0;SB0;MN110;SWT21;SWH26;MN255;
K3
5 SPLIT+5 SWT13;SWT13;FT0;SB0;FT1;SB1;LK1;UPB7;RT0;XT0;BW$0280;MN110;SWT29;SWH47;MN255;
6 SPLIT+10 SWT13;SWT13;FT0;SB0;FT1;SB1;LK1;UPB7;UPB7;RT0;XT0;BW$0280;MN110;SWT33;SWH47;MN255;
7 SPLIT+15 SWT13;SWT13;FT0;SB0;FT1;SB1;LK1;UPB7;UPB7;UPB7;RT0;XT0;BW$0280;MN110;SWT34;SWH47;MN255;
8 NORM LK0;FR0;SB0;MN110;SWT27;SWH47;MN255;
How do these work?
These RELY on being programmed into the specific memory / macro slots
shown above. That is because after setting the transmit EQ
(TE.....;
) the remainder of the macro is reprogramming the macro
button to be the following (or first) macro.
A quick summary of button codes useful in these examples:
Label | KX3 | K3 |
---|---|---|
PF1 | H18 | H45 |
PF2 | H26 | H47 |
1 | T19 | T11 |
2 | T27 | T12 |
3 | T20 | T13 |
4 | T28 | T24 |
5 | T21 | T27 |
6 | T29 | T29 |
7 | T32 | T33 |
8 | T33 | T34 |
A>B | T25 | T13 |
Both buttons are accessed with either a hold ‘H’ action or a tap ‘T’ so the appropriate macro codes for the PFx buttons are, for example:
Label | KX3 | K3 |
---|---|---|
PF1 | SWH18; |
SWH45; |
PF2 | SWH26; |
SWH47; |
The general flow of each of the chained macros is:
- Set radio configuration desired.
- Enter macro-set mode.
- Select the next macro number to assign to PFx
- Push and hold PFx.
Here it is again - with explanations for each section. If we were to re-write this in slightly more abstract form it would be (note this isn’t something the radio understands):
1 RAGCHEW TE+06+06+00-06+00+04+08+12;MN110;SWT27;DELAY;SWH18;DELAY;MN255;
TE+06+06+00-06+00+04+08+12;
- Set the Transmit Eq parameters.
MN110;
- Select the Macro Menu funciton.
SWT27;
(KX3) orSWT12;
(K3)-
Tap numeric keypad ‘2’ (program macro slot 2 into PFx specified below.). This is the effective ‘chaining’ of macros effect. Slot 2 will program 3, 3 will setup 4 and 4 will cycle back to 1.
DELAY;
: Waste some time so you can see the macro name when
executing - there is debate over the need for this. I don’t do it on
the K3.
SWH18;
(KX3) orSWH45;
(K3)- Push and hold
PF1
- putting this on thePF1
loop. DELAY;
- See above.
MN255;
- Exit menu mode.
The rest of these should now be natural and obvious.
Admittedly these are the examples from the mailing list without much modification but I wanted to document my experiences here in case someone else wants to try this and really understand what is going on.
Split
The split macros are a bit more complex; let’s look deeper:
Note that I don’t do CW, so I’m using rather large splits. The
programming manual on page 8 shows the values for DN[B]x;
and
UP[B]x;
and you can select them from this table:
n offsets | |
---|---|
0 | 1 Hz |
1 | 10 Hz |
2 | 20 Hz |
3 | 50 Hz |
4 | 1 kHz |
5 | 2 kHz |
6 | 3 kHz |
7 | 5 kHz |
8 | 100 Hz |
9 | 200 Hz |
Example command for the K3:
5 SPLIT+5 SWT13;SWT13;FT0;SB0;FT1;SB1;LK1;UPB7;RT0;XT0;BW$0280;MN110;SWT29;SWH47;MN255;
SWT13;
SWT13;
- Press
A>B
. Twice. This sets $$VFO_B$$ to be the same as $$VFO_A$$ in all regards. FT0;
- Select transmit on $$VFO_A$$.
SB0;
- Turn OFF SUB / Dual Watch.
FT1;
- Select transmit on $$VFO_B$$.
SB1;
- Turn ON Sub-RX / Dual-watch.
LK1;
- Lock $$VFO_A$$. (Protect listening frequency from accidental change.)
UPB7;
- Increment $$VFO_B$$ by 5 kHZ (see table above).
RT0;
- RIT off.
XT0;
- XIT off.
BW$0280;
- Set $$VFO_B$$ bandwidth to 2800 Hz. (Modify to your ear / liking). Since $$VFO_B$$ is where you will TX and listening can be useful at times, I set this to 2.8 kHz. If you like, you can set this to the 1.8 kHz narrow SSB filter if you have it installed.
MN110;
- Macro menu function start. (Begin chaining the next one).
SWT29;
- Tap numeric button 6. (The next macro to execute on PF2 press.)
SWH47;
- Hold PF2 to assign macro to PF2.
Exit;
- MN255 menu mode.
Initial Button Setup
Once you load these macros, you have to assign PF1 and PF2 to a macro from their loop (respectively). This is done with the following sequence:
CONFIG
- Hold until in the configuration menu.VFO B
- Turn $$VFO_B$$ until you seeMACRO n
in the $$VFO_B$$ display andFunction
in $$VFO_A$$.(1)
- Press keypad1
to bring up macro 1 - which is in thePF1
loop.PF1
- Press and holdPF1
to assign the initial macro to the PF key.
Repeat the above, assigning Macro 5 to PF2
(or any one of the PF2 loop macros).
In Closing
There are endless variants on this but I’ve been very happy with
these. To be honest I don’t use the TX ones much and might put the
’norm’ setting without chaining onto PF1
and keep the split
functionality on PF2
. Up to you to play around and decide what you
like.
Thanks to Wayne Burdick (N6KR), Mark Goldberg, and Jim Sheldon (W0EB) in the original thread.
- 2016-05-17
- Also thanks to @themonkeybutler for pointing out a typo.