HotPaw Morse Code CW Decoder Readme

HotPaw Morse Code CW Decoder Readme

HotPaw Morse Code Decoder translates Morse Code sounds into text using the built-in microphone on your iPhone. It includes both automatic decoding of longer clean signals and several manual controls to allow the decoding of more difficult signals in QRM. Decoding parameters that can be manually adjusted include the audio frequency of an optional narrow-band DSP filter, the WPM dot/dash speed used for detecting characters, the threshold level of background noise, and whether Farnsworth timing is to be used for detecting spaces between individual characters.

The Morse Code Decoder includes a built-in spectrogram to help determine the audio frequency of the Morse Code tones. You can then use the optional narrow-band audio filter to help filter out background noise. If the audio filter is enabled (frequency lock icon locked), it can be set for frequencies in the range of 400 to 1400 Hz. The filter can also be left off in a wide-band mode (frequency lock icon unlocked). Tap the spectrogram to set the audio filter to the frequency of a selected frequency peak. On the iPhone, tap the lock button to the right of the spectrum graph to toggle the filter off and on.

The Morse code WPM (words per minute) detection speed is automatically adaptive from about 8 to 40 WPM, and can be locked to the current estimated WPM dot speed (WPM lock icon locked). One the iPhone, tap the lock button to the right of the waveform graph to lock and unlock automatic WPM detection. You can also manually set the WPM code speed using the plus and minus symbols that appear in the waveform graph, or the slider control on an iPad.

Once you start seeing properly decoded words from the Morse Code, it helps to turn on the audio filter, and turn off the auto-WPM, to keep noise from moving the decoder settings away from your found signal.

By default, the threshold (the signal level above any background noise required to detect a dot or dash) is set automatically by the AGC. But you can also manually control the threshold setting. On the iPhone or iPod Touch, tap to the left of the waveform graph to switch the manual threshold slider on and off. The iPad version also includes a switch to enable manual threshold control. A Histogram of the tone signal levels with a marker for the detection threshold level are displayed next to the waveform graph.

Please use the manual settings if automatic decoding does not adjust to the WPM or background noise level.

In automatic decode mode, it may take several initial and immediately preceding characters containing both dots and dashes before the WPM speed estimation starts to get close to the actual WPM. The AGC is automatic, but background sounds and signal fading can interfere with detection and decoding. The quality of detection depends on the signal level, signal to noise ratio, stability of the frequency and WPM speed, and keying "fist" quality.

Only about the last 250 decoded characters are displayed in this version. The characters that can be decoded include International Morse Code for the 26 letters A-Z, the numerals 0-9, period, comma, forward slash, and question mark.

Other Settings include Heaphone Play-Thru mode and Background Decode mode. Enabling Headphone Play-Thru mode, when using headphones plugged into the headset jack, will allow monitoring the microphone input. Enabling Background Decode mode will allow the decoding of audio input to continue for up to 20 minutes, even if you temporarily switch to use another app on your iOS device (for logging, etc.). There is also an optional QRQ High Speed mode, which will work better for WPM code speeds in the range of 36 to 80 WPM. (QRQ mode also supports higher frequency dot-dash tones.)

According to some earlier iTunes App Store reviews as well as comments sent to our support email, over half of the users of the HotPaw Morse Decoder find the app can successfully decode audio from actual over-the-air Morse Code signals. If you are one of the users for whom the Morse Decoder app works well, we would greatly appreciate it if you would leave a positive rating and perhaps a review. We appreciate any detailed user comments we receive, as they help encourage future improvements to the HotPaw Morse Decoder app. (For those users who still find problems decoding Morse Code, the instructions for using the app have been improved and updated. Please read this documentation; and perhaps try some different settings to see if they help.)

Helpful Hints

Helpful hints for those users who cannot get the Morse Decoder app to start decoding at all: The most common problems are:

1) Settings problems:

Please check the WPM setting to see if it is close to the approximate speed of the Morse Code. If the WPM is way off, any decoding will be garbage. This is because dots at around 8 WPM are nearly the same length as dashes at 25 WPM, and noise spikes can be the same length as short dots at very high WPM, etc. If the WPM isn't close enough, please adjust this setting manually to a closer WPM dot-dash speed.

Please check the spectrogram and audio filter setting. You should see a peak near the middle of the spectrogram during dots and dashes. The commonly recommended Morse Code side-tone audio frequencies are between 400 to 1000 Hz or between 600 and 800 Hz. You may have to retune your receiver frequency or BFO to get Morse Code tones in this recommended range. Make sure the audio filter is either off, or tuned to the audio frequency of the Morse Code. If the audio filter frequency is very different from the Morse Code audio frequency, no code will be detected.

Make sure your Morse Code side-tone audio frequency isn't too high. A high pitch, similar to the high notes on a piano keyboard, will be rejected as noise by the built-in low pass noise filter.

2) The red line in the top graph (below the decoded text) shows the input waveform. If the line is always at the top of the graph, the sound may be too loud to decode. If the line is just a little squiggle very near the bottom, the sound level is too low to decode. Thus you may need to adjust the volume on your radio to enable decoding.

3) Aiming the iPhone or iPad microphone at a wall or other hard object can cause it to pick up echoes that will cancel out Morse Code audio tones. Try moving your iOS device closer to the speaker, or aiming your iOS device more directly towards the audio source. Perhaps experiment with various angles.

On the waveform graph, if the red line is very spiky near the beginning or end of dots or dashes, the means you might might have your iPhone located where's there's a interfering echo in the room. This is actually more common than one might suspect. Try moving the phone or the radio speaker between a few inches up to 1 meter farther or closer to each other see if the room reflection spikes can be reduced, which will square up the tops of the dots and dashed in waveform graph.

4) Below the waveform graph is an audio spectrum graph. If you can see a clear upward peak in this graph produced by Morse code sound, the audio filter can greatly improve decoding by reducing some of interfering noise. Use the switch to turn the audio filter on and touch the peak location (or move the slider) until the red cursor in located at the audio frequency of the code you want decoded. If the filter cursor is far from the audio frequency peak, decoding may not work at all. Thus, if the audio frequency of the code shifts or drifts, you may have to re-adjust the filter frequency.

If the Morse Coder tone frequency is too high, above 1.5 kHz, the frequency won't show up on the audio spectrum graph at all, and the decoder will think that this frequency of sound it is just radio noise. If so, you may have to tune your radio closer to the CW carrier frequency. The ARRL recommends a side tone frequency below 1 kHz.

5) If the first thing the app hears is some radio or room noise that fools the decoder into thinking it might be a dot or dash, the WPM setting may get initialized to a nonsense value. This is one cause of just seeing lots of letter "e"'s decoded. You can check the detected WPM at the top left of the waveform graph. If this value is off by more than 3X, it can take a very long time for the automatic WPM to correct itself. So, if the value looks too far off (high or low), you can tap the left or right of the graph to decrease or increase the decoding WPM to something more reasonable. This will help the app start decoding sooner. If you can't guess the WPM of the Morse code sound, try 18 WPM for starters.

6) When the level is determined correctly, the green line in the waveform graph should show the short dots and longer dashes that are being detected. If the green line is stuck high or low, but the red line show clear high/low variations, you can try using the manual threshold setting. Tap on the threshold marker (to the left on the iPhone and to the right on the iPad). This will bring up a manual threshold slider which you can use to place the threshold halfway between the the high and low levels of the red waveform graph.

7) If the red graph show no clear high and low levels in the sound, there may just be too much noise for the decoder to reliably detect dots and dashes.

8) Once you start seeing properly decoded words from the Morse Code, it helps to turn on the audio filter, and turn off the auto-WPM, to keep noise from moving the decoder settings away from your found signal.

HotPaw productions has several other companion applications in the iTunes App store. Look for HotPaw MorseTest to learn and practice Morse Code, and HotPaw Music Spectrograph for a real-time scrolling frequency spectrum graph, where you might be able to view multiple simultaneous QSO's if they are using different audio frequencies.


Version 2.4.1 - Fix for iPad Pro. (b104)
Version 2.3.4 - Fix for iPhone 6s 48k sample rates.
Version 2.3.2 - Fix for landscape orientation display problem on some iPads.
Version 2.3.1 - Bug fixes for iOS 8.  Added support for iPhone 6 and 6 Plus.
Version 2.2.6 - Fixed some iOS 7 Microphone Permission issues.
  Added Dynamic Text sizing (See the Settings app:General:Text Size).
Version 2.2.4 - Added decoding for a few International Extension characters.
  Added a 20 minute delay to screen dimming to improve hands-off decode viewing.
Version 2.2.1 - Bug fix.
Version 2.2.0 - Added a headphone play-thru mode for monitoring the audio input. 
  New Icon. Bug fixes.
Version 2.1.0 - Updated for iOS 7.
  Added landscape rotation capability for iPhone.
Version 2.0.6 - Bug fixes. 
  You can now tap on a word or callsign while decoding to save it to the clipboard.
Version 2.0.5
  Fixed a bug in saving the state of the Background Decode enable switch.
Version 2.0.4
  Added a manual WPM adjustment control when running on the iPhone.
  Improved tone frequency estimation.
  Added a switch to allow background decoding.
Version 2.0.0
  Improved resolution of audio spectrum viewer.
  Improved Auto-WPM-speed tracking.
  Improved Auto-volume-threshold tracking and audio filtering.
  Added an indication for audio frequencies that are too high for optimal decoding.
Version 1.9.6  Added iOS 6 and iPhone 5 display support.  Bug Fixes.
Version 1.9.4  Fix for help info rotation bug.
Version 1.9.2  Auto-threshold, AGC and Squelch bug fixes and improvements.
Version 1.9.0  Bug fixes and added controls.
  Squeezed a couple settings that are in the iPad version onto the iPhone version.
  A manual volume threshold control was added for the iPhone.  Tap on the histogram to the left of the waveform to toggle whether this control is visible or not.
  A button to re-initialize the auto WPM speed was added for the iPhone. This control will appear only if the WPM speed is unlocked, and will allow you to reinitialize the WPM estimate if you notice that dots are being recognized as dashes, or vice-versa.
  You can now tap directly on the spectrum graph to enable the audio filter and set its frequency.  
Version 1.8.3  Bug fixes for iOS 5 and iPhone 4s.
Version 1.8.0  Improved AGC, CW auto-threshold, squelch, and audio filtering, plus bug fixes.
Version 1.7.0  Added a High Speed WPM Mode for above 40 WPM decoding.
Version 1.6.2  Added a 2kHz audio low-pass pre-filter for better QRM rejection, and improved WPM measurement accuracy.
Version 1.6.0  Converted to an iPhone/iPad Universal app
Version 1.5.0  Audio filter bug fixes.
Version 1.4.0  iOS 4.0 compatibility enhancements.
Version 1.1.1  OS 3.0 compatibility enhancements.
Version 1.0.0  Initial release.

Copyright 2012,2014,2015,2016 HotPaw Productions ALL RIGHTS RESERVED
support email: