Problem
In CWX Live mode, new characters typed in the buffer are being force-sent before the previous character has finished keying out. The result is character collisions and garbled CW on-air — the operator hears each new keystroke cut off the tail of the previous one.
In the screenshot above, the operator typed cq at 52 WPM and the decoder shows EE instead — each Q got chopped because the second character in the pair started transmitting before the first one finished.
Repro steps
- Connect to FLEX-8600 (or any radio supporting CWX), mode = CW.
- Open the CWX applet.
- Set Speed to a moderate-to-high value (52 WPM in the screenshot, but reproduces at lower speeds too).
- Click Live to enter live-typing mode.
- Type two or more characters into the buffer quickly (
cq, test, etc.).
- Listen on RX (or check the on-screen CW decoder).
Observed: Characters are clipped — only the first dit/dah of each character makes it on-air before the next character preempts it. Decoder reads EE for cq, HH for test, etc.
Expected: Live mode should respect the inter-character timing of the radio's CW state machine. Each character finishes its full keying envelope (including the inter-character gap) before the next character's first dit/dah starts.
Likely cause
The Live-mode dispatch is probably writing each typed character into the radio's CWX buffer immediately on keystroke, rather than coordinating with the radio's keying-completion echo. Standard CWX (non-Live) macro send works correctly because the buffer is queued in one shot and the radio paces its own playback.
Two candidate root causes:
- Per-keystroke immediate dispatch — Live mode sends each character via
cwx send <char> (or the equivalent) on every keypress, with no debounce or queue ordering, so consecutive keystrokes overlap.
- Missing queue-completion gating — Live mode dispatches without waiting for the radio's per-character completion status, so AetherSDR's send rate isn't bounded by the radio's keying rate.
The fix is probably to either (a) feed the radio's CWX buffer in small batches with rate-limiting, or (b) listen for the per-character completion signal and only dispatch the next character after the radio confirms the previous one finished.
Environment
- AetherSDR v0.9.8 (commit
d50ac4ef)
- Linux x86_64 (also reportedly affects Windows / macOS — TBC by reporters)
- FLEX-8600 firmware 4.2.18.41174
- CW mode, sidetone enabled, 758 Hz tone, Speed 52 WPM
- PC Audio enabled (CWX is gated on PC Audio per the in-app hint)
References
- Probably related to existing CWX issues but not duplicate of:
Priority
Medium — affects core CW operation for any operator using Live mode. Workaround: type the full message in the buffer first then click Send (non-Live mode). But Live mode is the natural way to use CWX for QSO-style typing and shouldn't be broken.
73, Jeremy KK7GWY & Claude (AI dev partner)
Problem
In CWX Live mode, new characters typed in the buffer are being force-sent before the previous character has finished keying out. The result is character collisions and garbled CW on-air — the operator hears each new keystroke cut off the tail of the previous one.
In the screenshot above, the operator typed
cqat 52 WPM and the decoder showsEEinstead — eachQgot chopped because the second character in the pair started transmitting before the first one finished.Repro steps
cq,test, etc.).Observed: Characters are clipped — only the first dit/dah of each character makes it on-air before the next character preempts it. Decoder reads
EEforcq,HHfortest, etc.Expected: Live mode should respect the inter-character timing of the radio's CW state machine. Each character finishes its full keying envelope (including the inter-character gap) before the next character's first dit/dah starts.
Likely cause
The Live-mode dispatch is probably writing each typed character into the radio's CWX buffer immediately on keystroke, rather than coordinating with the radio's keying-completion echo. Standard CWX (non-Live) macro send works correctly because the buffer is queued in one shot and the radio paces its own playback.
Two candidate root causes:
cwx send <char>(or the equivalent) on every keypress, with no debounce or queue ordering, so consecutive keystrokes overlap.The fix is probably to either (a) feed the radio's CWX buffer in small batches with rate-limiting, or (b) listen for the per-character completion signal and only dispatch the next character after the radio confirms the previous one finished.
Environment
d50ac4ef)References
Priority
Medium — affects core CW operation for any operator using Live mode. Workaround: type the full message in the buffer first then click Send (non-Live mode). But Live mode is the natural way to use CWX for QSO-style typing and shouldn't be broken.
73, Jeremy KK7GWY & Claude (AI dev partner)