CWops Morse Code Trainer

Practise copying and sending Morse code using a scheme of sessions developed by Rob Brownstein of CWops. The software is written by Stephen C Phillips. A Japanese version is also available.


For some of the sessions some additional information is needed. This information is not stored on the server.


Choose your session and then practise the copying and sending segments.


For Copying and Random activities, choose whether you want to hide the text, or see a flashcard displayed afterwards.


Play each of these segments again and again until you feel you recognise the sound pattern. Click on word tiles to hear them separately.

Text to copy


Play a segment, then try to imitate it, exactly, using your key or keyer. Repeat it as many times as it takes to feel that you’ve got the correct word pattern.

Text to send

Note: there is a newer CW Generator page that you can use.

If you need to practise any other sequences then enter them below. If you want to use prosigns then enclose them with angle-brackets (e.g. "<BK>").

Note: there is a newer and better Instant Character Recognition tool which may be used.

Choose the letters you want to practise:

The letters above are shuffled to make “words” of characters,
each repeated times.
The “sentence” will have words.


Morse Sound Controls
Segment gap

There are no paid adverts on this page. If you find this software useful, please make a small donation to the author (and convince his wife that the time spent on it is worthwhile...).

Thank you!



Please enable cookies on this site to store your preferences between training sessions.

There are many keyboard shortcuts which can also access additional functions such as playing the next segment. Press ? to list them.

This tool works in most browsers: please see the FAQ if you are having problems.

Offline version

If you want to use this training software offline then you can download it here. To use it, unzip the file, go into the folder and double-click on "index.html". It's a bit out of date, but everything should work apart from the donation button!

Change log