Morse Code Tree
In the Morse code tree, a dot takes the left branch and a dash the right, so the path from Start spells each character’s code. Walk it with Dot and Dash, find any character, hear it, or print the chart.
Mode
Characters
Layout
Start
Tap Dot or Dash, or any character in the tree.
Keys: . dot, - dash, Backspace back, Esc start over.
Dot: left branch. Dash: right branch. Empty rings have no character in this set; dashed circles are not in the ITU standard.
Save or print the tree
Saves the characters and layout shown. Print blank adds the answer key on a second page; for a PDF, choose “Save as PDF” in the print dialog.
How to use
Press Dot or Dash, or the
.and-keys, to walk down from Start. You can also tap any character in the tree.Read the panel: the character, its code, how it sounds, its path from Start and the two branches below it.
To find a character or word, type it in Find. The tree jumps to it, and Play word lights each letter as it sounds.
Switch Mode to Hear and find. Press Play a character, walk to what you heard, then press Check.
Pick the characters and layout you want, then Download PNG or SVG, Print, or Print blank for a tree to fill in with its answer key.
What it does
An interactive Morse code tree of International Morse, from the site’s own code table, that you can walk, search, hear and print.
- Four setsLetters (the Morse code alphabet tree, 26), + Numbers (36), + Punctuation (54: every character and signal of ITU-R M.1677-1 up to six elements) and + Extensions (69, with common non-ITU symbols and accented letters, marked).
- Walk and readEach step shows the character, its code, how it sounds (dah-di-dah), its path and the next branches, with a link to the character’s own page.
- SoundEach step plays the code. Speed, tone and volume are the trainers’ shared sound settings.
- FindType a letter, number, symbol or word, up to 40 characters, to see each path. Prosigns go in angle brackets, like
<SK>. - Hear and findThe listen-and-trace exercise scouts do with a printed chart, with a score. Hide the letters to make it harder.
- Print and saveThe Morse code tree chart as PNG or SVG, or printed. Print blank gives a tree to fill in, then the answer key. Top down, or Sideways to fit a phone.
How it works
The rule
Start at the top. Each element of a code moves you one level down: a dot to the left branch, a dash to the right. A code with n elements sits on level n, and level n has room for 2ⁿ codes: 2, 4, 8, 16, 32, 64. The 26 letters fill the first four levels, 30 slots, and leave four empty in International Morse: ..--, .-.-, ---. and ----, which national tables use for Ü, Ä, Ö and CH. The digits sit on level 5 and most punctuation on level 6. Every code is from ITU-R M.1677-1, the standard for International Morse.
A binary tree with a catch
Each node has at most two children, one for a dot and one for a dash, so the Morse code binary tree is a true binary tree. But in a Huffman tree every letter sits on a leaf, and in Morse most letters sit on branches: E (.) is the start of A (.-), and A of W (.--). Morse is not a prefix code, so the receiver needs a gap to know a letter has ended.
The gap is the third symbol
Morse is sent with two states, on and off, but it uses three gaps. One unit separates the elements of a letter. Three units end the letter: on the tree, write down where you are and go back to Start. Seven units end a word. So -.- with short gaps is K, while the same elements with letter gaps are T E T. The timing follows ITU-R M.1677-1: a dash is three dots long.
Why E and T are at the top
The shortest codes went to the commonest letters. Alfred Vail estimated English letter frequency by counting the type in the type cases of a newspaper in Morristown, New Jersey (Wikipedia, Morse code). E and T got one element each and sit on level 1; rarer letters such as Q, Y and J sit on level 4.
The tree in code
Stored as an array, the tree needs no pointers: node i has its dot child at 2i and its dash child at 2i + 1, so walking a code is one line of arithmetic, and the bits of a letter’s position are its code. This Python decodes and encodes the 26 letters; extend the string to 64 or 128 characters for the numbers and punctuation.
# Levels 1 to 4 of the tree as one string: node i has its dot
# child at 2*i and its dash child at 2*i + 1; "*" is an empty slot.
TREE = "**ETIANMSURWDKGOHVF*L*PJBXCYZQ**"
def decode(code):
i = 1 # Start
for element in code:
i = 2 * i + (element == "-")
return TREE[i]
def encode(letter):
i = TREE.index(letter)
return bin(i)[3:].replace("0", ".").replace("1", "-")
print(decode("-.-"), encode("P")) # K .--.Examples
Every level of the tree with the + Punctuation set (every ITU character and signal up to six elements):
| Level | Slots | Characters | On this level |
|---|---|---|---|
| 1 element | 2 | 2 | E T |
| 2 elements | 4 | 4 | A I M N |
| 3 elements | 8 | 8 | D G K O R S U W |
| 4 elements | 16 | 12 | B C F H J L P Q V X Y Z |
| 5 elements | 32 | 18 | 0 1 2 3 4 5 6 7 8 9 É / ( = + KA AS SN |
| 6 elements | 64 | 10 | . , : ? ' - ) " @ SK |
Check two walks by hand:
- K,
−·−: the dash takes you right to T, the dot left to N, the dash right to K. - 5,
·····: five dots, always left, through E, I, S and H. It is the bottom-left corner of the numbers; 0 (−−−−−) is the bottom right.
Frequently asked questions
About the Morse code tree
A Morse code tree is a chart of International Morse as a binary tree: from Start, each dot takes one branch and each dash the other, so the path to a character spells its code. E and T sit on the first level, the other letters on the next three, the digits on the fifth and most punctuation on the sixth. Some teachers call it a decoding tree.
Its codes form one: every node has at most two children, a dot and a dash, and no code appears twice. Unlike a Huffman tree, though, most letters sit on inner nodes, not on leaves: E (.) is the start of A (.-). So the tree only works with the gap that ends each letter, which tells you to stop and go back to Start.
Not quite. It is sent with two states, on and off, so it can be written as binary, but the meaning is in the lengths: a dot of one unit, a dash of three, and gaps of one, three and seven units inside a letter, between letters and between words. The gaps work as extra symbols: on the tree, the letter gap sends you back to Start.
Start at the top. For each dot, move down the left branch; for each dash, the right. When the letter gap comes, the node you are on is the letter: write it down and go back to Start. A longer gap means a new word. Hear and find on this page trains exactly that, with a score.
On the fifth level: every digit has five elements. 1 to 5 start with as many dots as the digit, then dashes; 6 to 9 start with one to four dashes, then dots; 0 is five dashes. So 5 (.....) is five steps left, the bottom left of the numbers, and 0 (-----) five steps right. Pick + Numbers to see them.
Use it to see how the code fits together and to look up a character, then learn by ear. Morse Code Ninja's advice is plain: "Don't use a Morse code tree or any other kind of visual representation to learn Morse code." ARRL says to learn each letter by the way it sounds. The Koch method course teaches every character as a sound.
Yes. Type it in Find: each letter becomes a chip with its code, and the tree jumps to the last one. Play word sounds the whole message and lights each letter's node as it plays. I LOVE YOU uses eight letters, all on the first four levels. For the phrase itself, see I love you in Morse code.
Trust and limits
The tree is drawn in your browser from the site’s own Morse table, the one the translator uses. Nothing is uploaded. Codes follow ITU-R M.1677-1; the + Extensions set adds symbols and accented letters that national tables use, drawn with dashed circles.
The tree stops at six elements, so $ (seven) and the error signal (eight dots) are left off. American Morse can’t be drawn this way: some of its letters have spaces inside and longer dashes. Maintained by Translate Morse Code, an independent site; last updated October 2026.