·−Getting started
If you've never copied a character in your life, this is the whole path. It takes about five minutes to get going, and you'll be recognizing your first two letters by sound in one sitting.
- Put headphones on. Not required, but Morse is a listening exercise and phone speakers flatten the rhythm. Anything is better than nothing.
- Open Journey. It's the first tile on the home screen, and it's the guided path. It decides what to teach you and when, so you don't have to.
- Listen, don't look. A character plays. Answer choices appear below. Pick the one you heard. If you get it wrong, the answer is revealed and the character is re-sent so your ear gets a second pass at the right sound.
- Don't count dots and dashes. This is the one habit that will hold you back. At the default 33 WPM you physically can't count them, and that's deliberate. Let each character land as a single sound, like a syllable. If it feels too fast, widen the gaps, don't slow the characters.
- Stop after 10-15 minutes. Short and daily beats long and occasional. Turn on the daily reminder in Settings and let the streak do the nagging.
TIP
Feeling lost in the first few sessions is normal and expected. The Koch method deliberately starts you at a speed you can't decode consciously, because conscious decoding is a dead end that caps you at about 10 WPM. The discomfort is the method working.
AIM
Have a target beyond "learn Morse". The best one is a real contact, and it needs far less than the full alphabet. See the fast track to the air. People who aim at a contact tend to get there; people who aim at finishing the alphabet often stall.
If you already know some Morse
The app asks on first run how much Morse you already know. That seeds your starting character set instead of making you re-earn A and N, and unlocks the Journey as far as it reaches. To change your answer later, open Settings → Proficiency. If you're comfortable with the whole alphabet, skip Journey and go straight to Common Words, Rapid Fire, or Pileup Runner.
−−How the training works
Three ideas do most of the work. Understanding them will make every setting in the app make sense.
The Koch method
You start with just two characters, sent at full speed. When you can reliably recognize them, a third is added. Then a fourth. The speed never drops; only the number of characters grows.
The alternative, starting slow and speeding up, teaches you to count elements, and then you have to unlearn it. Koch skips that step entirely. It feels harder for the first week and is dramatically faster after that.
Two speeds, not one
This is the single most misunderstood thing about learning CW, and getting it straight will save you months. There are two different speeds, and they are set independently:
| What it is | Where to put it |
| Character speed | How fast an individual character is sent: the speed of the dits and dahs inside a letter. | 33 WPM or above, from day one. Never lower. |
| Effective speed | How fast text arrives overall, once the silence between characters is counted. | Whatever you can currently handle. 5 WPM is fine. |
CHECK
Worth checking before your first session. Both apps now start at 33 WPM, but Android builds up to 1.9 shipped at 18 WPM, which is slow enough to count dits at, and an existing install keeps whatever speed it already had. If your character speed reads below 33, open Settings and raise it before the counting habit forms. Leave the Farnsworth (effective) speed wherever you're comfortable.
Character speed is held high for one reason: at 33 WPM a character physically arrives too fast to count. You cannot go "dah-di-dah-dit… that's C", because there isn't time. The only thing your brain can do is take the whole thing as a single sound, which is exactly the skill you're trying to build. Drop below about 33 and counting becomes possible again, your brain takes the shortcut, and you build a habit you'll later have to break.
KEY
You are not expected to copy at 33 WPM. You are expected to learn at 33 WPM.
Those are different claims. A beginner's session can have characters sent at 33 WPM with two full seconds of silence between them, an effective speed of around 5 WPM. That is correct, normal, and exactly how it should look. Each character still sounds like the real thing; you just get a long pause to name it.
So when the code feels too fast, the fix is never to lower the character speed. Widen the gaps instead (see Farnsworth below), or give yourself longer to answer. Your effective speed will climb on its own over the following weeks, and because every character you learned was learned at full speed, it climbs without hitting the wall that slow-learners run into around 10 WPM.
Time-to-recognize
Every answer is timed from the moment the last tone ends. The app doesn't just track whether you got a character right. It tracks how long you took. A character you get right in 0.4 seconds is learned. The same character at 3 seconds means you're still decoding it consciously.
That timing drives everything: which character comes next, when a new one is unlocked, and what shows up in your weakest-first stats. The Recognition target setting (default 1.0 s) is the bar a character has to clear to count as fast enough.
KEY
If you need more time to answer, raise the recognition target, don't slow the code down. Slowing the code below about 33 WPM is what starts you counting dits. Stretching your own thinking time doesn't.
Farnsworth spacing
Farnsworth is the mechanism that lets those two speeds differ. Each character stays at full speed (33 WPM, or whatever you've set) but extra silence is inserted between characters. So you hear a real, fast −·−· and then get a beat to think before the next one.
Set the character speed to what you want your ear trained at, then switch on Farnsworth spacing in Settings (it's off by default) and set the effective speed to what you can currently keep up with, as low as 8 WPM. Close the gap over time. Farnsworth only affects multi-character content (words, groups, call signs), since single characters have nothing to space out.
What "good" looks like
·−·The fast track to the air
You do not need the whole alphabet to make your first contact. Hunting POTA needs a startlingly small vocabulary, and getting on the air early is the thing that keeps people learning.
Most people wait until they've "finished" learning Morse before they key up, and a lot of them never get there. The better plan is to learn a handful of things properly, make a real contact, and let that pull you through the rest. Here is the shortest honest path.
Learn these first, in this order
1. Your own callsign, both directions
The highest-value thing you can learn. Nothing else comes close.
You need to recognize your call instantly when someone sends it, which is your cue that the contact is yours and it's your turn, and you need to send it cleanly and consistently. Both directions matter, and most people drill only the first.
How to drill it in the app:
- Set it once in Settings → Your callsign, so the app uses it throughout.
- Turn on Use my word list and put your callsign in it (with a few near-misses: calls that share your prefix or suffix). Then run Common Words: you're training to pick your call out of things that sound like it, which is the real skill.
- Rapid Fire → Call signs for volume, so your call stops being a special case and becomes one call among many.
- Sending Practice to key it back until the rhythm is automatic and identical every time.
2. The question mark
One character
The single character that rescues any exchange you've lost.
?, sent as ··−−··, means "repeat" or "I didn't get that". Send it and the other operator sends again. It costs one character to learn and it turns a failed contact into a successful one, which is why it belongs this early.
It's already in the base character set, with no setting to turn on, so it will come up in normal practice. Worth deliberately over-learning anyway: you want it available under pressure, when you're flustered and half a callsign short.
3. Your state or section
Two letters that complete most of the exchanges you'll hear.
An enormous share of US CW traffic ends in a two-letter state abbreviation, and the POTA exchange is essentially a signal report plus a location. Learn yours cold, and learn to copy the common ones.
Rapid Fire → State abbreviations drills exactly this, back to back.
4. The handful of exchange words
Rounds out the vocabulary of a short contact.
- CQ: calling anyone.
- DE: "from", separating the called station from the caller.
- RST and 5NN / 599: the signal report. Nearly always 599 in practice; note the cut numbers, since 5NN is what you'll actually hear.
- TU: thank you, and the usual sign that the contact is done.
- 73: best regards, the standard sign-off.
- QRZ: "who is calling me?"
Abbreviations and Q-Codes cover these, and the Reference chart lets you tap any of them to hear it.
Then go hunting
Hunting is much easier than activating, which is why it's the right first move. The activator is doing the hard work of running a pileup, copying call after call. You need to do far less:
- Find a spot. POTA activators are spotted in real time on pota.app, with their frequency and mode. Filter for CW and pick one sending at a speed you can follow.
- Just listen first. Sit on the frequency for a few minutes without transmitting. You'll hear the same short exchange repeat over and over, which is the best possible listening practice, and it tells you the rhythm before you join in.
- Send your call once, when the activator finishes a contact. Once. Then listen.
- Listen for your call coming back. This is the moment everything above was for. They may send only part of it if they didn't get it all. Answer with your full call.
- Copy their report, send yours. Typically 5NN and their state. You reply with the same shape: report, your state.
- Finish. TU or 73 and you're done. That's a contact.
TIP
Lost the exchange halfway through? Send ?. Activators are used to it, they'll repeat, and nobody thinks less of you. Being unwilling to send ? is what turns a recoverable contact into an abandoned one.
Rehearsing it in the app first
Pileup Runner → POTA Activator puts you on the activator's side, working hunters. That's the harder job, so it over-prepares you for hunting, but it drills precisely the vocabulary above: calls, reports and states, over and over. Run it with one caller and no QSB or QRN and it becomes a clean rehearsal of the exchange you're about to have for real.
NOTE
Everything in this section assumes you hold a licence permitting CW on the band you're using. The app itself needs no licence, and the Repeater is a fine place to have your first live exchange with a real human if you aren't licensed yet, or aren't ready to key up on the air.
····The home screen
Every mode is one tap from the menu. Three icons sit in the top bar, above the tiles. (On iPhone and iPad the bar also carries shortcuts to the Repeater, Reference and Sending Drills; on Android those three are tiles like everything else.)
| Icon | Opens | What it's for |
| Waveform | CW Decoder | Read received Morse off the air through the microphone. |
| Bar chart | Progress | Streak, accuracy, per-character stats, session history. |
| Gear | Settings | Speed, tone, answering, reminders, word lists. |
Under the header sit two cards. Daily Dit is today's puzzle, and the card tells you where you stand: the puzzle number, how many guesses and listens you've spent, or the speed you got it at. New to Morse? Start here opens a condensed, in-app version of the opening sections of this guide: how to begin, why the code sounds fast, and what good looks like week by week. It stays there; it's as useful in week three as on day one.
Below that, the training tiles run roughly in learning order: Journey first, then the six choice-quiz modes, then the speed and operating modes, then the tools, with the arcade games — Morse Invaders, CW Galaga, Morse Defender, CW Dungeon, CW Frogger and CW Asteroids — at the end. You can jump anywhere at any time; nothing is locked behind anything else.
···Running a session
Most modes share the same shape: a setup screen, the session itself, then a recap.
Before you start
Tapping a mode opens a setup screen with the options that mode supports: how long to practice, what content to send, how to answer. Session length runs from 1 to 30 minutes (five by default), or open-ended if you'd rather just stop when you stop. A timed session shows a countdown and ends itself.
During
The session bar carries your timer and a Settings button. That mid-session Settings panel is scoped to the mode you're running, so you get the knobs that apply right now (speed, tone, answer choices) without wading through everything else. Changes take effect on the next item.
Mid-session controls
- Replay: re-send the current item. Always available; the app doesn't punish you for a second listen.
- Reveal: on a miss, the answer is shown and the item is re-sent so the correct sound is the last thing you hear.
- Timer controls: tap the countdown to add 5 minutes, add 1 minute, subtract 1 minute, or remove the limit altogether. Ending early keeps the session's stats.
- Mode switcher: jump straight from one drill to another without going home. The session you're leaving is closed out and saved first.
Afterwards
Every session ends with a recap: what you copied, your accuracy, your median recognition time, and a chart of which characters were slow. It's all saved to Progress, so session history and per-session detail are there later.
·−·−Four ways to answer
The choice quizzes all accept four different answer methods. Pick whichever suits where you are and what your hands are doing.
Tap
Default
Multiple choice. The answer choices are drawn from characters you've already met, and they're deliberately sound-alikes: B against D, U against V, S against H, so the quiz mirrors the confusions that actually happen on the air. The number of buttons grows as you learn, up to the Answer choices limit in Settings.
Type
Free recall
No choices at all. Hear it, type it. Harder and more honest than multiple choice, because there's nothing to eliminate. This is the whole point of Type It, and a hardware keyboard works too if you have one paired: just type the answer and it's submitted.
Speak
Voice answers
Turn on Voice answers in Settings and say the answer instead of tapping it. It understands NATO phonetics ("Charlie"), letter names ("see"), and digit words ("niner"). When it isn't sure it asks "did you say…?" rather than marking you wrong, and it learns your corrections, so your accent and habits improve the matching over time. Uses the microphone; nothing leaves the device.
On iPhone and iPad, listening starts by itself the moment the tone ends, and your recognition time runs from when you start speaking. On Android you tap Speak answer for each prompt, because Android's recognizer plays a start chime every time it opens the microphone and would chime over every character if the app listened automatically; the clock runs from the tap.
Key it back
Touch or hardware
Answer by sending, not selecting. Key the character on the on-screen touch key or a connected MIDI key and the app decodes what you sent. It's available in every choice quiz whose answer is a character or a word, with a Key answers toggle in the session bar so you can flip between keying and tapping mid-drill; drills whose answer is a meaning or a prosign show the choices instead. This is the fastest way to make sending and receiving reinforce each other. See Sending Practice for the dedicated mode.
−·−The modes
Twenty-seven of them. They're grouped here the way you'd actually grow into them, but nothing is gated, so use whatever you want whenever you want.
·−−·Journey
The guided path. If you don't know what to practice, practice this.
Journey is a leveled route through the whole of CW, and it decides the curriculum for you. It runs through seven sections in order:
- Letters & Numbers: two new characters per level
- Punctuation: one per level
- Prosigns: two per level
- Q-Codes: two per level
- Abbreviations: two per level
- Words: four per level, from the 60 most common
- Call Signs: three per level
How a level works
Each level introduces its new items and mixes them with what you already know. A progress bar fills on a hit and drains on a miss, and you clear the level by filling it, so a run of misses genuinely sets you back. (If you'd rather it didn't drain, that's toggleable in Settings.)
A level's new items get at least half of its prompts, so a prosign level actually drills the prosigns rather than quizzing you on letters you learned weeks ago, and a prosign's wrong answers are other prosigns once the pool has them, not three plain letters you could rule out from the labels.
The unlock map shows the whole route: what you've cleared, where you are, and what's ahead. Progress is saved, so you can put it down for a week and pick up where you left off. What you told the app at first run (and can change under Settings → Proficiency) unlocks the Journey that far too: someone who knows the letters starts at the first level with a digit in it, and "everything" starts at the first prosign level. It only ever unlocks forward, so cleared levels are never taken back.
TIP
Journey deliberately never pits the letter K against the prosign <K> in the same set of answer choices. They're identical sounds, and asking you to tell them apart would be testing nothing.
·−Characters
The classic Koch ladder, with you holding the controls instead of Journey.
A-Z and 0-9, added one at a time as your recognition time comes down. Same engine as Journey, but you choose the settings and there's no level structure, just the ladder.
Meeting a new character
Before a character or prosign is drilled for the first time, the track stops and introduces it: the item on its own, its pattern in symbols and spoken out as "dah-di-dah", its sound when the screen appears and again on Replay, and a Start button when you're ready. Then the drill carries on with it in the mix. If you'd rather meet new characters cold, Settings → New characters turns the introduction off.
Track stage
The Characters track moves through stages as you improve: single characters → pairs → triples → words & call signs. Normally it advances on its own, but you can pin it if you want to stay on single characters for a while longer, or jump ahead to word-length copy.
The pin is on the setup screen and, since the stage is the thing you most often want to change once words start coming at you, it's one gear-tap away mid-session too: on iOS the Track stage picker sits in the session's Settings with a "Back to" button for the previous stage, and on Android the stage pills sit on the drill itself, in Characters and in Sending Practice.
Pinning is the right call when you want deliberate practice on one thing. Leave it unpinned when you just want the app to keep you at the edge of your ability.
NOTE
Journey and Characters share the same underlying progress, so time spent in either one counts toward the same per-character stats.
⇄Confusion Drill
Reach for this the moment two characters start blurring together.
The app keeps a confusion matrix. Every time you answer D when it sent B, it's recorded. Confusion Drill reads that matrix and builds a session out of your actual mix-ups, not a generic list of tricky pairs.
If you haven't recorded enough confusions yet, it falls back to your slowest active characters paired against their nearest sound-alikes, which is a good drill in its own right.
When to use it: when accuracy is fine but one or two pairs keep costing you. Ten minutes here is worth an hour of general practice for a pair you've been fumbling for weeks.
−−·Morse Invaders
Arcade recognition: the Characters drill with a clock on it, and a game you can lose.
Aliens descend the play field in five columns, and you shoot each one by naming the character it carries before it reaches the ground. Two ways to play:
- Hear it, type it: the aliens come down unmarked. Each one is sent in Morse as it appears (tap it to hear it again); type the character you heard on the on-screen keyboard, and the lowest alien carrying it is hit. The keyboard is laid out QWERTY, with a digit row above it whenever the set has digits and any punctuation on a row below; keys outside your current set stay in place, dimmed and dead, so the layout never shifts as the set grows and the reflex you build is the one a real keyboard rewards. A hardware keyboard works too.
- See it, key it: each alien shows its character directly above it. Key it on the on-screen key or a hardware key, and the decoded character shoots the lowest one carrying it.
The aliens carry either your active Koch set, so the game drills exactly what you're learning, or the full alphabet and digits.
The speed ramp
In hear-it mode the game starts slow and speeds up only as you consolidate. A game opens 10 WPM below your character speed, never below 15, and steps up 1 WPM after six hits in a row at the current speed, until it reaches your character speed. A wrong shot resets that streak and leaves the speed alone; an alien that lands resets it and steps the speed back 2 WPM, never below where the game started. After any change of speed, up or down, the first three hits are settling hits that don't count, so a fumble while you adjust costs nothing. The upshot: at around 90% accuracy the speed climbs steadily, at 80% it crawls, and below that it all but stops; a speed that beat you takes eighteen clean hits to reach again. Farnsworth spacing doesn't apply, since a single character has no gaps to stretch. The setup card says where a game will open and where it climbs to, the score line shows the speed right now, and the end card shows the highest speed you reached. At a character speed of 15 there is nothing to ramp and every alien is sent at 15. In see-it mode nothing is sent, so there is no ramp: the decoder listens at your character speed.
Characters you miss come back
Within a game, a character you miss, whether an alien that lands or a wrong shot while it was the lowest alien on the field, is dealt more often until you've mastered it again: one miss makes it twice as likely to be the next alien, each hit on it brings that back down, and after two more hits than misses it's back to normal. The weighting is capped (a character is never more than four times as likely as the others), the game still prefers characters not already on the field, and it resets with every new game, so nothing you missed last week follows you. This works the same in both modes.
How it's scored
| Rule | Value |
| Lives | Three. An invader that lands costs one; at zero the game is over. |
| Points | 100 per hit, times the combo multiplier. |
| Combo | Consecutive hits: ×1 for the first three, ×2 for the next three, up to ×4. A wrong shot or a landed invader resets it. |
| Waves | Every 10 hits clears a wave. On Normal the first wave spawns an invader every 2.4 s with 8 s to the ground; each wave after that spawns 12% faster and falls 10% faster, down to 0.9 s between invaders and 3 s to fall. |
| Difficulty | Relaxed, Normal or Fast: the same rules with more or less breathing room (every timing scaled by 1.35, 1 or 0.75). |
The end card shows your score, the wave you reached, accuracy, best combo and, in hear-it mode, the speed you reached. Your input, character set and difficulty are remembered for next time.
It counts. Every hit and miss feeds the same per-character stats and confusion matrix as the drills do: a wrong shot records the pair you confused, and an invader that lands is a miss on that character. A game is real practice, not a break from it.
TIP
Start on Relaxed with your active set. The game gets hard on its own; Fast is for when Normal's later waves stop landing anything.
−−·CW Galaga
The second arcade game: the same drill as Morse Invaders, but the enemies come at you instead of falling.
Enemies swoop onto the field one at a time along curved paths, alternating from the left and the right, and settle into a formation at the top. Once a few have settled, one at a time peels off and dives at your ship at the bottom; if it isn't shot it loops back to its slot and will dive again. You shoot an enemy by naming the character it carries. Two ways to play, the same two as Invaders:
- Hear it, type it: the enemies fly in unmarked. Each one is sent in Morse as it enters, and sent again as it starts a dive, so the threat announces itself (tap any enemy to hear it again). Type the character you heard on the on-screen QWERTY keyboard, the same one Invaders uses, and the most dangerous enemy carrying it is hit. A hardware keyboard works too.
- See it, key it: each enemy shows its character directly above it. Key it on the on-screen key or a hardware key, and the decoded character shoots the most dangerous one carrying it.
"Most dangerous" is decided for you: a diving enemy first (the lower it is, the sooner), then one climbing back from a dive, then the lowest row of the formation, then anything still flying in. The enemies carry either your active Koch set or the full alphabet and digits, and a character already on the field is not sent again while another is free, so a character usually names exactly one enemy.
The speed ramp
In hear-it mode the game starts slow and speeds up as you land hits, on a gentler ramp than Invaders'. A game opens 8 WPM below your character speed, never below 15, and steps up 1 WPM after every six hits (six in total, not in a row) until it reaches your character speed. A dive that gets through steps the speed back 1 WPM, never below where the game started; a wrong shot leaves it alone. Farnsworth spacing doesn't apply, since a single character has no gaps to stretch. The setup card says where a game will open and where it climbs to, the score line shows the speed right now, and the end card shows the highest speed you reached. In see-it mode nothing is sent, so there is no ramp: the decoder listens at your character speed.
How it's scored
| Rule | Value |
| Lives | Three. A dive that reaches the bottom costs one; at zero the game is over. The enemy that got through climbs back to its slot and stays in play. |
| Points | 100 per hit, 150 for an enemy shot while it is diving, times the combo multiplier. Clearing a wave adds 500. |
| Combo | Consecutive hits: ×1 for the first three, ×2 for the next three, and so on up to ×8. A wrong shot or a dive that gets through resets it. |
| Formation | Wave 1 is two rows of four; the formation grows a column a wave and a row every second wave, to four rows of six from wave 5. A wave is cleared when every enemy in it has been shot; the next one flies in after a short pause. |
| Timing | On Normal, wave 1 releases an enemy every 1.4 s with a 2.4 s flight to its slot, and once the formation has someone in it a dive starts every 3 s and takes 4 s to reach the bottom (the climb back takes half that). Each wave tightens every one of those (8%, 6%, 10% and 8% a wave) down to floors of 0.5 s, 1.2 s, 1 s and 1.8 s, and from wave 3 two enemies can be off the formation at once, from wave 5 three. |
| Difficulty | Relaxed, Normal or Fast: the same rules with more or less breathing room (every timing scaled by 1.35, 1 or 0.75). |
The end card shows your score, the wave you reached, accuracy, best combo and, in hear-it mode, the speed you reached. Your input, character set and difficulty are remembered for next time, separately from Invaders'.
It counts. Every hit and miss feeds the same per-character stats and confusion matrix as the drills and Invaders do: a wrong shot records the pair you confused (what you pressed against the most dangerous enemy on the field), and a dive that gets through is a miss on that character. The session lands in your history as CW Galaga.
TIP
Don't try to clear the formation from the top down. Shoot whatever is diving, then whatever is climbing back; the formation itself is safe until it moves.
−··Morse Defender
Arcade callsign copy: hear a callsign under pressure, find it on the screen, act on it before it's too late.
Cities and ships — the assets — line the bottom of the play field, each with its callsign written under it. Attackers come down from the top in five columns, and each one sends the callsign of the asset it is heading for in Morse as it launches (tap it to hear it again). Nothing on screen says where an attacker is going; only the callsign does. Copy it, find that asset, and route the defence to it before the attacker arrives. Two ways to route:
- Tap the target: tap the asset whose callsign you heard. The attacker aimed at it is destroyed. Tap an asset nothing is aimed at and the shot is wasted.
- Type the callsign: type what you heard on the on-screen keyboard — the same QWERTY layout as Morse Invaders, with a digit row when the callsigns can have digits and a backspace — and the defence routes itself the moment your copy matches an asset. A copy that runs past the longest callsign on the field without matching is a wasted shot. A hardware keyboard works too.
An attacker that reaches its asset destroys it; the rubble stays where it stood so the row doesn't shift under you, and any other attacker aimed at the same asset turns back. The assets are your lives: when the last one falls, the game is over.
Where the callsigns come from
From my characters (the default) spells four-character, call-like groups only from your active Koch set — a digit in the second position when your set has one (K5MR), letters throughout when it doesn't (KMRS) — so nothing is ever sent that you haven't met. Real callsigns uses genuine US-style calls in the everyday shapes (K1AB, AB1C, K1ABC, AB1CD). No two assets on the field ever share a callsign.
The speed ramp
A game opens 8 WPM below your character speed, never below 15, and steps up 2 WPM after every four hits (four in total, not in a row) until it reaches your character speed. Losing an asset steps the speed back 2 WPM, never below where the game started; a wasted shot leaves it alone. Because a callsign is several characters, Farnsworth spacing applies when it's switched on: the characters go at the ramp's speed and the gaps between them stretch to your effective speed. The setup card says where a game will open and where it climbs to, the score line shows the speed right now, and the end card shows the highest speed you reached.
How it's scored
| Rule | Value |
| Assets | Four to start. Every wave clear adds one, up to eight; at eight, a wave clear rebuilds the first destroyed asset instead (with a new callsign). At zero the game is over. |
| Attackers | One in flight at a time on waves 1–2, two on waves 3–4, three from wave 5 on. |
| Points | 100 per hit, times the combo multiplier. |
| Combo | Consecutive hits: ×1 for the first three, ×2 for the next three, up to ×4. A wasted shot or a lost asset resets it. |
| Waves | Every 6 hits clears a wave. On Normal the first wave launches an attacker every 5 s with 14 s to reach its asset; each wave after that launches 10% sooner and flies 8% faster, down to 2 s between launches and 6 s to arrive. |
| Difficulty | Relaxed, Normal or Fast: the same rules with more or less breathing room (every timing scaled by 1.35, 1 or 0.75). |
The end card shows your score, the wave you reached, accuracy, best combo and the speed you reached. Your input, callsign source and difficulty are remembered for next time.
It counts. Every route feeds the same per-character stats and confusion matrix as the drills do, character by character: a correct route is a hit on each character of the callsign; a wrong tap or a wrong typed copy is compared position by position against the callsign of the attacker nearest arrival, so routing K1AB when K1AR was sent records B confused with R; an attacker that gets through is a miss on each character it sent. The session record counts one attempt per callsign, and its chart shows the characters.
TIP
Start with Tap the target and From my characters on Relaxed. Switch to Real callsigns once the whole alphabet is in your set; it's the closest thing to copying a call off the air with something riding on it.
−··CW Dungeon
Copy on the way in, send on the way out: a roguelike where every spell is a word you hear and every counter is a word you key.
You stand in a dungeon room facing one or two monsters. Each one casts a spell by sending a word in Morse (FIRE, STORM, CURSE). Copy it, look it up in the spell book on screen, and key the counter word (WATER, PORT, BLESS) on the on-screen key or a hardware key before the attack lands. The word you key is decoded live; it casts the moment it matches the counter, or, if it doesn't, as soon as a word gap of silence follows it. Tap a monster to hear its spell again; the clock keeps running.
- A counter keyed in time takes one hit off the monster and scores. A counter marked ♥ in the spell book also heals you one life, up to the three you started with.
- A wrong word, or the window closing with nothing keyed, costs a life. Keying the spell itself back instead of its counter is a wrong word; the game tells you so.
- When every monster in the room is down the room is cleared and the next opens. Rooms 1 and 2 hold one monster, later rooms two, and every fifth room is a dragon that takes four hits instead of two.
The spell book
Twenty-four fixed pairs, each spelled from the letters you'd know at some point on the Koch ladder, from TRAP → MAP (eight letters in) to HEX → CHARM (the whole alphabet). With My active characters the book holds only the pairs your current set spells, so a learner partway up the ladder gets a short book of words made from letters they know. If the set spells fewer than three pairs, the four starter spells (which need the first ten Koch letters) are used instead, and the setup screen says so. Full alphabet plays the whole book. The pairs in play are shown on the setup screen and along the bottom of the room during a run.
The speed ramp
Spells are sent at a speed that climbs as you land counters. A game opens 8 WPM below your character speed, never below 15, and steps up 1 WPM after every four counters (four in total, not in a row) until it reaches your character speed. A hit taken steps it back 1 WPM, never below where the game started. Unlike Morse Invaders, a spell is a whole word, so your Farnsworth spacing applies to it when the switch is on: the letters speed up with the ramp, the gaps between them stay at your effective speed. The setup screen says where a game opens and where it climbs to; the score line shows the speed right now; the end card shows the highest speed you reached.
How it's scored
| Rule | Value |
| Lives | Three. A wrong or late counter costs one; a ♥ counter restores one; at zero the run is over. |
| Points | 100 per counter, times the combo multiplier, plus 250 for each room cleared. |
| Combo | Consecutive counters: ×1 for the first three, ×2 for the next three, up to ×4. A hit taken resets it. |
| Attack window | Opens when the spell has finished sounding. On Normal it is 6 s in room 1 and 8% shorter each room after, down to 2.5 s. The next spell comes 1 s after the last resolves, 2 s after a room is cleared. |
| Difficulty | Relaxed, Normal or Fast: the same rules with more or less breathing room (every window scaled by 1.35, 1 or 0.75). |
The end card shows your score, rooms cleared, accuracy, best combo and the speed you reached. Your character set and difficulty are remembered for next time.
It counts. Every character of every counter you key feeds the same per-character stats and confusion matrix as the drills do, letter by letter against the counter word: a right letter is a hit, a wrong letter records the pair you confused, and a letter you never reached (short or late) is a miss on that letter. A run is real sending practice, not a break from it.
TIP
Read the spell book before you start and say the counters to yourself. In the room there is no time to hunt: the copy has to land as a word and the counter has to leave as one.
··−·CW Frogger
Arcade crossing: hear a character, find it in the traffic, and hop.
A frog starts on the near bank and has to reach the far one: three lanes of road, a median to catch your breath, then three lanes of river. You move it the classic way, one hop at a time on the four direction buttons under the board (a hardware keyboard's arrow keys work too). Morse decides what is safe.
Every vehicle and every log carries a character from your set. Each lane has a cue: as soon as you land on the row below it the game sends one of that lane's characters in Morse, and the lane is outlined so you know which one the cue is for. Tap the board to hear it again.
- On the road, the vehicle carrying the cue is harmless: you can stand in its path and it passes straight through you, and that counts as a correct decision. Every other vehicle is a hit and costs a life. Empty asphalt is safe, so you can wait for a gap; the cued vehicle is the one you never have to dodge.
- On the river, you have to land on a log, and only the log carrying the cue floats. It carries you sideways with it (and round the far edge, if it gets there). Any other log sinks, and water is water: both cost a life.
A life lost puts the frog back on the near bank with fresh cues. Reaching the far bank completes a wave: the traffic is laid out again a little faster and you start over from the bank, keeping your combo.
The label ladder
How much the labels help changes with the wave, so the same board turns from a reading exercise into a copying one:
| Waves | Labels |
| 1 and 2 | Shown. Every vehicle and log shows its character; hear the cue, find it, hop. |
| 3 and 4 | Memory. A lane's labels show until it is cued, then disappear. Note where the cued object is before you land below it. |
| 5 and up | Hidden. No labels at all. Instead, the vehicles and logs in the lane ahead announce their own character in Morse as they enter the board, behind the cue. You are copying the traffic and matching it against the cue by ear. |
The traffic carries either your active Koch set, so the game drills exactly what you're learning, or the full alphabet and digits.
The speed ramp
The cues start slow and speed up as you get lanes right. A game opens 8 WPM below your character speed, never below 15, and steps up 2 WPM after every four correct lane decisions (four in total, not in a row) until it reaches your character speed. Losing a life steps it back 2 WPM, never below where the game started. Farnsworth spacing doesn't apply to a single character. The setup card says where a game will open and where it climbs to, the score line shows the speed right now, and the end card shows the highest speed you reached.
How it's scored
| Rule | Value |
| Lives | Three. A wrong vehicle, a wrong log or the water costs one; at zero the game is over. |
| Hops | 10 points for each hop onto a row you haven't reached yet this crossing. Hopping back and forth earns nothing. |
| Decisions | 50 points for each correct decision (passing through the cued vehicle, landing on the cued log), times the combo multiplier. |
| Combo | Consecutive correct decisions: ×1 for the first three, ×2 for the next three, up to ×4. Losing a life resets it; completing a crossing keeps it. |
| Crossing | 200 points for reaching the far bank, and the next wave begins. |
| Waves | Every lane runs 8% faster each wave, up to a cap. The three road lanes and the three river lanes each get faster toward the middle of the board, so the last lane before the median and the last lane before the far bank are the quick ones. |
| Difficulty | Relaxed, Normal or Fast: the same rules with the whole board running slower or quicker (every speed divided by 1.35, 1 or 0.75). |
The end card shows your score, the wave you reached, accuracy, best combo and the speed you reached. Your character set and difficulty are remembered for next time.
It counts. Every lane decision feeds the same per-character stats and confusion matrix as the drills do, exactly as Morse Invaders does: a correct decision is a recognition of the cue, timed from the end of its tone; a wrong vehicle or log records the pair you confused (the cue you heard, the character you chose); the water is a miss on the cue with no partner.
TIP
You don't have to cross fast. Nothing is timed but the traffic, and the near bank and the median are always safe, so stand there, replay the cue until you are sure, and pick your moment.
·−CW Asteroids
Arcade sending: the other half of Morse Invaders. There you name what you hear; here you key what you see.
Your ship sits at the centre of the field and asteroids drift in from the edges, each carrying a visible label. Destroy one before it reaches the ship. Two ways to play:
- See it, send it: key an asteroid's label on the on-screen key or a hardware key. Each decoded character is added to what you've sent so far (the readout under the field shows it): the moment it spells a label, the nearest asteroid carrying that label is destroyed; while it could still be the start of a label, the game waits for the next character; when it can't be, that's a miss and the readout clears. A pause of 2.5 s with a partial label pending clears it silently. You choose which asteroid to send next, so with several on screen, take the one nearest the ship.
- Hear it, tap it: the game sends one asteroid's label in Morse, and only the asteroid carrying it is the target. Tap it; tap the ship (or Hear it again) to hear the label once more. Tapping an asteroid with a different label is a miss; tapping empty space does nothing. When the target is gone, the next one is sent at once.
Asteroids carry either your active Koch set or the full alphabet and digits. The first two waves are single characters. From wave 3 some spawns are larger asteroids carrying a short word (two to five characters from the top 300 common words, spelt entirely from your set) or a generated callsign; the share grows 15% a wave up to half of spawns. A word asteroid splits when hit: one small asteroid per character, fanning out from where it was, each still heading for the ship. In hear-it mode the whole word is sent as one unit.
The speed ramp
In hear-it mode the game starts slow and speeds up as you land hits, more gently than Morse Invaders does. A game opens 8 WPM below your character speed, never below 15, and steps up 1 WPM after every four hits (four in total, not in a row) until it reaches your character speed. An asteroid that reaches the ship steps the speed back 1 WPM, never below where the game started; a miss leaves it alone. Farnsworth spacing doesn't apply. The setup card says where a game will open and where it climbs to, the score line shows the speed right now, and the end card shows the highest speed you reached. In see-it mode nothing is sent, so there is no ramp: the decoder listens at your character speed.
How it's scored
| Rule | Value |
| Lives | Three. An asteroid that reaches the ship costs one; at zero the game is over. |
| Points | 100 per character of the label, times the combo multiplier: a single character is 100, a four-letter word 400, and its four fragments 100 each. |
| Combo | Consecutive hits: ×1 for the first three, ×2 for the next three, up to ×4. A miss or an asteroid reaching the ship resets it. |
| Waves | Every 8 hits clears a wave (fragments count). On Normal the first wave spawns an asteroid every 3 s with 12 s to reach the ship; each wave after that spawns 10% faster and closes in 8% faster, down to 1.2 s between asteroids and 5 s to the ship. At most five asteroids are on the field at once. |
| Difficulty | Relaxed, Normal or Fast: the same rules with more or less breathing room (every timing scaled by 1.35, 1 or 0.75). |
The end card shows your score, the wave you reached, accuracy, best combo and, in hear-it mode, the speed you reached. Your input, character set and difficulty are remembered for next time.
It counts. Every hit and miss feeds the same per-character stats and confusion matrix as the drills do. A destroyed asteroid is a correct recognition of every character in its label; a wrong character keyed, or the wrong asteroid tapped, records the pair you confused (the character that was expected against the one you sent or picked); an asteroid that reaches the ship is a miss on each of its characters. The end card's accuracy counts asteroids; the session in Progress counts characters, so a word is worth its length there.
TIP
In send mode, keep your letter spacing clean: the decoder finalises a character on the letter gap, and a run-together pair reads as one wrong character. If you're not sure what the decoder heard, the readout under the field tells you.
·−−Common Words
The jump from copying letters to copying language.
Whole ham-radio words sent as single units: CQ, DE, ANTENNA, RIG. The goal is to stop spelling words out letter by letter and start recognizing their overall shape, the same way you read English without sounding out syllables.
Your own word list
Turn on Use my word list in Settings and paste in whatever you want: your callsign, your local repeater, club names, the vocabulary of whatever you actually talk about on the air. One entry per line, or separated by commas or spaces; the list needs at least two words before the switch will take. The quiz then draws from your list instead of the built-in ranked pool.
The built-in pool is the 1000 most useful words, ranked, and it's size-adjustable: top 100, 300, 500 or 1000. A smaller pool means more repetition per word, a larger one means more variety.
·−Abbreviations
Copying it isn't enough. You have to know what it means.
The everyday shorthand of CW: TNX, HW, OM, FB, 73. The question here isn't "what did you hear?". It's "what are they saying?". You pick the meaning, not the letters.
That distinction matters. On the air you don't have time to copy HW?, then translate it. It has to arrive already meaning "how do you copy me?".
−−·−Q-Codes
The three-letter codes that carry most of an operating conversation.
QRZ, QSY, QTH, QSB, QRM. You answer with the meaning, same as Abbreviations.
NOTE
Q-codes are statements and questions, and the app keeps them straight: QRL means "this frequency is busy", while QRL? asks "is this frequency in use?". They're separate items with separate meanings, because sending the wrong one on a live band is how you land on top of someone.
−·−·−Prosigns
The punctuation of a QSO: run-together patterns that aren't letters at all.
<AR> (end of message), <SK> (end of contact), <BT> (break), <KN> (go ahead, specific station). Each is sent as one continuous character with no gap, which is exactly what makes them hard: <AR> is not "A then R", it's its own sound.
Learn these before your first real QSO. They're how you tell someone you're finished talking, and copying them wrong makes for an awkward contact.
−−−Short Stories
Continuous copy. No prompts, no choices, just text flowing past at speed.
This is the closest thing to real on-air copy. Text is sent continuously and you follow along. Three sources:
- Fables: 32 bundled public-domain short stories. Each is a few minutes of copy, self-contained.
- Longer classics: Sherlock Holmes and friends, sent in parts, with a bookmark that keeps your place between sessions. Genuinely enjoyable once you can copy at pace, because you want to know what happens next.
- Today's news: real RSS headlines, sanitized into sendable Morse and hidden until you reveal them. Decoding is the only way to read them, which is a strong motivator and a nice daily ritual.
TIP
Don't panic when you drop a word. On real continuous copy you will miss characters, and the skill being trained is carrying on rather than freezing on what you missed. Let it go and pick up the next word.
····Head Copy
Copying without writing anything down, the skill that makes conversation possible.
A whole word is sent. You hold it in your head, then self-grade whether you got it before the answer is shown. No typing, no tapping. The point is to build the mental buffer that lets you hold a callsign or a name while the other station keeps sending.
Auto-repeats
After the prompt plays, Head Copy can replay it a few times so you can re-hear it without mentally replaying it yourself, then counts down to the reveal with a live "Revealing in 3…". Both are in Settings: Auto-repeats from 0 to 3 (default 2) and Auto-reveal after 0 to 10 seconds (default 5; at 0 it waits for you). The manual Repeat button is always there too.
Be honest with the self-grading. It's the only mode where you're the judge, and marking a near-miss as correct only fools yourself.
−Type It
Free recall. No multiple choice to lean on.
Hear it, type it. Multiple choice lets you work backwards by elimination. Type It removes that entirely, so it's a much truer test of whether a character is actually learned. Expect your accuracy to drop when you first switch over; that drop is the honest number.
A paired hardware keyboard works here (and in the choice quizzes and Journey): just type and the answer submits.
−−·−QRQ Speed
High-speed copy for when 33 WPM has stopped feeling fast.
Free-recall typing at 35, 40, 50 or 60 WPM. At these speeds there is no time for anything but instant recognition, which is precisely the point. It's the mode that proves whether a character is truly automatic or merely fast.
QRQ runs on its own speed setting and does not touch your global WPM, so you can push here without disturbing the speed the rest of your practice uses. 50 and 60 are there for operators who already work QRQ; if 35 is a struggle, that is the right place to stay.
Don't start here. Come back to it once your recognition times at 33 WPM are consistently under a second.
·Daily Dit
One five-letter word a day, sent in Morse, the same for every player on the same date. The ten-minute habit, with a scoreboard.
Tap the card on the home screen, pick a starting speed, and play the word. Type a five-letter guess and every letter is scored: green is the right letter in the right place, amber is a letter that's in the word but somewhere else, and grey is not in the word at all. Letters you've ruled out are listed underneath so you don't burn a guess on them twice.
There is no limit on guesses or listens. Both are counted, and both bring the code down to you. Each guess has to be a real word, checked against a full dictionary, so CRANE and SLATE are fine even though the answers themselves come from a shorter list of common words.
The speed ladder
This is what makes it a CW game rather than a word game. The word plays at the speed you chose, and the code slows by 5 WPM for every three listens and, separately, 5 WPM for every three wrong guesses, down to a floor of 10. A listen is every play of the word, the first and every replay, so hearing it again is never free, but it is cheap. The two counts step the speed independently and the steps add: four listens and three wrong guesses from 60 WPM puts you at 50. A word you can't catch at 75 comes back within reach, and the number that matters is the lowest speed you heard the word at before the guess that got it, so nudging the dial up just before you answer doesn't inflate the result.
| Rule | Value |
| Starting speeds | 20, 25, 30, 40, 50, 60 or 75 WPM. Locked at your first guess. |
| Listens | Every play counts, replays included. Down 5 WPM after every 3. |
| Guesses | No limit. Each must be a real five-letter word. Down 5 WPM after every 3 wrong ones. |
| Floor | Never below 10 WPM. |
| Hide the chart | Play without the dit-dah reference on screen. Set before your first guess, and your share text says "no reference". |
| Streak | A guess counts as a practice day, so the puzzle alone keeps your streak alive. |
Sharing it
When you get it, the result card shows the word, the lowest speed you heard it at, and what it cost in guesses and listens, and the app builds a pasteable result: a headline with the puzzle number, that speed and the two counts, then one emoji row per guess, then a link back here. The headline reads like this:
Daily Dit #245 — 50 WPM · 4 guesses · 4 listens
Play with the chart hidden and "(no reference)" is added to it. It's plain text on purpose, so it survives being pasted into Discord or a group chat. Copy it or share it straight from the result card; replays after the win are free and don't change the count.
The word is chosen from the date on your own device, not from a server, so it works offline and everyone playing on the 3rd gets the 3rd's word, on iPhone and Android alike. Puzzle #1 was January 1st, 2026. The next puzzle arrives at midnight, your time, even if you leave the app open.
TIP
Start higher than feels comfortable. The first listen at 60 or 75 WPM is as much about hearing the shape of the word as catching every letter, and the ladder will bring it down to you. The share line reads a lot better at 45 than at 20.
·−·−Rapid Fire
Back-to-back items with no gap to recover in: contest conditioning.
A continuous stream sent at your chosen pace. Choose what to copy and how to answer:
| Content | What you get |
| Call signs | Realistic generated callsigns, the single most useful thing to drill for operating. |
| Words | From the common-word pool, or your own list. |
| Number groups | Random digit groups, as many digits as you set: the weak spot for most operators. |
| State abbreviations | Two-letter states, as sent in nearly every US contest exchange. Include ARRL/RAC Field Day sections adds the three-letter sections (EPA, STX) alongside them. |
| Serial numbers | Contest serials, 001 to 999, as a sprint or CWT station sends them. With Cut numbers on, 001 is sent as TTA; either form is graded correct. |
| Names | Short operator names, the kind heard in CW QSOs and contest exchanges. |
| Power | Transmit power as sent on the air: 5W, 100W, 1KW. |
| Mixed | Call signs, words, number groups and states, shuffled. Closest to real conditions. |
Then pick how to answer: type each one as you hear it, head-copy then type, key each one back, or just listen and review the transmitted list afterwards. The pace between items is adjustable, so tighten it as you improve, and call signs come in the shapes you pick (US-only or with DX prefixes, from chips on the setup screen). All of it, including the two toggles, is remembered between sessions.
−·−−·Pileup Runner
The full simulator: you call CQ, stations answer, and you work them. This is the mode that turns copying into operating.
Set your callsign in Settings (it starts as W1AW) and it's used throughout, sent when you call CQ and work stations. With Key my side in Morse on, your own side is keyed on the air, so you hear the whole exchange as it would sound; off, your CQ, calls and TU are logged silently.
Eight exchange flavours
| Type | You copy |
| Single Caller | Call and name. One station, no pileup: the gentle warmup. |
| POTA Activator | Each hunter's call and their state. |
| Basic Contest | Callsign and serial number. |
| K1USN SST | Name and state, taken easy. |
| ICWC MST | Name and serial number. |
| CWops CWT | Name and member number (or state for non-members). |
| NS Sprint | Serial number, name, and state. |
| ARRL Field Day | Class and ARRL section, e.g. 2A OH. |
Realism controls
This is where it stops being a quiz. All of these are adjustable:
- Max callers: a cap of 1 to 8 stations answering at once. Lower it mid-run and the surplus callers are sent away straight away, never the one you're working.
- Speed band and tone spread: callers at different speeds (12 to 60 WPM) and different pitches across the band, with their own Farnsworth switch. Zero-beat stacks them all on your exact pitch, which is far harder.
- Wait between callers: the minimum and maximum pause before the next station calls.
- QSB (fading): signals rise and fall mid-exchange.
- QRN (noise): atmospheric noise at selectable levels.
- Cut numbers: digits sent as letters to save time (0→T, 9→N), with a switch per digit for which ones get cut. You can type either form.
- Bust behavior: what happens when you get a call wrong, and whether stations give up and drop out after you keep busting them.
- Who got away: when a caller runs out of patience and leaves, this decides whether you hear about it. At the end (the default) lists the ones who walked in the run summary, along with what you had them as. As it happens also raises a banner mid-run naming the call. Off keeps the run uninterrupted.
- Keep partial call: a partly-copied call stays in the box so you can send ? and add to it rather than retyping from scratch.
- Callsign shapes: US-only, or mix in DX prefixes.
A live log and rate readout run alongside. With Pileup re-calls after TU on, the stations still waiting call again on their own once you log a contact, so the run keeps moving; off, you send AGN or CQ yourself.
When your copy is close but wrong
The pileup answers a miscopy the way an operator would rather than treating everything short of perfect as a total bust:
- A near miss gets corrected. Send
N9HS for N9HO and that station comes back with its own call again, and keeps sending it until you get it right. It still counts as a bust and still spends the station's patience, so a caller you never resolve will eventually walk, but you get the chance to fix it.
- An ambiguous copy brings back both. If what you sent sits equally close to two calls, both answer, because neither knows which you meant. Refusing to guess is your job, not the pileup's. Neither one gives up its exchange until you actually name one, so you cannot end up working a station you never copied.
- A partial works from anywhere in the call. Querying the middle or the end is ordinary contest practice:
9H? is how you ask N9HO to come back. The fragment no longer has to be the start of the call.
- A partial can have a hole in it. A ? anywhere in what you send marks a gap, so
N?O brings back every call that starts with N and ends with O. And a fragment doesn't have to be consecutive: send NO? and any call carrying those letters in that order answers.
TIP
Start with Single Caller, one station, no QSB or QRN. Add one variable at a time. Jumping straight to eight callers with noise and fading is how people conclude they can't do this. They can, just not all at once.
−·−·Contest
A timed run at a real weekly event, scored the way the real one scores.
Five actual contests, each with its authentic exchange, speed range and scoring:
| Event | Exchange | Scoring |
| K1USN SST | Name + state | Number of QSOs. Deliberately slow and friendly. |
| ICWC MST | Name + serial | QSOs × distinct call signs. A step up in pace. |
| CWops CWT | Name + member number | QSOs × distinct call signs. A fast hour. |
| NCCC Sprint | Serial + name + state | QSOs × distinct SPCs. Fast half-hour sprint. |
| ARRL Field Day | Class + ARRL section | 2 points per CW QSO. |
Pick your run length, and a live score and rate update as you work stations. At the end you get a scorecard.
Why bother: a real contest is unforgiving of hesitation, and there's no way to practise that pressure by copying single characters. A 20-minute SST run before your first real one is worth a great deal of nerve.
·−·−·Code Exam
The historical FCC/ARRL code test, reproduced faithfully.
The US code requirement was dropped in 2007, so this is a personal benchmark rather than a licence requirement, but it's a well-defined, honest one. Roughly five minutes of plain-language text styled as an on-air QSO, with callsigns, names, locations and rig details.
| Speed | Licence class | Note |
| 5 WPM | Novice / Technician | Sent Farnsworth: characters at 13 WPM, spacing stretched. |
| 13 WPM | General / Advanced | The classic middle benchmark. |
| 20 WPM | Amateur Extra | The old top requirement. |
Two ways to pass
- Solid copy: one minute of unbroken copy, meaning 25 consecutive correct characters.
- Content questions (the default): about ten fill-in questions about what the message actually said.
You can also choose a built-in passage instead of a freshly generated one, if you'd rather practise a known text.
·−·−Repeater
Live CW with real people over the internet. No licence, no radio, no antenna.
Connects to the Vail network, where anyone with a key can call. What you send goes out to everyone on the channel; what they send comes back to you. It's the closest thing to being on the air without being on the air.
- Server picker and a private-channel option: set a channel name and you and a friend have the frequency to yourselves. Ideal for scheduled practice with someone at your level.
- Signal timeline: a visual trace of what's arriving, so you can see the rhythm as well as hear it.
- Chat alongside the CW, for when you need to say something in plain text, with an unread badge so you notice a message that arrived while you were keying.
- Who's on: a roster of the stations on the channel. A station that's gone quiet drops off it after a minute.
- Vail Adapter support: MIDI key input and output, keyer modes and speed, sidetone, and the RX piezo buzz (which you can turn off). The sidetone ducks other audio rather than taking it over, so a radio app can keep running underneath.
TIP
The main channel can be quiet or busy depending on the hour. If nobody's about, use a private channel and arrange a schedule. Practising against a real human, at human timing, is worth a great deal more than practising against a generator.
···−Sending Practice
Hear it, key it back. Sending and receiving reinforce each other.
A dedicated mode on the adaptive ladder: the app sends a character or word, you key it back, and it decodes what you actually sent and tells you. Not what you meant to send, but what you sent. That feedback loop is what fixes sloppy timing.
- Live decode as you key, so you see your sending rendered back as text in real time.
- Always-on replay: re-hear the target as often as you want.
- Connected MIDI key readout: shows what hardware the app can see, so you know the key is actually talking to it, and says when MIDI itself is unavailable on the device as opposed to no key being connected.
Works with the on-screen touch key or a hardware key. Most people's sending is worse than they think, and the live decode is a fast, slightly humbling way to find out.
−·−Sending Drills
Printable practice sheets, for keying away from the app.
Generates a sheet of random character groups you can print or share, then key from at your own bench with a real key and no screen involved. Three kinds:
- Studied: drawn from the characters you've actually learned, evenly weighted.
- Personalized: weighted toward the characters you're currently weakest on.
- Numbers & punctuation: the parts everyone neglects until a contest exchange goes wrong.
−·−·CW Decoder
Point the microphone at received Morse and read it as text.
Open it from the waveform icon in the top bar. Hold the phone near your rig's speaker, or play a WebSDR through anything, and it decodes what it hears. Live WPM and pitch telemetry show what it's locked onto, and a two-core pitch-lock rescue helps it hang on when the signal wanders.
Noise
Static crashes (QRN) are what confuse a decoder most: each crash lands in the tone detector as a short spurious mark, splitting a character or adding a stray E. Both apps run a noise blanker ahead of the decoder. It catches each crash where it is unmistakable, in the wideband signal rather than at the tone's pitch, and while the crash lasts it substitutes the tone's own continuation, so a crash inside a dah fills the hole instead of breaking it, and a crash in a gap stays a gap. It is always on and has no setting. Steady hiss is left to the decoder, which copes with it on its own down to a poor signal-to-noise ratio. What the blanker cannot save is a band so busy that a third of the time is crash, or another station on the same pitch. Hold the phone close enough that the code sits well above the room, and if your rig has a noise blanker of its own, use it too.
NOTE
Use this as a check on your own copy, not a replacement for it. Any decoder struggles with QRM, drift and poor sending, the same conditions where a trained ear does best. Copy first, then compare.
·−··Reference
The lookup table you're allowed to use, because looking something up isn't the same as learning by chart.
A browsable, tap-to-hear chart. Tap any row and it's sent, so you can attach a sound to it rather than a written pattern. Six categories:
| Category | Contents |
| Prosigns | Procedural signals sent run-together, with ITU names and "also written" variants. |
| Q-Codes | Q-signal shorthand: the questions and the answers. |
| Abbreviations | Everyday CW abbreviations heard in every QSO. |
| Lingo | A glossary of spoken ham culture: the words you'll hear but won't find in a code chart. |
| Cut numbers | Contest shorthand: digits sent as single letters to save time. |
| Chart | The full alphabet, numbers and punctuation with their rhythm. |
····Listen & Learn
Practice with your hands and eyes busy: driving, walking, washing up.
Code plays, then the answer is spoken aloud. No interaction at all. It keeps playing with the screen locked, with full background audio and lock-screen controls, so it works with the phone in your pocket. The lock screen, CarPlay and a Bluetooth car display show the current item as the track title (the revealed answer once it has been spoken, "Listening…" before that) with the app logo as the artwork, so a head unit no longer keeps the last podcast's cover up.
It deals the whole pool like a deck of cards, every item once before anything repeats, and the word source is the full 1000-word list, so a long commute doesn't circle back to the same dozen words.
- What it announces: choose the content it draws from. Characters is your active Koch set; QSO elements · Top 20 and QSO elements · Top 100 are the on-air vocabulary below; Words is the 1000-word list; Abbreviations & Q-codes is the same table the Abbreviations and Q-Codes drills use.
- Gap before the spoken answer: how long you get to answer in your head before it tells you. Four tiers: Standard 1.3 s, Rapid Fire 1.0 s, Warp 0.5 s, ICR-Territory 0.2 s.
QSO elements
Dictionary words are poor practice for the air: nobody sends GOVERNMENT in a contact. The two QSO elements sets are one curated list of the hundred things you actually hear, ordered most common first, so Top 20 is the skeleton of every contact and Top 100 adds the rest of a ragchew, a DX exchange and the weather. The first twenty, in order:
CQ DE <K> <KN> <AR> <SK> <BK> TU 73 RST 599 5NN UR NAME QTH HR ES HW? R TNX
Prosigns are sent run-together and shown in angle brackets; a few items are short phrases (CQ CQ CQ, TNX FER CALL, 5NN TU) sent with their word gaps. The reveal shows the token and its meaning, and speaks the token letter by letter and then the meaning, exactly as the Abbreviations set does: "q t h, my location is". Both apps have both sets.
Passive practice isn't as effective as active drilling, but it's dramatically better than not practising, and it turns dead time into reps. A commute a day adds up quickly.
−−·Progress & stats
The bar-chart icon in the top bar. This is where you find out what to work on next, and everything is sorted weakest-first, on purpose.
| What | Tells you |
| Daily streak | Consecutive days practised, with milestone celebrations and your best streak alongside. The single best predictor of whether you'll learn this. A Daily Dit guess counts as a practice day, and so does a Listen & Learn or Short Stories session. |
| Activity grid | One tile per day, laid out like a contributions calendar: rows Monday to Sunday, one column per week ending with this week, month labels above, today outlined. The shade is that day's total session time in five steps: nothing, under 5 minutes, 5 to 15, 15 to 30, and 30 minutes or more. A phone shows the last 26 weeks; an iPad, a Mac or a wide Android window shows 52. It is backfilled from your recent sessions the first time you open it and then keeps 400 days on its own, so it outlives the 100-session history below. Reset progress clears it. |
| Accuracy | Overall hit rate, and your best copy. Only sessions that graded an answer count: Listen & Learn and Short Stories play without grading, so their sessions show N/A instead of a score, list items heard rather than drills, and are left out of the lifetime accuracy, the speed bands and the personal bests. They still count as sessions, as practice time and toward the streak. |
| Per-character stats | Accuracy and median recognition time for every character, with its pattern, attempts and a seal once it's mastered. The slow ones are the real work list. |
| Recognition chart | Recognition speed per character, so slow ones are visible at a glance. |
| Most-confused pairs | Which characters you swap for which. Feeds Confusion Drill directly. |
| Speed bands | Performance grouped into 5-WPM bands, showing exactly where your ceiling currently is. |
| Session history | Every past session, each with its duration, fastest copy, character and effective speed, and its own recognition chart on its detail screen. The effective speed is the one the session actually played at: your Farnsworth speed only while the switch was on, the licence speed for a Code Exam, and never for QRQ, which ignores Farnsworth. |
| Brag Sheet | A shareable summary card of where you've got to: streak, lifetime totals, personal bests, and the Characters stage you're on. It appears once you've finished a first session. |
TIP
Read the recognition times before the accuracy figure. A character you get right 95% of the time but take 2.5 seconds over isn't learned yet. It's being decoded. Accuracy hides that; the timing doesn't.
−−−Settings reference
The gear icon on the home screen. Mid-session, the Settings button shows only the parts that apply to the mode you're running.
Your station
| Setting | What it does |
| Your callsign | Used across the app, sent when you call CQ and work stations in Pileup Runner and Contest. |
Sound
| Setting | What it does |
| Character speed | How fast each character is sent, 15-60 WPM. Both apps start at 33 WPM, which is the number to aim for. Going below about 33 invites element-counting, so raise the recognition target instead; the app warns you if you do. |
| Farnsworth spacing | A switch, off by default. On, it keeps characters at full speed but stretches the gaps between them, down to your chosen effective speed (8 WPM up to the character speed). Multi-character content only. |
| Sidetone pitch | The tone frequency, 300-1000 Hz. Default 600 Hz. Pick what's comfortable for your ears over a long session. |
| Keep Bluetooth audio awake | On by default. Plays a floor deliberately just above digital silence, too quiet to hear, so Bluetooth earbuds never idle between characters. See why it's on. |
| Band noise | Audible noise under everything, for copying through: Off, Whisper, Low, Moderate, Heavy. Off by default. Any level also keeps Bluetooth audio awake. |
| Preview tone | Sends PARIS at your current settings so you can hear the effect before committing. |
Why there's a noise floor
With Keep Bluetooth audio awake on, a floor runs under everything, and it is deliberate. Bluetooth earbuds power their receiver down during silence and wake a moment late, which clips the front of the first character. You lose the character, the app records a miss, and nothing on screen suggests your headphones did it rather than your ear. The floor sits about 56 dB under the tone, below hearing at any volume you'd copy at, and it is kept just above true digital silence on purpose: actual zeros are exactly what lets some headsets sleep. Turn it off if you're on wired headphones and want real silence.
Band noise is a separate control for a different reason: it is audible noise, so copying through it is closer to working a real signal than copying off a silent tone generator. Pick a level when you want that. Any band-noise level keeps Bluetooth awake as a side effect, so the two never fight.
Learning
| Setting | What it does |
| Proficiency | What you already know. Sets your starting character set and unlocks the Journey as far as it reaches. It's asked once, at first run, and lives here; the mode setup screens no longer ask it per mode. Changing it restarts your active set. |
| New characters | Whether a character or prosign is introduced on its own, with its sound and a Replay button, before it joins the drill for the first time. On by default. |
| Answer choices | Maximum number of multiple-choice buttons. Choices only ever include characters you've met, so the count grows as you learn. |
| Recognition target | The time bar a character must beat to count as learned, 0.5-3.0 s (default 1.0 s). Beat it consistently and a new character is added. |
| Word pool | How many ranked common words to draw from: top 100, 300, 500 or 1000. Smaller = more repetition, larger = more variety. |
| Use my word list | A switch that replaces the built-in pool with your own words, one per line (or comma- or space-separated). Needs at least two words. |
| Punctuation | Opt individual punctuation marks into your practice. ? is already part of the base set. A mark you opt in is earned through the ladder like any other character; opting it back out takes it out of the drill again, and its stats are kept for when you return to it. |
| Track stage | Pin the Characters ladder to a stage: characters, pairs, triples, or words & call signs. Also reachable mid-session, from the gear on iOS and the stage pills on Android. |
Feedback & display
| Setting | What it does |
| Show right / wrong | Whether correctness is shown after each answer. |
| Reveal the letter | When (and whether) the correct answer is displayed. Default: on a miss. |
| Show replay button | Whether the replay control appears during a session. |
| Haptic feedback | Vibration on hit and miss. |
| Voice answers | Speak answers instead of tapping. Uses the microphone; learns your corrections over time. |
| Slashed zero | Show 0 with a line through it, the operator's convention for telling zero from O. |
| Auto-repeats | How many times Head Copy replays the prompt before revealing, 0-3 (default 2). |
| Auto-reveal after | How long Head Copy counts down before showing the answer, 0-10 s (default 5). At 0 it waits for you. |
Session & reminders
| Setting | What it does |
| Session length | Default practice length, 1-30 minutes (default 5) or open-ended. |
| Daily reminder | A streak-aware daily nudge at a time you pick. To the minute on iPhone; on Android it can land a few minutes late, because the app deliberately doesn't ask for the exact-alarm permission. |
| Copy diagnostic info | Copies your app version, OS, device and current settings to the clipboard, ready to paste into a bug report. |
| About | Three links out of the app: Support the project, the Discord, and the source on GitHub. Both apps are free and open source with no ads, subscriptions or tracking; the support page is where a coffee for the developer lives. |
| Reset all progress | Clears learned characters, stats, session history and the streak. Your settings are kept. There's a confirmation, because it isn't reversible, and it's hidden mid-session. |
The Pileup Runner keeps its own extensive settings (exchange type, caller count, QSB, QRN, cut numbers, bust behavior and callsign shapes), documented in that section.
−··−Hardware keys
You can key into the app with real hardware, not just the touch key.
MIDI keys
Connect a MIDI Morse key and it works anywhere the app accepts keying: Sending Practice, keyed quiz answers, Rapid Fire, Morse Invaders, CW Galaga and CW Asteroids in keying mode, CW Dungeon’s spells, and the Repeater. Sending Practice shows a connected-key readout so you can confirm the app sees your hardware before wondering why nothing's happening.
Bluetooth LE MIDI keys
Wireless keys work on both platforms. Android scans for them directly, with unplug detection.
iOS
On iPhone and iPad, pairing the key in Settings > Bluetooth is not enough. iOS only hands a Bluetooth MIDI key to an app once something has connected it as a MIDI device, and only the system's own MIDI pairing sheet does that. Open that sheet from inside the app: the Vail adapter row in the Repeater, or Sending Practice. Until you do, the app will correctly report no MIDI adapter even though iOS shows the key as connected.
Vail Adapter
The Vail Adapter gets full support, in both directions:
- Input: your key, straight into the app.
- Output: the app drives the adapter, so received code comes out of your own hardware.
- Keyer modes and speed: configured from within the app. Change the keyer mode, speed or tone in Settings and a connected adapter is reconfigured on the spot, whatever screen you're on.
- Sidetone and the RX piezo buzz, which you can turn off if it's not to your taste.
Hardware keyboards
A paired keyboard works for answering the choice quizzes, Journey, and Type It: type the answer and it's submitted. Much more comfortable than tapping for a long typing session.
··−−··Troubleshooting & FAQ
How do I get the app?
iPhone and iPad: the beta is open to anyone, so
join via TestFlight
and you'll get builds as they ship.
Android: testing is closed at the moment, so places are
limited. Join the Discord
and ask, because that's where invites go out.
It's too fast. Can I slow it down?
Yes, but change the right number. There are two speeds, and only one of them should move.
Do turn on Farnsworth and lower the effective speed, which widens the silence between characters while each character still sounds right. Do raise the Recognition target to give yourself longer to answer. Both make the session easier without costing you anything.
Don't drop the character speed below about 33 WPM. That's the one change that actively slows your progress, because it makes counting elements possible again, and counting is a habit you'd have to unlearn later. Remember you're not trying to copy at 33 WPM, only to learn at it.
I've plateaued. Everything feels stuck.
Check Progress and sort by recognition time rather than accuracy. The plateau is usually two or three specific characters dragging everything down. Run Confusion Drill on them. If the whole set is uniformly slow, you're probably ready to switch from multiple choice to Type It, which will feel like going backwards for a week and then move you forward.
Voice answers keep mishearing me.
Say the NATO word rather than the letter, since "Charlie" carries far better than "C", especially with background noise. When it asks "did you say…?", correct it: those corrections are learned and the matching improves. And it needs microphone permission, so check that first if it's doing nothing at all.
My MIDI key isn't doing anything.
Open Sending Practice and look at the connected-key readout, which will tell you whether the app can see the hardware at all.
On iPhone or iPad with a Bluetooth key, this is almost always the same cause: pairing it in iOS Settings does not make it visible to apps. Open the MIDI pairing sheet from inside the app instead, via the Vail adapter row in the Repeater or via Sending Practice. Full explanation here.
On Android, Bluetooth LE keys need Bluetooth permission granted.
Does it work offline?
Yes, for everything except the two networked features: the Repeater needs a connection to reach the Vail network, and the news source in Short Stories needs one to fetch headlines. All training, all stats and all other content are on-device. That includes Daily Dit: the day's word is worked out from the date on your phone, not fetched from a server.
It paused my music.
On purpose. On iPhone, a practice session takes the audio route for itself, the way a phone call would, and hands it back when the session ends, so whatever was playing resumes. Android has always done the same through audio focus. The exception is the Repeater, which mixes with other audio so it can run alongside a radio app.
Where is my data?
On your device. No accounts, no ads, no tracking, no analytics. Progress and settings never leave the phone. See the privacy policy for the full statement.
Something's broken, or I want a feature.
Two good routes. The Discord is the fastest during the beta, because it's where testers and the developer actually talk. Or open an issue on GitHub at another-morse-trainer, which holds both apps; the issue form asks which one you saw it on. Both apps are open source and bug reports genuinely get read. Either way, Settings → Copy diagnostic info puts your version, device and settings on the clipboard to paste in.
73
That's the whole app. The only thing that actually matters is showing up for ten minutes a day. Every mode here exists to make those ten minutes count. Good copy.