Morse Code, Properly Explained
Morse code was developed by Samuel Morse and Alfred Vail between 1836 and 1844. It is now nearly two centuries old, has outlived telegraphy itself by half a century, and is the only character encoding still routinely transmitted between humans without a computer doing the encoding. The fact that the most common letter (E) is the shortest signal (a single dot) is not a coincidence β it's data compression worked out from a print shop's letter trays a hundred years before David Huffman formalized it as theory.
Morse code is the only thing in this entire blog that predates the electric grid. It was designed for the telegraph β a single-wire current-loop carrying signals between operators who keyed them by hand and decoded them by ear. Every later electronic communications technology made Morse obsolete, and yet Morse hasn't gone away. Pilots fly to airports whose names beam in Morse from the navigation aid. Hams chat in Morse on shortwave at 25 words per minute. The submarine cables that carry the modern internet were laid by ships descended from Morse-era telegraph cable layers, and the network they replaced spoke Morse.
This post is for the person who looks at ... --- ... and wants to understand the system around it.
The two Morses
The Morse code most people learn today is International Morse, formalized by the ITU in 1865 and largely unchanged since. There was an earlier American Morse (also called "Railroad Morse") used in North America until roughly 1900, with a different code chart, longer dashes, and internal spaces inside characters. They are not interchangeable; an American Morse operator and an ITU Morse operator hearing each other's transmissions get mostly garble.
When this post says "Morse," it means ITU Morse. American Morse is a museum piece.
The ITU Morse alphabet covers 26 letters (no case distinction), 10 digits, a small set of punctuation, and a set of prosigns (procedural signals β stop, error, end of message). Latin script only; non-Latin alphabets have local variants (Cyrillic, Greek, Arabic, Japanese kana via Wabun code).
The four timing units
Morse has only two symbols β short (., "dit") and long (-, "dah") β but four durations that all matter:
- Dit length: 1 unit.
- Dah length: 3 units.
- Intra-character gap (between dits and dahs of one letter): 1 unit.
- Inter-character gap (between letters of one word): 3 units.
- Inter-word gap (between words): 7 units.
That's the full timing model. A human transmitting Morse holds these ratios approximately; software-generated Morse hits them exactly.
The "unit" itself is determined by speed. Words per minute (WPM) is the standard speed measurement, calibrated against the word PARIS (which is conventionally taken to be 50 units long). 20 WPM means PARIS-equivalent at 1000 units per minute, so each unit is 60 ms. Casual hams operate at 15β25 WPM; contest operators routinely exceed 40 WPM; some champions decode 60+ WPM by ear, which is roughly the speed of normal English speech.
When you see Morse "decoding" software fail on hand-keyed transmission, the failure is usually in the timing variation β a real human's dits and dahs aren't 1:3 exactly, and they get faster as they warm up. Software has to track the timing, not assume it.
The chart, sorted by frequency (and why)
Here's an unconventional way to look at the alphabet β by encoded length, ordered by English-language frequency:
| Length | Letters | English freq |
|---|---|---|
| 1 element | E (.), T (-) |
E β 12%, T β 9% |
| 2 elements | I, A, N, M | high |
| 3 elements | S, U, R, W, D, K, G, O | mostly high |
| 4 elements | H, V, F, L, P, J, B, X, C, Y, Z, Q | mostly low |
Morse and Vail did this on purpose. They visited a print shop, counted the letter trays β typesetters keep the most-used letters in the largest compartments β and assigned the shortest codes to the most-used letters. E is one dit. T is one dah. Z is --.. and Q is --.- because they're rare. This is prefix coding (no code is a prefix of another) optimized by frequency, which is exactly the principle Huffman coding describes β except Huffman published the optimal algorithm in 1952. Morse and Vail did it by inspection a hundred years earlier and got close to optimal.
The digits are uniform 5-element codes:
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
Easy to learn (count the dots from one end), inefficient by frequency (digits aren't equiprobable in real text), but a clean system.
Punctuation and the things you don't expect
The full ITU set includes:
.period:.-.-.-,comma:--..--?question mark:..--..!exclamation:-.-.--/slash:-..-.(,)parens:-.--.,-.--.-&ersand:.-...:colon:---...;semicolon:-.-.-.=double dash (separator):-...-+plus:.-.-.-hyphen:-....-_underscore:..--.-"quotation mark:.-..-.$dollar sign:...-..-@at sign:.--.-.
The @ sign was added by the ITU in 2004, the only addition to the Morse code chart in over a century. It was added because hams started exchanging email addresses on the air. The encoding (.--.-.) is "AC" run together β there was no convention for it before, and the ITU finally gave it one.
Prosigns: the invisible vocabulary
Prosigns are short combinations used as procedural markers, not transmitted as letters. Some are written with a bar over them (SK with a top bar) to indicate "this is one symbol, not two."
| Prosign | Meaning | Code |
|---|---|---|
| AR | End of message | .-.-. |
| SK | End of contact | ...-.- |
| BT | New paragraph / break | -...- |
| KN | Invitation to specific station to transmit | -.--. |
| K | Invitation to any station to transmit | -.- |
| AS | Wait | .-... |
| HH | Error (8 dots) | ........ |
| SOS | Distress | ...---... |
SOS is the only one almost everyone knows, and it's almost never sent in Morse anymore β modern distress signals use GMDSS (digital). The historical importance is real: during the Titanic sinking in 1912, the ship sent both CQD (the older distress call) and SOS (newly adopted), and SOS won out because it was unambiguous and could be sent quickly.
The "error" prosign β ........ β is just eight rapid dits. If you hear an operator make a slip, they send eight dits, then start the bad word over. It works because no real letter or punctuation is eight dits long.
Where Morse is still used
The Coast Guard stopped monitoring 500 kHz Morse distress in 1999. Commercial maritime and aviation moved off Morse decades ago. Yet:
- Aviation navigation aids broadcast their callsigns in Morse on a loop. A pilot tuning to a VOR or NDB hears
... .-. -..-.and confirms it matches the chart, ensuring they're tuned to the right beacon and not a spoofed or misidentified one. Pilots are taught to recognize the three-letter callsign of their primary navaids by ear. - Amateur radio keeps Morse alive socially. CW (continuous wave) operation is still the most spectrum-efficient digital mode you can do with simple equipment, popular for QRP (low-power) and DXing (long-distance contacts).
- Special-needs communication. Morse over a single switch is one of the lowest-bandwidth assistive-tech inputs, used by people with severe motor impairments β Stephen Hawking-era technology. Modern eye-tracking has mostly replaced it, but the technique remains.
- Cultural references and easter eggs. Watch face designs, jewellery, songs (Morse stretches of the Mission Impossible theme, the chorus of Rush's YYZ spelling YYZ in Morse). The format is iconic enough to function as visual signal.
How operators actually copy Morse
Beginners decode Morse one symbol at a time β count the dits, hear "dit-dah," translate to "A." That's slow; it caps out around 5β10 WPM.
Experienced operators decode at the word level. They don't think "dot-dot-dash, U, dot, E, dot-dot-dot, S," they think "USES." Above 25 WPM, decoding letter-by-letter is impossible β there's not enough time between characters to think. The brain treats each Morse word as a single auditory pattern, the way fluent readers don't read letter-by-letter.
This is also why software-driven beginners' tutors use the Koch method: start with two characters at full target speed, drill until you can copy them, add a third character, repeat. Slow Morse is harder to copy for fluency than fast Morse, because at slow speeds you hear individual dits and dahs (which is the wrong skill); at fast speeds you hear word-shapes (which is the right one).
Common pitfalls (in software, in operation, in life)
- Forgetting the inter-letter and inter-word gaps. A common new programmer's error: encoding
HELLO WORLDand forgetting that the space betweenOandWis seven units, not one. - Using ASCII to compare Morse. A space-separated
.... . .-.. .-.. ---is not the same as.... . .-.. .-.. ---β the second has different gap lengths. Most decoders use a single space between letters and/or(three spaces) between words. - American Morse leaking in. Old radio handbooks and films sometimes show American Morse (with internal spaces inside characters). Don't trust dramatized depictions.
- Encoding non-ASCII characters. Morse is Latin-only in its core. Wabun code (Japanese) uses the same dits and dahs but assigns them to kana, and is incompatible with regular Morse.
- Speed mismatched to the receiver. A 30 WPM transmission to a 10 WPM operator is just noise. Hams ask for QRS (slow down) and QRQ (speed up). Software decoders usually adapt automatically.
- Hand-keyed timing variation. Real human Morse keying drifts. Decoders that lock onto a fixed unit length will fail; adaptive ones tracking the rolling median work.
- Missing the SOS-as-prosign nature. It's transmitted as one continuous nine-element pattern with no inter-letter gaps, not as
S-O-S. Software encodingSOSletter-by-letter produces a slightly different signal.
When you'd encode something in Morse on purpose
There's only one scenario where encoding-to-Morse is the right answer rather than a curiosity: you're talking to someone (or a device) that explicitly speaks Morse. Amateur radio operator. Pilot studying for an instrument rating. A novelty hardware project. A film prop with period accuracy.
For everything else β the format is a beautiful artifact, a living connection to the first electrical communications, and a small example of what can survive when the technology around it changes completely. The dots and dashes you can hear on a 7 MHz receiver tonight are the same code Vail tapped out in 1844, with @ added in 2004.
That's a stable spec. Modern engineers should be so lucky.
Encode and decode Morse instantly
The Morse tool on this site converts text to and from ITU Morse code in the browser, with full support for letters, digits, punctuation, and prosigns. Useful for amateur radio prep, ham license study, or just decoding the dots on a watch face. Nothing leaves your browser.
Open the Morse toolRelated guides
Keep the session useful with adjacent reading instead of exiting after one article.
QR Codes, Properly Explained
How QR codes actually work β finder patterns, Reed-Solomon error correction, static vs. dynamic redirects, and the real reasons codes fail in print.
Base64, Properly Explained
A 1989 hack for smuggling binary through 7-bit email transports β and why we still use it for JWTs, data URIs, and a hundred other places. Two alphabets, one common decode failure, and the things it categorically isn't.
URL Encoding, Properly Explained
Why %20 and + both mean space, why encodeURI and encodeURIComponent are not interchangeable, and how the HTML form spec quietly invented its own incompatible variant. RFC 3986 vs application/x-www-form-urlencoded.