TLF(1)

NAME
Tlf - amateur radio contest keyer/logging program for Radiosport

SYNOPSIS
tlf [-dhnrvV] [-f config_file] [-s user:password@host/dir/logfilename]

DESCRIPTION
Tlf is a console (ncurses) mode general purpose CW keyer, logging and contest program for amateur radio operators. It supports the CQWW, WPX, ARRL-DX, ARRL-FD, STEWPERRY, PACC and EU SPRINT contests as well as a lot more basic contests, general QSO and DXpedition mode. From version 1.2.0 onward there is also support for the FOC Marathon. It interfaces with a Morse Code generator, a number of radios via the Hamlib library, and with a DX Cluster via telnet or packet radio. Tlf can project DX cluster data into the excellent Xplanet program, written by Hari Nair.

Contest operation mimics the popular TR-Log program for DOS, the output file is TR-Log compatible. The log can be exported in ADIF or Cabrillo format.

The program was written for console mode on purpose, which allows it to run on smaller machines, or remotely via SSH or a modem link.

Since Tlf version 0.9.21 the cwdaemon 0.9 is fully supported, featuring direct mode for the keyboard and output to parallel and serial ports and speed and weight control from the keyboard, and band info output on the parallel port.

For radio control Tlf works with Hamlib (version >= 1.2.3), you can find it at SourceForge.net (https://sourceforge.net/projects/hamlib/).

Tlf provides full TCP/IP networking between Tlf nodes, syncing/distributing log, packet data, frequency data, local talk, serial numbers, time sync etc.

OPTIONS
Options given to Tlf on the command line.

-h  Show summary of options and exit.

-f config_file
    Start with non-default configuration file:

        tlf -f PA0R

    Defaults to logcfg.dat in actual working directory.

-s user:password@host/dir/logfilename
    Synchronize log with other node

        tlf -s user:password@host/dir/logfilename

-V  Output version information and exit.

-v  Verbose startup.

-d  Debug rigctl.

-n  Start without packet/cluster.

-r  Start without radio control when user wants to start Tlf without modifying logcfg.dat.

USAGE
Tlf has been written for console mode. If you want to run Tlf from a terminal in X, you will probably get the best results if you set TERM=linux and use a Linux console terminal. Both KDE and GNOME terminals have a facility to start a Linux console in an X terminal as does Xfce.

By default, Xterm may give unreadable colours. If so, you will have to set different colours in logcfg.dat.

Recent efforts have resulted in improved keyboard handling. If you find keys that do not work, the developers would like to receive your report of which keys and which terminal have the problem. Please send the report to the mailing list shown in the BUGS
 section below.

There are excellent results with the latest KDE, GNOME, and Xfce consoles (vi colours are preferred by some). As Tlf uses ncurses to format its display you must use a proper font. (The Linux font works o.k., Inconsolata does as well). If you have problems, try the linux text console first and work from there.

Normally you start or restart Tlf in fast mode with tlf. During debugging of a logcfg.dat file you can start in verbose mode, to have a look at the startup messages. From Tlf version 0.9.3 you can load different config files with:

        tlf -f config_file

If you have the packet cluster enabled you will first see the packet screen (if you are using telnet and you have provided your callsign in logcfg.dat you will be automatically logged in switched to the mail logging screen). Log in with your callsign, if needed, and switch to Tlf with : “Enter”. You can come back to the packet screen later with the same command from the call input field.

You can exit and close Tlf with the :EXIt or :QUIT commands or with Ctrl-C, Alt-Q or Alt-X.

At restart Tlf recalculates the score, which may take some time depending on the number of QSOs in the logfile and the speed of your system. Tlf takes the points as they are in the log, and calculates the multiplier from either callsign or exchange field (depending on the contest).

COMMANDS
These commands are entered in the callsign field of the main logging screen. Each command consists of the leading “:” and at minimum the upper case characters of the command name plus any needed parameters separated by “Space”.

:ADIf
    Writes the log to an Amateur Data Interchange Format (ADIF) file logfile.adif.

:CHAr
    Input the number of characters for CW auto-start or “m” for manual start. Possible values are: “0” (off), “2”...“5” or “m” (manual). After typing as many characters in the input field or after pressing the “Enter” key in manual mode Tlf starts sending the callsign without further keystrokes. You can type in the rest of the call (but quickly). As soon as the sending catches your last typed character Tlf automatically sends the exchange and the cursor jumps to the exchange field. “Escape” stops sending. This works only in CW contests in RUN mode.

:CHEck
:NOCheck
    Turn the dupe check window On|Off.

:CQDelay
    Change Auto_CQ delay (in 1/2 seconds, with Up/Down arrow keys).

:CLOff
    No cluster information (non-assisted contest operation).

:CLUster
:MAP
    Show cluster window or bandmap.

:CONtest
    Toggle contest mode On|Off.

:CTY
:ZONe
:MULt
    Show needed country multipliers, zones, multipliers per continent (depends on the contest).

:CWMode
:SSBmode
:DIGimode
    Switch TRX to CW|SSB|Digimode mode.

:DEBug_tty
    Debug routine for rig communication links.

:EDIt
    Edit the log with your favourite editor (the editor (vi[m]|joe|e3|mcedit) can be set in logcfg.dat).

:EXIt
:QUIT
    Exit Tlf (synonym to Ctl-C, Ctl-D, Alt-Q, and Alt-X).

:FILter
    Filter cluster info (announce, dx-spots, all).

:FREq
    Show frequency or band/score information of your other stations.

:HELp
    Show online help (displays help.txt from working directory or from /usr/share if no local one exists).

:INFo
    Show network status.

:MESsage
    Edit CW (Morse Code) messages.

:MODe
    Toggle TRX mode (CW|SSB|DIG).

:PACket
    Switch to the packet terminal. Switch back to Tlf with “:”.

:REConnect
    Reopens the connection to the DX cluster in case it was disconnected.

:REScore
    Recalculates the values in the score window (e.g. after deleting or editing QSOs).

:RITclear
    Toggle the RIT reset after QSO On|Off.

:SET
:CFG
    Edit various parameters in logcfg.dat file and reload it.

:SCAn
    Enter the SCAN function (return with “Escape”).

:SCOre
    Toggle the score window On|Off.

:SCVolume
    Adjust the soundcard volume for the sidetone (Up|Down). Range: 0-99.

:SIMulator
    Toggle simulator mode. In simulator mode you can work a complete CQWW CW contest in TR-Log mode. Set CONTEST=cqww.

:SOUnd
    The SOUND recorder is a utility to record the voice keyer messages and enables you to record the complete contest in chunks of 1 hour to the hard drive. It does this in the directory: $HOME/tlf/soundlogs. The sound recorder uses a script called soundlog which has to be located in $HOME/tlf/soundlogs. It can be found in the scripts directory. If your soundcard is different from /dev/dsp you can use the SC_DEVICE parameter in the logcfg.dat file. The file extension is .au, the Sun ulaw format. The recorder produces < 60 MB per hour. This means you can record a complete CQWW in less than 3 Giga Bytes. If your disk cannot handle this, FTP the soundfile to a server every hour.

    F1 ... F12, s, c, ... will record the voice keyer message for that key.

    1: Start contest recording to ddhhmm.au.

    2: Stop contest recording.

    3: List contest recordings.

    4: Play back contest recording ddhh[mm][:xx].

        xx is the offset from the start of the file e.g.:

        2110 will start from beginning of the day 21 hr 10:00 file.

        21100013:00 will start from day 21, hh 10, mm 00, + 13 minutes: 0 seconds.

    To create a new file every hour add a cron job to run the following command every hour:

            /usr/bin/pkill -f sox > /dev/null 2> /dev/null

        Running the cron job at other intervals will create sound recordings of the interval period in length.

    Once started the recorder will run until the lock file $HOME/.VRlock is removed.

:SYNc
    Synchronize the logfile of this node with the logfile pointed to by parameter SYNCFILE=<user:password@host/dir/logfile>. Tlf will wget the logfile from the relevant node, make a dated backup of your local logfile, and merge the 2 files. The score will be recalculated.

:TONe [dd]d
    Set PC sidetone frequency in Hertz. Range: 300-900, 0 = Off.

:TRXcontrol
    Toggle rig control On|Off. Default is Off unless RADIO_CONTROL is given in logcfg.dat (only makes sense with rig control capability).

:VIEw
    View the log with less(1).

:WRIte
    Write cabrillo file according to specified format (see CABRILLO statement in the RULES section).

KEYS
Work has been ongoing to unify the key map between the Linux text console and the various X terminals. It may be slightly different on certain X terminals depending on which keys they consume for their own use. Turn off any key recognition by the terminal for its own purposes (menu access, help display, etc.) if possible. Pay special attention to the F1-F12 and Alt-<char> keys. Moreover, on some systems you must set the TERM=linux or TERM=rxvt environment variables. This also works under VNC.

Certain key combinations will probably not be useable as the Linux console consumes Alt-F1 through Alt-Fx (often F7, but could be greater) for switching its virtual consoles. Likewise, the various desktop environments consume key combinations for their own use. Ctrl-F1 through Ctrl-Fx are used to switch desktop workspaces. Alt-Fx combinations are used for various desktop features and are unavailable for Tlf use.

Some desktop terminal emulators are capable of being configured to allow the application running in them to get all of the keys the desktop environment does not consume. In testing good choices seem to be Gnome Terminal, Rox Terminal, or the classic Xterm (although its color representation differs from the Linux console and other terminal emulators). Xfce Terminal is known to consume F11 and Ctrl-PageUp and Ctrl-PageDown. The Tlf developers have implemented Alt-PageUp and Alt-PageDown as a work-around for the Ctrl counterparts. Reports of success with other terminals are welcome.

  Call Input and Exchange Fields
The Call Input and Exchange Fields are the two main entry fields of Tlf where the majority of the keyboard entry takes place. The call input field is active when Tlf completes its initialization and presents the main screen.

Most key sequences are the same in both fields. Differences are noted as necessary.

A-Z, 0-9, /
    Call input: ASCII letters, numerals, and the '/' characters that make up an internationally recognized amateur radio callsign plus temporary location identifiers. Spaces are not allowed.

    Exchange: information provided by the other station possibly separated by spaces, e.g., ARRL Field Day and ARRL Sweepstakes.

Space
    Switches from call input to exchange field. Separates exchange field elements when multiple exchange elements must be entered, e.g., ARRL Field Day and ARRL Sweepstakes.

Tab Switch between call input and exchange fields (jump back to call input from exchange field).

Enter
    Smart key depending on contest mode.

    Tlf follows the TR operating style which has two modes, CQ and S&P.

    CQ mode is used for “running”, i.e., staying on one frequency and having other stations answer your call.
    S&P mode is for tuning up or down the band and answering the calls of other stations.

    CQ Mode:

    •   With the call input field empty sends the F12 message (Auto CQ).

    •   With characters in the call input field, answers the calling station by sending the F5 message (HIS) followed by the F3 message (RST) and moves the cursor to the exchange field.

    •   If the exchange field is empty, repeats the F5 and F3 messages.

    •   After the exchange information received from the other station is entered, sends the CQ_TU_MSG message, logs the QSO, and the cursor is returned to the call input field to answer the next call.

    S&P Mode:

    •   With the call input field empty sends the F6 message (MY).

    •   If the exchange field is empty sends the F6 message (MY).

    •   With characters in the call input field sends the F6 message (MY) and moves the cursor to the exchange field.

    •   Once the exchange has been received, sends the F4 message (73) followed by the F3 message (RST), logs the QSO, and the cursor is returned to the call input field to answer the next call.

Backspace
    Erases the character to the left of the cursor and moves the cursor one position to the left.

Escape
    Stop CW transmission, clears characters, returns to call input field, keyboard off (universal undo).

    As an example, characters have been entered in both the call input and exchange fields, the cursor is in the exchange field, and the transmission of a CW message is in progress. The first press of “Escape” will stop the CW transmission and clear the exchange field and position the cursor to the leftmost position of the exchange field. The second press of “Escape” will move the cursor to the right of the last character in the call input field. The third press of “Escape” will clear the call input field.

← (Left-Arrow)
    Change to next band lower or wrap to highest band if already on the lowest band when callsign field empty.

    Enter edit mode if one or more characters are present and move the cursor to the left of the rightmost character.

→ (Right-Arrow)
    Change to next band higher or wrap to the lowest band if already on the highest band when call input field is empty.

    If both key combinations do not working try ':cqd' instead.

F1  In CQ mode, send message F1 (CQ).
    In S&P mode send message F6 (MY).

F2-F11
    Send CW, RTTY or VOICE messages 2 through 11.

F12 Start Auto_CQ (only from call input field). Sends F12 message repeatedly pausing for Auto_CQ delay time between messages. Auto_CQ is cancelled with first character entry into the call input field.

+ (Plus)
    Toggle between the CQ and S&P modes.

PgUp
    Increase CW (Morse Code) speed (from call and exchange fields).

    If the cursor is in the call input field and it is not empty and CHANGE_RST is set: increase his S value (the leftmost of the RST pair).

    If the cursor is in the exchange field and it is not empty and CHANGE_RST is set: increase my S value (the rightmost of the RST pair).

PgDown
    Decrease CW (Morse Code) speed (from call input and exchange fields).

    If the cursor is in the call input field and it is not empty and CHANGE_RST is set: decrease his S value (the leftmost of the RST pair).

    If the cursor is in the exchange field and it is not empty and CHANGE_RST is set: decrease my S value (the rightmost of the RST pair).

Ctrl-PgUp
Alt-PgUp
    Increase Auto_CQ delay pause length (+1/2 sec).

    Set Auto_CQ delay to message length + pause length.

Ctrl-PgDown
Alt-PgDown
    Decrease Auto_CQ delay pause length (-1/2 sec).

    As some terminals, Xfce Terminal is one such, consume Ctrl-PageUp/Ctrl-PageDown, the Alt-key combinations allow for setting the Auto_CQ delay pause length.

? (Query)
    In CW or DIGIMODE sends the partial call followed by " ?". In VOICE mode sends recorded message 5 (F5).

; (Semicolon)
    Insert note in log.

, (comma)
    Activate Morse Keyboard. Also Ctrl-K.

" (Double quotation)
    Send talk message to other Tlf nodes.

- (Minus)
    Delete last QSO (Use :REScore to correct scoring afterward).

↑ (Up-Arrow)
    Edit last QSO: Insert, overwrite, and delete; + log view.

= (Equals)
    Confirm last call.

_ (Underscore)
    Confirm last exchange.

{ (Open brace)
    In RTTY (DIGIMODE), keyboard mode switch TX on.

} (Close brace)
    In RTTY (DIGIMODE), keyboard mode switch TX off (RX).

\ (Backslash)
    Log QSO without CW output.

    In RTTY (DIGIMODE), keyboard mode switch controller to command mode (back to operating mode with 'K “Enter”'.

# (Hash)
    Transceiver VFO frequency → mem, mem → transceiver VFO frequency.

! (Exclamation)
    Get a new shell. Come back with 'exit'.

Alt-,
. (Period)
    Change bandmap filter configuration. You can filter to show spots from all or own band only, from all/own mode only and if you want to see dupes or not (see the help ( Alt-H ) display).

Ctrl-A
    Add a spot to bandmap and broadcast it on the local network.

Ctrl-B
    Send a spot to the DX Cluster (a connection to a DX cluster must exit).

Ctrl-C
Ctrl-D
    Exit Tlf (synonyms to :EXIt , :QUIT, Alt-Q, and Alt-X).

Ctrl-E
    Ends modem capture for RTTY mode in QTC window (started with Ctrl-S).

    See /usr/share/doc/README_QTC_RTTY.txt for more information.

Ctrl-F
    Set frequency. Use Up/Down-Arrow for 100hz steps and PgUp/PgDown for 500hz steps. Return to logging with <Esc>.

Ctrl-G
    Grab next DX spot from bandmap.

Ctrl-K
    Keyboard (CW and RTTY).

Ctrl-L
    Reset the screen.

Ctrl-P
    Maximum Usable Frequency (MUF) display.

Ctrl-Q
    Open the QTC window for receiving QTCs if QTC=RECV or QTC=BOTH or sending QTCs if QTC=SEND is set in logcfg.dat. Same as Ctrl-S if QTC=SEND.

    See /usr/share/doc/README_QTC.txt and /usr/share/doc/README_QTC_RTTY.txt for more information.

Ctrl-R
    Toggle /dev/lp0 pin 14 (Mic/Soundcard switch | trx1/trx2 switch).

Ctrl-S
    Open the QTC window for sending QTCs if QTC=SEND or QTC=BOTH in logcfg.dat. Saves QTCs while in QTC window.

    In RTTY mode starts capture from the modem after the window has been opened with Ctrl-Q. End capture with Ctrl-E.

    See /usr/share/doc/README_QTC.txt and /usr/share/doc/README_QTC_RTTY.txt for more information.

Ctrl-T
    Show talk messages. In the QTC window shows RTTY lines.

Ctrl-Z
    Stop Tlf.

Alt-0...Alt-9
    Send CW (Morse code) messages.

Alt-A
    Cycle cluster window: NOCLUSTER → CLUSTER → BANDMAP → ...

Alt-B
    Band up in TR-Log mode.

Alt-C
    Toggle display of checkwindow.

Alt-E
    Enter QSO edit mode.

Alt-G
    Grab first spot from bandmap which has the characters in the call input field in its call. Allows the operator to selectively grab a specific call from the bandmap.

Alt-H
    Show help.

Alt-I
    Show talk messages.

Alt-J
    Show other local stations frequencies.

Alt-K
    Keyboard (CW and RTTY).

Alt-M
    Show multipliers.

Alt-N
    Add Note to log.

Alt-P
    Toggle PTT (via cwdaemon).

Alt-Q
Alt-X
    Exit Tlf (synonym to :EXIt , :QUIT, Ctl-C, and Ctl-D).

Alt-R
    Toggle score window.

Alt-S
    Toggle score window.

Alt-T
    Tune your transceiver (via cwdaemon). Activates PTT and Key output for 6 seconds. Stop tuning by pressing any key.

Alt-V
    Band down (Change speed in CT compatibility mode).

Alt-W
    Set CW weight.

Alt-Z
    Show zones worked.

PREFERENCES
Tlf can be fully configured by editing the logcfg.dat file. Normally you keep one logcfg.dat file, setting up your callsign, the log file name, the ports and addresses for packet, the radio, the network etc., and a separate rules file per contest.

The logcfg.dat file can be edited from within Tlf by the :CFG or :SET commands (or with any other plain text editor before starting Tlf).

You can set your favourite editor (joe | vi[m] | e3 | mcedit) in the logcfg.dat file.

You connect the rules file by using the statement RULES=contest_rules_file_name in logcfg.dat.

Tlf will first look in the working directory for a logcfg.dat file, and if it cannot find one it will look in /usr/share/tlf for a default one. Make sure you edit the logcfg.dat file at least to hold your call and your preferred system configuration.

LOGCFG.DAT STATEMENTS
Configuration parameters set in logcfg.dat located in the working directory (where Tlf is started).

RULES=contest_rules_filename
    Name of the rules file to load. It helps if you name the rules file according to the contest you want to describe.

SYNCFILE=user:password@host/dir/syncfile
    File on remote host you want to synchronize with (use wget(1) syntax).

CTCOMPATIBLE
    Do not use the TR-Log QSO sequence, but use “+”, “Insert” and “Enter” to log the QSO.

    The default mode of operation is the TR-Log sequence which uses “+” to switch between CQ and S&P modes, in which “Enter” is the sole key used to call the other station, send the exchange, and log the QSO.

TLFCOLORn=FG/BG
    Defaults:
    TLFCOLOR1=23 (Header and footer)
    TLFCOLOR2=67 (Pop up windows)
    TLFCOLOR3=70 (Log window)
    TLFCOLOR4=57 (Markers/dupe colour)
    TLFCOLOR5=43 (Input fields)
    TLFCOLOR6=63 (Window frames)

    The numbers are given in octal, FG/BG or BG/FG (some experimentation likely required).

    You should only specify these if you wish to modify the standard colours of Tlf. In some Terminals you can set a special profile for Tlf with your own colours. Another way is to define the colours via the $HOME/.Xresources file.

EDITOR=joe | vi[m] | e3 | mcedit
    Editor used to modify the QSO log or logcfg.dat.

CALL=PA0R
    Your call used in messages and used to determine your country, zone and continent.

TIME_OFFSET=0
    Used to shift the Tlf time with respect to the computer clock. Normally 0. Range: 0-23.

TIME_MASTER
    This node transmits the time over the network (only one master allowed!).

ADDNODE=Node_address[:Port_number]
    Adds an IP address (and optionally a port number) to which we broadcast stuff. (WARNING: Only add addresses of other nodes).

THISNODE=A
    Node designator (default 'A'). If Tlf hears its own node ID on the network it will exit and ask you to pick another one! Range: A-H.

LANDEBUG
    Switches on the debug function. Dumps all Tlf net traffic received on this node into a file named debuglog in the working directory. This log can be used as a backup log for the whole network, as it is easy to retrieve QSO data, cluster messages, gab messages etc. after the contest. Some users have this enabled all the time.

NETKEYER
    Switches the CW keyer on. Only the IP networked keyer cwdaemon or any other program that emulates cwdaemon is supported. You may also need the keyer for PTT control or band info output.

NETKEYERPORT=port_number
    Default port is 6789.

NETKEYERHOST=host_address
    Default host is 127.0.0.1 (localhost).

MFJ1278_KEYER=serial_port
    Activates support for the MFJ-1278B multi-mode controller. The MFJ-1278 supports CW as well as RTTY contesting. Fixed serial port rate is 9600 bps.

CWSPEED=speed_in_WPM
    Range: 4-69.

WEIGHT=weight_ratio
    Set the dot to dash ratio. Only for the NETKEYER. Range: -45-50.

TXDELAY=PTT_delay_in_mS
    Delay activation of the Push To Talk pin. Range: 0-50.

SOUNDCARD
    Use soundcard for sidetone output.

SIDETONE_VOLUME=soundcard_volume
    Set soundcard sidetone volume (default is 70). A value of 0 turns off sidetone output (even for the console speaker). Range: 0-99.

CQDELAY=Auto_cq
    Set automatic CQ pause delay in 1/2 seconds increments between message transmissions. Range: 3-60.

CWTONE=sidetone
    Set the PC speaker or soundcard frequency. A value of 0 switches the sidetone off. Range: 0-999.

    (Due to a bug in cwdaemon it also turns off the Alt-T tune function. Use SIDETONE_VOLUME=0 instead).

BANDOUTPUT
    Outputs band information to pins 2, 7, 8, 9 on the parallel port. Output is 1 (160m), 2 (80m) ... 9 (10m). This format is compatible with the standard interface for antenna switches, band filters etc.

BANDOUTPUT=124181818
    Output pin 2 for 160, 30, 17 and 12, pin 7 for 80, pin 8 for 40, and pin 9 for 20, 15 and 10. This comes in handy when you have 3 dipoles and a 3-band beam (...).

NO_BANDSWITCH_ARROWKEYS
    This will prevent unwanted band switching when you are not using rig control. Band up = Alt-B, band down = Alt-V (TR-Log compatible).

TELNETHOST=cluster_address
    Use Telnet to connect to a DX Cluster node using a DNS name or IP address, e.g. claudia.esrac.ele.tue.nl or 131.155.192.179.

TELNETPORT=telnet_port_of_cluster
    DX Clusters often use a non-standard port for Telnet, e.g. 8000.

TNCPORT=serial_port
    You can use /dev/ttyS0, /dev/ttyUSB1, etc. anything that looks like a tty.

TNCSPEED=serial_rate
    Tlf supports 1200, 2400, 4800 and 9600 bps.

FIFO_INTERFACE
    The FIFO (First In First Out) interface is used when you want to receive cluster info from the network, or from another source. The FIFO interface uses a special FIFO file in the working directory called clfile. Anything you dump into this FIFO will be displayed by the packet interface.

RADIO_CONTROL
    Switches the radio interface on. The rig interface makes use of the Hamlib library which supports a number of different rigs.

RIGMODEL=rig_number
    Look at the Hamlib documentation for the rig_number.

    Hint: rigctl -l and its manual page (rigctl(1)).

RIGSPEED=serial_rate
    Speed of the serial port for rig control.

RIGPORT=serial_port
    You can use /dev/ttyS0, /dev/ttyUSB1, etc. anything that looks like a tty.

    RPC rig daemon users should use RIGMODEL=1901 and RIGPORT=localhost. In this case RIGSPEED is ignored (rig model 1901 is deprecated in Hamlib > 3.0 and replaced by rigctld(8) which is rig model 2).

RIGCONF=rig_configuration_parameters
    Send rig configuration parameters to Hamlib.
    e.g. RIGCONF=civaddr=0x40,retry=3,rig_pathname=/dev/ttyS0

RIT_CLEAR
    Clears the RIT after logging the qso. This only works if the rig, and the Hamlib routine supports it (tested on the OMNI 6+).

RIGPTT
    Declares that Hamlib CAT PTT capability should be checked at startup and if available use it to activate the radio's PTT for sending voice messages instead of the NetKeyer PTT.

CWBANDWIDTH=width
    Sets the CW bandwidth of your rig when changing bands. If unset or 0 the default bandwidth (as determined by Hamlib) is used. (a valid bandwidth for the rig must be used).

SC_DEVICE=device
    Sound card device for scan function.
    e.g. SC_DEVICE=/dev/dsp0

S_METER=calibration
    Audio s-meter calibration values for the scan function.
    e.g. S_METER=20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1

SSBMODE
    Start Tlf in SSB mode (default is CW).

RTTYMODE
    Start Tlf in RTTY mode (defaul is CW)

GMFSK=/home/youruser/gMFSK.log
    Tell miniterm(1) where to get the data.

DIGIMODEM=/home/youruser/gmfsk_autofile
    Tell Tlf where to send the macros.

CLUSTER
    Show cluster window at startup.

CLUSTERLOGIN=yourcall
    Automatic login for the telnet client.

CLUSTER_LOG
    Write clusterlog to disk.

BANDMAP
    Shows cluster bandmap on startup. Use '.' to change bandmap filtering.

BANDMAP=xyz,number
    Show cluster bandmap on startup and set start values for filtering.
    <xyz> string parsed for:
        'B' - only own band
        'M' - only own mode
        'D' - do not show dupes
        'S' - skip dupes during grab_next (Ctrl-G)
    <number> livetime for new spots in seconds (number >=30)

SCOREWINDOW
    Show the score window (same as Alt-R).

CHECKWINDOW
    Show the country/call check window.

PARTIALS
    Show a list of possible contest calls.

USE_PARTIALS
    Use the auto-complete utility (takes some practice...). Tlf will complete the call as soon as it is unique in the database. This can of course lead to strange effects, but in my experience there are far more hits than misses. Sometimes you must edit the call because it has locked on a unique call. Try it, and switch it off when you don't like it.

LOGFREQUENCY
    Put frequency (kHz) into QSO number to enable logging of frequency (only QSO and dxped mode).

IGNOREDUPES
    Enable to allow multiple QSOs in a contest with the same station (considered a good idea these days as contest bots will take care of dupes).

SUNSPOTS=SSN
    Set the sunspots value which is used to do a rough calculation of the MUF. If the cluster interface is used the SSN will be updated by WWV or WCY messages.

SFI=Solar_flux_value
    Set SFI used to calculate SSN. The SSN value is used to do a rough calculation of the MUF. If the packet interface is used the SSN will be updated by WWV or WCY messages.

CHANGE_RST
    If set in logcfg.dat, PgUp and PgDown will change RST instead of CW speed if field is not empty.
    Default is Off.

NOB4
    Do not send automatic “QSO B4” message. Default is On.

NOAUTOCQ
    No automatic CQ when pressing <Enter> or F12.

MARKERS=file_name
    Generate marker file for Xplanet. Xplanet will show the last 8 spots on an azimuthal map. See the relevant Xplanet documentation. Use azimuthal projection and center the map on your QTH.

POWERMULT=power_multiplier
    Use this value to multiply the final points. If the contest rule allows one to use the power multiplier (e.g. Stewperry, ARRL-FD), you can pass that here.

    NB: The type of POWERMULT is a float, e.g. POWERMULT=1.5, but the final score will rounded by the C library floor(3) function, which gives the largest integer value that is not greater than multiplied score.

SEND_DE
    Sends a “DE” word before your callsign, e.g. “DE W1AW”. There is a special case: if SEND_DE is present in logcfg.dat, and Tlf if is in DIGIMODE, then the other station's callsign will be sent before “DE”, e.g. “DL1A DE W1AW”.

RULES
The contest rules can be put into separate files. Tlf will first look for a directory called “rules/” in the working directory, and a file named for the contest, “<contest_name>”. If Tlf cannot find such a file, it will look into the directory /usr/share/tlf/rules. A rules file contains contest specific parameters like multipliers, scoring rules, CW and voice keyer messages, etc.

NB: The rules file overrides settings from the logcfg.dat file!

WARNING! It is your own reponsibility to try these rules well BEFORE the contest. The authors of Tlf cannot possibly check all rules for all contests :) and during the contest there is normally no time to fix it.

CONTEST=xxxxx
    Name of the contest (same as the file name “<contest_name>” referenced above). Some contests, like CQWW and WPX, are pre-programmed. Look for the relevant rules file in /usr/share/tlf/rules.

LOGFILE=log_file_name
    Mandatory!

CABRILLO=cabrillo_format
    Specify the name of the cabrillo format to use (see doc/README.cab).

CONTEST_MODE
    Sets Tlf into contest mode. Do not use this parameter for normal QSO logging!

NO_RST
    Do not use RST in contest (e.g. for CW Open or ARRL Field Day). Use '---' as placeholder instead of RST in the logfile and the main display. If you want to write a Cabrillo log you must provide a conforming format definition without RST values.

CQWW_M2
    Put the node ID into the logline (just after the QSO number) to support Multi/2 operation where the station logging the QSO must be in the Cabrillo file. This can also be used for M/1 and M/M, to enable post-contest analysis of the nodes.

Macro characters in the messages
    % = your call, @ = hiscall, # = serial number, [ = RST, + = increase cw speed, - = decrease cw speed, * = AR, = = BT, < = SK, ( = KN, ! = SN, & = AS, > = BK, ! = his serial (eg: confirm exchange of station in DIGIMODE).

F1=cw message 1
    CQ message, (e.g. CQ de PA0R TEST).

F2=cw message 2
    S&P call message, (e.g. @ de %).

F3=cw message 3
    Exchange message, (e.g. @ ++5NN--#).

F4=cw message 4
    TU message, (e.g. TU 73 %).

F5=cw message 5
    Call of the other station (e.g. @).

F6=cw message 6
    Your call (e.g. %).

F7=cw message 7
    QSO B4 message (e.g. @ sri qso b4 gl).

F8=cw message 8
    Again message (e.g. AGN).

F9=cw message 9
    Query message (e.g. ?).

F10=cw message 10
    QRZ message (e.g. QRZ?).

F11=cw message 11
    QRZ message (e.g. QRZ?).

F12=cw message 12
    Auto-CQ message (e.g. +++TEST %---).

CQ_TU_MSG=cw message 13
    Auto Exchange message in CQ mode (TR-Log mode), (e.g. TU %).

S&P_TU_MSG=cw message 14
    Auto Exchange message in S&P mode (TR-Log mode), (e.g. TU 5NN #).

S&P_CALL_MSG=cw message 25
    Custom call message in S&P mode. Allows replacing the auto-generated S&P call message.

Alt_0=<...> ... Alt_9=<...>
    Up to 10 additional messages.

SHORT_SERIAL
    Uses short form for serial number (599=5NN, 001=TT1).

LONG_SERIAL
    Uses long form for serial number (default).

VKM1=voice message file name 1 ... VKM12=voice message file name 12
    Use F1 ... F12 keys to send recorded messages for phone.

VKCQM=voice_message_file_name
    Auto Exchange voice message in CQ mode (TR-Log mode)

VKSPM=voice_message_file_name
    Auto Exchange voice message in S&P mode (TR-Log mode)

ONE_POINT
    One point per QSO.

TWO_POINTS
    Two points per QSO.

THREE_POINTS
    Three points per QSO

SSBPOINTS=d
    Points per SSB QSO. SSBPOINTS and CWPOINTS need to be set for both to work!

CWPOINTS=d
    Points per CW QSO.

MY_COUNTRY_POINTS=d
    Points for working your own DXCC entity (often zero (0)).

MY_CONTINENT_POINTS=d
    Points for working countries in your own continent.

DX_POINTS=d
    Points for working a station in other continents.

2EU3DX_POINTS
    Deprecated. Use MY_CONTINENT_POINTS and DX_POINTS instead.

COUNTRY_LIST_POINTS=d
    Points for countries in country list.

USE_COUNTRYLIST_ONLY
    Score zero points for countries not in the list.

COUNTRYLIST=comma separated list of prefixes starting with colon
    e.g. Scandinavia:SM,LA,OZ,OH.

COUNTRYLIST=file_name
    File with a list of prefixes.

PORTABLE_MULT_2
    Multiply points x2 for portable stations (e.g. R1 field day).

LOWBAND_DOUBLE
    Double all points for lowband (40, 80, and 160m) QSOs (can be combined with any other value). (Will be deprecated in future! Use BANDWEIGHT_POINTS instead.)

WYSIWYG_MULTIBAND
    Exchange is multiplier, per band, whatever you enter. Tlf builds its own list of multipliers.

WYSIWYG_ONCE
    Exchange is multiplier, whatever you enter. Counts once for the whole contest (not per band).

WAZMULT
    Multiplier is the CQ zone (per band).

ITUMULT
    Multiplier is the ITU zone (per band).

PFX_MULT
    Multiplier is prefix (PA0, DA2, VE7, etc.). Counted once per contest, not per band.

PFX_MULT_MULTIBAND
    Same as WPX, but the WPX only used CQ-WW-WPX, and there a single prefix multiplier only once, not all band. With this option, the PFX counts as multiplier on all band. This usable on AA-DX.

COUNTRY_MULT
    Multiplier is the DXCC entity (per band).

MULT_LIST=file_name
    Name of multipliers file (often sections, provinces, states, counties). May contain comment lines starting with '#' in the first column.

SECTION_MULT
    Multiplier is section from multipliers file.

SERIAL+SECTION
    Exchange is serial number and section, multiplier is section from multiplier file. Mults count per band.

SERIAL_OR_SECTION
    Exchange is serial number or section. This option is similar to SERIAL+SECTION, except the exchange could be a serial OR the section. The options was introduced for HA-DX, where HA stations gives the shortest form of its county, other stations gives serial.

SERIAL+GRID4
    Exchange is serial number and grid (e.g. JO21QI), multipler is 4-character grid (JO21). Mults count per band.

DX_&_SECTIONS
    Multiplier is DXCC country or section from multiplier file.

RECALL_MULTS
    Exchange can be recycled, will be filled into exchange field when it is known (see also INITIAL_EXCHANGE).

INITIAL_EXCHANGE=exchanges.txt
    The file must contain a comma-separated list of exchanges, if e.g. the exchange is the name of the operator:
    PA0R,rein
    PG4I,joop
    OK1RR,martin

    If RECALL_MULTS is set, Tlf will look in this list for the exchange and fill it in for you. There are various contests which have a standard exchange, like e.g. the FOC Marathon. The module also recognises embedded calls (CT3/PA0R/QRP).

CONTINENT_EXCHANGE
    Exchange is continent (NA, SA, EU, AS, AF, OC).

SERIAL_EXCHANGE
    Exchange is serial number (formats exchange field).

MIXED
    Station can be worked both in SSB and CW.

SSBMODE
    Start Tlf in SSB mode.

MYQRA
    For the “Stewperry” contest, this option is used to set the QRA, e.g.: JN97, or the full form: JN97OM. In Stewperry, the points are calculated based on the distance between the stations.

QTC If you want to send or receive QTC's on contest (usually on WAEDC), put this option to logcfg.dat. This needs a parameter, which could be one of these: RECV, SEND, BOTH - note, that currently just the RECV works. For more information, please see the README_QTC.txt file.

QTC_CAP_CALLS= list_of_qtc_capable_callsigns.txt
    If you want to help yourself to indicate, the station is a QTC capable, you can see it on your bandmap or worked window. Put the callsign of stations to a file, one callsign per line, and put it to as argument to this variable.

QTC_AUTO_FILLTIME
    If you use QTC feature, and you are on EU station in CW/SSB modes, then you can only RECEIVE the QTC's. Most sender station send their QTC's as a most short form, example, after the first line it doesn't send the first two characters of time field. If you set this option, then when you fill the first QTC line, then Tlf will fills the other time fields, only the first two characters. Of course, if you change the hour (eg., if there is a time: 2059, and the next one is 2100), then all next time fields will be changed.

QTC_RECV_LAZY
    If you use QTC feature, and you are on EU station in CW/SSB modes, then you can use this feature. In normal case, Tlf checks all received QTC lines: the time field must be 4 characters long, callsign and serial fields must be non-empty. If you set up this option, Tlf will ignore this restrictions.

CONTINENTLIST=comma separated list of continents
    Valid values are: SA, NA, EU, AF, AS and OC.

CONTINENT_LIST_POINTS=d
    Points for stations from continents in CONTINENTLIST

USE_CONTINENTLIST_ONLY
    Score zero points for station from continents not in the list.

BANDWEIGHT_POINTS
    Allow a point weighting factor for different bands. E.g.
    BANDWEIGHT_POINTS=160:3,80:2,40:1,20:1,15:1,10:2
    can be used for AADX contest. It will multiply all QSO points by 3 on 160m, by 2 on 80m and 10m and on all other bands only by 1.

    Bands not in list are weighted by 1.

BANDWEIGHT_MULTIS
    Allow a weigthing factor for multipliers on different bands. E.g.
    BANDWEIGHT_MULTIS=80:4,40:3,20:2,15:2,10:2
    can be used for WAEDC contest. It will multiply the number of multipliers on 80 by 4, on 40 by 3 and on 20/15/10 by 2.

    The multiply operation is executed after any other multiplier modification.

    Bands not in list will be weighted by 1.

PFX_NUM_MULTIS
    On WAEDC (and maybe on another contest too) the multipliers are the different countries. But there is an execption: in case of some country the different prefix number is a different multiplier. On WAEDC these countries are: W, VE, VK, ZL, ZS, JA, PY and RA8/RA9 and RAØ. Now with this option, you can list the affected countries: PFX_NUM_MULTIS=W,VE,VK,ZL,ZS,JA,PY,UA9. Then Tlf will reads these items, makes a lookup in a countrylist for a country code, and that code will be used. So, if you placed UA9 prefix, then Tlf will looks the UA9, which is Asiatic Russia. If you made a QSO with a station from Asiatic Russia, then the PFX number will evaulated with a new multiplier - but Europien Russia will not.

EXCLUDE_MULTILIST
    Some contest has a special multipliers list, which is easier to write with a substract of two predefined set. For example, the main set could be COUNTRY_MULT, and you need to substract from that just a few countries, than SAC test uses (then the scandinavian stations aren't multiplier for each other). In that case you can use this config:
      COUNTRY_MULT
      COUNTRYLIST=sac:JW,JX,LA,OF1,OF0,OJ1,OJ0,OX,OW,OZ,SM,TF
      EXCLUDE_MULTILIST=COUNTRYLIST Another useful example at WAEDC RTTY contest: then all stations can work with each others, for EU stations only the non-EU stations are the multi's, and reverse: for non-EU stations only the EU stations are the multipliers. In that case the EU stations can use this config:
      CONTINENTLIST=EU
      COUNTRY_MULT
      EXCLUDE_MULTILIST=CONTINENTLIST Now all country are multi, except the EU stations. In this contest the non-EU stations can use this config:
      CONTINENTLIST=SA,NA,AF,AS,OC
      COUNTRY_MULT
      EXCLUDE_MULTILIST=CONTINENTLIST In this example all countries are multis, except from SA, NA, AF, OC and AS continent, so only the EU stations left as multipliers.

BMAUTOGRAB
    If set, with RADIO_CONTROL and BANDMAP (mandatory) options, Tlf will grab the callsign from bandmap, if the TRX frequency is equal with bandmap freq.

BMAUTOADD
    If set, with RADIO_CONTROL and BANDMAP (mandatory) options, Tlf will add the callsign from callsign field, if its length is 3 character at least. Use 'S'kip dupes in BANDMAP settings to control if it should also grab dupes.

SPRINTMODE
    If set, Tlf will automatically switch its mode between LOG and S&P after every QSO.

FLDIGI
    If you work in RTTY (or any other digital modes), you can communicate with Fldigi through XMLRPC. The FLDIGI keyword will activate the interface. By default it connects to http://localhost:7362/RPC2 . If you run fldigi's xmlrpc server on an different port use
      FLDIGI=http://localhost:7362/RPC2

MINITEST[=NNN]
    Use this option when the contest is a minitest like contest. In that contests the full contest intervall is divided into shorter sections (e.g. 6 * 10 min. sections in an 60 min hour). Any station can be worked once in each of the time sections without counting as dupe. The default length of the sections is 600s (10min) but you can pass another value (in seconds) after the '=' sign. There must be an integral number of time sections per hour!

UNIQUE_CALL_MULTI
    Multiplier is callsign. You have to pass one of these arguments: ALL, BAND.
      Example:
      UNIQUE_CALL_MULTI=BAND The argument tells Tlf, how to score the callsigns as multiplier: ALL means the callsign is a multiplier, uindependet of band. BAND means the callsign counts as multiplier on different bands.

FILES
/usr/share/tlf/logcfg.dat is a recent example of the configuration file Tlf needs to know what to do. Tlf won't start without one. Copy it into the working directory and edit it before use. You should do your experiments well before the contest. It contains, amongst other settings, your call, name of the log file, info about ports for CW keying, packet or rig control, contest rules, points, multipliers etc.

/usr/share/tlf/rules/contestname contains the rules of the various contests. You can easily write one for your favourite contest making use of the various multiplier and points capabilities. Check it before the contest and send a message to the Tlf development list (tlf-devel@nongnu.org) if anything is wrong.

/usr/share/tlf/cty.dat contains a flat ASCII database of info about countries. This is the same file as used by CT or TR-Log.

/usr/share/tlf/mastercalls contains a flat ASCII database of known contest callsigns.

section files contain a flat ASCII database of multpliers like states, sections, provinces, districts, names, ages, etc. Some are available at the Tlf project download site (http://www.iae.nl/users/reinc/TLF-0.2.html). They are invoked by including MULT_LIST=section_file_name in the rules file.

DOCUMENTATION
An operation manual (a little bit outdated) is available in HTML format at the old Tlf project page (http://sharon.esrac.ele.tue.nl/pub/linux/ham/tlf/).

BUGS
Please send bug reports to the Tlf development list (tlf-devel@nongnu.org).

AUTHORS
Tlf was written by Rein Couperus (pa0r at eudxf.org) aka Rein Couperus (rein at couperus.com) but maintained from 2009 onward by Thomas Beierlein (tb at forth-ev.de). Lots of valuable contributions from PG4I (Joop PA4TU), PA3FWM, LZ3NY, VA3DB, OM4AA, OK1RR, DH5FS, G4KNO and various other contributors. (See the AUTHORS file for more). Thanks to all for improving Tlf!

Beta testers and feedback are always welcome!