·   −  The manual

Everything in the app,
and how to use it

Twenty-eight ways to train, on iPhone, iPad and Android, and in beta on Mac, Windows and Linux, from your first two letters to working a contest pileup, with a word-a-day puzzle and six arcade games among them. This page walks through each one: what it's for, when to reach for it, and how to get the most out of it. Skip to whatever you need.

New here?Your first session, in five minutes. Why 33 WPM?The two speeds, and which one to change. On the air fastThe short path to your first contact. The modesAll thirty, grouped by what they're for.

·−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.

  1. Put headphones on. Not required, but Morse is a listening exercise and phone speakers flatten the rhythm. Anything is better than nothing.
  2. 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.
  3. 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.
  4. 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.
  5. Stop after 10-15 minutes. Short and daily beats long and occasional. Turn on the daily reminder in Settings › Reminders 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, and First Four, which walks you through it; the first-run screen offers it too. 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 › Characters & Lessons › Proficiency. If you're comfortable with the whole alphabet, skip Journey and go straight to Common Words, Rapid Fire, or Pileup Runner.

−··Desktop downloads Beta

The trainer runs on a computer too, free and in beta. On a Mac it is the iPhone and iPad app built for macOS, as a direct download or through the TestFlight beta. Windows and Linux get a desktop app of their own with every mode and the same settings. It is a separate app from the phone ones, so progress does not move between them.

Mac macOS 13+ · .zip, notarized Unzip it and drag MorseTrainer to Applications. Reads the leaderboards; posting scores needs TestFlight. or the TestFlight beta
Windows 64-bit · .msi installer Unsigned: at “Windows protected your PC”, click More info › Run anyway.
Linux x86_64 · AppImage chmod +x the file, then run it. or the Flatpak bundle

All three are also on the 2.0.0 desktop release page on GitHub. There is no store listing yet. These are beta builds, so expect rough edges, and please report them on the Discord or GitHub.

Mac

Two ways, both needing macOS 13 Ventura or later on Apple silicon or Intel.

Direct download. Download AnotherMorseTrainer-Mac.zip, unzip it, and drag MorseTrainer to Applications. It is signed and notarized by Apple, so it opens without warnings. This build can read the leaderboards but can't post scores or buddy streaks to them.

TestFlight beta. The same public beta as the iPhone and iPad app, and the way to post scores:

  1. Install TestFlight from the Mac App Store.
  2. On your Mac, open the TestFlight invitation and accept it.
  3. Click Install in TestFlight. New beta builds arrive there as they ship.

Windows

  1. Download AnotherMorseTrainer-Windows-x64.msi, for 64-bit Windows.
  2. Double-click it. The installer is not code-signed yet, so Microsoft Defender SmartScreen stops it with "Windows protected your PC". Click More info, then Run anyway.
  3. It installs for your user account only, with no administrator prompt, and adds Another Morse Trainer to the Start menu.

Linux

Two packages, both for 64-bit Intel/AMD (x86_64) only. Pick one.

AppImage, a single file that runs without installing. Download AnotherMorseTrainer-Linux-x86_64.AppImage, make it executable, and run it:

chmod +x AnotherMorseTrainer-Linux-x86_64.AppImage
./AnotherMorseTrainer-Linux-x86_64.AppImage

If it won't start on Ubuntu 22.04 or later, install FUSE 2 first: sudo apt install libfuse2.

Flatpak bundle, which installs like any other Flatpak. Download AnotherMorseTrainer-Linux-x86_64.flatpak and install it for your user:

flatpak install --user AnotherMorseTrainer-Linux-x86_64.flatpak

If Flatpak offers to fetch the Freedesktop runtime the app needs, say yes. The app then appears in your applications menu.

What's different on desktop

  • Mac: everything in this guide applies, with a keyboard always to hand. A Bluetooth MIDI key is connected once in macOS's Audio MIDI Setup rather than a pairing sheet in the app; the steps are under Hardware keys. A USB key or a Vail Adapter just plugs in.
  • Windows and Linux: USB MIDI keys and the Vail Adapter work, but Bluetooth keys don't pair. There are no voice answers and no daily reminder. Scores are unranked: the shared leaderboard only accepts runs a phone can prove came from a genuine install, so desktop runs count toward your personal bests and you can still browse the boards. Buddy streaks rely on the same proof and aren't available either.

−−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 isWhere to put it
Character speedHow 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 speedHow 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 › Speed & Timing 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 › Speed & Timing (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

StageRoughlyWhat to work on
First week2-6 charactersJourney. Daily, short. Don't chase speed.
Weeks 2-6Full alphabetJourney plus Confusion Drill when pairs start blurring.
Your call + ? + stateAny time from week 2Get on the air and hunt POTA. Don't wait for the full alphabet.
Copying lettersAll 36, slowCommon Words and Type It. Close the Farnsworth gap.
Copying words~15 WPM effectiveHead Copy, Rapid Fire, Short Stories.
Operating~18 WPM+Pileup Runner, Contest, Repeater.
Pushing35 to 60 WPMQRQ Speed and head copy at pace.

·−·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 › QSO & Pileups › 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.
  • Pick CW 77 and turn on Include my callsign and name, so your call and name come round with the words you'll hear alongside them.
  • 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:

  1. 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.
  2. 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.
  3. Send your call once, when the activator finishes a contact. Once. Then listen.
  4. 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.
  5. Copy their report, send yours. Typically 5NN and their state. You reply with the same shape: report, your state.
  6. 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

First Four is this section as a lesson: your call, your state, ? and 73, heard and sent, then a busted call, a call nobody answers, and the whole hunter-side contact. Start there. Then Operating Procedure, the card just below it, takes the pileup apart one rule at a time: calling a little off the activator's frequency, when to call, partial calls, "is it me?", the exchange and fixing mistakes.

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 license permitting CW on the band you're using. The app itself needs no license, 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.

··−·First Four

The fast track above, as a guided lesson: just enough CW to hunt one POTA activator, and nothing more.

Open it from the First Four card on the home screen, just under "Start here", or from the first-run screen's Or learn just enough for your first POTA contact, which records your answer to the proficiency question exactly as Start practicing does and then opens First Four. Enter your callsign and your state (or province) the first time; they're saved as Your callsign and Your state in Settings › QSO & Pileups, and Change on the stage list edits them. The W1AW placeholder doesn't count as a callsign.

There are seven stages. Any of them can be opened at any time from the list; Begin / Continue takes you to the first one you haven't passed, and each stage's Next button follows the list.

StageWhat you doPasses when
1. Your callCopy: hear it and type it. Then Send: key it.3 right in a row copying, then 3 right in a row sending
2. Your stateThe same, with your stateThe same
3. ? — say againThe same, with ?The same
4. 73 — best regardsThe same, with 73The same
5. Busted callYou call; the activator sends back only part of it (K9?, K9Q?) or a bare ?. You send your full call and wait for them to come back to you.3 clean rounds
6. No replyTwo scenes. In the first nobody answers: that's normal, so you call again. In the second they answer someone else: you tap Wait and listen rather than keying over their contact, then call again when they send QRZ.Each scene once, clean
7. The whole contactThey call CQ POTA, you send your call, they send your call, 5NN and their state (you type the state), you send 5NN, your state and 73, and they sign off.2 clean runs

A miss resets a copy or send count to zero. In the scenes a slip doesn't end the run: the screen says what went wrong and waits for another try, but only a run with no slips counts. Sending your call twice (K9QRO K9QRO) is accepted wherever your call is asked for, and word spacing is ignored both when you type and when you key, since it's the part of a beginner's fist the decoder is least sure of.

Everything plays at your own speed and tone from Settings. You send on the on-screen key (straight key or paddles, per Settings) or a hardware key; the answer submits itself once you've keyed enough characters and stopped, or tap Submit. The activators are fictional, a different one each run.

Pass the last stage and First Four ends with a note worth repeating here: a first CW contact is a big deal, for you and often for the activator too. Afterwards, follow up — a QSL card, an email, or just a thank-you note. Many activators love hearing they were someone's first.

First Four is a tutorial, not a scored mode: it isn't recorded as a session in Progress and isn't on the leaderboard. An answer in it does count as a practice day for your streak. Start over, at the bottom of the stage list, clears the stages and keeps your callsign and state.

−−−Operating Procedure

The next step after First Four: the rules of the pileup, one at a time. What to send, when to send it, and when to stay quiet while you hunt POTA activators.

Open it from the Operating Procedure card on the home screen, directly under First Four (on a big iPad or tablet window, stacked with Start here and First Four beside Daily Dit). The card shows how many lessons you've passed. Every example uses your callsign and state from Settings › QSO & Pileups, and the section asks for them the first time if they aren't set (the W1AW placeholder doesn't count). A row at the top of the lesson list opens First Four, which is where to start if you can't yet hear and send your own call. First Four's last card points back here.

There are eight lessons, and each one has three parts:

  • The idea: a few short paragraphs.
  • Hear it: right and wrong examples, played at your speed and tone, with the transcript beside them.
  • Try it: three to five quick situations. A clip plays and you pick what to do. After each pick the screen says why.

A lesson passes when you get all of its situations right in one go. A wrong pick doesn't stop the run, but you'll need to go again. Any lesson can be opened at any time, and Begin / Continue takes you to the first one you haven't passed.

LessonThe rule
1. OffsettingZero beat, RIT, XIT and CW pitch, a pileup heard three ways, and a tuning drill (below). It comes first, straight after First Four.
2. SignalsWhat the activator's short signals mean: ? say again, AGN? send that again, <AS> wait, BK back to you, SRI sorry, QRZ? who is calling, and the dit-dit (E E) that ends a contact.
3. When to callCall right after the activator's dit-dit. Don't wait for a CQ; many activators never send one between contacts. Stay quiet while a contact is going on, or after <AS>.
4. Send your call onceJust your call, once: no DE, no K, not their call, no repeats. Then listen.
5. Partial callsWhen they send part of a call and ?, answer only if those characters appear, unbroken, somewhere in your call. For K9QRO, answer K9? and RO?, but not K1?. Answer with your full call. A bare ? is for anyone who called.
6. Is it me?Listen to who they come back to. Another call means that contact is in progress. For a call one letter from yours (K9KRO for K9QRO), it depends on the question mark. Sent without one, they're working K9KRO: stay silent. Sent with one (K9KRO?), they're not sure what they heard: send your call once and listen for whether they come back with yours.
7. The exchangeReply with your report, state and 73 (5NN WI 73, as in First Four), and send E E back after their TU 73 E E. WB0RLJ's order is just as right: report, state, BK (5NN WI BK), then 73 E E after their TU, and the app accepts either. Then stop: the next QRZ? is for someone else.
8. MistakesSend an error, then send the word again from the start: your whole call, not just the letter you fixed. An error isn't one fixed signal. It can be a quick run of five to eight dits, or someone slapping the key, fast or slow, run together or ragged. The examples sound different each time on purpose, so you learn to recognise an error, ignore what came just before it, and copy what follows. The screen writes it as [error].

Offsetting: zero beat, RIT and XIT

On CW the tone you hear is how far a signal is from where your receiver is tuned, plus your rig's CW pitch setting. Your sidetone is set to the same pitch, so a station that sounds exactly like your sidetone is on the frequency you'd transmit on: you're zero beat. That's how you get onto an activator's frequency.

In a pileup, though, everyone zero beat merges into one tone, so call a little off: 20 to 100 Hz, as the Parks on the Air CW Guide puts it. RIT moves what you hear and leaves where you transmit alone. XIT moves where you transmit and leaves what you hear alone. A forgotten RIT is the classic way to call off frequency by accident. The lesson has a table of what Icom, Yaesu, Kenwood, Elecraft and FlexRadio call each control.

  • The pileup. Five hunters answer a CQ, one of them you, as the activator hears them. It plays three times: everyone zero beat; only you 80 Hz up; then everyone on their own offset. The difference between them is the lesson.
  • RIT. The activator is 200 Hz above you. Slide the RIT and play: their pitch moves, and the screen shows that where you'd transmit doesn't.
  • Zero-beat it. The activator is somewhere off your frequency. Tune with the −50, −10, +10 and +50 Hz buttons. Station plays them, Spot plays your sidetone, and Together plays both so you can hear the beat slow down and stop. Tap Done: anything within 20 Hz counts. Three in a row pass the drill.

The offsetting lesson passes when you've passed the drill and got its situations right in one go.

What should you do?

Ten situations, dealt at random from lessons 3 to 8. A clip plays and you choose whether to send something or stay silent. Each answer says why, names its lesson, and has a button that opens the lesson. At the end you see your score and can go again. Nothing is kept except the practice day.

Like First Four, Operating Procedure is teaching material, not a scored mode. It isn't recorded as a session in Progress and isn't on the leaderboard, but an answer counts as a practice day for your streak. Everything plays at your own speed and tone. On a big iPad or a wide window the lessons sit in two columns, and a lesson puts the idea beside the practice. Start over, at the bottom of the lesson list, clears your progress and keeps your callsign and state.

The procedure follows WB0RLJ's Advice for CW POTA Hunters, with thanks. Jim Vaughan (WB0RLJ) posts recordings of his daily activations on his YouTube channel, and both links are at the foot of the section in the app. It also follows the Parks on the Air CW Guide and Hunter Guide.

····The home screen

Every mode is one tap from the menu. Three icons sit in the top bar, above the tiles. (On iPhone, iPad and Mac the bar also carries shortcuts to the Repeater, Reference, Sending Drills and the Sending Analyzer (the gauge); on Android those four are tiles like everything else.)

IconOpensWhat it's for
WaveformCW DecoderRead received Morse off the air through the microphone.
Bar chartProgressStreak, accuracy, per-character stats, session history.
GearSettingsSpeed, tone, answering, reminders, word lists.

Under the header sit four 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. First Four is the guided path to your first POTA contact; the card shows how many of its seven stages you've passed. Directly under it, Operating Procedure is the next step: POTA hunting etiquette one rule at a time, with a count of the lessons you've passed. On a big iPad or tablet window, Start here, First Four and Operating Procedure stack beside Daily Dit.

Below that, the training tiles run roughly in learning order: Journey first, then the six choice-quiz modes with CW 77 beside Common Words, then the speed and operating modes, then the tools, with a single Games tile at the end. That tile opens the arcade games on their own screen — Morse Invaders, CW Galaga, Morse Defender, CW Dungeon, CW Frogger and CW Asteroids — so the main menu stays short as games are added, with a Shared leaderboard entry at the bottom that opens the board for browsing; Back from a game returns you to that screen. The mid-session mode switcher lists the games under a Games heading too. 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 › Practice & Feedback.

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.

The choice quizzes (Characters, Common Words, CW 77's Quiz, Abbreviations, Q-Codes, Prosigns and Confusion Drill) can take a typed answer too, set by Answer entry in Settings › Practice & Feedback or the Answers menu in the drill itself:

  • Tap (the default) keeps the buttons.
  • Progressive makes the answer method part of each level: you start on 4 choices, move to 6 once you get 18 of your last 20 right, then to typing the answer after 18 of 20 more. Each quiz climbs its own ladder, and a new level (a new character, or a new Characters stage) starts again at 4 choices, since multiple choice is the scaffold for something new.
  • Type always has you type, for when you want to jump straight to full recall.

A single character is submitted the moment you type it, so typing costs no more time than a tap; words take Submit or Return. Don't know passes the item as a miss. Drills whose answer is a meaning or a prosign always show the choices, and Key answers or Voice answers, when you have switched one on, take precedence over typing. A wrong typed character counts in your stats and confusion matrix exactly like a wrong tap; a blank, a slip of two characters, or a symbol Morse has no code for is a miss with nothing recorded as the character it was mistaken for.

Speak

Voice answers

Turn on Voice answers (the mode's setup on iOS, Settings › Practice & Feedback on Android) and say the answer instead of tapping it. It understands NATO phonetics ("Charlie"), letter names ("see"), digit words ("niner"), and punctuation by name ("slash", "question mark"). 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. The microphone stays open for the whole session, so the sound is set up once rather than around every answer. With Bluetooth earbuds such as AirPods, the Morse stays in your ears at full quality and the phone's own microphone hears your answer, so keep the phone within earshot. If it hears nothing for eight seconds it shows the answers to tap. 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. If you send with paddles, switch the on-screen key to touch paddles.

−·−The modes

Thirty of them, counting First Four and Operating Procedure up with the fast track. 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:

  1. Letters & Numbers: two new characters per level
  2. Punctuation: one per level
  3. Prosigns: two per level
  4. Q-Codes: two per level
  5. Abbreviations: two per level
  6. Words: four per level, from the 60 most common
  7. 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, turn off Misses drain the bar in the Journey's setup.)

You can answer with a hardware key as well as by tapping or typing: keyed answers follow the same rule as Key answers in the choice quizzes, and what you key is checked when you stop keying.

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 › Characters & Lessons › 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 › Characters & Lessons › Introduce 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, tapped, typed or keyed, 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

RuleValue
LivesThree. An invader that lands costs one; at zero the game is over.
Points100 per hit, times the combo multiplier.
ComboConsecutive hits: ×1 for the first three, ×2 for the next three, up to ×4. A wrong shot or a landed invader resets it.
WavesEvery 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.
DifficultyRelaxed, 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

RuleValue
LivesThree. 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.
Points100 per hit, 150 for an enemy shot while it is diving, times the combo multiplier. Clearing a wave adds 500.
ComboConsecutive 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.
FormationWave 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.
TimingOn 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.
DifficultyRelaxed, 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 defense 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 defense 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, and so does a hardware key: each character it decodes counts as a key press.

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

RuleValue
AssetsFour 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.
AttackersOne in flight at a time on waves 1–2, two on waves 3–4, three from wave 5 on.
Points100 per hit, times the combo multiplier.
ComboConsecutive hits: ×1 for the first three, ×2 for the next three, up to ×4. A wasted shot or a lost asset resets it.
WavesEvery 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.
DifficultyRelaxed, 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

RuleValue
LivesThree. A wrong or late counter costs one; a ♥ counter restores one; at zero the run is over.
Points100 per counter, times the combo multiplier, plus 250 for each room cleared.
ComboConsecutive counters: ×1 for the first three, ×2 for the next three, up to ×4. A hit taken resets it.
Attack windowOpens 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.
DifficultyRelaxed, 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:

WavesLabels
1 and 2Shown. Every vehicle and log shows its character; hear the cue, find it, hop.
3 and 4Memory. A lane's labels stay on for three seconds after its cue, then disappear. Hear the cue, find the vehicle or log carrying it, and keep your eye on it as it moves. The line under the board reminds you, and the first wave of this stage says so on the board. Lanes not yet cued keep their labels.
5 and upHidden. 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

RuleValue
LivesThree. A wrong vehicle, a wrong log or the water costs one; at zero the game is over.
Hops10 points for each hop onto a row you haven't reached yet this crossing. Hopping back and forth earns nothing.
Decisions50 points for each correct decision (passing through the cued vehicle, landing on the cued log), times the combo multiplier.
ComboConsecutive 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.
Crossing200 points for reaching the far bank, and the next wave begins.
WavesEvery 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.
DifficultyRelaxed, 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 center 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, spelled 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

RuleValue
LivesThree. An asteroid that reaches the ship costs one; at zero the game is over.
Points100 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.
ComboConsecutive hits: ×1 for the first three, ×2 for the next three, up to ×4. A miss or an asteroid reaching the ship resets it.
WavesEvery 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.
DifficultyRelaxed, 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 finalizes 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 (the Common Words setup on iOS, Settings › Practice & Feedback on Android) 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.

CW 77

The pool can be the CW 77 (CWOps) list instead: on iOS it's an entry in the word-pool picker, on Android the Use CW 77 (CWOps) instead switch under the word pool. You hear the item and pick it, prosigns included (a prosign is picked from the choices even with keyed answers on). The same Use 40 WPM, no Farnsworth preset and Include my callsign and name switch appear with it. Your own word list, when it's on, still takes precedence. The list also has a tile of its own, CW 77, which runs this same quiz as its Quiz style.

−·−·CW 77

The seventy things you'll hear in every contact, until they arrive as words.

The CWOps CW 77 list as a mode of its own, on the tile next to Common Words. Its setup screen asks for a Style:

  • Listen: Listen & Learn over the CW 77 list. Each item plays, then it's shown and read back, per the Readback choice: spelled out and then its meaning, or the meaning alone. The Gap before the spoken answer is Listen & Learn's too. It's hands-free and keeps playing with the screen locked, with the lock-screen and car controls.
  • Quiz: the Common Words quiz over the CW 77 list. Hear the item and answer it by tapping a choice, by typing it (Answer entry in Settings › Practice & Feedback, or the Answers menu in the drill), or by keying it with keyed answers on; a prosign is always picked from the choices. It's scored like Common Words.

The app remembers the style you chose last and opens on it. Up front on the same screen are the list's options: the one-tap Use 40 WPM, no Farnsworth; Callsign and Name fields for your own station (the same Your callsign and Your name as Settings › QSO & Pileups, so typing here changes them there); and Include my callsign and name, which appears once either is set. They're the same settings as the CW 77 choices in Listen & Learn and Common Words, which are still there, so changing one changes both.

Sessions go into Progress under their own names: CW 77 for the Quiz, with its accuracy, and CW 77 Listen for the Listen style, which counts items heard and shows no accuracy, as Listen & Learn does. Both count as a day's practice for your streak and your buddy streak. CW 77 isn't one of the ranked modes, so nothing is posted to the shared leaderboard. Both apps have both styles.

·−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 › Practice & Feedback: 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. So does a hardware key: what you key is decoded into the answer box and checked when you stop keying.

−−·−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.

Type your answer, or key it on a hardware key: it's decoded into the answer box and checked when you stop keying.

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 gray 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. You can key a guess on a hardware key instead of typing it: five keyed letters make a guess, and one that isn't accepted is cleared with the reason left on screen.

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.

RuleValue
Starting speeds20, 25, 30, 40, 50, 60 or 75 WPM. Locked at your first guess. The word is sent straight at that speed, with no Farnsworth spacing: character and gap timing both at the dial, exactly as QRQ Speed does. If your drills run at 40 WPM characters with Farnsworth gaps, a Daily Dit at 40 will sound faster than they do; it is the same 40, without the stretched gaps.
ListensEvery play counts, replays included. Down 5 WPM after every 3. A play with the media volume muted or at zero asks first.
GuessesNo limit. Each must be a real five-letter word. Down 5 WPM after every 3 wrong ones.
FloorNever below 10 WPM.
Hide the chartPlay without the dit-dah reference on screen. Set before your first guess, and your share text says "no reference".
StreakA guess counts as a practice day, so the puzzle alone keeps your streak alive.

If your device is muted. A listen counts when the word is sent, not when you hear it, so if your device's media volume is muted or at zero, a play that would use a listen first asks "Your device appears to be muted", with Play anyway and Cancel. Cancel plays nothing and uses nothing. Play anyway isn't asked again for the rest of that visit. Replays after you've solved the word are free and never ask.

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 two things to share. One is an image: a card in the app's colors with the puzzle number, the speed, the guess and listen counts, your guess grid as colored tiles with each row's sending speed beside it, and a link back here. It carries no letters, so it spoils nothing. The other is 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. Share sends the image with the text as its caption, and Copy puts the image on the clipboard with the text alongside it. 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. The text is plain on purpose, so it survives anywhere the image can't go: Copy puts the card on the clipboard with the text as a fallback, so pasting into a chat that takes pictures gives the card and pasting into a plain text field gives the text; Share hands the card and the text to whatever you pick. Both work the same way on iPhone, iPad, Mac and Android. 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:

ContentWhat you get
Call signsRealistic generated callsigns, the single most useful thing to drill for operating.
WordsFrom the common-word pool, or your own list.
Number groupsRandom digit groups, as many digits as you set: the weak spot for most operators.
State abbreviationsTwo-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 numbersContest 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.
NamesShort operator names, the kind heard in CW QSOs and contest exchanges.
PowerTransmit power as sent on the air: 5W, 100W, 1KW.
MixedCall 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 › QSO & Pileups (it starts as W1AW) and it's used throughout, sent when you call CQ and work stations. The first time you open Pileup Runner or Contest (which sends your callsign too) with the callsign still unset, it asks: Set up your station? takes your callsign, and optionally your name and state, and saves them there. Not now closes it, and it isn't asked again either way. 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.

Type what you want to send, or key it on a hardware key: what you key is decoded into the box and sent when you stop keying. Keying CQ when no station is being worked calls CQ. A keyed send isn't keyed again by Key my side in Morse, since you already heard it as sidetone.

Eight exchange flavors

TypeYou copy
Single CallerCall and name. One station, no pileup: the gentle warmup.
POTA ActivatorEach hunter's call and their state.
Basic ContestCallsign and serial number.
K1USN SSTName and state, taken easy.
ICWC MSTName and serial number.
CWops CWTName and member number (or state for non-members).
NS SprintSerial number, name, and state.
ARRL Field DayClass 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 W1AQ for W1AW 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: 1A? is how you ask W1AW 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:

EventExchangeScoring
K1USN SSTName + stateNumber of QSOs. Deliberately slow and friendly.
ICWC MSTName + serialQSOs × distinct call signs. A step up in pace.
CWops CWTName + member numberQSOs × distinct call signs. A fast hour.
NCCC SprintSerial + name + stateQSOs × distinct SPCs. Fast half-hour sprint.
ARRL Field DayClass + ARRL section2 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.

You work stations the way you do in Pileup Runner: type what you send, or key it on a hardware key and it's sent when you stop keying, with keyed CQ calling CQ when no one is being worked.

Why bother: a real contest is unforgiving of hesitation, and there's no way to practice 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 code test, graded the way the ARRL VEC graded it.

The US code requirement was dropped in 2007, so this is a personal benchmark rather than a license 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.

Like the real exams, every passage, generated or built-in, includes every letter and numeral, the period, comma, question mark and slash (a portable call such as K9LA/4), and the prosigns BT between sections, AR at the end of the message and SK on the final over. The prosigns are sent run together, as one character, and shown as <BT>, <AR> and <SK> when you reveal the text.

Every exam runs the way the real one did. Play the transmission and type what you copy. Then hand your copy in and fill in ten blanks about the message: the sending station's call, the signal report, name, QTH, rig, power, antenna, weather, temperature and age. Your copy stays on screen while you answer, because candidates answered from their copy sheet. Answers ignore case and spacing, but otherwise must match what was sent: 72F is not 72. The call sign is right with or without its portable suffix. If you copied on paper or in your head, leave the copy blank and go straight to the questions.

SpeedLicense classSolid copy (counted)Note
5 WPMNovice / Technician25 in a rowSent Farnsworth: characters at 13 WPM, spacing stretched.
13 WPMGeneral / Advanced65 in a rowThe classic middle benchmark.
20 WPMAmateur Extra100 in a rowThe old top requirement.

Two ways to pass

As with the ARRL VEC, either one passes. The results show both grades and say which one passed.

  • Solid copy: one minute of unbroken copy at the exam's speed. That's five characters a word, so 25 at 5 WPM, 65 at 13 WPM and 100 at 20 WPM. The 5 WPM bar follows the 5 WPM overall speed, not the faster 13 WPM characters. Characters are counted the ARRL way. A letter counts one. A numeral, a punctuation mark (period, comma, question mark, slash) or a prosign counts two. So a run that mixes in a call sign or an RST reaches the bar in fewer keystrokes. Spaces between words have to be in the right place, but they count nothing.
  • Questions: 7 of the 10 blanks right.

Prosigns count

The ARRL graded prosigns as part of the copy, so copy them. Write <AR>, <BT> and <SK> in brackets, or + for AR and = for BT. The copy keyboard row has <AR>, <BT> and <SK> keys. Left out, a prosign breaks your run there, like any missed character. The letters AR without brackets are just A and R (Arkansas, say), never the prosign.

You can also choose a built-in passage instead of a freshly generated one, if you'd rather practice a known text.

·−·−Repeater

Live CW with real people over the internet. No license, 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.
  • Straight key or paddles: the on-screen key is whichever you chose in Settings › Keys & Sending, and the paddles' keyed elements go out on the air exactly as straight-key presses would.
  • 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. Practicing against a real human, at human timing, is worth a great deal more than practicing 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 (a straight key, or a pair of touch paddles) 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.

···−·Sending Analyzer

Send a whole text on your own key and find out exactly how it came out: which characters, and how good your spacing was.

The app shows a text, you send it, and it copies you the way a listener would. Then it lines up what it copied against the text and takes your timing apart. Open it from the gauge icon in the top bar on iPhone, iPad and Mac, or the Sending Analyzer tile on Android.

Setting up

  • Send this: a pangram (JACKDAWS LOVE MY BIG SPHINX OF QUARTZ among them), five call signs, six common words, five groups of five from the characters you've studied, or your own text. New text draws another.
  • Your key: straight key, bug, cootie, or paddles through a keyer. This decides what is fair to judge. A straight key or cootie is judged on everything. A bug makes its own dits, so only your dahs and spacing are judged. A keyer makes all the elements and sets the speed, so only your spacing between characters and words is judged; the element figures are still shown.
  • Input: Key is the on-screen key, a Vail adapter or another MIDI key, wired or Bluetooth. The on-screen key is a straight key or a pair of paddles, whichever you chose in Settings › Keys & Sending › On-screen key. The on-screen paddles' keyer times every dit and dah at your Settings › Speed & Timing speed, so an attempt sent on them is judged as paddles, spacing only, whatever Your key says; the setup says so when the paddles are on. With the Vail adapter, set its keyer mode in Settings › Keys & Sending › Keyer mode to match your key; in a paddle mode the adapter keys at your Settings › Speed & Timing speed. Microphone listens for a tone instead: see below.
  • Judged against: the speed your sending is compared with (20 WPM to start, 5 to 50), and an optional Farnsworth spacing switch with its own effective speed. With Farnsworth on, character and word spacing are judged in stretched spacing units, so 3 and 7 are still the targets.

Sending

Tap Start sending and send the text. What the app has copied so far appears as you go. Once you've sent as many characters as the text has, a pause of a second and a half or so (longer at slow speeds) finishes the attempt by itself; Finish ends it early and Cancel throws it away.

The results

  • Correct, char WPM and overall WPM: the share of the text's characters you got right; the speed your elements were sent at (from your average dit); and your overall pace, the standard length of what you sent over the time it took, which is lower than the character speed when your spacing is stretched.
  • What you sent: the text with every mistake marked. Red is a character sent as something else, orange is one left out (or a word break sent too short, so two words ran together), gray is something extra (or a gap inside a word long enough to read as a break). Below it, each mistake is spelled out with both patterns, such as 8 (−−−··) sent as 7 (−−···).
  • Feedback: plain sentences about what to fix: dahs short or long against the 3:1 ratio, dits or dahs that vary a lot, gaps inside characters clipped or stretched, character or word spacing short, long or uneven, and speed well off the one you set. Each needs a few examples before it speaks up. A clean attempt says so.
  • Spacing: a histogram of the gaps between characters, centered on 3 units, and another of the gaps between words, centered on 7, with the average and spread of each. A tall, narrow bar on the bright one is the goal.
  • Elements: average dit and dah in milliseconds and in units of the speed you set, the dah-to-dit ratio, and the gap inside characters.

How it decides: dits and dahs are told apart by their lengths as you actually sent them, not by a fixed speed, and are measured separately, which is what lets a bug's quick machine dits and slower hand dahs both be read correctly. A gap under two units is inside a character, and one of five or more (spacing) units is a word break.

Your sending over time

Every attempt is added to a running record under the results: the characters and the letter pairs (like LL) you miss most often once you've tried them at least three times, the mix-ups you make (which character came out instead of which), and your last few attempts. It's kept apart from the confusion matrix that drives the copying drills, because a slip of the hand is a different mistake from a slip of the ear. Clear sending record wipes it, and so does resetting all progress.

Using the microphone

Choose Microphone to send on anything the phone can hear: a practice oscillator, an electronic keyer's sidetone, a rig's speaker, or a signal generator. The app finds the pitch itself (anything from 300 to 1200 Hz) and times each key-down and key-up from the audio. A light follows the tone, and a meter shows its level against the room's, marked in orange. Key a few characters before you start: the light should come on with every element and stay off in the gaps. If it flickers in the gaps, lower the Sensitivity; if it misses quiet elements, raise it. If it has locked onto the wrong sound, Find pitch again starts the search over. The microphone is only used while the Sending Analyzer is open with Microphone chosen.

NOTE

A key adapter gives the cleanest timing, because the app gets the key's own edges. The microphone is good to a few milliseconds with a clear tone, but room noise and a soft sidetone blur exactly the thing being measured, so hold the phone close and keep the tone well above the room.

−·−·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:

CategoryContents
ProsignsProcedural signals sent run-together, with ITU names and "also written" variants.
Q-CodesQ-signal shorthand: the questions and the answers.
AbbreviationsEveryday CW abbreviations heard in every QSO.
LingoA glossary of spoken ham culture: the words you'll hear but won't find in a code chart.
Cut numbersContest shorthand: digits sent as single letters to save time.
ChartThe 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; CW 77 (CWOps) is the CW Academy list 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.
  • Readback (QSO elements, CW 77 and Abbreviations & Q-codes only): Spell it out reads the token letter by letter and then its full meaning, "k n, go ahead, named station only"; Meaning only says the short meaning and nothing else, "go ahead", so a drilling session moves at the pace of the code rather than the gloss. The screen shows the token and the whole meaning either way.

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". Switch Readback to Meaning only once you know the tokens and it says just "my location is". Both apps have both sets.

CW 77

CW 77 (CWOps) is the list of the most-used words and abbreviations in a CW contact that CW Academy advisors have their students listen to. The list as circulated has 75 entries with five repeats, so the set is the 70 distinct items, in the list's order, keeping the familiar name:

VVV  VERT  OM  HR  XYL  QTH  RR  AGE  FB  LID  QSL  TKS  RIG  QSB  CQ  CL  <KN>  NAME  PKT  QSO  TEST  DE  <BT>  73  QRM  BK  AGN  DIPOLE  <SK>  HW?  QRP  TNX  YRS  YL  QRX  QRL  ES  WX  QRT  K  QRS  88  PWR  RUNS  CALL  VY  WIRE  YAGI  NR  RPT  OP  <AR>  PSE  EL  LOOP  ABT  QSY  TU  HI  BEAM  RST  WATT  <AS>  TEMP  CPY  QRZ  ANT  QRN  CW  DX

The five prosigns, <AR> <AS> <BT> <KN> <SK>, are sent run-together as they are on the air; BK and CL are sent as the letter abbreviations for break and closing. It is revealed and spoken like the QSO elements, token then meaning, or the meaning alone with Readback on Meaning only. Common Words can drill the same list, and the CW 77 tile runs it either way as a mode of its own.

  • Use 40 WPM, no Farnsworth: Bob Carter WR7Q recommends hearing this list at 40 WPM with no Farnsworth spacing. With CW 77 chosen, one tap sets your speed to that (it changes the speed in Settings › Speed & Timing, which you can move back any time); once you're there it says so instead.
  • Include my callsign and name (off by default): adds your own call and name to the set, the two things you'll hear most often on the air. Type them in the Callsign and Name fields just above the switch. They're Your callsign and Your name from Settings › QSO & Pileups, so changing one place changes both. The switch appears once either is set; a callsign still at the W1AW placeholder doesn't count, and with no name set only your callsign is added.

Passive practice isn't as effective as active drilling, but it's dramatically better than not practicing, 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.

WhatTells you
Daily streakConsecutive days practiced, 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 gridOne 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.
AccuracyOverall 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 statsAccuracy 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 chartRecognition speed per character, so slow ones are visible at a glance.
Most-confused pairsWhich characters you swap for which. Feeds Confusion Drill directly.
Speed bandsPerformance grouped into 5-WPM bands, showing exactly where your ceiling currently is.
Session historyEvery 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 license speed for a Code Exam, and never for QRQ, which ignores Farnsworth.
Personal bestsFastest copy, best session accuracy, biggest session, characters mastered, and your best score in each mode that keeps one: every arcade game's score, Contest's points, Pileup Runner's QSOs worked, and Rapid Fire's correct copies. A mode appears once you've played it; the bests are kept for good, not just while the session is in the history. On iPhone, iPad and Mac the card is on the Brag Sheet; on Android it is on the Progress screen.
Brag SheetA 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.
LeaderboardThe shared leaderboard: the top fifty in each ranked mode across both apps, read-only here, and the place your own runs land once you opt in.
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.

−·−·Shared leaderboard

One board for both apps, opt-in, and hard to cheat. Off until you switch it on.

Nine modes are ranked: Rapid Fire, Contest, Pileup Runner and the six arcade games (Morse Invaders, CW Galaga, Morse Defender, CW Dungeon, CW Frogger, CW Asteroids). Each mode has its own board, showing the top fifty with a display name, the score, which platform it came from and the date. You can browse the boards from Progress without joining.

Joining

In Settings › Leaderboard & Buddy, switch on Share scores to the shared leaderboard and choose a display name: two to twelve characters, letters, digits, space, slash and hyphen, shown in capitals. A callsign is the natural choice. From then on every finished run in a ranked mode is sent in, and the session summary shows where it landed: your rank and your score, or the reason it was refused. Only your best run per mode is kept on the board, and posting one that is not your best changes nothing.

Sharing scores from a game. The first time you start one of the six arcade games while score sharing is off, the app asks once whether to post your finished games to the shared leaderboard. Enter a display name and tap Share scores, choose Not now to be asked again the next time you start a game, or Don't ask again to never see the prompt. The game starts whichever you pick, and sharing can be turned on or off at any time in Settings. You don't need to share to look: the Shared leaderboard entry at the bottom of the Games menu, like the one on Progress, opens the board for browsing, with a mode picker across all nine ranked modes. The board is the same one on iPhone and Android.

What the score is

The board does not trust the number on your screen. The app sends a transcript of the run, what was sent, what you answered and how fast, and the server grades it: for every item you copied correctly it adds the speed that item was sent at. A run at a steady speed therefore scores correct copies × effective WPM, so a slow perfect run does not beat a fast, nearly perfect one. In the games, which speed up as you go, each hit counts at the speed it was sent. That is why a game's leaderboard score is not its on-screen score: the on-screen one includes waves, combos and other things only the game can see. In Morse Invaders, CW Galaga and CW Asteroids only the hear it mode is ranked; the see it, key it mode plays no Morse, so there is nothing for the board to grade. In Rapid Fire the listen-only response is not ranked for the same reason.

Why it is hard to cheat

The app is open source, so nothing in it can be a secret. Trust comes from the device instead: an iPhone or iPad proves it is running the genuine App Store build with Apple's App Attest, and an Android phone proves the same with Google's Play Integrity. A build you compile yourself, a sideloaded APK, or a script pretending to be the app cannot post. Each run gets a one-time token from the server when it starts, so the server also knows how long the run took, and a run that claims more Morse than could have been sent in that time is thrown out. Only genuine builds on real devices can post; the iOS Simulator and Android emulators cannot. A Mac that cannot attest can read the boards but not post to them, and says so when a run ends.

Your data

The board stores your display name, your best score per mode, the platform, and the run transcripts for thirty days. It never sees your name, email or account. Delete my scores in Settings › Leaderboard & Buddy removes everything the board holds about this device, and you can switch sharing off at any time. Both apps do exactly the same; only the attestation mechanism differs by platform.

−···Buddy streak

Pair with one other person and keep a streak together: it lives only while you both practice every day.

Settings › Leaderboard & Buddy › Buddy streak. One of you taps Invite a buddy and gets a six-character code, good for 24 hours and for one use; send it however you like, a message, Discord, on the air. The other taps Join with a code and types it in. That's the pairing: no accounts, no contacts, and it works between an iPhone and an Android phone. One buddy at a time; Leave buddy unpairs, from either side.

What keeps it alive is the same thing that keeps your own streak alive: any practice day. A finished session, a Daily Dit guess, a Listen & Learn session, whatever the app already counts as practicing, counts for the buddy streak too. The first time each day you practice, the app tells the server; the buddy streak is the number of consecutive days on which both of you did. Your day is your local calendar day, so time zones work the way your own streak does, and yesterday keeps it alive until the later of you has had their whole day.

Where you see it. The home screen's streak card gains a line: "W1AW practiced today · 12-day buddy streak", or "W1AW hasn't practiced yet today". If you use the daily reminder, it adds the same nudge when your buddy is still missing for the day, as of the last time the app checked. There are no push notifications; the app checks when you open it. To keep the home screen without it, switch off Show buddy line on home screen, just under the buddy list in Settings › Leaderboard & Buddy. It is on by default and only hides the home screen's line; the list in Settings and the reminder's nudge stay. The line never shows while you have no buddy, whatever the switch says.

Your data. Pairing uses the same device attestation as the shared leaderboard and your leaderboard display name, which is what your buddy sees, along with whether you practiced each day. Nothing else. Delete my scores in Settings › Leaderboard & Buddy removes the pairing and your practice days along with everything else the server holds for this device.

−−−Settings reference

The gear icon on the home screen. Settings opens on a list of categories with a search field at the top; tap a category for its settings. Mid-session, the Settings button shows only the categories and settings that apply to the mode you're running.

Search. Type into the search field and the list becomes every matching setting, with the category it lives in. It matches names and the words you are likely to reach for, so pitch finds the sidetone, paddle finds the keyer mode and vibrate finds haptics. Tap a result and the app opens that category scrolled to it, with the setting briefly highlighted.

The categories, in order, are the same on iPhone, iPad, Mac and Android: Sound, Speed & Timing, Characters & Lessons, Practice & Feedback, Keys & Sending, QSO & Pileups, Reminders, Display, Leaderboard & Buddy and Help & About. Where a setting is on only one app, the table says so. On an iPad the categories stay in a sidebar on the left and the one you pick opens beside them; on a phone, or an iPad window too narrow for both, each category opens over the list.

Sound

SettingWhat it does
Sidetone pitchThe tone frequency, 300-1000 Hz. Default 600 Hz. Pick what's comfortable for your ears over a long session. (Called Side tone on iOS.)
Preview toneSends PARIS at your current settings so you can hear the effect before committing.
Keep Bluetooth audio awakeOn 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 noiseAudible noise under everything, for copying through: Off, Whisper, Low, Moderate, Heavy. Off by default. Any level also keeps Bluetooth audio awake.

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.

Speed & Timing

SettingWhat it does
Character speedHow 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 spacingA 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.

Characters & Lessons

SettingWhat it does
ProficiencyWhat 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 charactersWhether 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.
Track stagePin the Characters ladder to a stage: characters, pairs, triples, or words & call signs. In Settings on iOS; on Android it's the stage pills on the Characters setup and mid-session.
PunctuationOpt individual punctuation marks into your practice. ? is already part of the base set. A mark you turn on joins your Characters drill straight away, alongside whatever you are learning, and has to be mastered like any other character before the next unlock; turn it off and it leaves the drill, with its stats kept for when you return to it. It joins the arcade games' Full alphabet and digits set at once too, and Listen & Learn's Characters set, which follows your active set.
Developer · Preview StageJumps the Characters track to a stage and starts drilling it, for trying a stage out. Clears any Track-stage pin.
Reset all progressClears 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.

Practice & Feedback

SettingWhat it does
Recognition targetThe 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. (Called Recognize within on iOS.)
Answer choicesMaximum number of multiple-choice buttons. Choices only ever include characters you've met, so the count grows as you learn.
Answer entryHow the choice quizzes take your answer: Tap the buttons (default), Progressive (4 choices, then 6, then typing, per level), or always Type. See Type. Progressive's 4 and 6 replace the Answer choices limit while it is on.
Word poolHow many ranked common words to draw from: top 100, 300, 500 or 1000, or the CW 77 (CWOps) list instead (the Use CW 77 (CWOps) instead switch). Smaller = more repetition, larger = more variety. Here on Android; on the Common Words setup on iOS.
Use my word listA switch that replaces the built-in pool with your own words, one per line (or comma- or space-separated). Needs at least two words. Here on Android; on the Common Words setup on iOS.
Session lengthDefault practice length, 1-30 minutes (default 5) or open-ended. Here on Android; on each mode's setup on iOS.
Show right / wrongWhether correctness is shown after each answer.
Reveal the letterWhen (and whether) the correct answer is displayed. Default: on a miss.
Show replay buttonWhether the replay control appears during a session.
Haptic feedbackVibration on hit and miss.
Voice answersSpeak answers instead of tapping. Uses the microphone; learns your corrections over time. Here on Android; on each choice quiz's setup on iOS.
Auto-repeatsHow many times Head Copy replays the prompt before revealing, 0-3 (default 2).
Auto-reveal afterHow long Head Copy counts down before showing the answer, 0-10 s (default 5). At 0 it waits for you.

Keys & Sending

SettingWhat it does
Keyer modeHow the Vail Adapter reads the key plugged into it: Straight Key (the default) or an iambic mode for a paddle. It describes your key, not a drill, so it applies in Sending Practice, keyed answers and on the Vail screen alike, and a connected adapter is reconfigured the moment you change it. On Android it's shown only on devices with MIDI support.
On-screen keyStraight key (default): one hold-to-key pad, the tone sounds for as long as you hold it. Paddles: two touch paddles, dit and dah, side by side, with a built-in keyer that times the elements at your character speed.
Paddle modeHow the paddles are keyed: Iambic A (default), Iambic B or Ultimatic. Shown when the key is set to Paddles.
Dah on the leftSwaps the paddles for a left-handed operator. Off: dit on the left.

On-screen key. The choice applies wherever there is an on-screen key: keyed quiz answers, Sending Practice, Rapid Fire, the keying modes of Morse Invaders, CW Galaga, CW Dungeon and CW Asteroids, the Repeater and the Sending Analyzer. The keyed elements are decoded, sounded and sent exactly as straight-key presses are. A hardware key is unaffected; a Vail Adapter keeps its own keyer mode.

Hold one paddle and it repeats its element; tap the other while one is still sounding and it's remembered and sent next (dit and dah memory). Hold both to squeeze:

  • Iambic A: a squeeze alternates dit and dah; let go and the keyer finishes the element it's sending and stops.
  • Iambic B: the same, but letting go of a squeeze sends one more alternate element. Squeeze from a dah, release during the dit, and B sends K where A sends N.
  • Ultimatic: a squeeze repeats whichever paddle you pressed last instead of alternating; release it and the other paddle takes over.

Two fingers can hold both paddles at once. With a mouse or trackpad on a Mac you can hold only one paddle at a time, so squeezing needs a touchscreen.

QSO & Pileups

SettingWhat it does
Your callsignUsed across the app, sent when you call CQ and work stations in Pileup Runner and Contest, and drilled in CW 77 when you include it. On Android it's also in Pileup Runner's setup.
Your stateOptional. Your state or province abbreviation, taught and sent as your exchange in First Four, which asks for it the first time. Beside Your callsign; on Android it's also in Pileup Runner's setup, under Your name.
Your nameOptional. Your first name, drilled in CW 77 with your callsign when you turn on Include my callsign and name. Beside Your callsign; on Android it's also in Pileup Runner's setup, under Your call. The pair is also right there with CW 77's options, as Callsign and Name, wherever those appear: CW 77, Listen & Learn and Common Words.
Pileup Runner optionsThe exchange type, caller count and speeds, Farnsworth for callers, tone spread, QSB, QRN, wait times, cut numbers, bust behavior, give-up, key my side, re-calls after TU and callsign shapes, documented in the Pileup Runner section. On Android this is the same set of options as the Pileup Runner setup screen, and it appears from the home screen's Settings only.

Reminders

SettingWhat it does
Daily reminderA 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.

Display

SettingWhat it does
Slashed zeroShow 0 with a line through it, the operator's convention for telling zero from O.

Leaderboard & Buddy

SettingWhat it does
Share scores to the shared leaderboardOff by default. With a display name set, finished runs in the ranked modes are posted to the shared leaderboard.
Display nameTwo to twelve characters, shown in capitals. Also what a buddy sees.
Delete my scoresRemoves everything the board holds about this device, including a buddy pairing.
Buddy streakInvite a buddy, join with a code, or leave. See Buddy streak.
Show buddy line on home screenOn by default. Off hides the buddy line on the home screen, and nothing else: the buddy list here and the daily reminder's nudge stay. The line only ever appears while you have a buddy.

Help & About

SettingWhat it does
Copy diagnostic infoCopies your app version, OS, device and current settings to the clipboard, ready to paste into a bug report.
AboutThree 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.
LicensesThe app's GPL notice and the notices of the code it includes.

−··−Hardware keys

You can key into the app with real hardware, not just the touch key (a straight key or paddles).

MIDI keys

Connect a MIDI Morse key, wired or Bluetooth, or a Vail Adapter, and it works anywhere the app accepts keying and anywhere you type an answer (see where a hardware key works, below). 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 iPhone, iPad, Mac and Android (not in the Windows and Linux beta). Android scans for them directly, with unplug detection.

iOS

On iPhone and iPad, pairing the key in iOS 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, Sending Practice, or the Sending Analyzer with Key chosen. Until you do, the app will correctly report no MIDI adapter even though iOS shows the key as connected.

Mac

On a Mac there is no pairing sheet inside the app; macOS connects Bluetooth MIDI keys for every app at once. Open Audio MIDI Setup (Applications › Utilities), choose Window › Show MIDI Studio, click the Bluetooth button in its toolbar, and click Connect next to your key. The same buttons that open the sheet on iPhone show these steps on the Mac. A USB key or a Vail Adapter needs none of this: plug it in and it works.

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 (Settings › Keys & Sending), speed (Settings › Speed & Timing) or tone (Settings › Sound) 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.

Where a hardware key works

A Vail Adapter or any other MIDI key, wired or Bluetooth, works in every mode where you answer by keying or by typing:

A few modes differ in the details. In Pileup Runner and Contest, keying CQ when no station is being worked calls CQ, and a keyed send isn't played back again by Key my side in Morse, since you already heard it as sidetone. In Daily Dit, five keyed letters make a guess. In Journey, keyed answers follow the same rule as Key answers in the choice quizzes. In Morse Defender, each character decoded counts as a key press on the on-screen keyboard.

A hardware key isn't used in Short Stories, Code Exam, Head Copy, CW Frogger or Listen & Learn.

A key the microphone hears

No adapter? In the Sending Analyzer the microphone can stand in for one: key your oscillator, keyer, rig or signal generator near the phone and the app times the tone. See Using the microphone.

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.

On a Mac the keyboard is always there, so all of this works with nothing to pair, and so do the games' letter keys.

··−−··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.

Mac: the same TestFlight beta covers the Mac (macOS 13 or later). Windows and Linux: free beta downloads from GitHub. See Desktop downloads for the links and install steps.

Android: it's free on Google Play.

Does it work on an iPad or an Android tablet?

Yes, as a proper tablet app, not a blown-up phone. Both turn to any orientation and run side by side with another app: Split View, Slide Over and resizable windows on iPad, split screen and freeform windows on Android. On a big screen the home menu shows its tiles four across, with Daily Dit beside Start here, First Four and Operating Procedure, and the drills, quizzes and text keep a comfortable reading width instead of stretching edge to edge. In a narrow window you get the phone layout.

On iPad, Settings opens with its categories in a sidebar beside the one you're in, Progress lists your characters and confused pairs two to a row, and the on-screen key is bigger. A keyboard works for answering as described under Hardware keyboards, and a Bluetooth MIDI key pairs the same way as on iPhone.

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 a Mac with a Bluetooth key, connect it once in Audio MIDI Setup; the steps are here.

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 › Help & About › 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.