From 500fe8bfec810902c2118e72f711a7502545135c Mon Sep 17 00:00:00 2001 From: Gregory Salaun Date: Tue, 4 Aug 2026 17:59:30 +0200 Subject: [PATCH] fix(cw): activate the Kenwood/Elecraft keyer engine when selected MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The frontend engine loader had no "kenwood" case, so a saved engine of "kenwood" fell through to the WinKeyer default — the Kenwood/Elecraft CW-over-CAT engine never ran even though the setting showed it selected. Also clarify the Kenwood data-mode comment: there is no single mode digit right for both a K3 (DATA=MD6) and a TS-590SG (MD6=FSK), so data stays on USB as the safe common base; a rig-specific DATA mode is a follow-up. --- changelog.json | 10 ++++++++++ frontend/src/App.tsx | 5 +++-- internal/cat/kenwood.go | 11 ++++++----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/changelog.json b/changelog.json index 0436444..601876e 100644 --- a/changelog.json +++ b/changelog.json @@ -1,4 +1,14 @@ [ + { + "version": "0.23.4", + "date": "", + "en": [ + "CW keyer (Kenwood/Elecraft): choosing the Kenwood/Elecraft engine now actually switches to it. A bug left the keyer on WinKeyer even though the setting showed Kenwood/Elecraft, so its CW-over-CAT never ran." + ], + "fr": [ + "Keyer CW (Kenwood/Elecraft) : choisir le moteur Kenwood/Elecraft y bascule désormais réellement. Un bug laissait le keyer sur WinKeyer alors que le réglage affichait Kenwood/Elecraft, son CW-sur-CAT ne démarrait donc jamais." + ] + }, { "version": "0.23.3", "date": "", diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index c3ebb22..83e09a0 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -2706,8 +2706,9 @@ export default function App() { s.engine === 'icom' ? 'icom' : s.engine === 'flex' ? 'flex' : s.engine === 'yaesu' ? 'yaesu' - : s.engine === 'serial' ? 'serial' - : 'winkeyer'); + : s.engine === 'kenwood' ? 'kenwood' + : s.engine === 'serial' ? 'serial' + : 'winkeyer'); } catch { /* keyer not configured */ } }, []); diff --git a/internal/cat/kenwood.go b/internal/cat/kenwood.go index 7d682f8..0e9644e 100644 --- a/internal/cat/kenwood.go +++ b/internal/cat/kenwood.go @@ -551,11 +551,12 @@ func kenwoodModeDigit(mode string, hz int64) byte { } return '2' } - // Any other digital mode (FT8, PSK, JT…) rides the DATA input, and by universal - // convention that is ALWAYS the UPPER sideband, on every band. The SSB rule - // (LSB below 10 MHz) must NOT be applied here: doing so put a 40/80 m data spot - // on LSB, which an Elecraft K3 shows as "DATA REV" — the reversed sideband. - // (RTTY/FSK is handled above as its own FSK mode, so it isn't affected.) + // Any other digital mode (FT8, PSK, JT…) → USB on every band. There is NO single + // mode digit that is right for both families: a K3 wants DATA (MD6), a TS-590SG + // wants USB-DATA (MD2 + its DATA modifier), and MD6 on the TS-590SG is FSK/RTTY + // — wrong for FT8. USB is the safe common base (the reversed-sideband "DATA REV" + // only came from the old LSB-below-10-MHz rule). A rig-specific DATA mode is a + // follow-up that needs the model, not a blind default. return '2' }