Introduction

Morse Code for Android is a free application created by Pavel Holeček. The application has a variety of useful functions. Besides translation of texts, it also supports teaching so you can learn the Morse code yourself. Moreover, it has a manual sending function (you can send using the speakers, flashlight, or vibrations) and a list of Morse codes and Q-codes. It is highly customizable and supports also many local versions of Morse code. Because the app has been created as a non-profit project, everything is free and without ads.

Download

QR code

Google Play

Download Morse Code application from Google Play. You can also scan the following QR code from your phone.

Get it on Google Play
QR code

Huawei AppGallery

If you have a Huawei devices can also download Android version of the this app from Huawei AppGallery.

Explore it on AppGallery

Requirements

Android 5.0 or newer is required.

Detailed user guide

Even though the user interface of the app is quite intuitive, you can find a detailed user guide in the following sections. It can help you navigate through all parts of the app and you would not miss any minor function that can be a little bit hidden.

Use the Menu button (three horizontal lines) in the upper left corner of the screen to access various functions.

Translator

It is very easy to translate any text with this application. Just start typing. The application determines automatically if you have typed a Morse code and you want to translate it to the text or vice-versa. The text is translated as you type. While Morse code does not distinguish between upper and lower-case letters, this application has an intelligent formatting, which makes sure that the sentences will start with an upper-case letter.

When you type a Morse code, buttons for adding a dot and a dash appear. This application uses a slash (/) to divide individual letters by default. The words are divided by two slashes (//). This is much easier to read compared to the alternative that uses spaces as separators. However, if you prefer spaces, you can customize this in the Settings menu.

It is easy to get a text for the translation into this application. You can paste it from the clipboard. This app supports also sharing between applications. So you can select for example any text message in your phone and send it through the Share feature to the Morse code application. The message is translated immediately. And again, the app will determine automatically if the message should be translated from or to the Morse code.

The final translation can be shared just as easily. You can copy it to the clipboard or you can use the Share button to send the translated text to another application such as Facebook.

The Morse code can be also transmitted using the speaker, flashlight or vibrations. You can adjust the transmission speed, frequency and other parameters in the Settings menu.

The translator supports also amateur radio Q-codes. When you enter a Morse code and a Q-code is found in it, the meaning of this Q-code is added next to it in the brackets. This function can be turned off in the settings if you do not want to use it.

Tip: There are many icons. A long tap on any of them reveals a help text describing what the icon does.

Tip 2: If you are translating a Morse code and the result is not correct, please check in the Settings if the correct separator for Morse code is set (a space or a slash) and if the correct version of Morse code is set (select International Morse code if you want the result in Latin characters).

Other functions: In the upper right corner of the screen, there is an "Other" button. Tap on it to open a menu with other functions that can be useful for training Morse code on longer texts.

  • You can find there a random text generator.
  • There are also functions for hiding the text and/or its translation. You can for example generate a random text, hide it or its translation, and try to translate it on your own. You can also let the app to transmit the hidden text using the speaker so that you can practice listening. You can reveal the text any time to check if your guess was right.
  • A few simple ciphers are also supported. You can swap the dots and dashes, reverse the Morse codes, or you can choose a password and encrypt your message using Vigenère cipher. Please keep in mind that this is an older cipher intended for games or having basic privacy on a public channel. It is not suitable for transmitting secrets. However, it is much more convenient for Morse code than modern cryptography methods because it is more forgiving to mistakes - each incorrectly transmitted Morse code will corrupt just one character in the decrypted message, while the modern methods could make the whole message unreadable in case of a single mistake.
  • The menu item Generate audio file generates an audio for the message that you have in the translator and saves it as an audio file. A dialog is shown that summarizes the duration of the audio in minutes and seconds and also the estimated size of the file in MB. You can select also the preferred format in this dialog. By default, WAV files are generated. This format is simple and well-supported. Its disadvantage is that it is not compressed so it can be quite large for longer messages. You can select the M4A (MP4 audio) format instead in this case. It can take longer to generate it but it will be much smaller. Android 8 or newer is required for compression to M4A. After confirming this dialog, you can select where you would like to save the file. If you need to adjust the speed, tone frequency or other parameters, you set them on the Settings page (accessible through the main menu).
Translator
Translator
The translated message can be transmitted using the speaker, flashlight or vibrations.
The translated message can be transmitted using the speaker, flashlight or vibrations.

Learning

Besides translating Morse code, this application can also teach you the Morse code.

The learning is divided into levels. In the first level, there are only two simplest letters (E and T). In every other level, a new letter is introduced. The letters are added from the simplest ones to the more complex ones. This way you can learn all letters, continuing with numbers and other special symbols.

Before you start learning, you can choose various parameters such as:

  • Level - The choice of the level is completely up to you. There are pre-defined levels, which are sorted so that you would learn the easiest Morse codes first and you would continue with gradually more difficult Morse codes. If you are a complete beginner, select the first level.

    If you want to learn a specific set of characters instead (e.g. only all numbers) and none of the standard levels fits your needs, you can tap on the Custom button and select a custom set of characters. Click on any of the characters to select it, or unselect it. When you are ready, confirm your choice with the OK button below. Later, you can click on the Edit button to change your choice of characters, or you can click on the Cancel button to discard the characters that you have selected and return back to pre-defined levels.

  • Mode - There are three modes available. They affect the way how Morse codes are presented to you. The default value is Normal mode. In the normal mode, the Morse code is both displayed on the screen and played using the speaker at the same time. This way you are also memorizing the sound of the Morse code, which is very important for the learning. If you don't want to disturb people around you and you do not have any headphones, you can choose the Silent mode. In the silent mode, the Morse code is displayed on the screen without playing it automatically (you can still click on the Play button to play it manually). And finally, if you want to make the learning a little more challenging, you can try Listening exercise mode. In this mode, the Morse code will not be displayed at all and you will need to recognize it only by its sound. Because different modes affect only the way how Morse codes are presented to you, they are applied only when you are translating a Morse code to plain text. In the opposite direction (plain text to Morse code), the setting is ignored.
  • Direction - You can choose if you want to translate a text to the Morse code, a Morse code to the text, or both.
  • Answers - You have two possibilities how you can answer the questions. The first possibility is, that you can type the full answer into a text box. The second way is that a few possible translations are presented to you and you just choose one of them. This way, you can answer the question quickly without typing.
  • Other parameters that are used for the whole application can be found in the Settings menu. You can adjust the sound settings (speed, frequency, and volume) there. The sound settings can be modified also in the middle of the learning process (click the Menu button in the upper left corner, choose Settings, modify the sound settings and then click the Menu button and select Learn to return back). You can also choose in the Settings if you want to have a certain time limit for answering the question, or you can fine-tune the behavior of the app during learning (for example, if the app should present you a new question immediately after answering the previous one). It is also possible to select that you want to use vibrations instead the sound for learning. This is important to make the Morse code learning accessible also for people with hearing problems. Finally, you can choose the version of the Morse code that you want to learn in the Settings. Basically, learning International Morse Code is recommended. This is the official one. But the app supports also many local versions of the Morse code (for example, Greek, or Russian that do not use the Latin script).

Start the learning by tapping on the "Start learning" button. You are presented a letter, or a Morse code. If you have chosen that you want to select an answer instead of typing it, up to 6 possible translations are presented to you and you just select the correct one by tapping on it. Alternatively, if you have selected that you want to type the full answer, you should fill in the translation into a text box.

The Morse codes are selected randomly but each code can have different probability of being chosen. The new codes are selected more often than the old ones. The numbers of correct and incorrect answers for each code are also taken into account so the difficult codes will appear more often. The application is intelligent and it can also handle cases when you mistake one Morse code for another one. For example, if "-." appears and you translate it as "A" instead of "N", the application increases probability for both "A" and "N".

When you feel confident that you can translate all the letters from the current level easily, just tap the button to move to the next level and a new character will be added. Moving to the next level is up to you.

You can stop the learning any time by tapping on the "Stop learning" button. The results are then presented to you. You will find there the overall number of correct and incorrect answers, how much time did you spend with the learning, and what was the average time for answering the questions. Moreover, detailed statistics for each Morse code are also provided (total number, number of correct and incorrect answers, average answer time). You can order the results table by tapping on the header of any of its columns. If you tap on the same column header again, the results will be ordered by this column but in the opposite order. This way, you can order the results so that, for example, the characters with the most mistakes would be listed first.

Learning tip:

  • Leave the sound turned on whenever you can. If you want to receive the Morse code in a normal speed, then a lot of listening is the key. Your brain should build a direct connection between the sound and the corresponding Morse code - almost like a reflex without thinking. Because when the letters will go one after another in a quick pace, there will not be enough time for thinking.
  • Set the transmission speed to your target speed. If you plan to be able to receive 20 WPM (words per minute), set this speed also for learning. Starting with a much slower speed is generally not recommended. The reason is that the Morse code in, for example, 5 WPM sounds very different compared to 20 WPM, so by setting a much slower speed you are learning a "wrong" sound.
  • When you are ready, start practicing also translating longer texts. If you already know all individual letters, you can switch to the translator and tap on the three dots icon in the upper right corner there. This icon opens a menu with other function that can be used for training. The app can generate a random text for you. You can hide it and let the app to transmit it using the speaker. This way you can practice listening. Any time, you can reveal the text to check if your guess was right. It is very likely that you will find out it is very difficult to recognize longer texts because the characters are transmitted too fast. In that case, go to the Settings, enable Farnsworth speed there and set it to a low value. For example, leave the default speed of 15 WPM, but set the Farnsworth speed to only 3 WPM. This will make the gaps between the letters five times longer giving you more time for thinking. Receiving should be easier now. As you are getting more experienced, try to increase the Farnsworth speed slowly until it is same as the normal speed.

Tracking your progress

Your results from each learning sessions are saved so that you can track your progress later. To view the learning history, tap on the HISTORY button in the upper right-hand corner of the screen (it is on the page where you can set the level and other parameters before starting a new learning session). There are three tabs, which offer different views on the learning history.

  • The first tab (Sessions) contains the list of all the learning sessions ordered by date. The top of the page shows the summary with three numbers:

    • Sessions - it is the total number of learning session.
    • Answered - the total number of the questions that you have answered so far.
    • Total time - it is the total time that you have spent learning Morse code in this app.

    Below these numbers, there is a complete list with all your learning sessions. For each of them, the date, the number of correct/incorrect answers and the duration is displayed. You can view the detailed results for any session by tapping on it.

    You can also delete the whole learning history by tapping the "Clear all" icon in the upper right-hand corner of the screen, or you can also delete just one of the session by tapping on it and then tapping on the "Discard this session" button on the session details page.

  • The second tab (Characters) shows the history for each of the characters. There is a summary on the top of the page:

    • Number of characters - it is the total number of characters that has been learned.
    • The first learned - the character or characters that have been added into the learning first.
    • The most recently learned - the character or characters that have been added into the learning the most recently.

    There is a list of all characters below the summary. For each character, there are numbers of correct/incorrect answers, the date when the character appeared in the learning for the first time, and the date, when this character has been reviewed the last time. You can view the detailed results for any of the characters by tapping on it.

  • The last tab (Calendar) shows the history in form of a calendar. Each day when you have been learning Morse code is marked by a dot.

    Tapping on any of the days shows more details for this day under the calendar. The number of answers is shown as well as the total time that you have devoted to learning.

In the upper right-hand corner of the page, there is an icon with three dots. When you tap on it, a menu with the following features is opened:

  • Clear all - The whole learning history will be deleted.
  • Export history - The learning history will be saved to a file. This is handy when you want to have a backup or when you want to transfer your history to a new computer.
  • Import history - The learning history will be loaded from a file. Only new learning sessions will be imported (the comparison is done using the date and the time of a learning session). The learning sessions that are already in the app will not be imported twice; they will be skipped.

Learning parameters that can be set
Learning parameters that can be set
Each learning level starts with the list of new letters.
Each learning level starts with the list of new letters.
Learning in progress (multiple-choice questions enabled) - you should select the correct translation.
Learning in progress (multiple-choice questions enabled) - you should select the correct translation.
Learning in progress (multiple-choice questions disabled) - you should type the translation.
Learning in progress (multiple-choice questions disabled) - you should type the translation.
Learning results
Learning results
Your progress
Your progress

Manual sending

You can use this function to send Morse code manually by pressing and releasing a button. In the upper part of the page, you can set the output. You can send Morse code by sound using the speaker, by light using the flashlight, or by vibrations. The lower part of the page contains the button for sending. For example, if the flashlight is used as the output, pressing the button turns on the flashlight, and releasing it turns it off.

Manual sending
Manual sending

List of characters

All letters and the corresponding Morse codes are displayed in a single table. You can quickly look up any code. Just type the searched letter or its Morse code to the search bar.

Tapping on the speaker icon plays the Morse code using the speaker. A long tap on any of the codes will copy this code into the clipboard.

Beside official codes (listed in the ITU-R recommendation), there can be also unofficial Morse codes. The app supports them so that if you receive a message with an unusual non-official Morse in it, you can look up its meaning. The unofficial Morse codes are listed below the official ones and they are distinctively separated from each other. They are also displayed in a lighter color for even more distinction. Generally it is recommended to use only official Morse codes in your messages. Please, use the unofficial ones only if you are really sure that the recipient knows them. Keep on mind that one unofficial code can have multiple meaning (for example, ".-..-" can mean È, or Ł). That is another another reason to avoid the unofficial Morse codes when possible. The unofficial Morse codes are implemented in the app in the following way:

  • Translator: If you are translating Morse code that contains unofficial codes, the translator will try to translate them (if they have multiple meanings, the first one is used). However, if you are translating a plain text to Morse code, the app will avoid using unofficial codes in the maximum degree so that your message could be translated by anyone. A few examples: if you receive a message with " .-..-", it will be translated as È, However, if you are composing a message and you type È, the translator will avoid using unofficial code by removing the diacritics and translating the letter as "." (E). Another example: there is no official code for the dollar sign. However, an unofficial code "...-..-" is sometimes used for it. If you type this code into the translator, it will translate it as "$". However, if you type "$" into the translator, it will transcribe it as "USD" so that it could translate it using official Morse codes only.
  • Learning: The unofficial codes are excluded from learning. This is a deliberate decision because learning codes that can have multiple meanings or other people might not know them at all is not a good idea.
  • List of Morse codes: The unofficial codes are included in the list but they are displayed so that the user can distinguish them easily for the official ones.

List of Q-codes

This application contains also a list of amateur radio Q-codes for more advanced users. The Q-codes are short codes beginning with the letter "Q". If a Q-code is followed by a question mark, its meaning is changed to a question. The app lists the Q-codes with their meaning. The meaning for both the statement form and the question form is displayed.

You can find the meaning of a code by entering the code into the search box. Alternatively, you can also search a code by its meaning.

Tapping on the speaker icon plays the Q-code using the speaker. A long tap on any Q-code in the list will copy this Q-code into the clipboard.

The translator also supports the Q-codes. If you enter a message in Morse that contains Q-codes the translator appends also meaning of the Q-code in the brackets.

List of characters
List of characters
List of amateur radio Q-codes
List of amateur radio Q-codes

Settings

In the Settings menu, various parameters can be adjusted:

  • Language - The current version is available in English, French, Spanish, Portuguese, German, Bulgarian, Croatian, Italian, Romanian, Finnish, Czech, Turkish, Simplified and Traditional Chinese, Arabic, and Bengali languages. You can use this setting to switch the language. Do you want another language to be added and are you willing to help with the translation? No problem. Please, write me to the mail pavel.holecek.4@gmail.com. Because Portuguese has been requested by many users, I have added at least automatic translation to Portuguese with Google Translate. As it is only an automatic translation, there will probably be some mistake. If you find one, please write me and I will correct it.
  • Morse code version - There can be multiple variants of the Morse code. Use this setting to select one of them. The current version contains International Morse Code and a few local variants: German (it has additional codes for character such as "ü" and "ß"), Czech (there is a separate code for the "ch" letter), Greek (it uses the Greek alphabet instead of Latin script), Polish (it has a few additional codes for characters with accents), Russian (it uses Cyrillic instead of Latin script), Slovak (it has a separate code for "ch" letter, and it contains mnemonics for each code in Slovak), Ukrainian (it uses Cyrillic), French (it is the same as International Morse Code, but it contains mnemonics in French), and Spanish (it has a few additional characters such as "Ñ"), Korean (SKATS), Japanese (Wabun code), Arabic (it uses Arabic script), and Bulgarian (Cyrillic letters). Basically, if you want the official Morse code that is used around the world, select the International Morse Code.
  • Speed - These settings are used when a Morse code is played in the translator or in the learning module.
    • Speed - The speed of the transmission in words per minute.
    • Farnsworth speed - The Farnsworth speed (if it is enabled) is used for gaps between letters and words. To have a different speed for gaps is useful for practicing listening. If you are practicing using 15 WPM and it is too fast for you, you can enable the Farnsworth speed, leave the (normal) speed setting at 15 WPM, but set the Farnsworth speed to, for example, 5 WPM. This way the letters will be transmitted still at 15 WPM but the gaps between them will be 3 times longer giving you more time for thinking. This setting applies when you play the Morse code in the translator.
    • Advanced speed settings - If setting the speed in words per minute (or specifying Farnsworth speed) is not enough, you can tap on "Advanced speed settings" button, which opens a dialog where you can set speeds for dots, dashes and various separators in milliseconds according to your needs. If you want to return back to the standard way of setting speed later, you can tap on the "Cancel the advanced settings" button.
  • Playing - These settings are used when a Morse code is played in the translator, in the learning module, or by the manual sending function.
    • Tone frequency - Frequency of the tone in hertz (Hz)
    • Volume - You can adjust this setting if you want a quitter or louder sound.
    • Added noise - The white noise is added to the sound. You can set its amount with this slider. Lower values can help to solve problems with some Bluetooth headphones. Higher values can be used to simulate a radio distortion.
    • Use the older version of flashlight controller - If you have problems with sending Morse code using the flashlight, you can try enabling this setting. The new flashlight controller should be better and more accurate but on some devices the older controller could perform better.
  • Preferred separators in the Morse code - There is no standardized way how to divide individual letters and words in the written form of the Morse code. There are three formats that can be seen most often. You can select the one that you prefer:
    • A slash between letters, and two slashes between words - This is the recommended format that is easy to read.
    • A space between letters, and two spaces between words
    • A space between letters, and a slash between words
  • Translation - These settings are used for the page with the translator.
    • Auto-detect translation direction - When you type a text in the translator, the app will determine if it is a Morse code or not and sets the translation direction automatically as you type. If you don't like it, you can disable this feature and set the direction manually.
    • Translate also Q-codes when translating from Morse - When you enter a Morse code into the translator and this function is enabled, the translator also looks for all Q-codes in message and append their meanings in the brackets. If you do not use Q-codes, you can turn off this feature. This will speed up translation from the Morse code.
  • Learning settings
    • Time limit for answering - If you want to make sure that you answer quickly, you can turn on a time limit.
      • Off - In this mode, you have as much time for answering as you want.
      • Just for information - You can set a time limit (in seconds). There will be a countdown for answering each question but this is just for your information. You will be still able to answer even after the timeout.
      • On - You can set a time limit in seconds. If you do not manage to answer in time, the question is automatically evaluated as incorrectly answered and the next question is shown.
    • Evaluate the answer immediately during typing - If this function is enabled (it is by default), your answer entered in the text box is evaluated during typing. You do not have to confirm it, which makes the learning smoother and more comfortable. On the other hand, if you press a wrong key on the virtual keyboard accidentally, the answer is evaluated as incorrect. If you do not like this behavior and you want to have an opportunity to correct the mistyped characters, you can disable this function. When it is disabled, a button for evaluating the answer is displayed under the text box, and your answer is evaluated only after you press this button.
    • Show the next question after a correct answer - If this setting is enabled, the next question is shown automatically after you answer the previous question correctly.
    • Show the next question after an incorrect answer automatically - If this setting is enabled and you answer the question incorrectly, a short message with the evaluation of your answer is displayed, and then the next question is shown automatically. You can turn this off to have more time to review the correct answer. In that case, the next question will be shown only after you tap on the "Next question" button.
    • Use vibrations instead of the speakers to play the Morse code - This setting makes it possible to use vibrations instead of sound for learning the Morse code. This makes the learning accessible also for people with hearing problems.
  • Error reporting
    • Send reports for errors and crashes - If the app crashes, or another error occurs in the app, an anonymous crash report is sent to the developers so that we could fix it. No personal or sensitive information are sent. However, if you are very concerned about your privacy, you can prevent this by turning off this setting. There is also a link for viewing the privacy policy. You can tap on it to review what data can be in the crash reports.

The upper right-hand corner of the screen contains Reset button. By pressing this button, all settings will be deleted and the default values will be set instead. The app will be restarted so it will be in the state as after its fresh installation with the only exception of the learning history, which will be preserved.

Settings
Settings

Privacy policy

You can find the detailed information on the privacy policy on a separate page.

Are you missing any feature?

If you are missing any feature, write me (pavel.holecek.4@gmail.com) and I can try to implement it in the next version. Any feedback is welcome!