Fldigi Users Manual  4.1.18

Macros are short text statements that contain imbedded references to text data used by the program fldigi. A macro is accessed via the macro button bar or function key.

Macro Buttons

Macro definition files(s) are located in the $HOME/.fldigi/macros/ directory and all have the extention ".mdf". The default set of macros are contained in the file $HOME/.fldigi/macros/macros.mdf.

Fldigi will create this file with a set of default macros on its first execution.

Fldigi supports up to 48 macro definitions in sets of 12. Macro definitions are not recursive, that is; a macro cannot reference another macro or itself. All 48 macro buttons can be displayed in a matrix.

Macro Buttons Matrix

The matrix display is toggled on and off using the menu item

It can be positioned above or below the Rx/Tx text panels. See configuring macros.

The imbedded references are similar to those used by DigiPan and other modem programs. The imbedded reference is an uppercase plain text descriptor contained with the <> brackets.

Macro tags

Macro Description
<FREQ> my frequency
<MODE> mode
<MYCALL> configuration call
<MYLOC> configuration locator
<MYNAME> configuration name
<MYQTH> configuration QTH
<ANTENNA> configuration antenna
<VER> Fldigi version
<DIGI> insert ADIF mode specifier
<WFFREQ> audio tracking frequency

Macro Description
<CALL> other stations callsign
<INFO1> S/N or other data contained in first info field of status bar
<INFO2> IMD or other data contained in second info field of status bar
<LOC> other stations locator
<NAME> other stations name
<QTH> other stations QTH
<RST> other stations RST

Macro Description
<MAPIT> map other stations locator on google
<MAPIT:adr | lat | loc> map other stations address, latitude-longitude
locator as specified

Macro Description
<CLRRX> clear RX pane
<CLRTX> clear TX pane

Macro Description
<FOCUS> rig freq has keyboard focus

Macro Description
<GET> text to NAME/QTH
<TALK:on|off|t> Digitalk On, Off, Toggle; this is a Windows only tag
and Digitalk must be running
<LOG> save QSO data to logbook immediately
<LNW> log at xmt time
<CLRLOG> clear log fields
<EQSL:[message> submit the current log entry to www.eQSL.cc This macro tag
should be put before <LOG> or <LNW>

Macro Description
<QSOTIME> insert current logbook time HHMM, ie 0919
<ILDT[:fmt]> insert current local date-time in iso-8601 format, ie 2011-08-28 04:16-0500
<LDT[:fmt]> insert Local date-time, ie 2011-08-28 04:16-0500
<IZDT[:fmt]> insert Zulu date-time in iso-8601 format, ie 08/28/2011 04:16 CDT
<ZDT[:fmt]> insert Zulu date-time, ie 2011-08-28 09:16Z
<LT[:fmt]> insert local time, ie 0416
<ZT[:fmt]> insert zulu time, ie 0916Z
<LD[:fmt]> insert local date, ie 2011-08-28
<ZD[:fmt]> insert Zulu date, ie 2011-08-28

see date time specifiers below for fmt

Macro Description
insert current weather data from METAR as specified on
WX configuration tab. see WX configure replace xxxx with the 4 letter
METAR designator for a report on a station other than the one specified on
the weather configuration tab.

Macro Description
<CNTR> insert current value of contest counter
<DECR> decrement contest counter
<INCR> increment contest counter
<XIN> send exchange in string
<XOUT> send exchange out string
<XBEG> mark exchange in start
<XEND> mark exchange in end
<SAVEXCHG> save marked text to contest exchange in
<FDCLASS> recvd FD class
<FDSECT> recvd FD section

Macro Description
<ALERT:[snd]> audio alert using internal sound
where [snd] is one of bark, checkout, doesnot,
phone, beeboo, diesel, steam_train, dinner_bell
<ALERT:> alert using external wav file

Macro Description
<RX> receive
<TX> transmit
<TX/RX> toggle Transmit / Receive

Macro Description
<SRCHUP> search UP for next signal
<SRCHDN> search DOWN for next signal

Macro Description
<GOHOME> return to waterfall cursor to sweet spot
<GOFREQ:NNNN> move waterfall cursor to freq NNNN Hz
<QSYTO> same as left-clk on QSY button
<QSYFM> same as right-clk QSY button
<QSY:triad; triad...> QSY to new transceiver RF, Waterfall Audio and Mode
triad is RF[:AF][:MD]
RF - transceiver suppressed carrier in Hz
AF - waterfall frequency in Hz
MD - digital mode (see <MODE...>
A rolex of triads may be specified, QSY to next triad each time
macro is executed. 1->2->3...->1
Each triad may be one of: RF, RF:AF, or RF:AF:MD.
<PUSH:m|f> Push (save) current mode(m), freq(f) for later retrieval
<PUSH> Push both mode and freq for later retrieval
<POP> Pop (restore) pushed mode and/or freq

Macro Description
<RIGMODE:mode> send mode change request to flrig
<FILWID:width> send filter width change request to flrig
<FLRIG:hex hex> send CAT command sequence to flrig
<FLRIG:"string"> hex hex ... are sequential hexadecimal values e.g. xFF xfe
string is Ascii char sequence
No return values, use set commands only

Macro Description
<FILE:> insert text file; a file selection box will open when this tag is
selected during editing
<IMAGE:> insert image file; a file selection box will open when this
tag is selected during editing
<IMAGE:G,> insert image file; transmit in grey scale
<VIDEO:text> transmit video text

Macro Description
<IDLE:NN.nn> transmit idle signal for NN.nn sec
<TUNE:NN> transmit single tone tune signal for NN sec
<AFTER:NN>> repeat this macro after waiting NN sec
<TIMER:NN> repeat this macro every NN sec
<WAIT:NN> insert delay of NN seconds before transmitting
<REPEAT> repeat macro continuously
<SKED:hhmm[:YYYYDDMM]> schedule execution to begin at time and optionally
date specified
<LOCAL> all scheduled times are local
in current macro

Macro Description
<CWID> transmit a CW callsign identifier
<ID> transmit mode ID using waterfall video text
<TEXT> transmit video text defined on ID configuration tab
<TXRSID:on|off|t> transmit RSID on, off, toggle
<RXRSID:on|off|t> receive RSID on, off, toggle
<NRSID:NN> transmit multiple RsID bursts
NN < 0 will transmit NN bursts for current modem and then return to Rx
NN > 0 will transmit NN bursts for current modem and continue in Tx
NN = 0 will transmit 1 bursts and continue (same as NN = 1)
<DTMF:[Wn:][Ln:]> tones transmit DTMF tone sequence at start of
transmission; options W-wait n msec, default 0 L-tone symbol length n
in msec; default 50 msec '-', ' ' and ',' insert silence symbol
eg: <DTMF:W250:L100:1-256-827-3200>

Macro Description
<POST:+/-nn.n> CW QSK post-timing in milliseconds
<PRE:nn.n> CW QSK pre-timing in milliseconds
<RISE:nn.n><RISE:nn.n> CW rise time in milliseconds
<WPM:ww[:ff]> CW WPM, ww = word rate, optional ff = Farnsworth rate

Macro Description
<RIGCAT:hex hex:retnbr> RigCAT user commands
<RIGCAT:"string":retnbr> hex hex ... are sequential hexadecimal values
string is Ascii char sequence retnbr
is number of bytes in xcvr response ':retnbr'
is optional; retnbr set to 0 if missing

Macro Description
<AFC:on|off|t> AFC on, off, toggle
<LOCK:on|off|t> lock waterfall cursor; on, off, toggle
<REV:on|off|t> Reverse on, off, toggle

Macro Description
<QRG:text> Insert current operating info with "text" into Rx stream, ie:
info text <<2013-01-12T21:18Z RTTY @ 14005000+0760>> which can be used to
return to a mode, rf, audio frequency.
<PAUSE> Cause transmission to pause at place of occurance in macro
text. "Pause/Break" key on keyboard resumes transmission
<TXATTEN:nn.n> set fldigi tx attenuator to value -30 dB <= val <= 0
<COMMENT:text> allow macro to contain a comment field; everything
between < and > is ignored by macro parser
<SAVE> save the current macro definitions to the current file

Macro Description
<MACROS:> load a new macro defs file; file prompt when editing macro

Macro Description
<CPS_TEST> modem timing test internal string
<CPS_FILE:> modem timing test, spec' file
<CPS_STRING:s> modem timing test, string 's'

Macro Description
<WAV_TEST> WAV file; internal string
<WAV_FILE:> WAV file; spec' file
<WAV_STRING:s> WAV file; string 's'

Modem macro tags

Macro tags are also assigned to each supported modem type and sub-modem type that is supported by fldigi:

Data Modems

<MODEM:8PSK250> <MODEM:8PSK500> <MODEM:8PSK1000> <MODEM:8PSK1333> <MODEM:BPSK1000>
<MODEM:Olivia-16-1K> <MODEM:Olivia-16-500> <MODEM:Olivia-32-1K> <MODEM:Olivia-4-250> <MODEM:Olivia-4-500>
<MODEM:Olivia-64-2K> <MODEM:Olivia-8-1K> <MODEM:Olivia-8-250> <MODEM:Olivia-8-500> <MODEM:OLIVIA:1000:32>
<MODEM:RTTY:170:45.45:5> <MODEM:RTTY:170:50:5> <MODEM:RTTY:850:75:5> <MODEM:RTTY> <MODEM:SITORB>

Date Time Specifiers

Format Description
%a The abbreviated weekday name according to the current locale
%A The full weekday name according to the current locale
%b The abbreviated month name according to the current locale
%B The full month name according to the current locale
%c The preferred date and time representation for the current locale
%C The century number (year/100) as a 2-digit integer
%d The day of the month as a decimal number (range 01 to 31)
%D Equivalent to %m/%d/%y. (Americans only)
%e Like %d, the day of the month as a decimal number, leading space
%E Modifier: use alternative format, see below
%F Equivalent to %Y-%m-%d (the ISO 8601 date format)
%G The ISO 8601 week-based year with century as a decimal number
%g Like %G, but without century, that is, with a 2-digit year (00-99)
%h Equivalent to %b
%H The hour as a decimal number using a 24-hour clock (range 00 to 23)
%I The hour as a decimal number using a 12-hour clock (range 01 to 12)
%j The day of the year as a decimal number (range 001 to 366)
%k The hour (24-hour clock) as a decimal number (range 0 to 23)
%l The hour (12-hour clock) as a decimal number (range 1 to 12)
%m The month as a decimal number (range 01 to 12)
%M The minute as a decimal number (range 00 to 59)
%n A newline character
%O Modifier: use alternative format
%p Either "AM" or "PM" according to the given time value
%P Like %p but in lowercase: "am" or "pm"
%r The time in a.m. or p.m. notation. Equivalent to %I:%M:%S %p
%R The time in 24-hour notation (%H:%M)
%s The number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC)
%S The second as a decimal number (range 00 to 60)
%t A tab character.
%T The time in 24-hour notation (%H:%M:%S)
%u The day of the week as a decimal, range 1 to 7, Monday being 1
%U The week number of the current year as a decimal number, range 00 to 53
%V The ISO 8601 week number of the current year as a decimal number
%w The day of the week as a decimal, range 0 to 6, Sunday being 0
%W The week number of the current year as a decimal number
%x The preferred date representation for the current locale without the time
%X The preferred time representation for the current locale without the date
%y The year as a decimal number without a century (range 00 to 99)
%Y The year as a decimal number including the century
%z The +hhmm or -hhmm numeric timezone, hour and minute offset from UTC
%Z The timezone name or abbreviation
%% A literal '%' character

Some date time examples:
<ZT:%H%M%S Z>
<ZT:%H hours, %M minutes, %S seconds UTC>
<ZDT:%a %d %b %Y %T UTC>

Resulting transmit strings:

Other Modems

The following modems perform other functions not involving data transportation:

Non Data Modems Description
<MODEM:NULL> Null modem - Rx stream is discarded. Tx stream is silent but PTT is enabled
<MODEM:SSB> SSB modem (place holder)
<MODEM:ANALYSIS> Analyze Frequency
<MODEM:WWV> Calibrate Sound Card

Local references are specified during the program configuration and can be changed during program operation.

Remote references are all part of the qso log field definitions and are routinely changed from contact to contact.

Global references are for items like Greenwich Mean Time.

The macros.mdf file can be edited with any ascii text editor such as kedit, gedit, geany, nano etc. But it is much easier to use the built-in macro editor provided in the program.

Macro Editor

Right click on any macro key (or the alternate set) and a macro editing dialog opens with the current copy of that macro and its label. This looks very similar to the DigiPan macro editor at the urging of Skip Teller, KH6TY.

Macro Editor

The Text box is a mini-editor with a very limited set of control functions. You can mark, bound and select text for deletion (ctrl-X), copy (ctrl-C), and paste (ctrl-V). Marked text can also be deleted with the delete or the backspace keys. Marked text modification can also be invoked by using the mouse right click after highlighting.

The macro reference in the pick list can be transfered to the current editing cursor location. Highlight the desired macro reference and then press the double << arrow key for each occurance of the reference to be put into the macro text. You can change the label name but any more than 8 characters may exceed the width of the button for the default sized main dialog.

The <TIMER:NN> and <IDLE:NN> macro tags should have the NN replaced with the time interval in seconds.

  • will enable the PTT
  • cause 5 seconds of idle signal
  • send the CQ CQ de W1HKJ W1HKJ k
  • disable PTT
  • and count down 20 seconds before repeating the macro
  • after sending the text the count down timer button (upper right hand corner of main dialog) will display the current timer value in seconds. Press this button to disable the timer.
  • during transmission, the timer will be disabled if the Escape key is pressed, the T/R is pressed, and macro key is pressed, or if a callsign is copied from the Rx text area to the callsign logbook entry.
  • the timer will be disabled if any mouse activity occurs in the waterfall control.

The label associated with each macro key can be individually annotated with a symbol. Here are the symbols that are recognized by the button label drawing routine:

Macro Display Symbols


The @ sign may also be followed by the following optional "formatting" characters, in this order:

  • '#' forces square scaling, rather than distortion to the widget's shape.
  • +[1-9] or -[1-9] tweaks the scaling a little bigger or smaller.
  • '$' flips the symbol horizontally, '' flips it vertically.
  • [0-9] - rotates by a multiple of 45 degrees. '5' and '6' do no rotation while the others point in the direction of that key on a numeric keypad. '0', followed by four more digits rotates the symbol by that amount in degrees.

Thus, to show a very large arrow pointing downward you would use the label string "@+92-\>".

Here are my macro buttons suitably annotated:

Macro Buttons

There are 4 sets of 12 macro functions. You can move between the 4 sets using the keyboard and the mouse.

  1. Left click on the "1" button to move to set #2. Right click on the "1" button to move to set #4.
  2. Move the mouse to anywhere on the macro buttons. Use the scroll wheel to move forward & backward through the macro sets
  3. Press the Alt-1, Alt-2, Alt-3 or Alt-4 to immediately change to that macro set.
  • The label for CQ is "CQ @\>|", denoting that both <TX> and <RX> are present in the macro text.
  • The label for QSO is "QSO @\>\>", denoting that only <TX> is present in the macro text.
  • The label for KN is "KN @||", denoting that only <RX> is present in the macro text.

You could use any label that is symbolic to the function required. Refer to the FLTK web site for a full list of label types.

If you modify the macros and do not save them ("Files/Save Macros" on the main window) fldigi will prompt you to save the macros when you exit the program if you have the Exit Prompts option selected.

Contest macro tags

Refer to Contest-How-To

Return to Top of Page
Return to Main Page