Repository navigation
Releases: djsincla/ab6a-rigctl
Release list
AB6A RigCtl 2.7
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_dirin
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
ttyselected. 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 ofreadline. - The configuration window's bottom margin — the buttons sat against the
window edge.
New
- Test, in the configuration window, runs
rigctlagainst the radio using
the values currently in the fields, and says whether it answered. It offers to
stop a running daemon first, sincerigctlneeds 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 hamlibNot 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
New
-
ab6a-rigctl checkvalidates a configuration from scratch, rather than
querying something already running —cin 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 PKTUSBIt 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 hamlibNot 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
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=ttyand
/dev/tty.usbmodem14101to the file - starting through the app's own start path launches
rigctld … -r /dev/tty.usbmodem14101 - picking
cugives thecunode 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 hamlibNot 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
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 hamlibNot 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 RigCtl 2.3
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 …custays the default and is right for nearly everything — it opens
immediately, wherettywaits on carrier detect. But plenty of setups are
built around thetty.*name, as mostrigctldcommand 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 hamlibHamlib 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 RigCtl 2.2
New
-
Both device nodes are named. macOS exposes every serial port twice —
/dev/tty.Xis the dial-in node,/dev/cu.Xthe 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 itstty.*name elsewhere, including in
mostrigctldcommand 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 hamlibHamlib 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 RigCtl 2.1
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=0Useful 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=2and Hamlib's shorthand-C a=1,b=2work.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> -Llists the valid names
for a rig.
Requires Hamlib
brew install hamlibHamlib 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 RigCtl 2.0
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 reportsCan get VFO: Nand 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: aset_vfo Subthat
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 hamlibHamlib 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 RigCtl 1.9
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_infowith the literal stringNone. 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_infonever triggered it and the mode never appeared. The menu and
the CLI now send oneget_modeon connect, and every VFO reports its mode
from the first read.
Requires Hamlib
brew install hamlibHamlib 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 RigCtl 1.8
New
-
A daemon can name the receiver it reports. Plain
get_freqfollows
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
xto 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 hamlibHamlib 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.