Skip to content

No RF from iambic paddle connected to USB port of MacBook #2332

Description

@dsmit258

Title: [BUG] CW Sidetone audible but no RF transmission when using USB Iambic Paddle

What happened?

When using an iambic paddle connected via a USB-to-serial adapter, the local sidetone is correctly generated and heard through the PC audio output. However, despite Break-in being enabled in the UI and the sidetone functioning, the radio does not key the carrier or produce any RF output.

The issue specifically occurs during manual keying. If CWX macros or keyboard sending are used, RF is produced normally, suggesting the issue is isolated to the hand-keying logic path that interfaces with the USB serial port's hardware handshaking lines (CTS/DSR).

What did you expect?

When Break-in is enabled and the iambic paddle is keyed, the radio should transition to a transmit state and produce RF output in addition to the local sidetone.

Steps to reproduce

  1. Connect an iambic paddle to the macOS system via a USB-serial adapter.
  2. In AetherSDR, go to Settings → Serial and configure the device for Iambic input.
  3. Open the P/CW applet and ensure Break-in is enabled (highlighted/active).
  4. Select CW mode on the active slice.
  5. Key the paddle.
    • Observe: Local sidetone is audible.
    • Observe: No RF output is shown on the radio's power meter or waterfall.

Radio model & firmware

  • Radio: FLEX-6400
  • Firmware: 4.1.5.39794

OS & version

  • AetherSDR version: 0.9.6
  • Qt version: 6.11.0
  • OS: macOS

Developer Notes

Potential Root Cause:
Based on the project architecture, it appears that while the CwxModel and SerialPort logic correctly trigger the local startSidetoneStream(), the VITA-49 cw key command (or the relevant transmit set state) is not being sent to the radio when the hardware polling loop detects a state change.

Since the sidetone is audible, the software is successfully "seeing" the key down events. However, if Break-in state is not being propagated to the SerialPort's polling logic, or if the cw key 1 command is missing from the hardware-keying branch in src/models/RadioModel.cpp, the radio will remain in RX.

Files Involved:

  • src/models/SerialModel.cpp / src/models/SerialModel.h: Check the updatePolling() function. It likely handles the CTS/DSR state changes but may not be calling the necessary transmit or key functions on the RadioModel.
  • src/models/RadioModel.cpp: Verify that the hardware keying path respects the m_breakIn boolean.
  • src/gui/CwxPanel.cpp: Ensure that the manual keying path doesn't accidentally trigger "Practice Mode" (sidetone only) by default when using external serial keys.

Recommended Logging:
To diagnose, the user should enable the following categories in Help → Support:

  • SERIAL: To verify the CTS/DSR transitions are being captured.
  • PROTOCOL: To see if cw key 1 or transmit set breakin=1 commands are actually being sent to the radio over the TCP/IP control channel when the paddle is pressed.
  • CW: To monitor internal state transitions between sidetone and TX.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CWCW keying, decode, and operationawaiting-responseWaiting for reporter to provide additional informationbugSomething isn't workingexternal devicesFlexControl, MIDI, serial port, USB peripheralsmacOSmacOS-specific issue

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions