Skip to content

Fixed #347: Omnirig CW and CWR follow the rig's own normal CW - #1196

Open
SebaBecks wants to merge 1 commit into
foldynl:masterfrom
SebaBecks:pr/omnirig-cw-mode
Open

SebaBecks wants to merge 1 commit into
foldynl:masterfrom
SebaBecks:pr/omnirig-cw-mode

Conversation

@SebaBecks

Copy link
Copy Markdown

Fixes #347 without a new setting.

  • The OmniRig drivers mapped CW to CW_L. On a Yaesu or Kenwood that selects CW-R.
  • The driver now reads the rig file that OmniRig has loaded, and checks whether [pmCW_U] selects normal CW (MD3/MD03, CI-V 03) or the reverse.
  • If the file is missing or not recognised, the current mapping stays.
  • Of the 162 OmniRig 1 rig files: 84 change, and 78 stay as they are (41 Icom-style, 37 not recognised).
  • The new code is Windows-only, next to the OmniRig drivers.
  • Tested on an FTdx101MP (CW now stays CW-U) and an IC-705 (no change).

OmniRig names the CW modes by sideband, CW_U and CW_L, while QLog uses
the Hamlib meaning of normal CW and its reverse. Both drivers mapped
CW_L to CW, which suits recent Icoms but puts Yaesu and Kenwood rigs
in CW-L/CW-R whenever QLog selects CW, from the mode box or a spot.

No fixed mapping is right for every rig, and the issue ruled out a
new setting, so the driver now asks the rig file OmniRig has loaded
for the rig. OmniRigRigFile finds it beside OmniRig 1, or in the
user's profile for Omni-Rig V2, and checks whether its [pmCW_U]
command selects the rig's normal CW (MD3/MD03, CI-V mode 03) or the
reverse (MD7/MD07, 07), falling back to [pmCW_L]. SmartSDR's ZZMD
has its own numbering and is read as such.

Of the 162 rig files shipped with OmniRig 1, 84 put the normal CW on
CW_U and now map the other way round; 41 put the reverse there and
37 are not recognised (binary protocols), and those keep the old
mapping, so rigs that worked before are unaffected.
@foldynl

foldynl commented Oct 8, 2026

Copy link
Copy Markdown
Owner

I reviewed the patch, but I would prefer to avoid parsing rig definition files and interpreting CAT commands in QLog.

My suggestion:

  • Use CW_U and CW_L as raw modes in the OmniRig driver and Rig window.
  • Normalize both to CW for logging.
  • For setMode("CW"), keep the current mode if it is already CW_U or CW_L.
  • Otherwise, use the last CW mode reported by that rig.
  • If none is known, use a supported default, such as CW_U.

This preserves the operator's CW choice without parsing INI files or adding a setting. It does not guarantee the rig's normal CW mode on first use, since OmniRig exposes sideband modes, not a universal CW/CWR mapping.

What do you think? Would this address the issue in your setup?

@SebaBecks

Copy link
Copy Markdown
Author

Thanks for looking at it. Yes, that solves my main case: on the FTdx101 CW_U is the normal CW, so it gets the right mode every time.

One small suggestion: could the last CW mode be remembered per rig profile across restarts (stored internally, no new setting)? On the IC-705 the normal CW is CW_L, so with only a session memory it would start in CW-R after every QLog restart until I switch once on the rig. With the profile remembering it, that happens only the first time.

Shall I rework the PR along these lines, or would you rather do it yourself?

@foldynl

foldynl commented Oct 8, 2026

Copy link
Copy Markdown
Owner

I'll rework the PR myself. Thanks! Please, do not close the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Omnirig CW/CWR mode

2 participants