Skip to content
This repository has been archived by the owner. It is now read-only.


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

This is an archived resource. The repo will remain available but the resource will no longer be maintained or updated. Some or all parts of the resource may no longer work. To see our latest resources, please visit

Morse Code Virtual Radio

How to program your Raspberry Pi to send, receive and decode Morse.

2014 marks the 100th anniversary of the declaration of World War 1, which began on the 28th of July 1914. Over 16 million people lost their lives and 20 million were injured, making it one of the bloodiest conflicts in human history. It became known as the Great War and, subsequently, the First World War. To commemorate this event, we've come up with a way for you to simulate and experience the main form of radio communication that was used back then. Imagine being alive one hundred years ago, and sending and receiving messages that could mean life and death using only tones!

Note: This resource uses International Morse.

Lesson objectives

  • Understand what Morse Code is
  • Understand how Morse was used for communication
  • Understand how to send and receive Morse
  • Understand a pull up circuit
  • Understand a pull down circuit
  • Understand multithreading

Lesson outcomes

  • To have programmed the Raspberry Pi to create Morse Code tones
  • To have sent and decoded messages in Morse Code
  • Gained experience in Python programming
  • Gained experience using the Raspberry Pi GPIO pins
  • Gained experience in multithreaded programming



Morse Code key options

A real Morse Code key will bring this project to life, especially if you can acquire an antique one. These can often be found in local antique shops all over the country. Alternatively you can also buy one online; see the links below.

  • Buy new online (try nevada radio)

  • Find an antique (try eBay)

    Make sure it works!

  • Make your own!

Worksheet & included files

  • The worksheet

  • (Optional) Final version of Python code and

    • Download to your Pi with the following commands:
    wget -O --no-check-certificate
    wget -O --no-check-certificate
    sudo python


Unless otherwise specified, everything in this repository is covered by the following licence:

Creative Commons License

Morse Code Virtual Radio by the Raspberry Pi Foundation is licensed under a Creative Commons Attribution 4.0 International License.

Based on a work at


Learn morse code for the centenary of World War I







No releases published


No packages published