sdrangel/plugins/feature/morsedecoder
f4exb d308127893 Build GGMorse in CI 2024-05-21 10:53:15 +02:00
..
CMakeLists.txt Morse Decoder: basic functionality 2024-05-20 22:49:48 +02:00
morsedecoder.cpp Morse Decoder: implemented API. For #2112 2024-05-21 02:43:51 +02:00
morsedecoder.h Morse Decoder: implement UDP 2024-05-21 01:08:10 +02:00
morsedecodergui.cpp Morse Decoder: adeed scope and set bytes block size appropriately plus minor changes 2024-05-20 22:49:48 +02:00
morsedecodergui.h Morse Decoder: added scope from RTTY decoder 2024-05-20 22:49:48 +02:00
morsedecodergui.ui Morse Decoder: added documentation 2024-05-21 01:08:44 +02:00
morsedecoderplugin.cpp Morse Decoder: initial commit 2024-05-20 22:49:48 +02:00
morsedecoderplugin.h Morse Decoder: initial commit 2024-05-20 22:49:48 +02:00
morsedecodersettings.cpp Morse Decoder: adeed scope and set bytes block size appropriately plus minor changes 2024-05-20 22:49:48 +02:00
morsedecodersettings.h Morse Decoder: added scope from RTTY decoder 2024-05-20 22:49:48 +02:00
morsedecoderwebapiadapter.cpp Morse Decoder: implemented API. For #2112 2024-05-21 02:43:51 +02:00
morsedecoderwebapiadapter.h Morse Decoder: initial commit 2024-05-20 22:49:48 +02:00
morsedecoderworker.cpp Morse Decoder: set buffer size to analysis time window (3s) 2024-05-20 22:49:48 +02:00
morsedecoderworker.h Morse Decoder: set buffer size to analysis time window (3s) 2024-05-20 22:49:48 +02:00
readme.md Build GGMorse in CI 2024-05-21 10:53:15 +02:00

readme.md

Morse Decoder Plugin

Introduction

This feature plugin can be used to decode Morse (CW) transmissions. It is based on a slightly modified decoding library called GGMorse. You must compile and install this library to build this plugin. The GGMorse installation folder is specified as -DGGMORSE_DIR on the cmake command line.

This plugin uses the demodulated audio of some Rx channel plugins.

  • AM demodulator
  • NFM demodulator
  • SSB demodulator (use mono audio - not binaural)
  • WFM demodulator

Typical sequence of operations:

  1. Start the plugin (1)
  2. Select channel (2)
  3. If channel is unique or default selection has not been changed press the (re)apply button (3)

Interface

The top and bottom bars of the channel window are described here

Morse decoder plugin GUI

1: Start/Stop plugin

This button starts or stops the plugin

2: Channel selection

Use this combo to select which channel to use for display. Channel is selected upon change. If channel is not changed or there is only one in the list you have to use the (re)apply button (A.4) to effectively connect the channel to the analyzer.

3: (Re)apply channel selection

Applies or re-applies channel selection (A.3) so that the channel gets effectively connected to the analyzer and signal is displayed. This will update the sample rate.

4: Input sample rate

This is the sample rate of the stream sent by the channel. GGMorse uses a sample rate of 4 kS/s internally and has its own decimation stage. However the input sample rate must be a multiple of 4 kS/s.

5: UDP

When checked, decoded text is forwarded to the specified UDP address (6) and port (7).

6: UDP address

IP address of the host to forward decoded text to via UDP.

7: UDP port

UDP port number to forward decoded text to.

8: Detected pitch

This is the CW tone pitch detected by GGMorse.

9: Detected keying speed

This is Morse keying speed detected by GGMorse.

10: Lock pitch and speed

Lock the pitch and speed to the current values detected by GGMorse. Unlock to return to auto detection.

11: Decoder cost factor

This is the GGMorse decoder cost factor. Successful decodes yield to just a few millis.

12: Start/stop Logging Messages to .txt file

When checked, writes all received characters to the .txt file specified by (13).

13: .txt Log Filename

Click to specify the name of the .txt file which decoded text is logged to.

14: Clear text

Push this button to clear the text in the text window (15)

15: Decoded Text

This area shows the decoded text. New text appears every 3 seconds which is the GGMorse analysis window length.

16. Waveforms view

This scope display shows waveforms related to the decoding with GGMorse.

  • On the real part it shows the average output of the Goertzel filter as exposed by GGMorse and that is used for decoding.
  • On the imaginary part it shows the threshold level being used in GGMorse for decoding. It is not necessary on the same scale as the Goertzel output.

The elemetary trace length is 3 seconds. This is the time window used by GGMorse thus a new trace appears every 3 seconds. The actual traces are interpolated to fit in the 4800 samples of the elementary trace. Thus the sample rate is a fixed 1.6 kS/s.