Evolution of wireless communication protocols from Morse Code to the Internet

Author: Omar Metwally, MD

Date: 27 February 2025

Objectives:

– To write a brief history of Morse Code as it relates to amateur radio

– To describe how more complex wireless protocols evolved from Morse Code

– To highlight the importance of error detection systems in modern telecommunication

– To demonstrate the importance of Phase Shift Keying (PSK) in wireless communications

– To convey the lasting relevance and utility of Morse Code

Morse Code (MC) can be framed both as an analog and a digital technology. The question of whether it is one or the other is a good starting point for interesting debate and discussion. In fact, MC is one of the earliest and perhaps longest enduring digital encoding systems that is still in use today. In MC, each character is encoded as a sequence of “short” and “long” pulses, essentially rendering MC a digital binary system. I describe MC as “digital” in the sense that modern telecommunication, such as WiFi packets and Ethernet, exist on a physical level as binary modulations of analog media such as radio waves, light pulses, or voltage changes. An important difference between MC and WiFi/Ethernet, however, is that MC has traditionally relied on human “wet-ware” (i.e. the human brain) to both encode and decode MC. From my experience with software designed to decode CW and from my observations of proficient CW operators who can skillfully decode Morse using their ears and brain, a proficient human operator can easily outperform any decoding software that I’ve encountered. This is rare in the era of machine learning and accelerating computational power. A veteran amateur radio operator at my radio club can outperform any decoding software any day. In contrast, protocols like the highly complex TCP/IP, which forms the basis of the modern Internet, rely entirely on complex software, computers, routers, and modems to work.

There is genius in simplicity. International Morse Code encodes the 26 letters of the English alphabet as well as the accented e (“é”), the Arabic numerals 0-9, some punctuation and procedural signs (which are known as “prosigns” in the world of amateur radio). Although there are differences between American Morse Code and International Morse Code, this is a discussion of Morse Code in general. MC does not distinguish between upper and lower case. Short impulses are traditionally called dit’s, and long impulses are called dah’s – onomatopoeic representations of the 500-800 Hz audio tone that a Morse Code (also known as CW, or Continuous Wave in the context of radio communication) transmitter makes when a keyer is actuated. This is the basis for the stereotypical beeping melody conjured by popular culture’s references to Morse Code.

The duration of a dit defines 3 parameters:

– the duration of a dah

– the time interval separating dits and dahs

– the time interval between individual letters and words.

These characteristic temporal relationships allow trained human operators to decode MC at speeds upward of 70 wpm. While the duration of a dit can vary depending on the skill of the transmitting operator and/or the receiving operator, the other temporal relationships are fixed. Specifically, the duration of a dah is generally defined as 3 times the duration of a dit. The time interval separating two successive symbols (either dit or dah) is generally the duration of one dit. Letters are separated by a pause equal to 3 dit durations, and words are separated by a pause of 7 dit durations in length. Therefore, the duration of a dit is the atomic unit of a MC transmission and determines the transmission speed in words per minute.

The word “PARIS” is conventionally used to calculate transmission speed as a function of dit duration, as follows:

Let dit duration equal one (1) time unit. Therefore,

P=> . _ _ . (1+3+3+1=8 units, plus 1 unit between each symbol, equals 8+3= 11 units)

A=> . _ (1+3 units, plus 1 unit between each symbol, equals 4+1=5 units)

R=> . _ . (1+3+1 units, plus 1 unit between each symbol, equals 5+2=7 units)

I=> . . (1+1 units, plus 1 unit between each symbol, equals 2+1=3 units

S=> . . . (1+1+1 units, plus 1 unit between each symbol, equals 3+2=5 units

This yields a subtotal of 11+5+7+3+5 units = 31 units.

Each letter is conventionally separated by 3 time units, and words are demarcated by 7 time units. Therefore, the total length of PARIS becomes:

31 units (as calculated above) + 4*3 units (letter spacing) + 7 units (end of word) = 50 units.

This can be codified as follows:

Arguments: dit_length_ms (float): length of dit in milliseconds (ms)

Returns: words per minute (wpm), rounded to 2 decimal places

Comments are preceded by # in python.

units_per_word = 50 # for the word PARIS

dit_length_minutes = dit_length_ms / (1000 * 60) # 60,000 ms in a minute

word_time_minute = units_per_word * dit_length_minutes

wpm = 1 / word_time_minutes

If the above arithmetic is too dry, it should be noted that the word “dit” also happens to be the Vietnamese word for “fart” or “buttocks”.

First image: MC “straight key”, which requires manual operator timing (https://static.dxengineering.com/global/images/prod/large/kmk-sk-1_bi.jpg)

Second image: MC “dual-lever” paddle with two inputs for dits and dahs (https://chelegance.com/wp-content/uploads/2021/09/JNCRADIO-K1-1.png)

Third image: International Morse Code Alphabet (https://en.wikipedia.org/wiki/Morse_code#/media/File:International_Morse_Code.svg)

As amateur radio grew rapidly in popularity in the years and decades following World War II, so too did the use of MC. In fact, amateur radio operators were required to demonstrate proficiency in MC as part of the licensing process until the Federal Communications Commission (FCC) dropped this requirement in 2007. Many amateur radio operators learned MC during their military service. The versatility of MC made it a natural fit for military applications. Fundamentally, no equipment or electronics beyond the human brain are necessary in order to communicate via MC. MC can also take the form of light pulses. The U.S. Air Force trains 10 people every year to become proficient MC operators [http://swling.com/blog/2015/12/morse-code-training-in-the-air-force/].

Beyond the versatility and arguable human-centricity of MC, several other technical aspects further contributed to its popularity in amateur radio, even as voice modes (i.e. using one’s ears and voice to communicate over the air) emerged. First, CW uses less bandwidth than voice: 150-500 Hz versus 3 kHz for single side band (SSB) voice emissions. Practically, this means that simpler, cheaper radios can transmit and receive CW over long distances using less electricity than larger, more complex and more expensive radios which need a lot of electricity to power amplifiers in order for their voices to be heard over the same distance. Low-power, long-distance contesting using CW is still popular among many amateur radio operators today. The second technical aspect of CW which makes it a still-relevant, useful, and versatile modality is that CW is less susceptible than voice to ionospheric distortion. Concretely, this means more reliable performance in challenging environments or tactical situations. Whereas an operator’s voice tends to fade in and out on high frequency (HF) bands because of the way radio waves bounce around the Earth’s ionosphere, the pulse-like nature of CW allows humans and machines to still decode a CW transmission despite signal degradation as it bounces around the world. This is what allows me to hear and communicate with people from nearly every continent with just a long wire strung across my backyard and a transceiver running on only a few watts of power.

The Baudot Code (BC), invented in 1870 by Émile Baudot, was a widely used successor to MC and moved wireless telecommunications in the direction of fully automated digital communication. Although BC came into widespread use about 20 years after the introduction of International Morse Code, it is no longer used by contemporary radio operators. BC is a fixed-length code that encodes each character using 5 bits. This fixed-length encoding was instrumental to its automation and led to the evolution of encoding schemata such as ASCII and UTF-8, the most widely used encoding scheme in the modern Internet. As a side note, the term “baud rate,” which is familiar to anyone lucky enough to have used early dial-up modems that connected to phone jacks, is named after Émile Baudot. The term baud rate refers to the number of signal changes per second, rather than bits per second per se.

BC allowed for 2^5 (2 to the power of 5) unique characters. To expand the number of possible characters, two special “shift” or operational characters indicate a character as either a letter or a “figure”, effectively doubling the number of possible characters to 64. As another interesting side note, ASCII, the predecessor of UTF-8, allows for 128 unique characters by using 7 bits per character (2^7 = 128). In the early days of BC, operators used a 5-key keyboard to transmit a character, which was faster than sequentially producing one signal (dit or dah) at a time, as with MC. Moreover, messages encoded in BC could be automatically decoded and printed by a machine, unlike MC, which requires a trained human ear and brain to reliably decode in real-life conditions.

Personally, I am surprised by the fact that even the best decoding software available consistently underperforms CW veterans’ “wet-ware”. I hypothesize that this is due to two factors. One factor is the nature of MC, as I’ve referred to it, as a “human-centric” protocol: sequential pulses of an audible tone which stereotypically vary in duration to indicate a series of letters. Skilled CW operators are known to perceive MC-encoded words and phrases as discrete sound units [https://www.arrl.org/learning-morse-code]. In fact, Russian CW operators refer to MC-encoded letters as unique “melodies” [https://runivers.ru/bookreader/book9921/#page/1/mode/1up]. The second factor that I hypothesize has hindered software’s ability to accurately and reliably decode CW in real-life conditions, with fading and overlapping signals received from multiple stations transmitting (or spilling over) on the same frequency may be, ironically, the extremely rapid evolution of telecommunication protocols. As newer, faster, and fully automated digital modes, which automatically convert text into radio waves and back, were invented, MC became an increasingly niche mode. The result is that the pool of individuals who are both proficient in Morse Code (i.e. radio operators with decades of experience) and who are also skilled in developing software is not particularly large. Decoding MC may seem simple in theory and is in fact straightforward in a controlled laboratory setting; however for reasons touched upon earlier, decoding MC in real-life conditions is in fact very challenging. An AI-based approach to decoding MC may be an interesting and worthwhile pursuit for those so inclined.

To summarize the impact of BC on telecommunications during the golden age of MC, BC introduced certain improvements to MC such as faster communication speeds and fully automated digital communication. However, MC’s lasting advantage is, again, its human-centricity, that is, the ability of a trained human operator to send and receive messages using simple hardware and a little electricity – or even no equipment at all, beyond the “wet-ware” between one’s ears. The lasting legacy of MC for over a century and counting is a testament to its versatility and utility. Beyond the military and amateur radio, MC is still learned by boy scouts around the world as an important means of communication in emergency scenarios where conventional telecommunications would fail. MC is also still used as a navigational aid for maritime and aviation systems. Another important contemporary application of MC is its use by people with severe disabilities to communicate.

One notable shortcoming of MC, however, is its lack of error detection. Radio operators must constantly deal with sub-optimal conditions. Concretely, this means noise, multiple operators trying to communicate on the same or adjacent frequencies, and ever-changing propagation conditions. A band that is, for instance, open between the U.S. and France in one moment may close the next moment. The time of day, season, and solar weather are among many variables that influence radio wave propagation. The rhythmic beeps that characterize CW are constantly fading in and out and compete with one another. A strong signal can completely drown out a weak signal. If I key something like: “CQ CQ CQ DE KF8AYH K” (essentially a call to all stations signed by my FCC-issued callsign), an operator across the ocean may hear, for example, “CQ CQ CQ DE KX8AIH K.” Characters get garbled, confused, or lost all the time as signals fade in and out. There are literally infinite ways that a finite-length message can be received with errors (or not received at all!). Try to imagine the unimaginable chaos of using WiFi if bits were randomly flipped or dropped while we surfed the web – without even knowing that the data we are receiving is accurate or complete! Not knowing the difference between “THE STORM IS OVER” and “THE STORM IS NOT OVER” would render telecommunications useless in a best case and detrimental in a worst case.

Fortunately, innovative minds have invented ways to detect and even correct errors in message transmission. One of the first and simplest methods of error detection is the use of a parity bit to make the total number of 1’s in a binary (1’s and 0’s) data block even (“even parity”) or odd (“odd parity”). In its simplest form, the receiver can count the number of 1-value bits received and check that this number corresponds to the parity bit. This simple form of error-checking can only detect single-bit errors, but it can easily miss half of errors that occur in real-life telecommunications. This includes errors involving an even number of bit flips. Parity bit error detection only has the potential to detect a single-bit error, but it cannot be used to identify which bit is wrong, nor can it correct a wrong bit.

Parity bit error detection is fast, simple, and imperfect, and therefore its utility lies in situations where simple, fast error-checking is necessary (for instance, in simple serial communication). It is often combined with other error-checking methods in modern-day telecommunications.

Cyclic redundancy check (CRC) is a more robust method of error checking that is widely used in modern telecommunications, networking, computing, and satellite communication (satcom). Anyone who has used a computer or connected to the internet has benefitted, probably unknowingly, from CRC’s utility. As with HF radio, satcom also uses radio waves to send and receive data, albeit with particular nuances. Bits routinely get flipped, scrambled, and lost in any form of radio communication. Fundamentally, CRC handles data as a large binary number and divides this number by a predetermined polynomial [https://web.archive.org/web/20110719042902/http://sar.informatik.hu-berlin.de/research/publications/SAR-PR-2006-05/SAR-PR-2006-05_.pdf]. The remainder, referred to as the checksum, is used to assess a received data packet for fidelity. Polynomial division is typically performed via shift registers and XOR gates and is optimized for the receiver’s hardware. This means that CRC can be performed very efficiently without large computational overhead because binary-based digital computers (all hardware in use today, with few exceptions) can do these polynomial calculations efficiently. CRC is much more precise and accurate than parity bit-based error checking and can detect a much wider range of error types. CRC can be calculated on streaming data, making it very useful for a variety of data, from satellite packets to USB, Bluetooth, WiFi, and Ethernet.

Other forms of error detection which are worthy of mention are checksums (e.g. simple checksums and Fletcher checksums) and hash functions such as MD5 and SHA. Error detection is often a trade-off between error detection capability and computational speed. While a hash function such as SHA can detect errors much more accurately than a simple checksum, hash functions are much slower than checksum and CRC due to their mathematical complexity [https://patents.google.com/patent/US6829355B2/en]. Therefore, a highly accurate error detection algorithm with high computational overhead may not be feasible or practical in situations where data is being received at a fast rate.

Bits can be flipped (or entirely fabricated) either by accident, as with ionospheric distortion, or intentionally, as in recent examples of GPS spoofing, in which false GPS coordinates are broadcast to aircraft or maritime vessels to deliberately misguide them [https://www.csoonline.com/article/567233/what-is-gps-spoofing-and-how-you-can-defend-against-it.html]. The concept of error detection systems dates back to WWII-era military communication. These early military applications were focused on detecting jamming and interference. The first application of a formal error detection system in the civilian context has been attributed to IBM’s Synchronous Transmit-Receive (STR) protocol, which dates back to 1960 [http://bitsavers.org/pdf/ibm/datacomm/A22-6527-1_7701_Jul61.pdf, https://ia902807.us.archive.org/28/items/bitsavers_dataprocoms2760IBMBSC_3043760/2760_IBM_BSC.pdf]. STR eventually evolved into IBM Binary Synchronizing Communication (BSC, or Bisync), the details of which are not directly relevant to the discussion at hand, beyond pointing out that these protocols used CRC and longitudinal redundancy check (LRC) for error detection. Interestingly, BSC also used special control characters such as SYN (start character synchronization), ACK (acknowledge), and NAK (negative acknowledge), which are heavily used in modern-day TCP/IP.

The evolution of MC into BC, a fully digital binary code, and the invention of error detection systems such as CRC, are milestones that paved the path for modern-day networking, telecommunications, and the Internet in its current form. Another milestone discovery in this evolution from MC to TCP/IP and modern telecommunications is Phase-Shift Keying (PSK) [https://patents.google.com/patent/US2085940A/]. While STR was designed to handle data packaging and error-checking, PSK was designed to modulate the physical signals that represent and carry data. That is, STR and PSK operate on different layers of a networking protocol and solve different problems, but their parallel growth and evolution overlap in time, particularly during the 1960s. Together, they comprise a complete communication protocol [https://www.iso.org/standard/20269.html].

Whereas the STR layer handled the packaging and movement of data blocks, assessing their integrity, and managing data flow using control characters, the PSK Layer was focused on representing bits as shifts in a radio wave’s phase. Although these shifts occur sequentially, they can be used to transmit data at rates many fold greater than MC. Binary PSK (BPSK) used 2 phases (0 degrees and 180 degrees), whereas later and more complex variations on PSK such as Quadrature PSK (QPSK), multiplied data rates without sacrificing reliability. PSK is also integral to software-defined radio (SDR), which is driving a rapid shift from hardware-based radio circuitry to software-modulated functionality [https://wiki.gnuradio.org/index.php?title=Guided_Tutorial_PSK_Demodulation. PSK31 is a data mode used in amateur radio because of its excellent weak signal performance and, compared to CW, relatively high baud rate (31.25 baud rate). PSK31 also has a remarkably narrow bandwidth of approximately 60 Hz [https://www.arrl.org/psk31-spec]. Today, permutations of PSK are an integral part of virtually all WiFi routers and receivers, satellites and satellite antennas, digital TV, cell phones, and high speed internet. A discussion of the mathematics of PSK, while fascinating and worthy of further study, is not a primary goal of this essay [https://www.eecs.umich.edu/courses/eecs555/lect06.pdf].

One of my favorite aspects of practicing medicine is understanding and connecting with my patients as fellow humans: learning how they earn their livelihoods, how they spend their spare time, and whom they spend their time with. This aspect of doctoring is not only interesting, it’s also very important to understanding why/how a person ended up in the hospital and how to keep them out of the hospital. I once had the privilege and pleasure of caring for a gentleman who began his career as a communications engineer by serving in the U.S. Army as a PSK operator in preparation for deployment in Vietnam during the 1960s. As a fresh high school graduate, he learned to manually operate radio circuitry to effect radio wave phase shifts and transmit data. He never did get the chance to apply this skill abroad due to the complexity of a PSK setup back then and all the equipment that would need to be deployed and operated in a jungle. Ultimately, despite the theoretical advantages of PSK, the simplest, cheapest, fastest, and most versatile digital method was favored in war: Morse Code.

I reflected on his stories later that day, after I hung my white coat, signed my notes, and celebrated the start of the weekend by firing up my radio to make CW contacts.


Note: This article was originally written for my radio club’s monthly newsletter, “The Hertzian,” and was first published there on 16 March 2025.