Skip to content

Releases: djsincla/ab6a-rigctl

AB6A RigCtl 2.7

Choose a tag to compare

@djsincla djsincla released this 16 Sep 00:34

Mostly about a setup working without anyone having to diagnose it.

Finding Hamlib

A machine can carry more than one Hamlib — a working one, and an older
hand-installed copy whose library has since been removed. Whichever comes first
on PATH wins, and an app launched from Finder inherits a different PATH from a
terminal, so the same rig can work from a shell and fail from the app with
nothing to show for it.

  • Each candidate is now run and asked its version, and the first that answers
    is used by absolute path. A broken copy earlier on PATH is simply skipped.
  • If none works, the menu says so, the menu bar glyph turns into a red warning,
    and Start all is disabled rather than failing daemon by daemon.
  • The location can be set — a Hamlib field in Configure, or hamlib_dir in
    the config file, shared with the CLI. A location that is set is authoritative:
    if it is wrong that is reported rather than papered over, and the message says
    which of the two problems it is.

Fixed

  • "That radio is not connected" for a device saved with tty selected. The
    stored path was compared only against the call-out node, which it can never
    equal, so any device whose USB fingerprint did not resolve fell through. Fixed
    in the app and, separately, in the CLI — the first fix had missed it.
  • The error now names what it looked for and what is actually attached.
  • Editing in the CLI: backspace and arrow keys inserted control characters
    instead of editing, for want of readline.
  • The configuration window's bottom margin — the buttons sat against the
    window edge.

New

  • Test, in the configuration window, runs rigctl against the radio using
    the values currently in the fields, and says whether it answered. It offers to
    stop a running daemon first, since rigctl needs the serial port to itself.
  • ab6a-rigctl check [name|all] validates a configuration end to end:
    resolves the device, checks the model, prints the exact command, starts the
    daemon if needed, asks the rig something, and puts everything back.

Requires Hamlib

brew install hamlib

Not bundled. Tested against Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com — ab6a-rigctl version and ab6a-rigctl check all
between them say almost everything worth knowing.

AB6A RigCtl 2.6

Choose a tag to compare

@djsincla djsincla released this 15 Sep 23:44

New

  • ab6a-rigctl check validates a configuration from scratch, rather than
    querying something already running — c in the interactive manager does the
    same.

    IC-7760 / main
     device    /dev/cu.usbmodem14101   (cu node)
     model     3092  Icom IC-7760 (Alpha)
     command   rigctld -m 3092 -r /dev/cu.usbmodem14101 -t 4532 -s 115200
     result    working   14084000  PKTUSB
    

    It resolves the device, confirms the model is in the Hamlib table for its
    kind, prints the exact command it would run, starts the daemon if it is not
    already up, asks the rig something, and says whether it worked. Anything it
    started, it stops again. It exits non-zero if any profile failed, so it can be
    used in a script.

    Tested against deliberately broken profiles — an absent device, a model number
    that does not exist, and a Kenwood driver pointed at an Icom. That last case
    starts cleanly and then times out, which is how a wrong model actually
    presents, and is the one worth being able to diagnose at a distance.

Requires Hamlib

brew install hamlib

Not bundled. Tested against Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com — ab6a-rigctl version and ab6a-rigctl check all
between them say almost everything worth knowing.

AB6A RigCtl 2.5

Choose a tag to compare

@djsincla djsincla released this 15 Sep 23:36

Changed

  • About panel text is a point larger. Naming the versions made it dense; the
    standard panel's scroll box is left as it is, being normal macOS behaviour.

Verified

The cu / tty choice added in 2.3 is now tested through the code that actually
runs, rather than a preview that reimplemented the same logic:

  • driving the configuration window's own save writes node=tty and
    /dev/tty.usbmodem14101 to the file
  • starting through the app's own start path launches
    rigctld … -r /dev/tty.usbmodem14101
  • picking cu gives the cu node at every stage

No behaviour change — the tests were added because the claim had not actually
been demonstrated for the app, only for the CLI.

Requires Hamlib

brew install hamlib

Not bundled. Tested against Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com — ab6a-rigctl version prints what to include.

AB6A RigCtl 2.4

Choose a tag to compare

@djsincla djsincla released this 15 Sep 23:27

Two additions aimed at helping someone else with their setup.

Console

Console… (⌘K) opens a window onto a running daemon: pick the daemon, type a
rigctl command, and see the raw reply with how long it took.

> \get_rig_info
VFO=Main Freq=14084000 Mode=PKTUSB Width=3600 RX=1 TX=1
VFO=Sub Freq=7074000 Mode=PKTUSB Width=3600 RX=0 TX=0
  4 ms

Ten one-click presets, each with a tooltip saying what it is for — f, m,
t, s, l STRENGTH, \get_rig_info, \get_vfo_list, \chk_vfo,
\dump_state, \dump_caps. They were chosen by trying candidates against a
real rig: \get_powerstat and v answer RPRT on an IC-7760, and w (raw CAT
passthrough) is rig-specific enough to mislead, so none of those are buttons —
though all remain typeable.

Copy all takes the transcript. Each command uses its own connection, so a
console session cannot disturb the menu's polling or anything else connected.

Versions

The About panel now names the app version and Hamlib's, and the CLI prints
everything worth pasting into a support message:

$ ab6a-rigctl version
AB6A RigCtl 2.4
  rigctl Hamlib 4.7.2 2026-06-21T13:07:37Z SHA=40f63488f 64-bit
  rotctl(d), Hamlib 4.7.2 …
  ampctl(d), Hamlib 4.7.2 …
  config  ~/.config/ab6a-rigctl/profiles.json
  state   ~/.local/state/ab6a-rigctl

All three Hamlib tools are listed, since a stray build on PATH is invisible
until you look.

Requires Hamlib

brew install hamlib

Not bundled. Tested against Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com

AB6A RigCtl 2.3

Choose a tag to compare

@djsincla djsincla released this 15 Sep 20:31

New

  • Choose the device node. 2.2 named both of the nodes macOS creates for a
    serial port but always opened the call-out one. Each interface now has a
    cu / tty picker, and the chosen node is what the daemon is given:

    cu    ->  rigctld -m 3092 -r /dev/cu.usbmodem14101  …
    tty   ->  rigctld -m 3092 -r /dev/tty.usbmodem14101 …
    

    cu stays the default and is right for nearly everything — it opens
    immediately, where tty waits on carrier detect. But plenty of setups are
    built around the tty.* name, as most rigctld command lines in circulation
    are, and those now work without fighting the app.

    The picker is disabled for ports that have no dial-in twin. The CLI offers the
    same choice when adding a device.

Requires Hamlib

brew install hamlib

Hamlib provides rigctld, rotctld and ampctld — the daemons this app starts
and reads from — and their model tables. It is not bundled. Tested against
Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com

AB6A RigCtl 2.2

Choose a tag to compare

@djsincla djsincla released this 15 Sep 20:15

New

  • Both device nodes are named. macOS exposes every serial port twice —
    /dev/tty.X is the dial-in node, /dev/cu.X the call-out node — and only
    cu.* was ever listed, since that is what IOKit reports and what the daemons
    are given. A port is usually known by its tty.* name elsewhere, including in
    most rigctld command lines, so people looked for it here and did not find it.

    With Show all serial devices ticked, each interface now names both:

    interface 1   /dev/cu.usbmodem14101   (/dev/tty.usbmodem14101)
    

    What actually gets used is unchanged: always the cu.* node.

Requires Hamlib

brew install hamlib

Hamlib provides rigctld, rotctld and ampctld — the daemons this app starts
and reads from — and their model tables. It is not bundled. Tested against
Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com

AB6A RigCtl 2.1

Choose a tag to compare

@djsincla djsincla released this 15 Sep 20:04

New

  • Extra daemon options, per daemon. Each interface now has an options
    field in the configuration window, passed to the Hamlib daemon verbatim:

    -C timeout=500 -C retry=0
    

    Useful for rigs needing timing, retry or PTT settings the defaults do not
    cover — -C …, -P RIG, --vfo, verbose flags and so on. Both
    -C a=1 -C b=2 and Hamlib's shorthand -C a=1,b=2 work.

    Note that Hamlib silently ignores an unknown parameter — the daemon starts
    normally and the setting simply never applies, so check spelling first if an
    option seems to have no effect. rigctld -m <model> -L lists the valid names
    for a rig.

Requires Hamlib

brew install hamlib

Hamlib provides rigctld, rotctld and ampctld — the daemons this app starts
and reads from — and their model tables. It is not bundled. Tested against
Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com

AB6A RigCtl 2.0

Choose a tag to compare

@djsincla djsincla released this 12 Sep 19:44

VFO reporting

Three related changes, all from testing against a real IC-7760 and checking the
results on the radio's own front panel.

  • The display no longer flips while transmitting. Hamlib's VFO labels invert
    under split TX — the frequencies trade places and trade back on unkey. It
    cannot correct itself, because this rig reports Can get VFO: N and the VFO
    can never be read back. The client now checks PTT and holds the last reading
    taken at rest, with a TX marker showing when values are being held.

  • VFOs are labelled A and B, not Main and Sub. Hamlib's "Main" tracks
    whichever VFO is selected, not the radio's Main receiver: a set_vfo Sub that
    the rig ignored outright still made Hamlib report the labels swapped. A and B
    say only what can be substantiated — the rig's first and second VFO.

  • Existing configurations are unaffected; stored values keep Hamlib's names and
    only the labels changed.

Worth knowing

On this rig set_vfo does not work at all — it returns RPRT 0 and the radio
ignores it. Split is the only way to move TX to the second receiver, and it
does work: verified transmitting on the sub receiver with the front panel
agreeing.

Requires Hamlib

brew install hamlib

Hamlib provides rigctld, rotctld and ampctld — the daemons this app starts
and reads from — and their model tables. It is not bundled. Tested against
Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com

AB6A RigCtl 1.9

Choose a tag to compare

@djsincla djsincla released this 12 Sep 19:22

Fixed

  • A mode of "None" next to the frequency. A daemon that has only just
    started has not populated its per-VFO cache, and Hamlib answers
    get_vfo_info with the literal string None. That is "not known yet", not a
    mode, and it is no longer displayed as one.

  • The mode then staying blank. Hamlib only fills a VFO's mode cache when
    something asks the plain way, so a client reading solely through
    get_vfo_info never triggered it and the mode never appeared. The menu and
    the CLI now send one get_mode on connect, and every VFO reports its mode
    from the first read.

Requires Hamlib

brew install hamlib

Hamlib provides rigctld, rotctld and ampctld — the daemons this app starts
and reads from — and their model tables. It is not bundled. Tested against
Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com

AB6A RigCtl 1.8

Choose a tag to compare

@djsincla djsincla released this 12 Sep 05:59

New

  • A daemon can name the receiver it reports. Plain get_freq follows
    whichever VFO the rig currently has selected, so on a dual-receive radio every
    daemon showed the same frequency — two WSJT-X instances on an IC-7760 both
    read Main. A profile can now be set to Main, Sub, VFO A, VFO B,
    or whichever is current.

  • "Main and Sub" reports the whole radio over one connection. get_vfo_info
    addresses a VFO by name, so a second daemon was never needed just to see the
    second receiver. Set a profile to Main and Sub and the menu shows a line per
    receiver.

  • An x to remove a configured device, including devices that are not
    currently attached — those previously had no row to untick and could not be
    deleted from the window at all.

Note

This is display only. It does not steer CAT writes: an unqualified set_freq or
PTT still acts on the rig's active VFO, whichever client sent it.

Requires Hamlib

brew install hamlib

Hamlib provides rigctld, rotctld and ampctld — the daemons this app starts
and reads from — and their model tables. It is not bundled. Tested against
Hamlib 4.7.2.

Install

Download, unzip, drag AB6A RigCtl.app to /Applications. Signed with a
Developer ID and notarized, ticket stapled. Apple Silicon, macOS 26 or later.

Help

AB6A.US@gmail.com