diff --git a/sdrbase/gui/cwkeyergui.ui b/sdrbase/gui/cwkeyergui.ui
new file mode 100644
index 000000000..68559172d
--- /dev/null
+++ b/sdrbase/gui/cwkeyergui.ui
@@ -0,0 +1,582 @@
+
+
+ GLSpectrumGUI
+
+
+
+ 0
+ 0
+ 375
+ 60
+
+
+
+
+ Sans Serif
+ 8
+
+
+
+ Oscilloscope
+
+
+
+ 2
+
+
+ 2
+
+
+ 2
+
+
+ 2
+
+
+ 3
+
+ -
+
+
+ 3
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 24
+ 24
+
+
+
+ Audio tone
+
+
+ Histogram
+
+
+
+ :/mono.png:/mono.png
+
+
+
+ 16
+ 16
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 24
+ 24
+
+
+
+ Audio tone volume
+
+
+ 240
+
+
+ 1
+
+
+
+ -
+
+
+ 1.0
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+
+ 24
+ 24
+
+
+
+ CW speed (WPM)
+
+
+ 0
+
+
+ 20
+
+
+ 1
+
+
+
+ -
+
+
+ CW speed display (WPM)
+
+
+ 13
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 24
+ 24
+
+
+
+ Morse key
+
+
+ Max Hold
+
+
+
+ :/morsekey.png:/morsekey.png
+
+
+
+ 16
+ 16
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 30
+ 16777215
+
+
+
+ Morse key assignment
+
+
-
+
+ 0
+
+
+ -
+
+ 1
+
+
+ -
+
+ 2
+
+
+ -
+
+ 3
+
+
+ -
+
+ 4
+
+
+ -
+
+ 5
+
+
+ -
+
+ 6
+
+
+ -
+
+ 7
+
+
+ -
+
+ 8
+
+
+ -
+
+ 9
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 24
+ 24
+
+
+
+ Iambic key
+
+
+ Max Hold
+
+
+
+ :/iambickey.png:/iambickey.png
+
+
+
+ 16
+ 16
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 30
+ 16777215
+
+
+
+ Iambic key dot assignment
+
+
-
+
+ 0
+
+
+ -
+
+ 1
+
+
+ -
+
+ 2
+
+
+ -
+
+ 3
+
+
+ -
+
+ 4
+
+
+ -
+
+ 5
+
+
+ -
+
+ 6
+
+
+ -
+
+ 7
+
+
+ -
+
+ 8
+
+
+ -
+
+ 9
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 30
+ 16777215
+
+
+
+ Iambic key dash assignment
+
+
-
+
+ 0
+
+
+ -
+
+ 1
+
+
+ -
+
+ 2
+
+
+ -
+
+ 3
+
+
+ -
+
+ 4
+
+
+ -
+
+ 5
+
+
+ -
+
+ 6
+
+
+ -
+
+ 7
+
+
+ -
+
+ 8
+
+
+ -
+
+ 9
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 24
+ 24
+
+
+
+ Play text in a loop
+
+
+ Inv
+
+
+
+ :/playloop.png:/playloop.png
+
+
+
+ 16
+ 16
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 24
+ 24
+
+
+
+ Play / pause text
+
+
+ Waterfall
+
+
+
+ :/play.png
+ :/pause.png:/play.png
+
+
+
+ 16
+ 16
+
+
+
+ true
+
+
+ false
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ CW text
+
+
+
+ -
+
+
+
+ 24
+ 24
+
+
+
+
+ 24
+ 24
+
+
+
+ Clear CW text
+
+
+
+
+
+
+ :/clear.png:/clear.png
+
+
+
+ 16
+ 16
+
+
+
+
+
+
+
+
+
+
+ ButtonSwitch
+ QToolButton
+
+
+
+
+ morseKey
+ playLoop
+
+
+
+
+
+
diff --git a/sdrbase/resources/iambickey.png b/sdrbase/resources/iambickey.png
new file mode 100644
index 000000000..924946288
Binary files /dev/null and b/sdrbase/resources/iambickey.png differ
diff --git a/sdrbase/resources/morsekey.png b/sdrbase/resources/morsekey.png
new file mode 100644
index 000000000..cdd401afd
Binary files /dev/null and b/sdrbase/resources/morsekey.png differ
diff --git a/sdrbase/resources/res.qrc b/sdrbase/resources/res.qrc
index 23c920318..93bc09dda 100644
--- a/sdrbase/resources/res.qrc
+++ b/sdrbase/resources/res.qrc
@@ -1,69 +1,71 @@
-
- minusrx.png
- plusrx.png
- microphone.png
- checkmark.png
- questionmark.png
- res.qrc
- export.png
- import.png
- compressed.png
- locked.png
- appicon.png
- unlocked.png
- histogram.png
- waterfall.png
- preset-load.png
- preset-save.png
- preset-update.png
- preset-delete.png
- horizontal.png
- vertical.png
- maxhold.png
- grid.png
- invertspectrum.png
- preset-last.png
- display1.png
- display2.png
- slopen_icon.png
- slopep_icon.png
- display1_w.png
- display2_w.png
- horizontal_w.png
- vertical_w.png
- current.png
- slopeb_icon.png
- clear.png
- playloop.png
- play.png
- pause.png
- stop.png
- sdrangel_logo.png
- sdrangel_icon.png
- minus.png
- plus.png
- record_off.png
- record_on.png
- mem.png
- minusw.png
- plusw.png
- mono.png
- stereo.png
- sound_off.png
- sound_on.png
- dsb.png
- usb.png
- flip_lr.png
- flip_rl.png
- carrier.png
- rds.png
- recycle.png
- lsb.png
- constellation.png
- slot1_off.png
- slot1_on.png
- slot2_off.png
- slot2_on.png
-
+
+ minusrx.png
+ plusrx.png
+ microphone.png
+ checkmark.png
+ questionmark.png
+ res.qrc
+ export.png
+ import.png
+ compressed.png
+ locked.png
+ appicon.png
+ unlocked.png
+ histogram.png
+ waterfall.png
+ preset-load.png
+ preset-save.png
+ preset-update.png
+ preset-delete.png
+ horizontal.png
+ vertical.png
+ maxhold.png
+ grid.png
+ invertspectrum.png
+ preset-last.png
+ display1.png
+ display2.png
+ slopen_icon.png
+ slopep_icon.png
+ display1_w.png
+ display2_w.png
+ horizontal_w.png
+ vertical_w.png
+ current.png
+ slopeb_icon.png
+ clear.png
+ playloop.png
+ play.png
+ pause.png
+ stop.png
+ sdrangel_logo.png
+ sdrangel_icon.png
+ minus.png
+ plus.png
+ record_off.png
+ record_on.png
+ mem.png
+ minusw.png
+ plusw.png
+ mono.png
+ stereo.png
+ sound_off.png
+ sound_on.png
+ dsb.png
+ usb.png
+ flip_lr.png
+ flip_rl.png
+ carrier.png
+ rds.png
+ recycle.png
+ lsb.png
+ constellation.png
+ slot1_off.png
+ slot1_on.png
+ slot2_off.png
+ slot2_on.png
+ iambickey.png
+ morsekey.png
+