mymalog --- the TF3MA TCL/TK logging program

essi sa hefur veri heimstt ---- sinnum san Fs Ma 2 21:04:21 GMT 2003

My own simple logging program written in Tcl/Tk runs on Linux and it uses MySQL table to store entries.



Be free to download the TF3MA mymalog logging program (GPL)

If you do not use Debian based installation program you need to download the the following programs and install them on your computer


Callsign entry shown in the info window can be changed/removed from the logfile, by double clicking with left mouse button.
Information from the DXCC file (dxcc, zone, itu, ..) are added to the logfile entry, the Info button will display some crude DXCC statistics (needs more work).
Here is the basic structure of the logfile
Here is a sample of a an actual logfile entry with DXCC and country info.
TF3MA 20011224 2100 VK4AFO 20m SSB 59 {} 43 {} 29,30 55,58,59 {} Y 20011224 I {} Aub {Cains, +33C} 2112 K2 {} 15 {} QSO VK VK4 Oc Australia {} {} {}

The program uses gcb to calculate short and long-path bearing and distance to the other station. The linux package name is gcb, it must be installed for this feature to work.


I wrote this program in TCL/TK language when I started to convert my old paper-log to electronic form. The GUI layout is modeled after my old paper-log with the fields in the same order to facilitate inputting the data. I also wanted to minimize the keystrokes required to input the data from the paper-log, so I automatically jump to the next field when the current is filled, this can be done for the date, time, RST fields but I use TAB for the other fields which do not have fixed length. The mouse can also be used to select a field. The complete input-line is then moved to the log-file by pressing F9 or using the mouse to press the LOG button. I used a plain text file with one entry per line and fields separated with |. This was later changed to TCL list format to speed up reading and writing of the log-file.
During Nov 2003 I changed the program to use MySQL table to store the logfile.

Logging and QSL tracking/printing

I then started to use the program to do my logging, I had to change it a little, like using the computer to provide the current date and time values. I added QSL tracking and printing of labels for QSL cards for QSO and SWL. The output text is appended to the file qsl.txt in the logfile dir. I use the following script to make the QSL labels.
labelnation -d "-----" -p parfile.3x11 -l -i qsl.txt -o

the parfile.3x11 is my parameter file for 3x11 labels. You do not need to write all 33 labels at once, just delete the text and leave the "-----" and the labenation program will skip the label.

Old QSO's and DXCC lookup

I also added the provision to look up callsigns in the log-file, to check for previous contacts. The callsign field accepts MySQL regular expressions patterns, so putting an underscore _ or % lists all the callsigns in the main window. K%6 lists all K6 to KZ6 contacts.
Then came the dxcc list lookup, which I do by reading in the dxcc file and parsing it, building a regular expression array which is used to match the callsign as soon as the first character/digit of the callsign is inputted. Now the country and zone information and the prefix are also stored in the log-file.

Contesting and ADIF, Cabrillo, ASCII and PS exporting

Cabrillo and ADIF formatted export was later added, as well as some contest features like automatic serial numbering of QSO's. You find the .cab, .adi, .txt and .ps files in the logfile directory.

ADIF importing

Data from a ADIF file can be imported, the file should have the extension .adi or .adif and reside in the logfiles directory.

GUI language

All the texts in the GUI are in icelandic language, but I added a simple means of changing the GUI language by storing the text in an array, so now it is simple to add a new language to the GUI.

Rig control --- K2 and Linux

Information from the K2 rig, is read via the serial port, the BAND, MODE and FREQ fields are updated with the info from the rig, by sending the K22;AI1; string to the K2 once and and using fileevent to read from the rig every time it sends IF response. A watchdog monitors when the K2 is turned on and then activates the serial connection to the K2, it then sets the K2 mode to K22;AI1;.
Now MATerm.tcl morse terminal with K2 controls can be run from the program, it will open in a separate window.
Left Button on mouse on the Freq label will enable the Auto info mode on K2. Right Mouse Button on the Freq label will disable the Auto info mode.
Left button on Band label will switch K2 to the next higher band, rigth button switches to the next lower band. MouseWheel on Freq label will tune the K2, with the tuningrate of 50Hz, with Shift-MouseWheel at 1kHz rate, and with Control-MouseWheel at 10Hz rate. Left mouse click on Mode label will toggle the Mode on K2.
F1 to F8 buttons are now sending cw messages to the K2 internal keyer, as defined in the .xxxxrc file. These are user defined with some variable substitution, like sending the serial number and the callsign of the other station.
Pressing F10 brings up a small morse terminal window, just type a word/character in the terminal window an your K2 will send the word/character using the internal keyer. Pressing F10 toggles between live key sending and word sending.

Running the program

On first time run the program asks for your callsign and a password for the database, just put in any password you like or none. It then creates the .xxxxrc file. You have to ask your MySQL admin to grant you access to the database.
Upon start the program reads the rc file with the name .xxxxrc where xxxx is the name you choose for the installed program. In the rc file is the name of the logbook table and the directory for the dxcc file and some other information.
The RIG, TX_PWR and ANT infos are now read as a TCL lists from the rc file. The BAND, MODE and CONTEST_ID lists are also read as TCL lists from the rc file. When connected to K2, the TX_PWR is taken from the K2.
Use more than one logbook i.e. logbook for day to day logging and contest for contest logging. Switch between logbooks using the File menu button.
Printing QSL labels is by pressing the Se button. The QSL label for the callsign in the QSL window is printed.
The Info button displays some DXCC statistics. The information is from the first entry or the one specified by the OFFSET# or from the selected QSO#
Using the File button you can export the log in ADIF, Cabrillo, ASCII (PostScript) format The exported entries start from same point as the Info and proceed to the end of the file. The EQSL export is special, it makes an ADIF file and stores the offset in the .xxxxrc file, so you do not send the same info twice.
Clicking the left mouse button on an entry in the big window selects the entry.
The callsign in the big window can be edited by double clicking on the entry. A separate edit window does the popup on the screen.
Use Edit rc file for adding more logbooks, just add the name of your new logbook to the DATABASE entry, and SAVE and you have to restart the program. Use the Logbook menu in the File menu to select a logbook to use.


My current logfile has but 5.000 entries and there is no speed problem on a 1GHz PIII Linux machine, its filesize is about 600k and the resident size of the running program in the computer memory is about 18M.

GUI example 1

This is how the my icelandic GUI looks.... in normal QSO mode

GUI example 2

This is how the same looks using the english GUI

.mymalogrc for TF3MA

This is the edit window for the my rc file

Last updated sun jl 2 14:45:10 GMT 2006

Windows version

Hrafnkell TF3HR has modified the program so it now runs on Windows. See program source for details.

Remote operation of K2

The program can be used to operate the K2 across a network. On Linux this is done by invoking the program on a remote X-terminal. With linphone or kphone VoIP one can receive and transmit audio from/to the K2. CW and SSB operations are possible. For better remote control of the K2, MATerm can be used. Digital modes can be used from a remote X-terminal without the VoIP, as we do not need to send any audio across the net.
The harware needed for remote CW and SSB operation of K2 is the same as needed for the digital modes i.e. input and output are via the soundcard. PTT and control is done via RS-232 on the local machine. CW uses the internal keyer of the K2.

More TCL/TK programs for K2