Skip to content

CWX Panel

Jeremy Fielder edited this page May 9, 2026 · 2 revisions

CWX Panel

The CWX (CW Transmit) panel provides keyboard-to-CW keying for sending Morse code directly from AetherSDR.

Opening CWX

Click the CWX indicator in the status bar at the bottom of the screen. The CWX panel appears as a 250 px sidebar to the left of the panadapter.

Mode restriction: CWX is only available when the active slice is in CW or CWL mode. The indicator is greyed out and non-clickable in other modes. Switching away from CW mode auto-closes the panel.

Mutual exclusion: CWX and DVK panels cannot be open simultaneously — opening one closes the other.

Features

  • Keyboard text entry for CW transmission
  • 12 CW macro slots with editable text and double-click send
  • WPM, sidetone level, sidetone pitch, and break-in delay controls (since 0.9.8 the four numeric fields next to those labels are editable — click and type a value, validated and clamped to range)
  • Real-time CW keying via the radio's built-in keyer over a netcw UDP stream (firmware 4.x — cw key immediate is unsupported, so every keystroke is encoded into a netcw packet)

Status Bar Indicator

The CWX label in the status bar has three visual states:

  • Bright cyan — panel is open
  • Dim white — available (CW/CWL mode), click to open
  • Dark grey — unavailable (not in CW mode)

Keyboard + MIDI keying (Local Iambic Keyer)

Beyond text entry, AetherSDR ships a local iambic / straight-key implementation that respects the radio's break-in / QSK setting. Three shared actions are available for both keyboard shortcuts and MIDI mappings:

Action Default keyboard MIDI ID
Trigger straight key unbound cw.straight
Trigger CW left paddle (dits) unbound cw.paddle.left
Trigger CW right paddle (dahs) unbound cw.paddle.right

Bind from Settings → Keyboard Shortcuts… or via MIDI Learn in MIDI Controller Mapping. When CW Break-In is enabled on the radio, pressing a paddle / straight-key shortcut keys the radio directly — no MOX required. When break-in is off, MOX must be on for transmission to actually go out.

The local keyer generates the side-tone matching the radio's CW sidetone settings (pitch + level), and uses an adaptive WPM-locked envelope so successive dits / dahs stay in time even when you change WPM mid-transmission.

Stuck-TX recovery (#2450)

On sync_cwx=1 radios the radio waits for an explicit xmit 0 from the client when the CWX buffer drains. AetherSDR now sends that release as soon as the radio reports cwx queue= empty, so the relay clicks back to RX immediately after the last character — fixed in 0.9.8.

See also: CW Decoder for real-time receive Morse decode.

Clone this wiki locally