Learning CW

Posted by Fred C (W6BSD) on Jul 23 2021

The Wordsworth method

After watching George Allison's (K1IG) talk on QSO-Today describing his methodology to "head copy" Morse code, I have decided to give another shot to learning Morse code, often called CW in the ham radio word.

According to George, high-speed operators who copy in their heads at speeds greater than 40 WPM have learned to process CW by hearing entire words. The Wordsworth method is a variant of the Farnsworth method, which sends individual letters at high speed. Wordsworth's way sends words at your target speed with long spacing between each word. You reduce the spacing between words as your proficiency increases.

For more information on the Wordsworth method, read George's article published in the QST magazine.

I am a Mac user and couldn't find any program that I liked to learn CW past the alphabet. I have used a few software programs, mainly one called Morse and qrq written by Fabian Kurz. I have also tried the online service lcwo.net, but I wasn't satisfied with any of these systems.

Following George's suggestion, I am now trying to Wordsworth method using fldigi to generate the sounds. I already use fldigi for my digital communications so I don't need to install any other software. Fldigi can be used to send code into your ears for you to decode. It can also be used as a decoder for when you practice transmitting code. Using the fldigi decoder allows you to make sure the code you send is clean.

The most straightforward way to start is to configure fldigi to send the code directly to your headphones. If your radio allows it, you can configure fldigi to use your radio's internal keyer, which will probably give you a more authentic sound. George's article also recommends setting your speed to more than 20 WPM. This setting is on the bottom left corner of fldigi's window.

When using fldigi with your computer connected to the radio, make sure you are not transmitting your exercises on the airwaves. To avoid any mistake, I have created a second fldigi configuration with the RIG set to none. I start my fldigi with the following command:

√ % /Applications/fldigi-4.1.19.app/Contents/MacOS/fldigi --config /Users/fred/.fldigi2

To avoid typing this long line every time I want to practice. I have created the following alias in my .zshrc2 file. Now, I simply have to type morse at the console prompt and fldigi starts with the proper configuration.

√ % alias morse="/Applications/fldigi-4.1.19.app/Contents/MacOS/fldigi --config /Users/fred/.fldigi2"

The exercises

To randomly select the words for the exercises and set the proper spacing between each word, I wrote a program posted on GitHub and in the Python package repository pypi. To run that program, you will need python installed on your computer. Python is available standard on Linux and Mac, but it needs to be installed separately on Windows.


The easiest way to install the program on any system is to use the Python package manager from a terminal console.

√ % sudo pip install wordsworth

After installing the package, use the argument --help to check all the options available. If you are in a hurry, call wordsworth with no arguments. The program will generate a series of words on the console. You can cut and paste the output into the transmit windows on fldigi and hit the transmit button.


Call wordsworth with the --help argument to see all the options available to set up your exercise. The program's default values have been selected for beginners.

The --help argument will also show you the list of study datasets.


  • abbrevs abbreviations used in ham radio
  • alpha alphabet A to Z
  • connectives 140 words such as AND, OR, THAT, etc
  • names common US names
  • numbers Digits 0 to 9
  • pro_codes ham radio pro-codes <AS>, <BT>, <SK>, etc
  • punctuation all the punctuation used in Morse
  • words more than 30,000 words from the English dictionary
  • words the 100 most common words
Fldigi cw practice screenshot
Fldigi cw practice screenshot

For example, you can create a fldigi macro as following2. Then, every time you want to practice, click on the macro and a new exercise will be automatically generated with each word repeated 4 times with a spacing of 8. Before hitting the transmit button to practice, make sure you are not sending it on the airwaves.

<EXEC>/usr/local/bin/wordsworth --repeat 4 --spaces 8 --dataset words</EXEC>

I hope this will help you learn CW and that I will hear you someday on the bands.

  1. Depending on the shell you are using, the file name will be .bashrc or .kshrc

  2. The path to wordsworth might differ depending on the operating system you are using.