G0HYN - Robbie Robertson





Free Learn Morse App

Teach Morse (web only)

Free  Morse Reader 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 here 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.

WARNING: 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 into my 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.

Note: There are no 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...
icon  Link 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 locate/install it.

If all else fails, I'm more than happy to email you the .apk file as an attachment, which you should be able to download/install 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 email.

Quick start guide

Saved Settings
Upon initial opening of the app, there won't be any saved settings to discover, so the following defaults are used:
  • Farnsworth speed - 14
  • Words Per Minute - 05
  • Characters in use - 1
  • Frequency of tone - 800
  • Mode - Learn
  • Samples file  - P9 (ZL based QSOs)
  • Character introduction sequence  - Cunningham
Note: These defaults will be overwritten when the app is exited i.e. your current setting will take over after first use.

The app has two modes:

 Learn 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
The 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 pressed.

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 Notes:
 - 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 is touched.

- V4.0 also added the capability to clear the encoded text area when a 'long press' if performed on the field.

Learn mode

If 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 Farnsworth 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.
If 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), display the character and resend it.
In response you should press the corresponding key, and the app will repeat the character before moving on.

Once you have responded to each new character successfully, the app will  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 menu.

Learn mode has the following states:
  • Active - Learn mode is ready to go once the Play button is pressed (black)
  • Running - Play pressed, characters are being sent, and responses processed (green)
  • Paused - Pause pressed, sending is interrupted, and can be continued by pressing Pause again (blue)
  • Stopped - Stop pressed, sending ceases, Learn progress is displayed, plus letters used on Histogram

You will 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 paused states. 

So 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 Start button.

This is a graphic representation of the progress being attained through the learn sequence i.e. how you are doing.
Each vertical bar represents a character (A-Z, 0-9, plus some punctuation characters), and will be updated as the app is running through the learn sequence.
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 Chars 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.

Listen Mode
This mode is design to practice listening to morse, which can be sent at the desired Farnsworth, WPM and Tone.
It 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.

Which 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.

Once 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.
Once the current entry has been completely sent, and another entry will be randomly selected and then sent. This will continue until Stop is pressed.

Note: The 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 list of the available sample text files is presented, with the currently active one '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:
  • Morse.txt - This text file is user editable, and resides on the devices 'external storage' (See note 1 below)
  • P1 - Mixed subjects, mostly sport. Includes numbers, but no punctuation
  • P2 - Mixed subjects, mostly sport. Includes numbers, but no punctuation
  • P3 - Mixed subjects, 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 app.), 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). 

Note 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:
[callsign-1] 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)

The menu also contains the Koch option, which switches the character introduction sequence from the Cunningham default tothe Koch sequence.

The menu also contains the Help option, which brings up the separate help screen and it's associated text (see later Help section for more details)

Editing morse.txt
The 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.
 Note: 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'.

Hide/Unhide Sliders
This 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.

The app includes a help screen selectable via the main screen menu, and contains both a quick start guide and details about the modes and button functions.

The initial help screen displays the 'Quick Start Guide', which explains how to get going with the app without reading loads of information.

Should you want/need further information, pressing one of the buttons at the top of the screen will display the associated help text for that button/function
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.

HomeThere is one additional icon only found on the help screen, and that is the help 'Home' button, which will redisplay the Quick Start Guide' when pressed.

Exit 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 improvements.
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)

Release history:
Beta V0.4First test release made available for download
Beta V0.5Default device change after testing on Huawei phone resulted continuous tone
Beta V0.6Current samples file added to save/restore settings
Beta V0.7Farnsworth 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.8Replaced P7 with Gen QSOs, which generates random QSOs in standard format
Beta V0.9Minor updates for large screen layout (keypad position and sizing)

Initial delay time reset when switching between Learn/File mode
Beta V0.AEnable keep screen awake whilst app is active
Beta V0.BChange device type for Asus to work better under Android 5

Morse.txt now editable within app via edit icon and separate screen
Beta V0.CReplaced P6 with Gen RND, which generates random words using the 'characters in use' from learning sequence character set
Beta V0.DChanged GEN RND learn characters to lowercase for easier readback between 0 and o
Beta V0.EChanged Histogram to traffic light colours
Beta V0.FRemoved '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
Beta V0.JWith 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.LChanged 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.MAdded detection of 'small screen' devices, so that the hide control icon is only displayed/used when necessary.
Beta V0.NCorrected scrolling issue with API 10 devices (e.g. Gingerbread)
Beta V0.OCorrect whole keypad highlighting issue with AP10 devices (e.g. Gingerbread)
Beta V0.PHistogram hidden when in listen mode
v1.0First 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)
v4.0 - 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 - PhoneWorking
Samsung Galaxy S2 - PhoneWorking
Samsung Galaxy S3  - Phone - Android 4.3
Samsung Galaxy S5 - PhoneWorking
Samsung Galaxy Trend 2 lite - Phone (small) - Android 4.4.4
Samsung Galaxy Tab2 - 10" TabletWorking
Samsung Galaxy Tab3 - 10" Tablet - Android 4.4.2
Huawei Ascend P2 - PhoneWorking
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