TLF-0.5.2

 

(C) 2001, 2002 - Rein Couperus, PA0RCT

a free console mode general purpose CW keyer,
logging and contest program for hamradio
under LINUX


This program is published under GPL




Content


Description

TLF-0.5.2 is a console (ncurses) mode general purpose CW keyer, -logging and -contest program for hamradio. It supports the CQWW, the WPX, the ARRL-DX , the ARRL-FD, the PACC and the EU SPRINT contests (single operator) as well as a lot more basic contests, general QSO and DXpedition mode. It interfaces with a morse code generator, a number of radios, and with a DX Cluster.
Contest operation mimics the popular TR-Log program for DOS, the output file is TR- as well as CABRILLO compatible. The user interface was designed with over 30 years of experience in CW contesting in mind. The program was written for console mode on purpose, to make it run also on smaller machines, or remotely via a modem link. TLF is developed under Slackware 8.0, and tested under SuSE 7.0, kernel version 2.2.16, and RH 7.2, with 2.4 kernel.. Beta testers welcome !!!

Two keyer modules are now supported. The cwkeyer from Ivo, 9A3TY with output on either ttyS0 or ttyS1, and the (more flexible) cwkeyer for the parallel port from Eric, PA3FKN with output on LP0. They both work with a cw output device called /dev/cwkeyer, and can be fully controlled by TLF.
For the cwkeyer module for COM ports there is a special source file especally for kernels 2.4.x on the website (called cwkeyer.c.k24). The default file in the distribution of cwkeyer-0.1 only works for k2.2 and below.
The keyer from Eric, PA3FKN works also for kernels 2.4.x without problems.

Why TLF

I have been using mostly TR-Log for contesting, or CT when working as guest op in M/S operations. I am especially fond of TR-Log. When you have a DOS computer, you don't need TLF. You should use TR-log. However, I have now removed all WINDOWS and DOS software from my computers and put LINUX on. This means I can't use my favourite contesting software anymore (yes, I have also experimented with DOSEMU, but without great success...)
TLF started as a simple keyboard interface to cwkeyer-0.1 from 9A3TY. When the WPX 2001 was 2 months away I had to try to write my own program. That turned out to be great fun. The result of this is TLF, which very much represents my idea of what a CW contest program should do.
Some have asked what the name stands for. The old hands from the days when CW was still hand-crafted will certainly know. It means Try Left Foot.
On special request TLF will now also log SSB and DIGIMODE qso's.

Features

Permanent information displays:
Optional information windows:


Screen pic



Keyer:


Database:



Uses reformatted cty.dat.
Conversion script is included in the distribution.

Interfaces:

TLF interfaces through the file system:

For CW output it writes to /dev/cwkeyer.
For Cluster input it regularly reads a file called clfile.

Interface to the radios has been kept modular, so others can write interfaces to various types. The program simply looks into a file QRG for the actual trx frequency, and writes to a file called QRGOUT to set the trx frequency and reset the RIT control.
Of course you can grab dx spots, do fast qsy etc...

Radios presently supported:

Installation

Install the CW kernel driver


You now have a choice out of two kernel modules, depending whether you want to use output on a COM (serial) port or on LPT1, the parallel port.

Installation of the parallel port driver

Get Cwkeyer.tgz from the TLF website and get it to work . Just unzip and untar the file cwkeyer.tgz, go into its directory and make. Start the module with "load", and stop it with "unload". You have to be root to do this !   (TLF can be run as user).
Key output is on bit 3 and PTT output is on bit 2 of the parrallel port.

Installation of the serial port driver

Get TLFcwkeyer (based on cwkeyer-0.1 from 9A3TY) ( and get it to work (as root).
You need the special version from the TLF website, because it will allow you to change the cw speed in 2 wpm increments. Moreover it will allow stopping the message as soon as it has started. The original module can not do this (yet).

For distributions working with kernel 2.4.x, a modified version of cwkeyer.c is on the TLF website.

The README file in the distribution (TLFcwkeyer.tar.gz) gives excellent directions for the installation.The TLF distribution contains a script, startcw to start the module. Edit it first to use the right directory names and output port (ttyS0 or ttyS1).
If you have problems, first check if all file permissions are o.k.

Output is on the DTR pin of the port.

You can use the same simple hardware interface as for TR , CT or DX4WIN.

Example of my own startcw script which will start the cw kernel module on ttyS1:

#! /bin/bash
# starts the cw driver

cd /home/rein/cwkeyer-0.1
make cwup2
echo "CW OK" > /dev/cwkeyer
cd /home/rein/TLF-0.2



Install the TLF program.

Get the latest distribution of tlf from the download site (ftp://sharon.esrac.ele.tue.nl/pub/linux/ham/tlf).
tlf now supports GNU autoconf and automake, which automates the installation process, and makes sure you have all the goodies on your machine which tlf needs..

* Read README and INSTALL
* Unzip the tarball (e.g. gunzip tlf-0.5.2.tar.gz).
* Untar the archive (e.g. tar xvf tlf-0.5.2.tar)
* cd into the top directory (cd tlf-0.5.2)
* type ./configure
* type make (Ignore the 3 warning messages about the 2-digit year.)
* type make install

It is good practise to use separate directories for the different contests.
TLF can be started from any directory. to start a specific contest you need to:

* mkdir contestname
* copy the logcfg.dat file for that specific contest into it (it is located at /usr/local/examples/contestname)
* edit the logcfg.dat file (call, logfile) to suit your needs
* start tlf with tlf
Tlf will put some files into the working directory, viz.: clfile and wwvfile.

For radio control:

You can convert the latest cty.dat file into ctydb.dat if necessary with the script provided (convertctydb).
The cty.dat file included in the distribution is the one from October 2001.

Edit the filterline script (e.g. change the call).

TLF needs some bash commands to work: system( ), tr, cut, sed, egrep, cp, rm, tail, less, joe.


Preparation

    Make sure the CW kernel module cwkeyer.o (as root) runs (try the startcw script)
    Start the input (cluster) fifo in the working directory if you want to use the cluster info (see FILES)
    Start the program (tlf).

FILES

. / clfile This is the input file for the DX cluster monitor. You only need it when you use a dx cluster, or any other information you want the program to display. There are several ways to get the cluster data into it.
You can use the "call" ax25 tool. It has the possibility to write a logfile. This is started with ~o, and is called logfile.txt.
You can get the info into clfile with :
tail -f logfile.txt >> clfile

You can also use telnet. Open a new terminal, and start telnet with:
telnet node | tee -a clfile

TLF will pick it up from there (it will look in the working directory for clfile!!). I sometimes use minicom and a TNC2. To filter out the Escape sequences I use a script called filterpacket (example included in the distribution).
. / ctydb.dat This is the DXCC database. It resides in /usr/local/share/tlf.
. / .paras The parameter file. It remembers the parameters for the next session. TLF will generate one for you. It is normally not necessary to touch this, as all parameters are included in the file logcfg.dat, which can be edited within tlf.
. / logcfg.datThe configuration file. It enables you to configure tlf for a special contest, for normal qso operation, etc. All parameters are already in the file. They are enabled by uncommenting them (erase the # in the first position of the line). You should stick to the format as much as possible. In case certain parameters are mutually exclusive, the last one wins....
As more functions become available in future, new versions of logcfg.dat will become available.
. / wwvfileContains the latest wwv info received from the dx cluster
. / QRG If this file is present and trx control enabled (parameter :trxcontrol) , tlf will follow the band switch of the transceiver. (So if you can not change band anymore you now know why :-)).
. / QRGOUT This is written by tlf if trxcontrol is enabled, and you tell tlf to qsy by changing the band, grabbing a spot or just entering the frequency into the call input field. QRGOUT is deleted by the trxcontrol interface after the qsy has been done..
/usr/local/share/tlf/filterline Script needed by the program. It is used to filter out clutter from the DX cluster. You can edit it to change the filter.
xxxxxxxxxxxxxxx.log The log file
. / cabrillo This file will be generated by the ":write" command after the contest. Rename to YOURCALL.CBR and email....

Operation

Logging qso's



Al activity takes place in the call input field (and the exchange input field..).
When you enter (part of) a call, several things happen:

Deleting qso's


Using the "-" key will delete the last qso from the log (after asking your permission of course).

Editing the previous qso


You can recall the previous qso with "@". Log it without cw output with "\" (backslash)

Changing RST


You can change RST sent when a Call is in the Call Input Field. Page_down will lower the S value and Page_up will increase it.

RST received can be changed by going into the exchange field and using Page_down and Page_up accordingly.

Changing CW/SSB mode

The command is :mode.

Changing Bands

When you are in the call input field, use the left_arrow and right_arrow keys to change the band.
When contest mode is on, only the contest bands can be reached (160-80-40-20-15-10).

If a radio interface is present, band switching can be done in several ways:

Contest commands

Some special commands are needed for use in a contest:

Keyer commands

Radio control commands

A Radio Control Interface is available for the tec tec 563 (OMNI VI+). This possibly also works for the ICOM 735.

If your radio is not covered, try to find somebody to knit an interface for you. The ten tec interface was quite easy to do. The interface to tlf is simple: QRG must contain the trx frequency as an ASCII value, (e.g. 14011.5), and QRGOUT writes the qsy frequency in the same way. (special value for ten tec 563: a value of 99 tells the trxcontrol program to reset the RIT for me.)

Log commands

Change your time zone and location

Edit the ctydb.dat file, and put the data of your qth into the line representing your country. An example:
United States:            05:  08:  NA:   43.00:    87.90:     5.0:  K:
If you are in zone 04, change the 05: into 04:, change the 43.00 and the 87.90 into your location. and the 5.0 (time difference to GMT) at the end to 6.0
Tlf is picky with respect to the exact format of the file; make sure the stuff is in the right columns!

The score window

The score window is adapted to the contest you are in. So if the contest parameter is set to cqww, you get a special score window for it, showing qso's per band, countries worked per band, zones worked per band and total score.
It also gives an indication of the qso's per multiplier, and the qso rate based on the last 10 qso's.
When you restart the program the score is recalculated from the log file. When a qso is deleted from the logfile the score is not adjusted, neither is the list of counties worked updated. You can correct this by restarting the program.

The Messages

There are 14 messages. More than I can remember. Some have a special use: For the messages you can use a number of special characters:

The easiest way to handle the messages is to edit them in logcfg.dat. You can then keep separate logcfg.dat files for different contests and operating situations.
You can list the messages with ":list" and change them with ":message".

Dupe checking

With the "check" command you can open a search window which will tell you:

Check partials / auto_complete

The check partials function is controlled via the logcfg.dat file with 3 parameters:
The check partial calls function uses a database derived from the master.dta file containing some 25.000 known contest calls.
When the USEPARTIALS parameter is on, 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.
Some people find that 9 calls is not enough.... MANY_CALLS will give you many calls.

Checking propagation

For the propagation check to work, the file "wwvfile" must contain a value for either SFI (solar flux) or R (or SSN), the sunspot number. The calculation actually uses the SSN value which is derived from SFI. If you are connected to a cluster, the WWV values will automatically be stored, and the last value used. Clfile is periodically checked for this, and the value stored in wwvfile.
Starting with version 0.4.4 it is now possible to include the value of R or SFI in the logcfg.dat file.
The value will be picked up within a minute, and will be used for subsequent calculations. The calculations are quite simple, but you may compare it to e.g. minprop 3. and see that it really comes quite close. This may be enhanced in the future, to influence the multiplier map...
All timing is related to UTC. You must have your computer clock running on UTC.

DX cluster connection

Tlf regularly looks into a file called "clfile" in its working directory. It is your responsibility to get the info into it. Some examples:

Relevant commands: You can filter out announcements etc. by editing the script "filterline".

Editing the .paras file



Here is an example of a .paras file. Normally, you should not have to edit it, all can be changed from within the program.


Example of a typical .paras file (cqww contest):

# Call ----------------------------------
PA0RCT
# Messages F1...F12 ---------------------
CQ % K
@ DE %
@ ++++++[------ 14
TU
@
%
@ SRI QSO B4 GL
AGN
?
QRZ?
PSE K
TEST % %
# TU message S&P mode---------------------
TU [14
# TU message CQ mode---------------------
TU %
# Info for top status line----------------
1=CQ 2=DE 3=RST 4=73 5=HIS 6=MY 7=B4 8=AGN 9=?
# Logfile----------------
cqwwxxx.log
# Contest-----------------------
cqww
# Parameters--don't change----
SADNCNN:;U



Example of a filterline script

#!/bin/bash
egrep -i "DX de|PA0RCT|DK0WCY" clfile > cl3file

The file cl3file is a temporary file necessary for the filter to work
 

Making a contest qso in CQ Mode

1: Press ENTER to start the F12 message ("CQ TEST YOURCALL...") or F1
HC8N: "HC8N"
2: Type HC8N
3: Press ENTER (YOU: "HC8N 5NN14") (message is in F3)
HC8N: "TUENNAT"
4: Press ENTER (YOU: "TU YOURCALL") (message in CQ_MESSAGE)
N6TR: "K7RAT"
2: type K7RAT
3: Press ENTER
etc...

 

Using the keyer
the keyer is started with Ctrl-K or with "," (comma). The comma will only work when the call input field is empty (and if trxmode is CW of course.
The following special cw characters are supported on the serial interface: The keyboard works in word mode, enabling you to correct a word with "backspace" before it is sent to the keyer by adding either a space or enter.. Characters like SN, SK, BK are sent immediately. Stop the keyboard with ESCAPE.
 

Making a contest qso in S&P Mode

1: find a station to call
2: Type HC8N to enter the call into the input field
3: Press ENTER (YOU: "YOURCALL") or F1
HC8N: "YOURCALL ENNAT"
4: Press ENTER (YOU: "TU 5NN14") (the message is in SP_MESSAGE)
HC8N: "TU HC8N"

 

Making a normal qso

- Switch contest mode off
- Use the check window to see if you have worked the stn. before, and
to remember his/her name :-))
- Tab into the exchange field for comments (name, qth)
- Use ; (notes) for further comments
- Reprogram the key saying SRI QSO B4 to contain the local WX.
- Use , (keyboard) to tell your story, nice and slowly...

Command Overview


Most commands start with a ":", and you need to type only the first 3 characters.

)
:help Show online help
:modeswitch trx mode (CW, SSB)
:setlist and set parameters.

the following contests are supported:
  • CQWW
  • WPX
  • ARRL-DX (both sides)
  • PACC (both sides)
  • EU SPRINT
  • Other (wysiwyg mults)
  • DX-pedition
  • General qso
Up-Arrow Increase CW speed (2wpm)
Down-Arrow Decrease CW speed (2wpm)
  
Pg-up If call field empty:
    Increase Auto_CQ delay (1 sec)
If not empty:
    increase RST
Pg-down If call field empty:
    Decrease Auto_CQ delay (1 sec)
If not empty:
    decrease RST
  
F12 Start Auto_CQ
F1-F11 Send CW message
  
:tone Set sidetone frequency (200-900 Hz) or OFF (0)
A value between 2 and 20 will add weight to the cw elements
  
Tab Switch between call input and exchange fields
+ Toggle CQ/S&P mode
  
Left-Arrow Change band if callsign field empty
(enter edit mode if callsign present, leave edit mode with ENTER or ESC)
Right-Arrow Change band
  
ENTERSmart key for contest mode
    Calls cq
    Calls station
    Sends exchange
    Logs the qso
\log qso w/o CW;
; Insert note in log
,
ctrl-k
Keyboard on. This works only when the call input field is empty. use ctrl-k if it isn't.
ESCAPE Return to call input field
    keyboard off
    stop cw
Ctlr-pPropagation info
- Delete last qso
@ Edit last qso
= Confirm last call
_ (underscore) Edit last qso
  
#trx qrg -> mem
mem -> trx qrg
ctrl-g Grab a dx spot
ctrl-a Add a dx spot to the spot list or bandmap
ctrl-f Change TRX frequency with up_arrow, down_arrow (100 Hz at the time)
  
:view View the log with LESS
:edit Edit the log with JOE (ctrl-K H = help)
:list List CW messages
:message Edit CW messages
:set, :cfgedit logcfg.dat configuration file
:write Write Cabrillo file (for selected contests:
CQWW, WPX, ARRL-DX)
! Get a new shell
:exit Exit the program

Options

:multi Toggle SINGLE/MULTI SINGLE mode on/off
(switch to off, does not do anything yet)
:contest Toggle contest mode on/off
:check dupe check window on
:nocheck dupe check window off
:score Toggle score window on/off
  
:cluster Show cluster window or...
:map Show Band Map or...
:spots Show last 10 spots or...
:cloff No cluster info (non-assisted contest operation)
  
:cty Show country multipliers per continent
:zone Toggle zones worked display
:trxcontroltoggle trxcontrol on/off (default off)
Radios supported: Ten Tec 563 and icom 735.
:ritclearrit reset on/off


Logcfg.dat file

EDITOR=joe
#EDITOR=vi
choose your favourite editor for :edit and :set
CALL=PA0RCT don't forget to change this one !!
#CONTEST=cqww
#CONTEST=wpx
#CONTEST=sprint
#CONTEST=arrldx_usa
#CONTEST=arrldx_dx
#CONTEST=arrl_fd
#CONTEST=pacc_pa
#CONTEST=pacc_dx
CONTEST=dxped
#CONTEST=qso
#CONTEST=other
choose your standard contest or experiment with 'other'
LOGFILE=dxped.log don't forget to change this one !!
#LPT1
COM1
choose your keyer output port
##---speed (6 ... 60 wpm)
SPEED=30
##---weight (-5 ... 5 ms)
WEIGHT=0
##---txdelay (ms)
TXDELAY=51
##---sidetone (200...800, 0 = mute)
TONE=800
#
set the keyer parameters
most (except speed and sidetone) are only available for the parallel port keyer
#RADIO_CONTROL
#RIT_CLEAR
#SHOW_FREQUENCY
rig control parameters
clear RIT after qso
.
#CLUSTER
#BANDMAP
SPOTLIST
FILTER
#
#SCOREWINDOW
CHECKWINDOW
switch information windows on/off
#PARTIALS
#USEPARTIALS
#MANY_CALLS
switch partial call function on
auto_complete function
see many calls :-)
#SUNSPOTS=102
SFI=180
set initial value for muf calculation
F1=CQ CQ DX DE % % k
F2=@ DE %
F3=@ [
F4=TU 73
F5= @
F6=%
F7=@ SRI QSO B4 GL
F8=AGN
F9= ?
F10= QRZ?
F11= PSE K
F12=TEST % %
#
CW_TU_MSG=TU 73 %
S&P_TU_MSG=TU [
#
#SHORT_SERIAL
LONG_SERIAL
#
SEND_DE

% = call
@ = hiscall
# = serial
[ = RST

+ = increase cw speed
- = decrease cw speed
(works only with parport
interface)


F12: auto_cq message

contest mode: TU message in CQ mode
contest mode: TU message in S&P mode

e.g. TT1 instead of 001



relict from TRlog
#RECALL_MULTS used in "other" contest mode when exchange does not change between bands
#ONE_POINT
#THREE_POINTS
used in "other" contest mode, points per qso for scoring
#WYSIWYG_MULTIBAND mult used in "other" contest mode, counts per band
#WYSIWYG_ONCE mult used in "other" contest mode, counts once per contest
#POWERMULT_5
#POWERMULT_2
#POWERMULT_1
power multiplier for qrp contests or e.g. the arrl field day
the qso points are multiplied by this fixed amount, depending on output power
# MULTIPLIER LIST # for future use (excluded countries, list of districts, provinces etc. etc...)

BUGS/TODO


If you find any, or have suggestions for TLF, send comment to PA0RCT@AMSAT.ORG

Licence and copyright


Copyright 2001, 2002 Rein Couperus (PA0RCT)

This program is distributed under the terms of the GNU General Public License.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA