CW Trainer
(Morse Code Reviewer)

CW-Trainer is a tool for learning and practicing Morse code, such as for passing amateur (ham) radio license exams.   It either takes text that you supply or it randomly generates text, and converts the characters into code sounds.   It can test your reading of the tones.   The sending speed and Farnsworth compression level are adjustable.

CW-Trainer is written in C for Linux PC's or other computers.   It was originally a text-based application (cw_trainer1), but recently a simple graphical interface was added.   The graphical interface makes it much easier to use.  


Invoke CW_Trainer as:   ./cw_trainer.exe

The CW-Trainer control panel is divided into two major sections: Settings and Code Sources.


Code Sources:
The second block of the CW-Trainer control panel controls the sequence of letters to be sent. It gives you several choices, which are selected by the radio-button on the left side of the block. The first two choices enable you to supply your own text sources.

The remaining choices generate character sequences randomly. They are arranged from easier to more difficult. The practice sessions can last as long as you wish, until you close the tool. (I have found that practicing for no longer than 20-minutes at a time, to be beneficial, perhaps a few times a day or week.) The general progression while learning CW, is to progress from top to bottom of the code sources. But you can go in any order.

Downloading CW-Trainer

Click to download:

This package contains the cw_trainer2.c source file and a pre-compiled cw_trainer.exe for convenience. If you are on a compatible Linux PC, then you may not need to re-compile. You may be able to run the supplied executable directly. However, if you wish to, or need to, the compilation instructions follow below.

To unpack:     tar xvfz cw_trainer2.2.tar.gz

Invoke by:     ./cw_trainer.exe

Compiling CW-Trainer

To compile the graphical version of CW_Trainer, you will need to grab the Open graphics Tool-Kit (Otk). Otk is a very small, lightweight, portable graphical user interface package for making the graphical front-end (buttons/menus/etc.) for CW_Trainer. Download Otk from When unpacked, it makes a subdirectory called otk_lib with a few files in it.

Compile CW_Trainer2.c as:

cc -L/usr/X11R6/lib -I/usr/X11R6/include cw_trainer2.c -lGLU -lGL -lXmu -lXext -lX11 -lm -o cw_trainer.exe

Porting CW-Trainer to Other Platforms

I am uncertain about the portability of the sound-card (audio) calls in CW_Trainer to other platforms, such as Sun Solaris, Mac OSx, or Microsoft Windows. If anyone has hints about how to make sounds on these other platforms, please let me know. Aside from the sound calls, everything in Otk should be very portable across all platforms, including the graphical interface. My intention is to support the other platforms when I find out about the sound calls.

Carl Kindman Logo