Free Learn Morse App
Android - Interactive Learning Morse app [Learn Morse]
Note: The background to why I
decided to create this app and more about its development can be found
on my Morse page.
This page is for
the Morse Android app (G0HYN-Learn Morse), and should be used as a
source for the app download, plus documentation.
NEWS FLASH - Now available from Google Play store (free of course). Search for 'Learn Morse'
The procedure below is still valid though... but you may find it easier to use Google Play.
Please be aware that I have found the Android Chrome browser
does not react well to the download request (continuously opening new
tabs and I had to stop the browser app manually).
It does work ok with the standard 'Internet' browser built
Samsung devices, the Firefox browser (which installed on my Nexus 7
from Google Play), and also via email attachment install.
To install this test version you will have to enable 'Unknown
sources' in your Android devices Security settings. I'd suggest
enabling, installing the app, and then disabling to be safe.
in App downloads, purchases, or any attempts to communicate with
anything external to the device it's installed upon i.e. once installed
the app is completely self contained. The only permission it requires
is read/write to external storage so that it can access the editable
text file (morse.txt).
Ok, after all that scary stuff, if your still reading and
interested in downloading the app, here's the link to the latest release...
for G0HYN - Learn Morse latest version APK file
You can of course download the .apk file via PC/Mac, transfer
the file via USB connecting, and then use a file browser to
If all else fails, I'm more than happy to email you
the .apk file as an attachment, which you should be able to
from your mail app.
Documentation: Link to G0HYN-Morse latest detailed document
I've also posted a test video (using a screen recording app) on YouTube of the Beta 0.M version:
G0HYN-Morse YouTube Beta 0.M (video recorder test)
email address: [email protected]
for any questions, feedback, issues found, or to request .apk file via
Upon initial opening of the app, there won't be any saved
settings to discover, so the following defaults are used:
Note: These defaults will be
overwritten when the app is exited i.e. your current setting will take
over after first use.
speed - 14
Per Minute - 05
in use - 1
of tone - 800
- Samples file - P9 (ZL based QSOs)
- Character introduction sequence - Cunningham
The app has two modes:
mode - Used to learn morse code, and should be used by
novices to learn
the various characters Listen mode - Used to listen to random passages from inbuilt and editable files, or generators
currently active mode is controlled by the Learn/Listen button (top right
of screen), with it's label reflecting the mode it would switch to if
Whenever the mode is switched, explanatory
text will be displayed advising what the current mode now is,
and what to do next i.e. adjust
controls as appropriate and then to press Play.
V4.0 introduces the capability to change the size of the encoded text
by cycling through a defined set of fonts size each time the text field
- V4.0 also added the capability to clear the encoded text area when a 'long press' if performed on the field.
you are learning morse from scratch, then it is advised that the
default setting for
'Characters in use' should be used i.e. 1.
You can also adjust the frequency of tone and the
speed at this point, but you can get a feel for what's best for you as you go along,
and they can be changed 'on the fly'.
Note: In Learn mode the WPM slider control is disabled, as it has no effect.
Once you're ready, press Start button, and the first character in the
learning sequence will be sent after a short pause.
you think you recognize the character sent, press the
corresponding character button.
If you're right it will appear on the screen and after a short pause,
another character will be sent.
If you don't recognize the
character, which is most likely to be the case if your just starting to
learn morse code, do not worry, the app will after a reasonable delay (initially 8 seconds),
character and resend it.
In response you should press the corresponding
key, and the app will repeat the character before moving on.
have responded to each new character successfully, the app
introduce the next character in the learn sequence. Initially sending it
twice, and then randomly other characters that you have successfully
recognized so far, slowly building up the number of characters in use
(which will be reflected by the Chars slider) when you have all the ones
already in use 'mastered'.
Although the default character introduction sequence is Cunningham,
should you want to use the Koch sequence, it can be selected via the
Learn mode has the following states:
- Learn mode is ready to go once the Play button is pressed (black)
- Play pressed, characters are being sent, and responses processed (green)
- Pause pressed, sending is interrupted, and can be continued by
pressing Pause again (blue)
- Stop pressed, sending ceases, Learn progress is displayed,
plus letters used on Histogram
find that the Play, Pause and Stop buttons are enabled/disabled
in line with the above states e.g. Play is disabled in running and
that your progress can be noted and used as the new starting point the
next time you open the app, the current
Characters in use is saved (along with Farnsworth, WPM, Tone,
and mode) whenever the app is closed.
You can of course set the slider
manually to any value between 1 and 40, and then press
This is a graphic representation of the progress being attained through
the learn sequence i.e. how you are doing.
vertical bar represents a character (A-Z, 0-9, plus some punctuation
characters), and will be updated as the app is running through the
Basically a full bar means a character is not
yet learned, and a low bar means you have successfully responded to it
when it has been sent.
When Start is pressed, the app check the
Chars setting and updates the histogram accordingly, so if you set
to say 10, then the first 10 bars will be dropped, and update
according to your future responses.
If you respond correctly to the character sent, then its corresponding
bar will be reduced (if not already at min).
If however you respond incorrectly, then the bar will be raised (if not
already at max) and the character will be resent.
Note: Histogram is only displayed in Learn Mode.
This mode is design to practice listening to morse, which can be sent
at the desired Farnsworth, WPM and Tone.
is suggested that you have paper and pencil at the ready, and try to
write down what is being sent without looking at the display.
Note: In Listen mode the Characters in use slider control is disabled, as it has no effect.
file is to be used can be selected from the menu, with most being
fixed, but morse.txt can be edited as it is stored on the devices
'external storage' (see later section on how to edit morse.txt)
There is also a 'on the fly' QSO generator option, which creates random like QSOs.
you have Farnsworth, WPM and Tone set how you want them (you can change
them whilst mode is in running state, but it is likely to effect the
sound briefly) press Play.
A random entry from the current file will be selected and sent a
character at a time.
Pause can be used to suspend or continue sending if desired,
and Stop will of course do just that i.e. stop sending.
the current entry has been completely sent, and another entry will be
randomly selected and then sent. This will continue until Stop is
app tracks the last entry sent when selecting the next one, to avoid
resending the same entry twice in a row.
If menu is selected (via either a physical key or soft option), then a
of the available sample text files is presented, with the currently
'checked'. Any file can be selected, but only one file can be active at
any one time. Check mark will match users selection (and a 'Toast'
notification will indicate successful load of selected file)
These files contain textual entries of varying subject mater:
- This text file is user editable, and resides on the devices 'external
storage' (See note 1 below)
mostly sport. Includes numbers, but no punctuation
mostly sport. Includes numbers, but no punctuation
mostly sport. Includes numbers, but no punctuation
- Fortunes - Fortune Cookie sayings. Includes some punctuation
- Confucius - Confucious quotes. Includes some punctuation
- Gen RND - Instead of reading from file, random words will be generated and sent (See note 2 below)
- Gen QSOs - Instead of reading from file, random QSOs will be generated and sent (See note 3 below)
- Lyrics - Top
100 music quotes. Includes punctuation
- ZL QSOs - Sample QSOs. Callsigns are currently NZ related (although imaginary)
Note 1: The
app will check for the file morse.txt on the external storage, and if
it doesn't find it (which it won't the very first time you open the
then it will attempt to create the file and write a few explanatory
lines to it. This text will be displayed on screen so that you can note
it's location for later editing (with your favorite text editor or the inbuilt edit mode).
2: Selecting Gen RND from the menu will make the app switch from using
the predefined files, to generating random groups of characters (min 5
groups, max 19 groups), of varying group length (min 1 character, max 9 characters), using only the
'Learn sequence' Characters in current use. Also note, the Characters in use slider is enabled whilst GenRND is selected.
Note 3: Selecting Gen QSOs from the menu will make the app switch from using
the predefined files, to generating random QSOs in the format:
de [callsign-2] - [greeting] - hr name [name] - rst [xxx] - es qth
[location] - rig hr is [rig] - [power] - [antenna] - [weather] -
[employment] - [comments] - hw [name]? [callsign-1] de [callsign-2] k
(callsigns will start with 1 or 2 leters, followed by a single numeric, and ended with 2 or 3 letters)
menu also contains the Koch option, which switches the character
introduction sequence from the Cunningham default tothe Koch sequence.
menu also contains the Help option, which brings up the separate help
screen and it's associated text (see later Help section for more
app action bar includes an 'Edit icon', which when pressed, switches
the screen to edit mode, and the current contents of the file
morse.txt is displayed ready for editing.
You can change, delete, or
add text to create your own sample text which will be used in File mode
when morse.txt is selected from the menu.
The screen should open
with the Android system soft keyboard active, but touching the screen
inside the text field will activate it.
Once you have completed your
editing, press 'Save' to keep your changes, and then press the Action
bar back icon ('<') to return to the main app.
If you don't want to change the current text or discard any changes you
have made, then just select the back icon without pressing 'Save'.
control used to be only for physically small screens that couldn't get
the whole keypad visible in Learn mode without 'hiding' the sliders.
But there has been a couple of user feedback that even though there
device is easily capable of displaying all the information, the keypad
isn't fully visible, and they would have to scroll it to get to the
correct letter. Note - this is only an issue in Portrait mode.
The control basically toggles the visibility of the slider controls. So
if you find that the keypad is an issue, set the sliders as required,
and press the hide icon before commencing your learning session.
app includes a help screen selectable via the main screen menu,
and contains both a quick start guide and details about the modes and
initial help screen displays the 'Quick Start Guide', which explains
how to get going with the app without reading loads of information.
you want/need further information, pressing one of the buttons at the
top of the screen will display the associated help text for that
i.e. Play, Pause, Stop, Learn, and Listen Note:
Learn/Listen is really just one button in the main app, but for the
purposes of giving the right help text, they are shown separately.
is one additional icon only found on the help screen, and that is the
help 'Home' button, which will redisplay the Quick Start Guide'
from the Help screen by either pressing the Android back button or, if
available, the <G0HYN-Morse icon at top left of display.
And that's it... To be honest, it's harder to write
concise instructions, than it is to
simply learn by using, but they are here for reference in case
its not clear what something does or does not do...
Of course feel free to email
me with any questions, or ideas for
For example I'm thinking of changing some of the sample
text files from sports to other subjects, such as famous lyrics from
songs... Jokes might be fun also, as long as I don't manage to upset
anybody with their subject mater or rudeness :o)
|Beta V0.4||First test release made available for download|
|Beta V0.5||Default device change after testing on Huawei phone resulted continuous tone|
|Beta V0.6||Current samples file added to save/restore settings|
|Beta V0.7||Farnsworth and wpm calculations now based upon ARRL standard|
|Farnsworth adjustments applied to inter-char and inter-word spacing|
|Farnsworth and wpm tied when appropriate (i.e. Farnsworth < wpm or wpm > Farnsworth) |
|Beta V0.8||Replaced P7 with Gen QSOs, which generates random QSOs in standard format|
|Beta V0.9||Minor updates for large screen layout (keypad position and sizing)|
|Initial delay time reset when switching between Learn/File mode|
|Beta V0.A||Enable keep screen awake whilst app is active|
|Beta V0.B||Change device type for Asus to work better under Android 5|
|Morse.txt now editable within app via edit icon and separate screen|
|Beta V0.C||Replaced P6 with Gen RND, which generates random words using the 'characters in use' from learning sequence character set|
|Beta V0.D||Changed GEN RND learn characters to lowercase for easier readback between 0 and o|
|Beta V0.E||Changed Histogram to traffic light colours|
|Beta V0.F||Removed 'G0HYN' from App title bar to ensure version identifier is displayed|
|Enabled screen auto-rotation and created tailored layouts to normal, large, and extra large devices|
the kind help of Ron (ZL1AI), Gary (ZL1AN), and Nigel (ZL1CAL), the
audio sub-system has been completely redesigned resulting in much
cleaner and more accurate morse. |
|The allowable speeds (both Farnsworth and WPM) have been increased to 40 for reading practice|
|Beta V0.L||Changed to Icons on Buttons|
|Added Controls hide/unhide icon and functionality to support small screen devices e.g. Galaxy Ace and Galaxy Duos|
|Beta V0.M||Added detection of 'small screen' devices, so that the hide control icon is only displayed/used when necessary.|
|Beta V0.N||Corrected scrolling issue with API 10 devices (e.g. Gingerbread)|
|Beta V0.O||Correct whole keypad highlighting issue with AP10 devices (e.g. Gingerbread)|
|Beta V0.P||Histogram hidden when in listen mode|
|v1.0||First full release and includes help screen|
|Learn mode changes:
- Stop immediate repeat of the same character (unless required for new character or invalid response)
- Force resend of 'worst' character in use if not sent within 10 sends (to avoid getting bored waiting :o)
|Learn mode change:
- New menu option to select the Koch character introduction sequence (deselection re-introduces Cunningham sequence)
||- Attempt to fix crashes under Android 4.4 - menu.getItem for the 'Koch' checking changed to menu.findItem.
- In Learn/Listen - Layout background colours changed to match those of RX-Morse i.e. green for play, and blue for pause.
- Add user changeable font size (as per RX-Morse).
- Replaced listen files P4 with Fortune Cookie sayings, and P5 with Confucius quotes.
- Morse.txt no longer needs a ':' at the start of each line (as long as there is a new line or carriage return at the ends)
| - Enable
controls hide/unhide for all devices as some are not displaying the
whole 'keypad' even though they are not small sized screens
- Changed RND to use teachString instead of teachStringLower to ensure correct set is used (Cunningham or Koch)
- Updated Help text to include Controls button description
Devices the app has been tried on to date:
|Asus Nexus 7 - 7" Tablet - Android 5.1.1|
|Samsung Galaxy Ace - Phone (small) - Android 2.3.6|
|Samsung Galaxy S Duos - Phone||Working|
|Samsung Galaxy S2 - Phone||Working|
|Samsung Galaxy S3 - Phone - Android 4.3|
|Samsung Galaxy S5 - Phone||Working|
|Samsung Galaxy Trend 2 lite - Phone (small) - Android 4.4.4
|Samsung Galaxy Tab2 - 10" Tablet||Working|
|Samsung Galaxy Tab3 - 10" Tablet - Android 4.4.2|
|Huawei Ascend P2 - Phone||Working|
|Hipstreet Phantom 2 - 10" Tablet - Android 6.0
Anyway, please have fun with it and let me know if it was/is of any use,
particularly those users new to morse.
73, Robbie G0HYN