CW Complete Trainer

USER GUIDE  ·  by HB9HKN  ·  v0.16.9

1Philosophy

CW Complete Trainer is designed to teach Morse code the right way from the beginning: by building instant character recognition. Instead of memorising dots and dashes visually or counting elements, you learn to recognise each character as a unique sound pattern—just like you recognise spoken words.

Learn to Hear, Not to Decode

A common mistake when learning Morse code is to think in terms of "dit-dah" sequences or visual representations. This creates a mental bottleneck that limits your speed and increases fatigue.

With CW Complete Trainer:

  • There is no visual representation of characters
  • You do not count dits and dahs
  • You train your brain to recognise the sound instantly

Over time, each character becomes a sound signature that you hear and understand immediately—without translation.

The goal: when you hear a character, you should just know it—without thinking. This is called instant character recognition, and it is the foundation of fast and reliable CW operation.

The Right Way to Start: Character Speed vs. Farnsworth Speed

A key principle in CW Complete Trainer is how speed is handled. Rather than slowing down individual characters—which encourages counting—you keep characters fast but increase the spacing between them.

Recommended beginner setup:

  • Character speed: 25 WPM default 20
  • Farnsworth speed: 15 WPM

This means:

  • Each character is sent at full speed—you hear the correct sound pattern
  • Extra space is added between characters and words
  • You have time to think, but still learn the right sound from the start

Gradual Speed Progression

As you improve, the Farnsworth spacing is gradually reduced and the overall speed increases naturally—until both speeds converge. This method ensures:

  • You never develop bad habits such as counting
  • Your brain adapts smoothly to higher speeds
  • You build a solid long-term foundation

CW Complete Trainer supports this progression through the Auto Speed feature, which gradually increases your speed as you accumulate practice characters—see Settings → General.

Train Your Brain, Not Your Eyes

The app focuses entirely on auditory learning. You hear the character, you recognise it internally, and you respond—without visual aids. At some point, something clicks:

You stop hearing Morse code… and start hearing language.

2Getting Started

CW Complete Trainer is an Android app for learning and practising Morse code (CW). It covers the full learning path from individual characters through words, sentences, QSO simulations, and live web articles.

The Launch Screen

When you open the app you see four training tiles and a Settings button:

  • Character Training — Koch method, one character at a time
  • Word Training — common words, HAM abbreviations, callsigns
  • Text & QSO Training — sentences, stories, full QSO simulations
  • CW Web Browsing — convert any web article to Morse audio

Tap a tile to enter that training mode. Use the Settings button at the bottom to configure speed, audio, TTS, and more.

Every training mode has its own set of configurable parameters in Settings. It is strongly recommended to read the Settings section alongside the description of each feature — many behaviours (speed, spacing, exercise length, audio quality, TTS, QSO realism) can be tuned to match your current skill level and training goals.

Phone Permission

On first launch the app asks permission to read the phone state. This is used to automatically pause playback when you receive a call. You can allow or skip this; training works either way.

Launcher screen

Playback Controls

All training modes share the same playback controls:

  • Play / Resume — start or continue
  • Pause — suspend (tap Resume to continue)
  • Stop — stop and return to idle
  • Play Again — repeat from the beginning

During CW Web Browsing playback, two additional rewind controls are available:

  • ◁W — jump to the start of the previous word (plays the word gap before it)
  • −10 s — rewind ten seconds
The WPM slider appears directly on the player screen by default on. You can hide it in Settings → General and use the tappable speed badge instead.
Player screen with controls

3Settings

Open Settings from the launcher screen. Five sub-sections cover all configurable parameters. All changes take effect immediately and are saved automatically. Read this section together with the feature descriptions below — the settings directly shape how every exercise sounds and behaves.

Factory Reset (at the bottom of Settings → General) restores every setting to its default value without affecting your onboarding status or score history.

3.1 General

These settings apply to all training modes.

SettingDefaultDescription
Exercise Length
Exercise length modeBy minutesMinutes: truncate at N×WPM×5 characters. Chars: truncate after N characters. Tap the segmented button to switch; the value field below adapts.
Duration / Character count5 minMinutes or character count used when a limit is set. Available values for Minutes: 1, 2, 3, 4, 5, 7, 10, 15, 20, 25, 30.
Speed
High Speed TrainingoffUnlocks the WPM ceiling from 40 to 80 for all training sliders and auto-speed. Enable when practising high-speed copy. Quick-game speed ladders (Character, Word, Phrase) have no upper cap regardless of this setting.
Show WPM slider on playeronDisplays a live WPM slider on the player screen. When off, a tappable speed badge is shown instead (tap → Settings).
Speed (WPM)20Character transmission speed using the PARIS standard (1 dit = 1200 / WPM ms).
Farnsworth WPMoffCharacters play at full speed but inter-character and word gaps are stretched to achieve this lower overall rate. Useful for beginners who can hear individual characters but need more time between them. Must be lower than WPM. Toggle the switch to enable, then set the target WPM.
Wordsworth WPMoffWord gaps only are extended to the rate you would hear at this lower WPM — inter-character gaps stay at full speed. Useful for practising full-speed copy while giving yourself more time between words. Mutually exclusive with Farnsworth.
Auto Speed
Auto Speed — EnableonAutomatically increases WPM after a set number of characters have been played, helping you progress without manual adjustment.
Auto Speed — Char threshold1000Number of non-marker characters played between each automatic WPM increase. Range: 100 – 1,000,000.
Auto Speed — WPM step0.02Fractional WPM added at each threshold crossing.
Text Display
Text display modeProgressiveProgressive: characters revealed as Morse plays. At text end: full text shown after each exchange — use this to train pure copying without visual cues. Full text at start: all text shown immediately.
Font sizeM (16 pt)Player text size. Options: S (13 pt), M (16 pt), L (20 pt), XL (26 pt).
Transmission
Start pause0 sSilence inserted before the first Morse symbol. Useful to prepare before copying starts.
Dash-to-dot ratio3.0Duration of a dah relative to a dit. Standard Morse = 3.0. Increase for a more characteristic fist.
Char spacing multiplier1.0Scales the inter-character gap (normally 3 dits). Values above 1.0 add extra space between characters — helpful when learning new characters.
Word spacing multiplier1.0Scales the word gap (normally 7 dits). Values above 1.0 add extra pause between words.
Screen
Keep screen onoffPrevents the device screen from dimming or locking during playback.

3.2 Audio

Tone quality, volume, and interference simulation. QRM and QRN apply to all training modes and are a powerful way to progressively increase difficulty.

SettingDefaultDescription
Sidetone frequency700 HzCarrier frequency of the Morse tone. Range: 450 – 1000 Hz. 700 Hz is the standard contest sidetone.
Dit pitch offset0% (off)Pitch difference between dit and dah. Negative = dit lower than dah; positive = dit higher. Range: ±10%. Useful for emulating a real key feel.
Attack time5 msTone fade-in duration. Longer = softer clicks; shorter = sharper keying. Range: 0 – 20 ms.
Release time5 msTone fade-out duration. Range: 0 – 50 ms.
Master volume0.8Overall playback level (0.0 – 1.0).
Dah volume1.0Relative level of dah elements (0.0 – 1.0).
Dit volume1.0Relative level of dit elements (0.0 – 1.0).
QRM — Radio-frequency Interference
QRM Volumeoff (0%)Overall volume of all QRM interferers relative to the main signal. Set to 0 to disable QRM entirely. When above 0, the Difficulty and individual subsettings appear below.
DifficultyMedium Preset that configures Sources, Fading, and Freq drift together as a starting point. Individual sliders let you fine-tune after selecting a difficulty.
Beginner — 1 source, minimal fading, no drift.
Easy — 1 source, light fading, slight drift.
Medium — 2 sources, moderate fading and drift.
Hard — 3 sources, strong fading, noticeable drift.
Contest — 4+ sources, heavy fading, significant drift.
Min frequency offset200 HzMinimum frequency separation between any QRM source and the main signal. Reduce to 50 – 100 Hz for a contest-style pile-up exercise where interferers are very close in frequency.
Sources1Number of independent interfering signals playing simultaneously. Range: 1 – 6. More sources simulate a busier band.
Fading30%Amount of amplitude fading applied to each QRM source. 0% = steady signal; 100% = signal fades in and out strongly, like deep QSB on an interferer. Range: 0 – 100%.
Freq drift1.0 HzMaximum slow frequency drift applied to each QRM source over time, simulating an unstable transmitter drifting across your frequency. Range: 0 – 10 Hz.
QRN — Atmospheric Noise
QRN Volumeoff (0%)Overall volume of all atmospheric noise layers. Set to 0 to disable QRN entirely. When above 0, the Difficulty and individual subsettings appear below.
DifficultyMedium Preset that configures all six QRN layers together as a starting point. Individual sliders let you fine-tune after selecting a difficulty.
Beginner — very light background noise, barely noticeable.
Easy — occasional crackles, similar to a quiet 40 m band at night.
Medium — moderate static and sporadic crashes.
Hard — heavy static typical of tropical summer HF conditions.
Storm — severe noise that frequently masks the signal.
Base noise4%Continuous background white-noise floor — the steady hiss heard even between crackles and crashes. Range: 0 – 50%.
Crackle rate2.0 /sNumber of short crackle bursts per second. A crackle is a brief, sharp transient — higher rates sound like continuous static frying. Range: 0 – 30 /s.
Crackle gain12%Maximum amplitude of each crackle burst. Low values produce subtle ticks; high values produce loud pops. Range: 0 – 100%.
Crash rate0.10 /sNumber of heavy crash events per second. A crash is a longer, louder burst simulating a nearby lightning discharge. Range: 0 – 5 /s.
Crash gain15%Maximum amplitude of each crash event. Range: 0 – 100%.
Storm activity10%Slowly modulates the overall noise density and amplitude over time, simulating the natural ebb and flow of a distant thunderstorm. 0% = steady noise; 100% = pronounced slow swells. Range: 0 – 100%.

3.3 Text-to-Speech

When TTS is enabled, the app speaks each training item aloud after its Morse audio drains. This confirms what you heard and reinforces the association between sound and meaning. TTS works in Character, Word, and Text training modes. It is especially useful for beginners who want immediate feedback after each item.

SettingDefaultDescription
Enable TTSonMaster switch. When on, training modes use the Morse → pause → speak cycle instead of direct playback.
Pronunciation modeNormalNormal: letter names and natural speech ("Kay", "the cat sat"). NATO/ICAO: phonetic alphabet for individual characters ("Kilo", "Tango").
TTS volume1.0Volume of the spoken output relative to the system TTS engine level.
Pre-delay500 msSilence between the end of Morse audio and the start of speech. Gives you time to recall the character before the answer is spoken.
Post-delay500 msSilence after speech, before the next item begins.

3.4 QSO Simulations

These settings control how generated QSOs sound and how realistic they are. See Text & QSO Training for a full description of how QSO simulations work.

SettingDefaultDescription
QSO typeRealistic QSORealistic QSO: a natural ragchew with varying exchanges — closer to what you will hear on the air. Training QSO: a structured beginner QSO with fixed, predictable exchanges — easier to follow when starting out.
Operator B sidetone offset2%Frequency difference between Operator A and Operator B. A slight offset (1 – 3%) makes the two operators audibly distinct by ear, just like tuning across a real QSO. Set to 0 for identical tones. Range: 0 – 10%.
Max speed difference2 WPMOperator B's speed varies randomly up to ±N WPM from Operator A's speed. Adding a small difference (1 – 3 WPM) makes the exercise feel more like a real on-air exchange. Range: 0 – 10 WPM.
Contest
Contest formatsWPX One or more contest formats to practise. Check any combination — when multiple are selected, a different format is chosen for each QSO (no consecutive repeats).
CQ WW WPX CW — 3-digit serial number + 5NN exchange.
ARRL DX CW — state or province abbreviation (US/Canada) or power output (DX stations) + 5NN.
CWops CWT — first name + CWops member number (member), country prefix (non-member), or CWA (CW Academy student).
Abbreviated numbers60%In WPX exchanges, probability that each serial number is sent with 0 and 9 abbreviated to T and N (e.g. 090 → TNT, 001 → TT1). A single roll decides the whole number — either fully abbreviated or fully numeric. Set to 0% to always send full digits; 100% to always abbreviate eligible digits.
Call Sign Settings
Continent presetsThree quick-select buttons: Europe, North America, and Asia. Tapping a preset sets all six continent sliders to that region's default distribution. Sliders can be adjusted individually afterward.
Continent distribution slidersNA 69% / EU 27% / others 1%Six linked sliders (North America, Europe, Asia, South America, Oceania, Africa) always sum to 100%. Adjusting one slider redistributes the remainder proportionally across the others. Set a continent to 100% to practise exclusively with callsigns from that region.
Country prefix probability0%Fraction of callsigns that include a country prefix (e.g. FR/3B8G). Range: 0 – 100%.
Portable suffix probability0%Fraction of callsigns that include a portable suffix (e.g. HB9HKN/P, /M). Range: 0 – 100%. SOTA activators always carry a portable suffix regardless of this setting.

3.5 Browser Settings

SettingDefaultDescription
Home URLhttps://arrl.orgThe URL that loads automatically when you open the embedded browser.
Basic characters onlyonFilters article text to letters (A–Z), digits (0–9), spaces, periods, commas, and hyphens before encoding. Prevents unknown characters from silently dropping. Disable only if you need full Unicode Morse coverage.
All settings are saved to device storage automatically. They survive app restarts and OS updates. Use Factory Reset (Settings → General, bottom of page) to restore all defaults without losing score history.

4Character Training

Character Training uses the Koch method — the same ordering used by LCWO.net. You start with just two characters (K and M) and add one new character at a time as your confidence grows. All 40 CW characters are covered.

Selecting Your Level

The character set panel shows all 40 characters as chips. Characters at or below your current level are unlocked (filled, tappable); the next character is highlighted; characters above your level are greyed out.

  • Tap any chip to jump directly to that level.
  • The current level is saved and restored when you reopen the app.
  • Default level: 2 (K, M)
  • Level range: 2 – 40
Koch Level Setting

Playing an Exercise

Tap Play to generate a fresh exercise: 50 groups of 5 randomly chosen characters from your current level, transmitted at your configured speed. A VVV opening and --- closing marker are added automatically.

The recommended approach: stay at a level until you can copy at least 90% of characters comfortably, then tap the next chip to advance.

Text-to-Speech (TTS)

When TTS is enabled (Settings → Text-to-Speech), each character is spoken aloud after its Morse plays, giving you immediate confirmation. Two modes are available:

  • Normal default — letter name spoken naturally ("Kay", "Mike", …)
  • NATO/ICAO — phonetic alphabet ("Kilo", "Mike", "Romeo", …)

Quick Game

Tap Quick Game to enter the Character Match game — a timed single-character recognition quiz using your current Koch level.

TTS Controls

5Word Training

Common Words

Select a maximum word length using the chips (3 – 13 characters). The app loads all English words up to that length, shuffles them, and plays each word N times before moving on.

  • Default max length: 5 characters
  • Default repeat count: (configurable 1 – 3 in Settings → General)
  • Words are reshuffled each time you tap Play.

Tap Play to start, or Quick Game for a timed word-recognition quiz.

Word Training Screen

HAM Abbreviations

A curated list of standard CW abbreviations used on the air: QRM, QRN, QSO, CQ, DE, 73, 88, RST reports, and more.

  • TTS spells each abbreviation letter by letter (e.g., "Q – R – M").
  • Repeat count setting applies here too.
  • Tap Quick Game for a timed abbreviation recognition quiz (see HAM Abbreviations Game).

Call Signs

Bundled callsign lists, normalised and validated (no portable /AM, /MM suffixes). Ideal for practising the most common on-air element. Callsign distribution is configured in Settings → QSO Simulations → Call Sign Settings.

  • TTS spells each callsign character by character.
  • Tap Quick Game for a timed callsign recognition quiz (Correct / Wrong buttons).
  • Tap Pick Game for a multiple-choice identification game: hear a callsign in Morse and select the correct one from 3 – 4 options (see Callsign Pick Game).

From File

Tap the file upload button to pick a .txt file from your device's Downloads folder. Words are picked in random order — this mode is intended for custom vocabulary lists, not continuous reading.

If you want to play a text file in its original sequence (e.g. a story or article), use From File under Text & QSO Training instead — that mode preserves the original order and treats the file as continuous prose.

6Text & QSO Training

English Sentences

Choose a maximum sentence length (3 – 10 words) with the chips. Sentences are shuffled and played continuously as a single exercise, subject to your exercise length settings.

From File

Pick a .txt file from your Downloads folder. The file content is played as continuous prose in its original order — ideal for stories, news articles, or any text where sequence matters. Use Word Training → From File if you want random word-by-word practice from a list instead.

Text / QSO Training Screen

QSO Simulations

The app generates realistic two-operator QSO conversations. Four variants are available:

  • Play QSO — standard ragchew or structured training QSO
  • Play SOTA — Summits on the Air activation QSO with real SOTA references
  • Play POTA — Parks on the Air activation QSO with real POTA references
  • Play Contest — simulated contest exchange using one of the enabled contest formats (WPX, ARRL DX, or CWops CWT); format is chosen randomly each time, with no consecutive repeats when multiple formats are selected
Standard prosigns — AR, SK, KN, BK, and AS — are automatically recognised when they appear as standalone words in the QSO text and are transmitted as fused characters (no inter-element gap), matching on-air convention.

During QSO Playback

  • The transcript is revealed line by line as each exchange plays.
  • Operator A lines appear in blue; Operator B lines in amber.
  • The two operators transmit on slightly different frequencies — making them easier to distinguish by ear (configurable in Settings → QSO Simulations).
  • Text display mode (full at start / chars as played / full at end) applies here.

Controls During QSO

  • Play Again — replay the same QSO from the beginning
  • Play Another QSO — generate and play a brand-new QSO
QSO realism is controlled by Settings → QSO Simulations. Key parameters: QSO type (Realistic ragchew vs. structured Training QSO), Operator B sidetone offset (frequency difference between the two operators — set to 0 for identical tones, increase for a more challenging copy), and Max speed difference (how much Operator B's WPM can vary from Operator A). Start with a Training QSO at 0 offset and 0 speed difference, then progressively increase realism as you improve.

QSO Games

  • QSO Game — listen to a full QSO, then answer multiple-choice questions about what was exchanged
  • SOTA/POTA Game — same format but with mixed SOTA and POTA activations
  • Contest Game — contest QSO quiz with questions about the exchanged data: serial numbers (WPX), state/province/power (ARRL DX), or name + member number/prefix/CWA (CWops CWT)

See Quick Games for full details on scoring and mechanics.

Ragchew QSO exchange

QSO Settings in Detail

Reach QSO-specific settings via Settings → QSO Simulations from the launcher. The screenshot shows the full set of options.

QSO Settings screen

7CW Web Browsing

Convert any online article to Morse audio in seconds — useful for practising with real-world content at your target speed.

Using the Browser

  1. Tap CW Web Browsing from the launcher — the built-in browser opens immediately.
  2. Navigate to any page using the URL bar at the top.
  3. Tap the Convert floating button (bottom-right) to extract the current page and start Morse playback.
The URL that loads when you open the browser is configurable in Settings → Browser Settings. Default: https://arrl.org

Choosing the Right Page

Text extraction quality depends on how the website encodes its content. A few practical guidelines:

  • Best: individual news articles, blog posts, Wikipedia articles — pages whose primary purpose is to present a body of text.
  • Poor: home pages, category pages, search results — pages that are mostly navigation links rather than readable text. The extractor may produce garbled output or very little text at all.
  • Varies: some publishers use heavy JavaScript rendering or aggressive paywall encoding; the extractor works on the page source it receives and cannot always recover the readable article from these sites.
When in doubt, navigate into a specific article rather than starting from a news site's front page. arrl.org/news, for example, links to individual articles that extract cleanly, whereas the front page itself contains mostly headlines and menus.

Basic Characters Only

When enabled on by default, the text is filtered to letters, digits, spaces, periods, commas, and hyphens before encoding. This removes symbols, emoji, and special characters that don't have Morse equivalents. Disable in Settings → Browser Settings if you want full character coverage.

Exercise Length

Long articles are automatically truncated according to your exercise length setting (Settings → General). Default: 5 minutes. Set to Unlimited to play the full article.

QRM / QRN in Web Browsing

QRM and QRN apply to CW Web Browsing as well as all training modes. If you have interference or atmospheric noise enabled in Settings → Audio, it will be mixed into web article playback — useful for practising real-content copy under realistic band conditions.

Browser with Convert button

8Quick Games

Every training mode has a Quick Game button that launches a timed listening quiz. Games are designed for short, focused sessions of 5 – 10 minutes.

Character Match
From: Character Training
Timer: 4 seconds
Lives: 3 wrong = game over
Pool: Characters at current Koch level
Word / Callsign Match
From: Word Training
Timer: 6 seconds
Lives: 3 wrong = game over
Pool: Words (filtered by length) or callsigns
Phrase Error Spotter
From: Text Training
Timer: 10 seconds
Lives: 3 wrong = game over
Pool: Sentences up to selected word count
HAM Abbreviations Game
From: Word Training → HAM Abbreviations
Timer: 6 seconds
Lives: 3 wrong = game over
Pool: Standard CW abbreviations (QRM, RST, 73, …)
Callsign Pick Game
From: Word Training → Call Signs
Timer: 6 seconds
Lives: 3 wrong = game over
Pool: Callsigns with Morse-confusable foils
QSO Quiz
From: Text & QSO Training
Timer: 15 s / question
Questions: 4 – 10 per QSO
Pool: Generated QSO (standard / SOTA / POTA / Contest)
Word Game Screen

How Character / Word / Phrase Games Work

  1. A character, word, or sentence plays in Morse.
  2. The screen shows either the same item or a different one (foil).
  3. Tap ✓ Correct or ✗ Wrong — or wait for the timer to expire (counts as wrong).
  4. Feedback flashes green or red for 1 – 3 seconds, then the next item plays.
  5. Three wrong answers ends the game.
For the Phrase Error Spotter, the audio always plays the correct sentence. The text on screen may show a version with one word secretly replaced. Your task is to judge whether what you hear matches what you see.

Speed Ladder

Available in Character, Word, Phrase, HAM Abbreviations, and Callsign Pick games. Toggle with the icon in the top bar. Default: ON.

  • +0.2 WPM per correct answer
  • −0.1 WPM per wrong answer
  • WPM clamped between 5 and 60
  • Resets to your settings WPM when toggled on or when a new game starts

When Speed Ladder is active the score strip shows your current ladder speed (⚡ N.N WPM) instead of the best-streak counter.

Game Over Screen with Score Chart

How the Callsign Pick Game Works

  1. A callsign plays in Morse. While audio is playing, 3 – 4 callsign options are visible on screen but not yet tappable.
  2. When Morse finishes, the buttons activate and the 6-second timer starts.
  3. Tap the callsign you heard. The foil options each differ from the correct callsign by exactly one Morse-confusable character (e.g. H↔S, 9↔0, K↔N).
  4. After you answer — or the timer expires — the correct option flashes green, all wrong options flash red, and the next round begins after a short pause.
  5. Three wrong answers ends the game.
No TTS in the Callsign Pick Game — the Morse audio is the only cue, regardless of your TTS setting. The options are displayed visually only, so you must copy the callsign from sound.
The number of options (3 or 4) adapts to the available screen height. Rotate to landscape to get more options on compact phones.
🎯
[screenshot: Pick Game — four callsign options]

How the QSO Quiz Works

  1. Listening phase: a complete two-operator QSO plays. Scroll through the transcript as it is revealed line by line.
  2. Quiz phase: 4 – 10 multiple-choice questions are asked about facts from the QSO (callsigns, RST reports, name, QTH, etc.).
  3. Each question has a 15-second timer. Answer before it runs out.
  4. Review phase: your score, per-question breakdown, and the full QSO transcript are shown.

The QSO Quiz adapts its WPM during the session: +0.5 WPM if accuracy > 75%, −0.5 WPM if accuracy < 50%, clamped between 5 and 40 WPM (up to 80 WPM when High Speed Training is enabled in Settings → General).

Scoring

score = correct × 100 × (wpm / 20) × (1 + timeRemaining × 0.5)

timeRemaining = fraction of the timer left when you answered (0.0 – 1.0).
Faster answers and higher WPM produce higher scores.

Score History

Your last 50 games per game type are stored. A chart and your last 5 games are shown on the game-over screen. Access the full history from the game-over screen.

QSO Game Screen